22 Most Useful Basic SSH Commands You Should Know About!

In this article, we are going to learn about the 22 basic ssh commands that you should know about. By reviewing this, you will understand how to navigate, manage and command your terminal, VPS or server through the command line.

How to Access Remote Server or Terminal :

To start for the command line, make sure that you have access to a remote server or shell prompt. Also, one can demand ssh enable through chat or ticket if you own shared, reseller or vps hosting with Hostpoco. You can then find an option named Terminal under hosting cpanel, where you can use these basic commands.

SSH stands for Secure Shell, it’s a type of protocol used to securely connect to a remote server/system.


Steps to access your remote server:

There are two well-known and recommended methods to make ssh connection. Using an SSH client like Putty. It requires you to enter the server’s IP and the port number into the corresponding fields.

Using Terminal Shell: This is the option available under hosting Cpanel which you will be able to see once your hosting provider enables ssh access for your account.

You will need to write details under the destination section of putty along with the port number:

ssh [email protected] or hostname


Remember to replace ssh “root” with your real username and ssh “” with your server’s dedicated or shared IP address.

Make sure that you have filled the correct details and then click on open. Once you click the Open button on PuTTY or the accessed the terminal option under Cpanel, you will be prompted for a user/shell password. If you are making ssh connection first time on the server then you might get a warning message, telling you that the server is not recognized. Just click on Yes to continue.

Done. Now you’re connected to the server and can start executing SSH commands from your end.

List of Basic SSH Commands

Now we will go through popular SSH commands and learn about using them.

Here is the quick look of the basic SSH commands which we will cover.

SSH CommandExplanation
lsShow directory contents (list the names of files).
cdChange Directory.
mkdirCreate a new folder (directory).
touchCreate a new file.
rmRemove a file.
catShow contents of a file.
pwdShow current directory (full path to where you are right now).
cpCopy file/folder.
mvMove file/folder.
grepSearch for a specific phrase in file/lines.
findSearch files and directories.
vi/nanoText editors.
chmodHelp to change the permission of the files or directories
chownHelp to change ownership of the files or directories
zip -rzip -r directory.zip directory name helps to make a zip of directory
unzip unzip filename helps to unzip directory
mysqldumpHelps to take backup of database
historyShow last 50 used commands.
clearClear the terminal screen.
tarCreate & Unpack compressed archives.
wgetDownload files from the internet.
duGet actual file size.

ls command

This command is useful to list the contents available under the directory

Also available the below options to get more info

-l : ls -l displays the details of the files, such as size, modified date and time, the owner, and the permissions.
-a : ls -a shows hidden files and directories

cd command

cd (Change Directory) is the command that use to jump between directories. This is a simple command, just type cd followed by the name of the directory:

cd [directory]
eg : cd home , cd testdirectory

To go back one level reverse, you can simply enter “..” (two dots) after cd command:

cd ../..
Enter this command to get in-home directory again.

mkdir command

This command is useful to create new directory

mkdir [folder name]
Assume that you want to create a new folder named “mydata”. You will need to type:

mkdir mydata

touch command

one can easily create new file using this command, it can be with extension or without extension. It can create files without any extension too

touch [file name]
If you want to create a .txt file named “testfile”, this is what you need to write:

touch testfile.txt.

rm command

rm command helps to remove a chosen file or directory. To delete a file, enter:

rm [file name]
For instance, if you want to remove testfile.txt, simply execute:

rm testfile.txt
To delete a directory, you need to use the -r (recursive)option to remove all the files and subfolders inside it:

rm -r home3/hostpoco/mydat

cat command

This command is very useful to view contents from the file

cat [file name]
This also allows you to create a new file by merging multiple files. Eg:

cat info.txt info2.txt > infomerge.txt
This execution will help to merge the content of info.txt and info2.txt into infomerge.txt

pwd command

pwd is a command that prints the full path of your working directory. Eg:

It’s handy if you want to get the exact path in case you need to update your provider for some work

cp command

This ssh type of command is helpful to copy files and folders.

cp [options] [source] [destination]
[source] should be the file or folder you want to copy and [destination] is the duplicate.

Let’s assume that you have mydata.txt in your working directory, and you want to make a copy of it. It should work like below way:

cp mydata.txt mydata2.txt
Also if you want to make a copy in a different folder, run the below command:

cp /home/hostpoco/mydata.txt /home/testuser

mv command

This command works in a similar way to cp. However, mv command will move the file or folder instead of copying it. This is the syntax:

mv [source] [destination]

grep command

grep command is for searching purposes, looks for a given string in files. For example:

grep ‘line’ info.txt
The above command would search for ‘line’ in a file named “info.txt”.

find command

This command is useful to search for a file/files that meet with the format (name, size, file type, etc). The basic syntax is as below:

find [starting directory] [options] [search term]
[starting directory] is where you would like to start your search process. There are three main choices:

/ (slash) — search the whole system
. (dot) — search the working directory
~ (tilde) — search the home directory
Additional arguments :

-name — look for files based on their names
-user — search for files that belong to a given user
-size — look for files based on their sizes
[search term] is the keyword or number that you use to search for files.

Take a look at this example:

find . -name “index”
This command will return any files that have the word “index” on their names. And since we use “.” (dot), the command will only search the working directory.

vi/nano command

Vi and Nano are the popular text editors from where you can view, modify your files. You can simply fire the below type of command if you wish to modify any file:

vi [yourfilename]

nano [yourfilename]

chmod command

This command type is use to change the permission of file or folder. Generally its not useful for shared hosting but useful in case you have vps or dedicated server. Eg :

chmod 644 filename ; chmod 755 filename

here 644 mean read and write access
and 755 read, write and executable access

chown command

This command is use to change ownership of file or directory. This also mostly used on vps or dedicated server only

zip command

This command is used to make zip file of the contents or directories. eg :

zip -r directoryname.zip directoryname

unzip command

This command is used to unzip any zip file and syntax should be as below :

unzip directoryname.zip

mysqldump command

This command is useful to generate backup of your database

mysqldump -h [SERVER] -u [USER NAME] -p [DATABAS]> dumpfil.sql

This result into exports of your database and saves it as “dumpfil.sql”. The brief of arguments used in above command are as below :

-h : hostname of database server
-u : username of database user
-p : password of database

history Command

This command is useful to display the last used commands. You can enter a number to limit the displayed results. eg:

history 10
This will show you the last 10 used commands

clear command

This command helps to clears all text from the terminal screen

tar Command

tar is a famous SSH command that creates or extracts .tar.gz files. It is very popular because most third-party software binaries are in the .tar.gz format also best options for backup creation and extraction

To compress a folder in .tar.gz format, use the below command:

tar cvzf archivedfile.tar.gz /path/to/directory
To uncompress a .tar.gz file, enter this command:

tar xvzf archivedfile.tar.gz
The both above commands use different four-character options — cvzf and xvzf. Each letter represents a specific instruction as below:

x used to extract files
c used to create an archive
v stands for verbose.. use to display all file names that are processed by the command.
z used to uncompress the archive file
f use to define name of the archive

wget command

This is the command used to download files from the internet. For example, you wish to fetch downloadable backup from the website then you can use below syntax

wget http://yourfileurl/sitebackup.tar

If you want to download multiple files then you need to put URLs into a file and use the -i option.

du command

You can use du ie disk usage command to view exact size of files, directories and more info

du [folder path]

In most of the cases vps and dedicated server always have shell access but not for shared hosting. Limited hosting providers are offering shell or terminal access, you can try Hostpoco hosting services if you wish to get shell access.


Getting familiar with ssh commands is a crucial task but essential for managing Linux server, vps or hosting. It is the most effective way to navigate through your system and modify files or directories.

Glad to see, that you have learned about basic ssh commands. Its useful for handling your server related tasks. Please contact us for more queries.