What you’ll need

Before you begin this guide you’ll need the following:

Access to the Terminal.

Step 1 — Accessing remote server

It’s recommended to have a virtual server with a newly built template so that if you accidentally delete something not meant to be deleted, you could rebuild the server and start everything from scratch.

This command connects you to a server which has an IP address serverip and username user. Another, even simplier way to connect would be to use ssh serverip, that way shell will think that you are connecting with the same user you are logged in with right now.

Once you enter this command, you will be prompted for a password (if you are connecting for the first time, you will also be prompted with a warning message that the server you are connecting to is not recognized, simply type in yes on the command line).

That’s it, you are connected and can continue reading this guide on how to manage your files via Terminal! If you want to exit the remote server and get back to your local machine, simply type in exit in the command line.

Step 2 — Learning the commands

In this step, we will go through the main/most commonly used shell commands that you should learn about!

IMPORTANT: This applies for all commands in the shell. When writing an argument next to the command, for example, cd 'Folder One' (where the folder name consists of two separate words), you must enter the folder name between quotes. Command cd Folder One (without quotes) won’t work since shell will interpret it with two arguments (“Folder” and “One”).

ls – This command is used to list all files and directories. We recommend using this command with an option -l, that would be ls -l, in such way, all files will be listed in a more convenient manner and with more details/information about them. Another useful option is -a, this will also show all the other files as well, which includes hidden files/directories (dot files with a . in front of them, for example: .ssh directory).

cd – This command is used to “walk” between directories (cd stands for “change directory”). After listing all the files and directories with ls, you can pick a directory to “walk” to. For example, let’s say there is a directory home which you want to enter. Enter the command cd home and you will instantly change your current location to “home”. You can try using ls again to see that the information which was outputted to the screen has changed. You can also type in a full path to a certain directory if, for example, your want to enter a directory which is few levels deep. You can use for example: cd home/TestDirectory/AnotherDirectory. This way you will be immediately taken to the directory named “AnotherDirectory“. Use command cd .. (space and two dots after cd) to move up one level (in our example, we would be moved back to “TestDirectory” from “AnotherDirectory“).

mkdir – This command is used to create a new directory (stands for “make directory”). It simply creates a new directory with your chosen name, for example mkdir NewFolder will create a new directory with a name “NewFolder” in your currently active directory (where you are right now).

touch – This command is used to create a new file with a chosen extension. For example, touch NewFile.txt will create a new txt file named “NewFile” in your current directory (the extension could actually be anything you want, you can even create a new file without extension at all, for example touch NewFile.

rm – This command is used to remove a chosen file/directory. For example, rm NewFile will remove the previously created file named “NewFile”. If you wish to remove a directory and all the directories inside of it, use rm -r NewFolder, this will delete the folder “NewFolder” and all the other folders inside of it.

cat – This command is used to display the contents of the file. For example, cat info.txt will bring the contents of the file to the screen. Other example: cat info.txt info2.txt > mergedinfo.txt will merge two files together (“info.txt” and “info2.txt“) and write the merged content to a file “mergedinfo.txt“.

pwd – This command shows your current location in the file system. For example, type in pwd, the output could be something like this: “home/user/public_html“.

cp – This command is used to copy files and folders. The syntax is:cp [options] source destBasically, instead of source, you write the file which you want to copy. Instead of dest, write the destination path/folder/file. Now, if you wrote a destination name which does not exist, for example, you have a source file oldfile.txt and write a destination file newfile.txt, bash will simply copy the file and paste it with a new name. Additionally, here are a few options you can use with a command cp:

mv – This command works the same way as cp, but instead, it moves the file instead of copying it. This command can also be used to rename the file. If we took the same example from the cp command, (in our current directory, we have one file oldfile.txt) and we write this command: mv oldfile.txt newfile.txt bash will simply rename the file oldfile.txt to newfile.txt.

grep – This command looks for given string in files/folders. For example: grep 'word' file would search for a phrase ‘word’ in a file named “file”. grep will return the whole line from the file if the phrase is found. For example, there is a line ‘All in all it’s just another word in a sentence’ in the file named “file”, using command grep 'word' file, this line will be outputted to the screen since word is found.

find – Now this command is used to search folders for a file or files that meet given criteria (name, size, file type). For example: find . -name "*.html" This command will output all files in the current directory which have an ending/extension of “.html” (notice how we used “*” symbol in our command, that is a wildcard which basically tells bash that it does not matter how the file is named before the “.html” extension, it’s only important that the file ends with “.html“.

vi/nano – This command is used to enter a text editor. For example nano newfile will either create a new file called “newfile” and start the nano editor or edit an existing file “newfile” (if it exists) with the nano editor. Same thing applies for command vi, which starts another editor called “vi”.

IMPORTANT: nano, unlike vi is not a default editor, you will most likely have to install it first if you wish to use it. You can find a guide on how to install nano editor here.

history – This command is used to display the last used commands. For example: history 20 will show the last 20 entered commands in the Terminal.

clear – This command clears all the text from the Terminal screen.

tar – This command is used to create or extract tar.gz archives. Most third party software binaries are in the form of tar.gz archives.

To create a tar.gz archive of a folder, use the command:tar cvzf ArchiveName.tar.gz /path/to/directory

To unpack these files, use the command:tar xvzf FileName.tar.gz Here are what the options for the two commands represent:

x tells tar to extract files

c tells tar to create an archive

v stands for ‘verbose’ i.e. tar will print out all the file names in the console

z instructs tar to uncompress the archive

f tells tar that you are supplying the file name of the archive

wgetis used to download files from the internet. For example, to fetch a file from the internet and store it in your current directory. use command:wget http://fileurl/filename.ext

du is used to find the size of a file. Use du -h /filepath to find the space occupied by a file. If you wish to know more about the du command, you can check our dedicated tutorial on how to manage disk space in Linux here.

Conclusion

We hope this tutorial was clear enough to make you understand the basic SSH commands and how to use them. We recommend checking out this page for more details regarding the commands explained in this tutorial and many others!