35 + Common Linux Commands

Whether you are a System Administrator or just a Linux enthusiast there are a few linux commmands that everyone should know. The Linux terminal is very powerful tool and should not be overlooked. Basic Linux commands help users execute tasks easily and effectively. If you practice a few of these commands each day you will see just how powerful the linux terminal or linux command line can be. These are a list of the most common and popular useful linux commands.

1. pwd command

The PWD Command (print working directory) is used to find out what your current working directory (folder) is. The command will return an absolute (full) path, which is basically a path of all the directories that starts with a forward slash (/). An example of an absolute path is /home/username.


2. cd command

Change Directory - To navigate through the Linux directories on your machine. e.g.

cd /home/ron

Let’s say you’re in /home/username/Documents and you want to go to Photos, a subdirectory of Documents. To do so, simply type the following command: cd Photos.

Another scenario is if you want to switch to a completely new directory, for example,/home/username/Movies. In this case, you have to type cd followed by the directory’s absolute path: cd /home/username/Movies.

There are some shortcuts to help you navigate quickly: javascript:; cd .. (with two dots) to move one directory up cd to go straight to the home folder cd- (with a hyphen) to move to your previous directory On a side note, Linux’s shell is case sensitive. So, you have to type the name’s directory exactly as it is.

3. ls command

The ls command is used to view or list the contents of a directory. By default, this command will display the contents of your current working directory.

If you want to see the content of other directories, type ls and then the directory’s path. For example, enter ls /home/Ron/Documents to view the content of Documents in my directory.

There are variations you can use with the ls command:

ls -R will list all the files in the sub-directories as well ls -a will show the hidden files ls -al will list the files and directories with detailed information like the permissions, size, owner, etc. ls -l - lists files in one column


4. cat command

cat (short for concatenate) is one of the most frequently used commands in Linux and UNIX. It is used to list the contents of a file on the standard output (sdout). To run this command, type cat followed by the file’s name and its extension. For instance: cat file.txt.

Here are other ways to use the cat command:

cat > filename creates a new file cat filename1 filename2>filename3 joins two files (1 and 2) and stores the output of them in a new file (3) to convert a file to upper or lower case use, cat filename | tr a-z A-Z >output.txt

cat > test.txt

5. cp command

Use the cp command to copy files from the current directory to a different directory. For instance, the command cp scenery.jpg /home/username/Pictures would create a copy of scenery.jpg (from your current directory) into the Pictures directory.

cp test.txt /home/user/Documents

6. mv command

The primary use of the mv command is to move files, although it can also be used to rename files.

The arguments in mv are similar to the cp command. You need to type mv, the file’s name, and the destination’s directory. For example: mv file.txt /home/username/Documents.

To rename files, the Linux command is

mv test.txt test-old.txt

7. mkdir command

Use mkdir command to make a new directory — if you type mkdir Music it will create a directory called Music.

There are extra mkdir commands as well:

To make a new directory inside another directory use the p (parents) option to create a directory in between two existing directories. For example, mkdir -p Music/2020/Newfile will create the new “2020” file.

mkdir test

8. rmdir command

If you need to delete (remove) a directory, use the rmdir command. However, rmdir only allows you to delete empty directories.

rmdir test

9. rm command

The rm command is used to delete directories and the contents within them. If you only want to delete the directory — as an alternative to rmdir — use rm -r.

Note: Be very careful with this command and double-check which directory you are in. This will delete everything and there is no undo.

rm -r test

10. touch command

The touch command allows you to create a blank new file through the Linux command line. As an example, to create an HTML file entitled web.html under the Documents directory.

touch /home/username/Documents/web.html

11. locate command

You can use this command to locate a file, just like the search command in Windows. What’s more, using the -i argument along with this command will make it case-insensitive, so you can search for a file even if you don’t remember its exact name.

To search for a file that contains two or more words, use an asterisk (*). For example, command will search for any file that contains the word “letter” and “accounts”, whether it is uppercase or lowercase.

locate -i letter*accounts

12. find command

Similar to the locate command, using find also searches for files and directories. The difference is, you use the find command to locate files within a given directory.

As an example, find /home/ -name notes.txt command will search for a file called notes.txt within the home directory and its subdirectories.

Other variations when using the find are:

To find files in the current directory use,

find . -name notes.txt

To look for directories use, / -type d -name notes. txt

13. grep command

Another basic Linux command that is undoubtedly helpful for everyday use is grep. It lets you search through all the text in a given file.

To illustrate, to search for the word "hi" in the test.txt file. Lines that contain the searched word will be displayed fully.

grep hi test.txt

You can also use grep in along with another command such as history by "piping" " | " . e.g.

history | grep ssh

14. sudo command

Short for “SuperUser Do”, this command enables you to perform tasks that require administrative or root permissions. However, it is not advisable to use this command for daily use because it might be easy for an error to occur if you did something wrong. e.g.

sudo -i

15. df command

Use df command to get a report on the system’s disk space usage, shown in percentage and KBs. If you want to see the report in megabytes, type df -m. or df -h (human readable). You can use df (display free disk space) to troubleshoot disk space issues.

df -h

16. du command

If you want to check how much space a file or a directory takes, the du (Disk Usage) command is the answer. However, the disk usage summary will show disk block numbers instead of the usual size format. If you want to see it in bytes, kilobytes, and megabytes, add the -h (human readable) argument to the command line. The -d option shows your the directory depth. d1 is one directory depth, d 2 would give you 2 directories depth etc...


  • -h (human readable)
  • du -d 1 -h - (depth 1 -h human readable)
  • du -sh - shows directory (-s summary -h human readable)
du -h
du -a /var/www | sort -n -r | head -n 10

17. head command

The head command is used to view the first lines of any text file. By default, it will show the first ten lines, but you can change this number to your liking. For example, if you only want to show the first five lines, type .

head -n 5 filename.ext

18. tail command

This one has a similar function to the head command, but instead of showing the first lines, the tail command will display the last ten lines of a text file. This is great, especially for looking at the last (tail end) of log files. For example

tail -n 5 /var/apache2/access.log

e.g. ufw logs [real-time, streaming 10 lines displayed]

tail -f -n 10 /var/log/ufw.log

19. diff command

Short for difference, the diff command compares the contents of two files line by line. After analyzing the files, it will output the lines that do not match. Programmers often use this command when they need to make program alterations instead of rewriting the entire source code.

The simplest form of this command is

diff file1.ext file2.ext

20. tar command

The tar command is the most used command to archive multiple files into a tarball — a common Linux file format that is similar to zip format, with compression being optional.

This command is quite complex with a long list of functions such as adding new files into an existing archive, listing the content of an archive, extracting the content from an archive, and many more. Check out some practical examples to know more about other functions.

tar -xf file_name.tar -C /target/directory

21. chmod command

chmod (change mode) is another Linux command, used to change the read, write, and execute permissions of files and directories. As this command is rather complicated, you can read the full tutorial in order to execute it properly.

chmod 755 -R /var/www/website

P.S. Be sure to check our our CHMOD Calculator at https://apps.clusterednetworks.com/chmod-calculator/

22. chown command

In Linux, all files are owned by a specific user. The chown (change owner) command enables you to change or transfer the ownership of a file to the specified username. For instance, this command will make linuxuser2 as the owner of the file.ext.

chown linuxuser2 file.ext

23. ps command

The ps command, short for Process Status, is a command line utility that is used to display or view information related to the processes running in a Linux system. Common usage is ps -a (all processes)

ps -a

For even more legibility, use ps and pipe it to grep. e.g to see your apache processes.

ps -ef | grep apache

To see every process on the system using standard syntax:

  • ps -e
  • ps -ef
  • ps -eF
  • ps -ely

To see every process on the system using BSD syntax:

  • ps ax
  • ps axu

24. kill command

After you find an unresponsive program or process using the ps command, you can terminate it manually by using the kill command. It will send a certain signal to the misbehaving app and instructs the app to terminate itself.

There is a total of sixty-four signals that you can use, but people usually only use two signals:

SIGTERM (15) — requests a program to stop running and gives it some time to save all of its progress. If you don’t specify the signal when entering the kill command, this signal will be used. SIGKILL (9) — forces programs to stop immediately. Unsaved progress will be lost. Besides knowing the signals, you also need to know the process identification number (PID) of the program you want to kill. If you don’t know the PID, simply run the command ps ux.

Signals can be specified in three different ways:

  • Using number (e.g., -1 or -s 1).
  • Using the “SIG” prefix (e.g., -SIGHUP or -s SIGHUP).
  • Without the “SIG” prefix (e.g., -HUP or -s HUP).

25. ping command

Use the ping command to check your connectivity status of a server. For example, by simply entering ping google.com, the command will check whether you’re able to connect to Google and also measure the response time. To Ping Google's DNS servers would be....



ping google.com

26. wget command

The Linux command line is super useful, especially if you use a service linke github — you can even download files from the internet with the help of the wget command. To do so, simply type wget followed by the download link. e.g To get a sitemap file from a website would be.....

wget website.com/sitemap.xml

27. uname command

The uname command, short for Unix Name, will print detailed information about your Linux system like the machine name, operating system, kernel, and so on. e.g uname -a (all)

uname -a

28. top and htop command

As a terminal equivalent to Task Manager in Windows, the top command will display a list of running processes and how much CPU each process uses. It’s very useful to monitor system resource usage, especially knowing which process needs to be terminated because it consumes too many resources.


29. history command

When you’ve been using Linux for a certain period of time, you’ll quickly notice that you can run hundreds of commands every day. As such, running history command is particularly useful if you want to review the commands you’ve entered before. You can even combine it with (!) bang.

The history command will give you the list and a number in front of it. Typing (!) plus the number will execute the command.

e.g !389 - will run the "389th line in your history" again.

You can also use the "up" arrow on your keyboard which will display the last command. "up" again displays the send last etc.... and so on....

history | grep dig

30. man command

Need to find the man (manual) pages for Linux commands? Don’t worry, you can easily learn how to use them right from Linux’s shell by using the man command (man page for the command). For instance, entering "man grep" will show the manual instruction of the grep command.

man grep

31. echo command

This command is used to move some data into a file. For example, if you want to add the text, “Hello, my name is John” into a file called name.txt, you would type....

echo Hello, my name is John >> name.txt

32. zip, unzip command

Use the zip command to compress your files into a zip archive, and use the unzip command to extract the zipped files from a zip archive. e.g.

zip archivename.zip filename1 filename2 filename3

33. hostname command

If you want to know the name of your host/network simply type hostname. Adding a -I to the end will display the IP address of your network.


34. useradd, userdel command

Since Linux is a multi-user system, this means more than one person can interact with the same system at the same time. useradd is used to create a new user, while passwd is adding a password to that user’s account. To add a new person named John type, useradd John and then to add his password type, passwd 123456789.

To remove a user is very similar to adding a new user. To delete the users account type, userdel UserName

useradd newuser

35. date time and cal command(s)

Date command will show your the current date and time. This is nice if you manage different servers in different time zones. Knowing the date and time of a server is important if you are checking log files and trying to troubleshoot problems on a server.


36. netstat

The netstat command will show you if a server is listening on a particular port. For example to see if apache is running and listening on port 80 and port 443 use.

netstat -tulpn | grep apache

37. who and last

The who command will show you who is logged into the server or machine. The last command will show you the the history of your logins. This is great to see if someone has compromised your system and is logging in as you.


Bonus Tips and Tricks

Use the clear command to clean out the terminal if it is getting cluttered with too many past commands.

  • To clear your screen simply type ...

Try the TAB button to autofill what you are typing. For example, if you need to type Documents, begin to type a command (let’s go with cd Docu, then hit the TAB key) and the terminal will fill in the rest, showing you cd Documents.

Ctrl+C and Ctrl+Z are used to stop any command that is currently working. Ctrl+C will stop and terminate the command, while Ctrl+Z will simply pause the command.

If you accidentally freeze your terminal by using Ctrl+S, simply undo this with the unfreeze Ctrl+Q.

Ctrl+A moves you to the beginning of the line while Ctrl+E moves you to the end.

You can run multiple commands in one single command by using the “;” to separate them. For example Command1; Command2; Command3. Or use && if you only want the next command to run when the first one is successful.

Clustered Networks

Located in Edmonton, AB Canada, Clustered Networks was Incorporated in 2001 and has offered Network / Internet and IT Consulting services for over 20 years. We offer personalized service! Call Us Today! - Click Here for our Contact Info

bash #terminal #linuxcommands

Posted in Linux Desktop Tips, Linux Network Admin Tips, Network Security Tips on May 20, 2021