Basic Linux Commands with Examples



n this article you will learn most frequently used Basic Linux Commands with examples. We tried to cover as many Linux Commands as we can.


“COPY” Commands in Linux

7. This command helps you copy one file to another

cp file1 file2

8. Copy all files of a directory within the current work directory

cp dir/* .

9. Copy a directory within the current work directory

cp -a /tmp/dir1 .

10. Copy a directory

cp -a dir1 dir2

11. Outputs the mime type of the file as text

cp file file1

File Commands

1. The following Linux Command take you to the ‘/ home’ directory

cd /home

2. This command go back one level

cd ..​

3.  This command takes you two folders back.

cd ../..

4. This command take you to home directory

cd ​

5. This command takes you to the user’s home directory

cd ~user

6. This command takes you to the previous directory

cd -​

Linux Commands about Symlink

12. Linux Command to create a symbolic link to file or directory

ln -s file1 lnk1

13. Create a physical link to file or directory

ln file1 lnk1

14. View files of directory


15. View files of directory

ls -F

16. Show details of files and directory

ls -l

17. Show hidden files

ls -a

18. Show files and directory containing numbers

ls *[0-9]*

19. Show files and directories in a tree starting from root


20. Create a directory called ‘dir1’

mkdir dir1

21. Create two directories simultaneously

mkdir dir1 dir2

22. Create a directory tree

mkdir -p /tmp/dir1/dir2

23. Move a file or directory

mv dir/file /new_path

24. Show the path of work directory


25. Delete file called ‘file1’

rm -f file1

26. Remove a directory called ‘dir1’ and contents recursively

rm -rf dir1

27. Remove two directories and their contents recursively

rm -rf dir1 dir2

28. Delete directory called ‘dir1’

rmdir dir1

30. Modify timestamp of a file or directory – (YYMMDDhhmm)

touch -t 0712250000 file1

31. Show files and directories in a tree starting from root(1)


Linux Commands for Process Management

32. The top command gives you information on the processes that currently exist.


33. The htop command is like top, but prettier and smarter.


34. Use the ps command to list running processes (top and htop list all processes whether active or inactive).


35. A step up from the simple ps command, pstree is used to display a tree diagram of processes      that also shows relationships that exist between them.


36. The who command will display a list of all the users currently logged into your Linux system.


37. As its name suggests, kill can be used to terminate a process with extreme prejudice.


38. The pkill and killall commands can kill a process, given its name.

pkill & killall

39. pgrep returns the process IDs that match it.


40. With the help of nice command, users can set or change the priorities of processes in Linux.


41. It is similar to nice command. Use this command to change the priority of an already running process.


42. Gives the Process ID (PID) of a process


43. Gives free hard disk space on your system


44. Gives free RAM on your system


File Permissions

45.  chmod the command for changing permissions

Syntax: chmod permission dir/file

chmod 755 Linux_Directory
chmod 644 Linux_File

Different File Permissions

rwx rwx rwx = 111 111 111
​rw- rw- rw- = 110 110 110
rwx --- --- = 111 000 000​
rwx = 111 in binary = 7
rw- = 110 in binary ​= 6
r-x = 101 in binary = 5
r-- = 100 in binary = 4​

7 = 4+2+1 (read/write/execute)

6 = 4+2 (read/write)

5 = 4+1 (read/execute)

4 = 4 (read)

3 = 2+1 (write/execute)

2 = 2 (write)

1 = 1 (execute)

Briefing about Permissions in Linux

There is a huge importance with Linux Commands when we discuss about  Permissions. No restrictions on permissions. Anybody may do anything. Generally not a desirable setting.

777 (rwxrwxrwx)

The file’s owner may read, write, and execute the file. All others may read and execute the file. This setting is common for programs that are used by all users.

755 (rwxr-xr-x)

The file’s owner may read, write, and execute the file. Nobody else has any rights. This setting is useful for programs that only the owner may use and must be kept private from others.

700 (rwx------)

All users may read and write the file.

666 (rw-rw-rw-)

The owner may read and write a file, while all others may only read the file. A common setting for data files that everybody may read, but only the owner may change.

644 (rw-r--r--)

The owner may read and write a file. All others have no rights. A common setting for data files that the owner wants to keep private.

600 (rw-------)

How to use “Find Command”

The below Linux Commands gives you better Idea on find commands. You can also check more Find Commands in our other article too.

46. To find a file by name

find -name "File1"

47. To find a file by name, but ignore the case of the “File1”

find -iname "File1"

48. To search all files that end in “.conf”

find /path -type f -name "*.conf"

49. To find all files that are exactly 50 bytes

find /path -size 50c

50. To find all files less than 50 bytes

find /path -size -50c

51. To Find all files more than 700 Megabytes

find / -size +700M

52. To find files that have a modification time of a day ago

find / -mtime 1

53. To find files that were accessed in less than a day ago

find / -atime -1

54. To find files that last had their meta information changed more than 3 days ago

find / -ctime +3

55. To find files that were accessed in less than a minute ago

find / -mmin -1

56. If we want to match an exact set of permissions

find / -perm 644

57. If we want to specify anything with at least those permissions

find / -perm -644

Linux Commands to check Word Count

58. Prints the number of lines in a file.

wc -l file_name OR cat file_name | wc -l

59. Prints the number of words in a file.

wc -w

60.  Displays the count of bytes in a file.

wc -c

61. Prints the count of characters from a file.

wc -m

62. Prints only the length of the longest line in a file.

wc -L

Compression Commands (tar, tar.gz, tar.bz2 and zip

Options to use the above Linux Commands

  • c – create a archive file.
  • x – extract a archive file.
  • v – show the progress of archive file.
  • f – filename of archive file.
  • t – viewing content of archive file.
  • j – filter archive through bzip2.
  • z – filter archive through gzip.
  • r – append or update files/directories to existing archive file.
  • w – verify a archive file.

About TAR Command

63. To Create tar Archive File

tar -cvf compress.tar /path/directory

64. To List Content of tar Archive File

tar -tvf compress.tar

65. To Untar tar Archive File

tar -xvf compress.tar

66. To Untar tar Archive File in a specific directory

tar -xvf compress.tar -C /path/to diretory

67. Untar Single file from tar File

tar -xvf compress.tar file1.txt

68. Untar Multiple files from tar

tar -xvf compress.tar "file 1" "file 2"

69. Extract Group of Files using Wildcard from tar Archive

tar -xvf compress.tar --wildcards '*.txt'

70. To Add Files or Directories to tar Archive File

tar -rvf compress.tar file/dir

About TAR.GZ

71. To Create tar.gz Archive File

tar -cvzf compresstar.gz /path/directory

72. To List Content tar.gz Archive File

tar -tvf compress.tar.gz

73. To Untar tar.gz Archive File

tar -zxvf compress.tar.gz

74. To Untar tar.gz Archive File in a specific directory

tar -zxvf compress.tar.gz -C /path/to diretory

75. Untar Single file from tar.gz File

tar -zxvf compress.tar.gz file1.txt

76. Untar Multiple files from tar.gz

tar -zxvf compress.tar.gz "file 1" "file 2"

77. Extract Group of Files using Wildcard from tar.gz Archive

tar -zxvf compress.tar.gz --wildcards '*.tzt'

78. To Add Files or Directories to tar.gz

tar -rvf compress.tar.gz file/dir

About TAR.BZ2

79. To Create tar.bz2 Archive File

tar -cvfj compress.tar.bz2 /path/directory

80. To List Content tar.bz2 Archive File

tar -tvf compress.tar.bz2

81. To Uncompress tar.bz2 Archive File

tar -xvf compress.tar.bz2

82. Untar Single file from tar.bz2 File

tar -jxvf compress.tar.bz2 file1.txt

83. Untar Multiple files from tar.bz2

tar -jxvf compress.tar.bz2 "file 1" "file 2"

84. Extract Group of Files using Wildcard from tar.bz2 Archive

tar -jxvf compress.tar.bz2 --wildcards '*.tzt'

85. To Add Files or Directories to tar.bz2

tar -rvf compress.tar.bz2 file/dir

86. To Verify tar, tar.gz and tar.bz2 Archive File

tar -tvfW cmpress.tar

Linux Commands for ZIP

ZIP (The extension .zip is not mandatory and this is useful only to identify the file zip file)

87. To zipping a file or folder.

zip file1 file2 folder1

88. To Zip individual files to a zip archive

zip file1 file2 file3

Zipping a folder is a tricky thing as by default zip will not zip entire folder content such as sub folders and files

89. To zip first level of folder content use * as shown below

zip Folder/*

90. If there are sub folders and files in 1 folder, in order to zip all content of a folder use -r option

zip -r Folder

91. To list all the files stored in a zip file. Any of the below commands can be used and they give the same results.

unzip -l
zipinfo -1

92. To delete a file in an archive without extracting entire zip file.

zip -d path/to/file

93. To extract your files from a zip folder.


94. To extract to a specific directory use -d option

unzip -d /destination

95. To extract specific file from an archive


Linux Commands for Special Attributes on Files

96. Allows write opening of a file only append mode

chattr +a file1

97. Allows that a file is compressed / decompressed automatically by the kernel

chattr +c file1

98. Makes sure that the program ignores Dump the files during backup

chattr +d file1

99. Makes it an immutable file, which can not be removed, altered, renamed or linked

chattr +i file1

100. Allows a file to be delete safely

chattr +s file1

101. Makes sure that if a file is modified changes are written in synchronous mode as with sync

chattr +S file1

102. Allows you to recover the contents of a file even if it is canceled

chattr +u file1

103. Show specials attributes on file/folder

lsattr file/folder

Linux Commands to know System Information

104. To know only system name, you can use uname command


105. To view your network hostname

uname -n

106. To get information about kernel-version

uname -v

107. To get the information about your kernel release

uname -r

108. To get the information about your kernel release

uname -r

109. To print your machine hardware name

uname -m

110. All this information can be printed at once. The below two commands gives same result.

uname -a
cat /proc/version

111. Find out information about the Linux distribution and version

cat /etc/*release*

112. To gather information about file system partitions

fdisk -l

113. To view mounted file systems.


114. To view information about your CPU architecture such as number of CPU’s, cores, CPU family model, CPU caches, threads, etc. Either of the two below commands gives same output.

cat /proc/cpuinfo

115. To view information about block devices


Extract Information about Hardware Components using “dmidecode

116. To print information about memory. You can get the similar output with all the below commands.

dmidecode -t memory
cat /proc/meminfo
free or free -mt or free -gt

117. To print information about system

dmidecode -t system

118. To print information about BIOS

dmidecode -t bios

119. To print information about processor

dmidecode -t processor

120. To dump all hardware information

dmidecode | less

Network Commands

121. PING (Packet Internet Groper) command sends packet requests to the address you specify to test the connectivity between 2 nodes.

ping IP/hostname

122. Ifconfig  utility is used to configure network interface parameters. Mostly we use this command to check the IP address assigned to the system.

ifconfig -a

123. traceroute print the route packets take to network host. Destination host or IP is mandatory parameter to use this utility

traceroute / IP

124. route command is the tool used to display or modify the routeing table.


125. dig (Domain Information Groper) is a flexible tool for interrogating DNS name servers. It performs DNS lookups and displays the answers that are returned from the name servers.


126.  Whois To know the information about domain like


127. Host Command to find name to IP or IP to name

host hostname

128. telnet connect destination host:port via a telnet protocol if connection establishes means connectivity between two hosts is working fine.

telnet 80

130. Tracepath traces the path of the network to the destination you have provided. It attempts to list the series of hosts through which your packets travel on their way to a given destination.


131. nslookup is a program to query Internet domain name servers.


132. netstat command allows you a simple way to review each of your network connections and open sockets. netstat with head output is very helpful while performing web server troubleshooting.


133. scp allows you to secure copy files to and from another host in the network.

scp -r -P 22 (ssh port) user@source_hostname:/path/to/dir /destination/path

134. nmap is a very powerful command, which checks the opened port on the server.

nmap hostname -p 80

SSH Commands

135. Connect to host as user

ssh user@host

136. connect to host on port

ssh -p port user@host

KeyBoard Shortcuts

137. Halts the current command


138. Stops the current command, resume with fg in the foreground or bg in the background


139. Log out of current session, similar to exit


140. Erases one word in the current line


141. Erases the whole line


142. Type to bring up a recent command. You need to type the first letter of the command you are searching for.


143. Log out of current session



Hope you will get better with the Linux Commands we covered in this article. Leave your comments in the below comment box.