Essential Linux/Unix Commands


Unix is the now one of the most commonly used Operating System used for various purposes such as Personal use, Servers, Smartphones and many more.It was developed in 1970’s at AT&T Labs by two famous personalities Dennis M. Ritchie and Ken Thompson.

  • You’ll be surprised to know that the most popular programming language C came into existence to write the Unix Operating System.
  • Linux is Unix-Like operating system.
  • The most important part of the Linux is Linux Kernel which was first released in early 90’s by Linus Torvalds.There are several Linux distros available (most are open-source and free to download and use) such as Ubuntu, Debian, Fedora, Kali, Mint, Gentoo, Arch and much more.
  • Now coming to the Basic and most usable commands of Linux/Unix part. (Please note that all the linux/unix commands are run in the terminal of a linux system.Terminal is like command prompt as that of in Windows OS)
  • Linux/Unix commands are case-sensitive i.e Hello is different from hello.

Basic unix commands:

1. who : The ‘$ who’ command displays all the users who have logged into the system currently.As shown above on my system i am the only user currently logged in.The thing tty2 is terminal line the user is using and the next line gives the current date and time

$ who
Output: harssh tty2 2017-07-18 09:32 (:0)

2. pwd : The ‘$pwd’ command stands for ‘print working directory’ and as the name says,it displays the directory in which we are currently (directory is same as folder for Windows OS users).
In the output we are harssh directory(folder for Windows OS that are moving to Linux),which is present inside the home directory

 $ pwd
Output: /home/harssh

3. mkdir : The ‘$ mkdir’ stands for ‘make directory’ and it creates a new directory.We have used ‘$ cd’ (which is discussed below) to get into the newly created directory and again on giving ‘$ pwd’ command,we are displayed with the new ‘newfolder’ directory.

$ mkdir newfolder
$ cd newfolder
$ pwd
Output: /home/harssh/newfolder

4. rmdir : The ‘$ rmdir’ command deletes any directory we want to delete and you can remember it by its names ‘rmdir’ which stands for ‘remove directory’.

$ rm dir newfolder

5. cd : The ‘$ cd’ command stands for ‘change directory’ and it changes your current directory to the ‘newfolder’ directory.You can understand this a double clicking a folder and then you do some stuff in that folder.

$ cd newfolder (assuming that there is a directory named 'newfolder' on your system)

6. ls : The ‘ls’ command simply displays the contents of a directory.

$ ls
Output: Desktop Documents Downloads Music Pictures Public Scratch Templates Videos

7. touch : The ‘$ touch’ command creates a file(not directory) and you can simple add an extension such as .txt after it to make it a Text File.

$ touch example
$ ls
Output: Desktop Documents Downloads Music Pictures Public Scratch Templates Videos example

Note: It is important to note that according to the Unix File structure,Unix treats all the stuff it has as a ‘file’, even the directories(folders) are also treated as a file.You will get to know more about this as you will further use Linux/Unix based OS 🙂
8. cp : This ‘$ cp ‘ command stands for ‘copy’ and it simply copy/paste the file wherever you want to.In the above example we are copying a file ‘file.txt’ from the directory harssh to a new directory new.

$ cp /home/harssh/file.txt /home/harssh/new/

9. mv : The ‘$ mv’ command stands for ‘move’ and it simply move a file from a directory to anothe directory.In the above example a file named ‘file.txt’ is being moved into a new directory ‘new’

$ mv /home/harssh/file.txt /home/harssh/new

10. rm : The ‘$ rm ‘ command for remove and the ‘-r’ simply recursively deletes file. Try ‘$ rm filename.txt’ at your terminal 🙂

$ rm file.txt

11. chmod : The ‘$ chmod’ command stands for change mode command.As there are many modes in Unix that can be used to manipulate files in the Unix environment.Basically there are 3 modes that we can use with the ‘chmod’ command
1. +w (stands for write and it changes file permissions to write)
2. +r (stands for read and it changes file permissions to read)
3. +x (generally it is used to make a file executable)

$ chmod +w file.txt
$ chmod +r file.txt
$ chmod +x file.txt

12. cal : The ‘$ cal’ means calendar and it simply display calendar on to your screen.

$ cal
Output : July 2017
Su Mo Tu We Th Fr Sa
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

13. file : The ‘$ file’ command displays the type of file.As i mentioned earlier linux treats everything as file so on executing the command file on a directory(Downloads) it displays directory as the output

$ ls
Output: Desktop Documents Downloads Music Pictures Public Scratch Templates Videos
$ file Downloads
Output: Downloads: directory

14. sort : As the name suggests the ‘$ sort’ sorts the contents of the file according to the ASCII rules.

$ sort file

15. grep : grep is an acronym for ‘globally search a regular expression and print it’.The ‘$ grep’ command searches the specified input fully(globally) for a match with the supplied pattern and displays it.
In the example, this would search for the word ‘picture’ in the file newsfile and if found,the lines containing it would be displayed on the screen.

$ grep picture newsfile

16. man : The ‘$ man’ command stands for ‘manual’ and it can display the in-built manual for most of the commands that we ever need.In the above example we can read about the ‘$ pwd’ command.

$ man pwd

17. lpr : The ‘$ lpr’ command send a file to the printer for printing.

$ lpr new.txt

18. passwd : The ‘$ passwd’ command simply changes the password of the user.In above case ‘harssh’ is the user.

$ passwd
Output: Changing password for harssh.
(current) UNIX password:

19. clear : The ‘$ clear’ command is used to clean up the terminal so that you can type with more accuracy 🙂

$ clear

At last, I want to say that these are most basic and most essential commands that are used the Linux operating system. You will need them even if you get advance the Unix.If you want to master them just keep on practicing them.

Also it is not possible to cover all the Unix commands because they are so much in number. You can find more, just google it and you will find most of them. Also if you want to master Unix operating system, Learn Unix Shell Scripting/Bash Scripting. Trust me there are many awesome tutorials on the internet for them.

Compile your C/C++ program in the Unix terminal

First reach the directory where your .c or .cpp file is present (assume its name is new.c or new.cpp). Please note that in order to compile C you will need gcc compiler and in order to compile C++ you will need g++ . I will tell you below how to install them.

For C:

$ gcc new.c -o new
$ ./new

For C++:

$ g++ new.cpp -o new
$ ./new

In this way you can compile you programs of C and C++. You can even compile many more that i will cover in my coming articles.

Getting gcc, g++

For deb based Linux such as Ubuntu,Debian,Kali etc:

$ sudo apt-get install gcc
$ sudo apt-get install g++

For rpm based Linux such as Fedora,Oracle Linux etc:

$ dnf install gcc
$ dnf install g++
$ yum install gcc
$ yum install g++

This article is contributed by Harsh Wardhan Chaudhary. If you like GeeksforGeeks and would like to contribute, you can also write an article using or mail your article to See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

My Personal Notes

Recommended Posts:

Article Tags :

Please write to us at to report any issue with the above content.

Let’s block ads! (Why?)

from My Reading List: Read and Unread


Please enter your comment!
Please enter your name here