The command line is a powerful tool in any developer’s arsenal. It makes operational tasks faster and affords developers more control over their workflow without needing to rely on a collection of specialized apps or tools that accomplish the same results. However, many front-end developers feel lost when it comes to the using the command line. They may know commands related to specific tools like Git, NPM, or Gulp/Grunt, but there is so much more to harness for the sake of efficiency and greater productivity.

In this article, I will seek to rid front-end developers of this ill-found insecurity, by equipping them with a few useful commands that they can employ on their next web project.

  1. Compress Or Extract Files Using tar
  2. Backup A Database (MySQL Dump)
  3. Search For Files Within A Project
  4. Transfer Files Between Remote And Local Environments

Compress Or Extract Files Using tar

Compressing files before transferring or archiving them can save you time and bandwidth. The following examples use the tar command to compress/extract archives using gzip. This is still one of the best ways to compress a collection of files into an single archive file.

Compress Files

This command uses the -c flag to signal we want to compress files. Replace archive.tar.gz with your desired file name and /path/to/directory-or-file with the directory you want to compress.

tar -czvf archive.tar.gz /path/to/directory-or-file

Extract Files

This command uses the -x flag to signal we want to extract files. The -C flag signals that tar should change directories to tmp (or whatever directory you choose) and extract the files there instead of the current directory.

tar -xzvf archive.tar.gz -C tmp

Backup A Database (MySQL Dump)

Sure, this can easily be done via most server management platforms, but sometimes it’s just easier to pull a database backup from the command line. The beauty in this command is it’s simplify. It requires the database username and password, but that’s it. If you want to be a super user, you can even combine this command with the previous tar example to get a database snapshot along with the files, all in one archive file.

mysqldump -u username -p existing_db_name > existing_db_name.sql

Search For Files Within A Project

Searching for a particular file or text string on a remote server is a pain in the neck with most server management tools, but not with these commands. Get ready to find files faster than you ever thought possible.

Search For Files By Filename

This command will return a list of files matching your query within a directory. You can use * in any part of the target directory as a wildcard to search all directories. For example, /home/*/public_html/ would search the /public_html directory within any child directories in /home.

find /path/to/search -name filename.ext

Search For Files That Contain A Text String

In contrast to the previous example, this command searches the contents of files within a directory. The following command will produce a list of files where the search string is present within the file contents. The -r flag tells grep to search recursively within all sub-directories of /path/to/search. The -l flag tells grep to list the files where a match is found.

grep -rl 'search string' /path/to/search

Transfer Files Between Environments

This is basically an FTP replacement command. You connect to the remote server via SSH and transfer files between local and remote all in one command. Remember that tar command from earlier? This is a good follow up to download that archive file. The -P flag allows you to specify the SSH port. It you want to use this command to transfer directories and all their contents, use the -r flag to copy directories recursively.

Copy Files From Remote To Local :

scp -P 22 user@example.com:/path/to/remote/file /path/to/local/file

Copy Files From Local To Remote:

scp -P 22 /path/to/local/file user@example.com:/path/to/remote/file

Don’t Stop Here, Keep Going

Now you have a few more tools at your disposal to make you a more efficient developer. I challenge you to keep digging into all the options for these commands and others. Find the ones that work best for you and pull into your workflow.

About The Author

Matt Litzinger headshot

Matt is a New Hampshire-based web developer focused on UX and digital accessibility.