Using SSH with WordPress can be one of the most secure and convenient methods of accessing your website.

It’s a protocol for accessing the files on your site which means ‘Secure Shell’. As long as you have the login credentials, you can use it to access your site from wherever you are, knowing that you are doing so securely.

In this post, you’ll learn about some of the most useful SSH commands to use with WordPress.

Let’s dive in!

What is SSH and How Do I Use it with WordPress?

SSH is a secure protocol for accessing files on your WordPress site. This post focuses on the commands you can use, so I’m not going to go into detail on how to use SSH to access your site, but just give you a recap.

What Is SSH?

SSH, or ‘Secure Shell’, is a protocol you can use to access files and directories on a remote server. The SSH specs define it as:

“A protocol for secure remote login and other secure network services over an insecure network.”

Instead of using your web browser, you use either the Terminal (on macOS or Linux) or a client such as PuTTY (on Windows) to access your site over SSH.

How Do I Use SSH with WordPress?

For a WordPress site, SSH will give you access to the WordPress files themselves plus any files you’ve added to the wp-content directory, either via the admin screens or directly.

It’s likely you’ll be using it in the wp-content directory mostly, and occasionally in the root directory to access files like wp-config.php.

To work in your site using SSH, open either the Terminal or a client such as PuTTY, and start by accessing the server. To do this you’ll need four pieces of information:

To connect via SSH with Kinsta, you’ll need to find this information in MyKinsta. Select your site and finding the SFTP/SSH section of the Info screen.

MyKinsta SSH

MyKinsta SSH details

Copy this into the command line.

Kinsta SSH starting screen

Kinsta SSH starting screen

Once you’ve done that, you can start using SSH commands with your WordPress site.

If your connection is refused, it could be for one of a number of reasons. Follow our guide to troubleshooting a refused SSH connection to get connected again.

What Is PuTTY and How Do I Use It?

If you’re running macOS or Linux, you have the interface you need to access your WordPress site via SSH already. You can simply use the built-in Terminal to use SSH.

But if you’re on Windows, you’ll need to install a client to be able to use SSH.

The most popular SSH client is PuTTY. You’ll need to download and install that before you can access your site from Windows. You then use the same SSH commands in PuTTY as you would in the Terminal.

How Can I Automate SSH Commands with WordPress?

One of the benefits of using SSH to access your WordPress site is that you can automate commands you use frequently.

You do this by using WP-CLI, the WordPress command-line interface. This is an interface that gives you access to a library of WordPress-specific commands that you can use over and above those provided by SSH.

Using WP-CLI means you can automate WordPress management tasks such as updating your WordPress installation, installing plugins, and configuring remote servers. Using the command line speeds up the process and can make you a much more efficient developer.

Benefits of Using SSH with WordPress

Using SSH with WordPress gives you a number of benefits:

Now that you know what SSH is and how it works with WordPress, let’s take a look at the most popular SSH commands you can use with WordPress.

This year, it's all about working smarter and faster with these 20+ SSH commands for #WordPress ⚡️Check them out here!Click to Tweet

26 SSH Commands to Use with WordPress

The SSH protocol has a wide range of commands. Below I’ve listed out the most commonly used ones and grouped them into categories for convenience.

Directory Commands

There is a range of SSH commands that you can use to work with or manipulate the directories (or folders) in your WordPress site.

pwd – Show Current Directory (Full Path to Where You Are Right Now)

The pwd command will display the full path to where you are in your server right now. If you type this in when you first access your site, it’ll tell you which server you are on.

SSH commands: pwd command

pwd command

Use this command after moving further into your folders, and you’ll see more information about exactly where you are. This can be useful to check your location, as you don’t have the visual representation that you’d get when using a code editor or FTP client.

ls – Show Directory Contents (List the Names of Files)

The ls command will display the contents of the current directory.

SSH commands: ls command

ls command

You can also use additional parameters to customize or add to the information the ls command returns:

Make sure to type a space between the command and any parameters.

ls -a command

ls -a command

cd – Change Directory

The cd command will let you move to another directory. You can move into subdirectories of the current directory or you can move up or across with the correct parameters.

The command below takes me from the root directory of my server to the public directory:

cd public

To move up the directory tree or to go back where you came from, use one of these parameters:

In the screenshot below, I’ve moved into the public directory and listed out its contents. If you have experience with the contents of a WordPress installation, this will look familiar to you:

SSH commands: Moving into the public directory

Moving into the public directory

mkdir – Create a New Directory

With the mkdir command, you can create a new directory in the current directory.

So, if you’re inside the folder of a plugin and you want to add a directory for stylesheet, you might use this command:

mkdir styles

This will add a new empty directory to the folder you are currently in. If you want to add a directory to a folder lower down in the structure, you type in the structure. So from the wp-content folder, you might type:

mkdir /plugins/myplugin/styles

rmdir – Remove Directory

The rmdir command will delete a directory on your server. Be careful using this as you can’t undo it!

As with mkdir, you can use rmdir to remove a directory in your current location:

rmdir styles

Or you can use rmdir to remove a folder further down in the structure:

rmdir /plugins/myplugin/styles

You can also use rm to remove directories, if you add additional parameters.

File or Directory Commands

The following commands can be used with either files or folders/directories.

cp – Copy File or Folder

You can use the cp command with both files and folders to copy them to another location. You’ll need to specify where you want the file or folder to be copied to.

cp filename.extension /dir/

This specifies the name of the file to be copied (including its extension) and the location it will be copied to.

If you want to rename the file (i.e. the new version has a different name from the original), then you can also specify the new file name.

cp filename.extension /dir/filename.extension

This command has a number of parameters you can use:

mv – Move File or Folder

As well as copying files and folders, you can also move them. To do this, use the mv command.

As with cp, you can either move a file or folder and keep the same name or move it and rename it.

zip – Compress File or Folder

Another command you can use with folders or files is zip which you can implement to compress a folder and its contents. You need to include the name of the file/folder that will be compressed as a zip file. You can use it with parameters that will specify whether you want to delete the original folder or not.

SSH commands: zip -r command

zip -r command

When you then list out the contents of the folder, you will see the zip file and the original folder if you used zip -r, but just the new zip file if you used zip -m.

SSH commands: The new zip file

The new zip file

unzip – Decompress a Folder

The unzip command will decompress a zip file in your directory and extract its contents to create the folder or files it was originally compressed from:

unzip twentyseventeen.zip

Don’t use this if you didn’t delete the original folder when zipping it. It won’t overwrite the original folder. Instead, use zip -m to delete the original folder when zipping it, or use rm to delete it before unzipping the zip file.

You can also add parameters to unzip to customize its use:

tar – Create and Unpack Compressed Archives

The tar command will let you create and unpack .tar.gz archives, which is an alternative to using .zip archives. You use the same command to compress and decompress files or folders.

To compress a file or folder, use tar cvzf. The syntax for compressing a folder would be:

tar cvzf archivename.tar.gz directoryname

Above, archivename is the name of the archive file to be created and directoryname is the name of the folder to be compressed.

And to decompress the folder, use tar xvzf:

tar xvzf archivename.tar.gz

The four letters represent specific instructions:

File Commands

Below is a list of the most common SSH commands specifically for use with files.

touch – Create a New File

To create a new empty file on your server, use the touch command:

touch style.css

You can only create a file in the current directory, so you’ll have to navigate to it before using the touch command.

cat – Show File Contents

To display the contents of a file, use cat.

SSH commands: cat command

cat command

This will display the full contents of any file within the Terminal or PuTTY.

grep – Search for a Specific Phrase

If you know the file you need to examine is long and you also know what contents you’re looking for, you can use the grep command to search for specific content.

Below I’ve done a search for the word ‘sidebar’ in the sidebar.php file in a theme.

grep command

grep command

This will display any lines containing the search term.

If I wanted to search for a string of more than one word, I’d need to enclose it in speech marks:

grep "nav class" footer.php

The grep command also has a number of parameters you can use to customize your search:

head – Read the First 10 Lines of a File

If you just want to read the opening lines of a file, then use the head command:

head filename.extension
SSH commands: head command

head command

tail – Read the Last 10 Lines of a File

The tail command works in the same way as the head command, but instead reads the last ten lines of a file:

Need a blazing-fast, secure, and developer-friendly hosting for your client sites? Kinsta is built with WordPress developers in mind and provides plenty of tools and a powerful dashboard. Check out our plans

tail filename.extension

find – Search Files and Directories

The find command lets you search through files and directories and return those that meet criteria that you specify. The command below will search the current directory for all files whose name includes ‘index’:

find . -name “index”

The syntax is:

find operator criterion string

The operators you can use are:

So, if you changed the command above to this, str would search the whole system, not just the current directory:

find / -name “index”

The criteria you can use include:

The search term can be any string you like. Make sure you enclose it in speech marks.

du – Get File Size

If you want to find out the size of one or more files in your WordPress installation, use the du (Disk Usage) command:

du -h wp-config.php

The insertion of -h means the disk usage will be displayed in human-readable format, rather than as blocks.

There are extra parameters you can use:

chmod – Change a File’s Permissions

The chmod command lets you change a file’s permissions:

chmod 464 filename.extension

To determine which permissions to use, use the Unix Permissions Calculator and copy the number it gives you into the command.

nano – Edit a File with the Nano Text Editor

If you’ve used the touch command to create a new file, or maybe the cat command to show the contents of an existing file, you might want to then edit the file.

You can do this using the nano text editor with the nano command:

nano filename.extension
nano text editor

nano text editor

This lets you edit your files right from the command line.

Beware: undoing your work is a lot harder than if you’d used a code editor or a version control system. Only make minor changes if you are confident in doing so.

To navigate the file, use the cursor keys along with the keyboard shortcuts listed at the bottom of the screen. To exit the file, use Ctrl-X to return to the Terminal.

vim – Edit a File with the Vim Text Editor

The vim text editor works in much the same way as the nano editor and you access it using the vim command. Which you choose to use will depend on personal preference:

vim filename.extension

wget – Download Files

With the wget command, you can download files from the internet. They will be downloaded to the directory you are currently in. You’ll need to include the full path to the file you want to download:

wget https://site.com/filename.ext

This will download the filename.ext file from site.com and store it in your current directory.

Terminal Commands

Now let’s take a look at some of the most commonly used commands to help you work with the Terminal (or PuTTY) interface.

clear – Clear Screen

If your screen is feeling cluttered, simply type in clear to clear it and find yourself at the top of a blank screen again. This is useful if you want a clean working environment or you want to hide your work if you’re in a public place:

 

clear command

clear command

reset – Remove Output from Terminal

The reset command will remove all of your commands and output from he terminal screen and clear the screen.

history – Show last 50 used commands

If you’re not quite sure what you’ve done most recently and want to repeat or undo something, use the history command to output a list of the most 50 recent commands you’ve used.

history command

history command

Other Useful Commands When Working via SSH

The following commands don’t come under the headings above but you might find them useful for working with your WordPress site via SSH.

netstat – Display Network Connections

Type in the netstat command and you will see details of your network connection and status:

netstat command

netstat command

exit – Exit the Remote Server

When you’re done working with your remote WordPress site, type in the exit command to exit the server and return to your local machine.

exit command

exit command

You should always do this when you finish working, so no one else can access your server via SSH.

SSH is a secure protocol for accessing files on your WordPress site. Here's a list of the 20+ best commands that will make your #devlife so much easier! Check them out 💪🏅Click to Tweet

Summary

Being able to access your WordPress site via SSH gives you a secure and convenient way to work with the files on your site without having to open a FTP client or a web browser.

Thanks to the commands listed here, you should be able to carry out most of the tasks you’ll need to do in WordPress over SSH and get more work done faster.


If you enjoyed this article, then you’ll love Kinsta’s WordPress hosting platform. Turbocharge your website and get 24/7 support from our veteran WordPress team. Our Google Cloud powered infrastructure focuses on auto-scaling, performance, and security. Let us show you the Kinsta difference! Check out our plans