
System administrators commonly use commands to manage Linux servers. Commands are more efficient and allow users to automate various tasks more quickly.
In this tutorial, we will explain 60 essential Linux commands for various purposes, from navigation to software management. Download our Linux command cheat sheet from the link below to access the information offline.
PrerequisitesBefore proceeding, access the command-line interface of your Linux desktop or virtual private server (VPS). If you use a remote system, connect to it
using an SSH client like PuTTY or Terminal.
If you don’t have a Linux machine, we recommend purchasing
Hostinger’s VPS hosting plan. Our Browser terminal feature lets you connect to your server directly from the web browser to simplify the process.
Moreover, Hostinger’s
Kodee AI assistant can write commands based on your needs. It helps beginners learn Linux utilities more efficiently, as they don’t need to open documentation for references.
To 60 essential Linux commandsLet’s look at the 60 most commonly used Linux commands and their examples for system administration.
1. ls commandThe
ls command lists the content of a folder, including files and directories. Here’s the syntax:
ls [options] [directory_or_path]
If you omit the path, the
ls command will check the content of your current directory. To list items inside subfolders, add the
-R option. Meanwhile, use
-a to show hidden
content.
2. pwd commandTo check the full path of your current working directory, use the
pwd command. Its syntax is as follows:
pwd [options]
The
pwd command has only two options. The
-L option prints
environment variable content, like shortcuts, instead of the actual path of your current location. Meanwhile,
-P outputs the exact location.
For example,
/shortcut/folder is a shortcut for
/actual/path, and you are currently in
/actual/path/dir. If you use the
-L option, the output will be:
/shortcut/folder/dir
Meanwhile, the
-P option will print the exact canonical path:
/actual/path/dir
3. cd commandUse
cd to navigate between directories in your Linux VPS. It doesn’t have any option, and the syntax is simple:
cd [path_or_directory]
Depending on your location, you might only need to specify the parent directory. For example, omit
path from
path/to/directory if you are already inside one. The
cd command has several shortcuts:
•
cd – returns to the current user’s home directory.
•
cd .. – moves a directory up.
•
cd – – goes back to the previous directory.
4. mkdir commandThe
mkdir command lets you create one or multiple directories. The syntax looks like this:
mkdir [options] directory_name1 directory_name2
To create a folder in another location, specify the full path. Otherwise, this command will make the new item in your current working directory.
For example, enter the following to create
new_folder in
/path/to/target_folder:mkdir path/to/target_folder/new_folder
By default,
mkdir allows the current user to read, write, and execute files in the new folder. You can set custom privileges during the creation by adding the
-m option. To learn more about permission management, read the
chmod section below.
5. rmdir commandRun
rmdir to
delete empty directories in your Linux system. The command syntax looks like this:
rmdir [options] directory_name
The
rmdir command won’t work if the directory contains subfolders. To force the deletion, add the
–p option. Note that you must own the item you want to remove or use
sudo instead.
6. rm commandThe
rm command deletes files from a directory. You must have the write permission for the folder or use
sudo. Here’s the syntax:
rm [options] file1 file2
You can add the
-r option to remove a folder and its contents, including subdirectories. Use the
-i flag to display a confirmation message before the removal or
-f to deactivate it completely.
7. cp commandUse the
cp command to copy files from your current directory to another folder. The syntax looks like this:
cp file1 file2 [target_path]
You can also use
cp to duplicate the content of one file to another using this syntax. If the target is in another location, specify the full path like so:
cp source_file /path/to/target_file
Additionally,
cp lets you duplicate a directory and its content to another folder using the
-R option:
cp -R /path/to/folder /target/path/to/folder_copy
8. mv commandThe main usage of the
mv command is to move a file or folder to another location. Here’s the syntax:
mv file_or_directory [target_directory]
For example, we will move
file1.txt from another location to the
/new/file/directory path using this command:
mv /original/path/file1.txt the/target/path
You can also use the
mv command to
rename files in your Linux system. Here’s an example:
mv old_name.txt new_name.txt
If you specify the full path, you can simultaneously rename files and move them to a new location like this example:
mv old/location/of/old_name.txt new/path/for/new_name.txt
9. touch commandRun the
touch command to create a new empty file in a specific directory. The syntax is as follows:
touch [options] [path_and_file_name]
If you omit the path, the
touch command will create a new file in your current working directory. Here’s an example:
touch file.txt
10. file commandThe
file command checks a file type, such as TXT, PDF, or other. The syntax is as follows:
file [file_name]
If you use this command on a
symbolic link, it will output the actual file connected to the shortcut. You can add the
-k option to print more detailed information about the item.
■11. zip and unzip commandsThe
zip command compresses one or multiple files into a
ZIP archive, reducing their size. Here’s the syntax:
zip [options] zip_file_name file1 file2
To
extract a compressed file into your current working directory, use the
unzip command like so:
unzip [options] zip_file_name
12. tar commandThe
tar command bundles multiple files or directories into an archive without compression. The syntax looks as follows:
tar [options] tar_file_name file1 file2
To create a new
TAR file, you must add the
-c option. Then, use the
-f flag to specify the archive’s name.
If you want to enable compression, add a specific option based on your preferred method. For example, the following will bundle
file1.txt and
file2.txt with the
gzip compression:
tar -cfz archive.tar.gz fle1.txt file2.txt
Remember that the archive’s file format will differ depending on the compression method. Regardless of the extension, you can unpack a
TAR file using this syntax:
tar [options] tar_file_name
13. nano, vi, and jed commandnano,
vi, and
jed commands let you edit files. They have the same syntax, except at the beginning, where you specify the name of the tool:
nano/vi/jed file_name
If the target file doesn’t exist, these commands will create a new one. Since your system might not have these text processing utilities pre-installed, configure them using your package manager.
We will explain the command in the
apt and dnf command section.
14. cat commandThe
concatenate or
cat command has various usages. The most basic one is printing the content of a file. Here’s the syntax:
cat file_name
To print the content in reverse order, use
tac instead. If you add the standard output operator symbol (
>), the
cat command will create a new file. For example, the following will make
file.txt:cat > file.txt
You can also use cat with the operator to combine the content of multiple files into a new item. In this command,
file1.txt and
file2.txt will merge into
target.txt:cat file1.txt file2.txt > target.txt
15. grep commandGlobal regular expression print or
grep lets you search specific lines from a file using keywords. It is useful for filtering large data like logs. The syntax looks as follows:
grep [options] keyword [file]
You can also filter data from another utility by piping it to the
grep command. For example, the following searches
file.txt from the
ls command’s output:
ls | grep "file.txt"
16. sed commandUse the
sed command to search and replace patterns in files quickly. The basic syntax looks like this:
sed [options] 'subcommand/new_pattern/target_pattern' input_file
You can replace a string in multiple files simultaneously by listing them. Here’s an example of a sed command that changes
red in
colors.txt and
hue.txt with
blue:
sed 's/red/blue' colors.txt hue.txt
17. head commandUse the
head command to print the first few entries of a file. The basic syntax is as follows:
head [options] file_name
You can also print the first few lines of another command’s output by piping it like so:
command | head [options]
By default,
head will show the
first ten lines. However, you can change this setting using the
-n option followed by your desired number.
Meanwhile, use
-c to print the first few entries based on the byte size instead of the line.
18. tail commandThe
tail command is the opposite of
head, allowing you to print the last few lines from files or another utility’s output. Here are the syntaxes:
tail [options] file_name
command | tail [options]
The
tail utility also has the same option as
head. For example, we will extract the
last five lines from the
ping command’s output:
ping -c 10 8.8.8.8 | tail -n 5
19. awk commandThe
awk command searches and manipulates regular expression patterns in a file. Here’s the basic syntax:
awk '/regex pattern/{action}' input_file.txt
Although similar to
sed,
awk offers more operations beyond substitution, including printing, mathematical calculation, and deletion. It also lets you run a complex task with an
if statement.
You can run multiple actions by listing them according to their execution order, separated by a semicolon (

. For example, this
awk command calculates the average student score and print names that are above that threshold:
awk -F':' '{ total += $2; students[$1] = $2 } END { average = total / length(students); print "Average:", average; print "Above average:"; for (student in students) if (students[student] > average) print student }' score.txt

20. sort commandUse the
sort command to rearrange a file’s content in a specific order. Its syntax looks as follows:
sort [options] [file_name]
Note that this utility doesn’t modify the actual file and only prints the rearranged content as an output.
By default, the
sort command uses the alphabetical order from
A to
Z, but you can add the
-r option to reverse the order. You can also sort files numerically using the
-n flag.
source