When I was new to Linux, basic Linux commands looked very scary and the list of them looked endless as well… 😉 I started learning them bit by bit until I realize one day, that I do not use many of them so often. That was a practical example of Pareto principle, which is also known as the 80/20 rule.
So I decided to write a post about my 20 basic Linux commands for doing some useful stuff on Linux system. The list is not exhaustive, however it might be useful for someone just beginning learn Linux.
1st command: ls
Command ls stands for list files & folders. I prefer to use it as:
because it returns more comprehensive information about your files and directories compared just to ‘plain’ command ls. The output of ls -lah will look like:
The 1st column from the left shows the type (file or directory) as ‘–‘ or ‘d‘ marked in red. Next follows the steps of read, write and execute permissions (wrx) for the owner, the group and others, which are marked in blue.
All files and directories on Linux OS have (at least) their owners and may have assigned groups. Assigned owners and the groups are shown in 2nd column. They are marked in green.
The 3rd column shows the file or directory size in “human” format: KB, MB or GB but not pure bytes 😉
The 4th column displays file (directory) creation date. The last column is file or directory name itself.
If you enter the command ls, the result will be for the current directory. Adding the path to the command ls:
ls -lah /home/
will show the contents of your specified dir ‘/home/’ independently of your position in Linux file system:
2nd command: cd
Command cd stands for change directory. Basically it allows you to move within Linux file system one directory down or up:
$ cd /game
or one up by issuing ‘
If you want to go up few directories, you need to issue to issue the command ‘
And the last cd command trick is ‘cd ~‘ will bring back to your Linux user home directory:
$ cd ~
3rd command: mkdir
Command mkdir stands for making directory. If you will add directory name after mkdir command:
$ mkdir DIR_NAME
It will create a directory in current directory. The command mkdir can be used with ~, in that case new directory will be created under your user’s home directory:
$ mkdir ~/DIR
4th command pwd
The command pwd returns present working directory.
and you will where you are 😉
5th command rm
The command can remove either a file or a directory:
This command will delete a file:
$ rm file.txt
or some files with the extension *.txt
$ rm *.txt
and this one will delete a directory
$ rm -r dir_name
6h command cp
This command allows you to copy file1 to file2
cp file1 file2
or copy some type files to a new location
cp *.txt /new_path/new_path2
or copy recursively the directory and its contents:
cp -r dir1 dir2
7th command mv
Rename or move the files
It will rename the file:
$mv file1 file2
or it will move
$mv file1 /new_path/
8th command cat
It allows to view the file contents in the terminal:
cat > file – places standard input into file
9th command tail
The command output the last 10 lines of file:
or it can output the contents of file as it grows.
tail -f file.txt
10th command chmod
The command chmod is used to change the permissions on the file(s) or the directory(s).
One of the ways to assign the permissions mask is to use three numbers set. The permissions can be write, read and execute (as it was shown in command ls case at the beginning of this post).
Here is an example of how to assign read, write and execute permissions to the owner, the group and other:
chmod 777 filename
Hmm, yes, it looked somewhat weird, that in order to assign the permissions on the files, you have to assign the number 😉
Here is a nice visualization for better memorizing the number mask for Linux file permissions, which I hope will help you better understand how that works 😉
If you want to assign separately:
- no permissions you should use 0 (e.g. theoretical mask 000);
- for execute you should use 1 (e.g. mask 111);
- for write you should use 2 (e.g. mask 222);
- for read you should use 4 (e.g. mask 444).
In the real life, you will use some combination of the permissions:
read(4)+execute(1) permissions => 555;
read(4) +write(2)+execute(1) permissions =>777;
As you could see, you just add together the masks associated with different permissions.
In order to recursively apply the permissions, you have to use argument -R:
chmod -R 777 DIR_NAME
11th command top
This command displays your currently active processes, like:
Mem: 499888K used, 2864188K free, 0K shrd, 166197704K buff, 166197752K cached CPU: 0.0% usr 2.3% sys 0.0% nic 97.6% idle 0.0% io 0.0% irq 0.0% sirq Load average: 0.02 0.05 0.05 2/138 884 PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND 744 1 root S 282m 8.5 3 0.0 /usr/lib/kodi/kodi.bin 364 342 root S 47984 1.4 2 0.0 /usr/bin/Xorg vt01 -s 0 218 1 root S 7872 0.2 1 0.0 /usr/lib/systemd/systemd-udevd 879 338 root S 7368 0.2 0 0.0 sshd: root@pts/0 .....................................................................
As you might, there is plenty of useful information including the process id (pid)!
12th command is kill
The processes occasionally hang even on Linux. This command is used kill command to terminate a process:
where pid is from the command top output.
Typically, you have sudo command in front of kill in order to kill the process.
13th command: sudo
Certain commands are permitted to run only for root. Command sudo is used to execute a command as the superuser instead of using root account. The current user needs to belong to the sudoers group in order to be able use the command sudo. Here is an example of non-successful execution of the command apt-get without sudo: and here is an example of the command ‘sudo apt-get update‘:
14th command: apt-get
The command apt-get is great for handling (adding, removing, updating etc.) Debian/Ubuntu Linux packages. Here is a list of the main options: install
apt-get install package_1 package_2 ... package_n
This will install additional packages onto your Linux system.
apt-get install -f
The command will install missing packages e.g. which were required during the installation of other packages.
apt-get remove package_1 package_2 ... package_n
This will remove selected packages from your system.
This command will update/resynchronize the package index files from their sources dependent on your location specified in the file /etc/apt/sources.list.
This command will install the newest versions of the packages on your system.
It will upgrade your Linux into the newest one.
This command will remove all not required packages, which were installed only as a requirement for (an)other package(s).
15th command whoami
This command displays the current logged in user at your console:
It might sound a bit weird, but it might be also useful if you are logged as root user.
16th command man
Displays the manual page (instead of googling) of a specific command.
17th command du
The command is used to show directory space usage or to check disk space usage.
To show check disk space usage:
$ du -h
or to show directory space usage:
$ du -h /path/
18th command date
As the name implies itself, the command shows the current date and time.
or it used to set the date:
date -s "01/31/2020 23:59:59"
19th command uptime
This command is used show current uptime, which can be important to know.
21:06:13 up 1:48, load average: 0.31, 0.21, 0.12
20th HW information
Well, you can see already mentioned command cat earlier.
It can show cpu information:
and the memory information:
Hope you will be better with using basic Linux commands.