A-Z All Linux Commands
A-Z All Linux Commands
A-Z All Linux Commands
On this page
1. adduser/addgroup
2. agetty
3. alias
4. anacron
5. apropos
6. apt
7. apt-get
8. aptitude
9. arch
10. arp
11. at
12. atq
13. atrm
14. awk
15. batch
16. basename
17. bc
18. bg
19. bzip
20. cal
21. cat
22. chgrp
23. chmod
24. chown
25. cksum
26. clear
27. cmp
28. comm
29. cp
30. date
31. dd
32. df
33. diff
34. dir
35. dmidecode
36. du
37. echo
38. eject
39. env
40. exit
41. expr
42. factor
43. find
44. free
45. grep
46. groups
47. gzip
48. gunzip
49. head
50. history
51. hostname
52. hostnamectl
53. hwclock
54. hwinfo
55. id
56. ifconfig
57. ionice
58. iostat
59. ip
60. iptables
61. iw
62. iwlist
63. kill
64. killall
65. kmod
66. last
67. ln
68. locate
69. login
70. ls
71. lshw
72. lscpu
73. lsof
74. lsusb
75. man
76. mdsum
77. mkdir
78. more
79. mv
80. nano
81. nc/netcat
82. netstat
83. nice
84. nmap
85. nproc
86. openssl
87. passwd
88. pidof
89. ping
90. ps
91. pstree
92. pwd
93. rdiff-backup
94. reboot
95. rename
96. rm
97. rmdir
98. scp
99. shutdown
100. sleep
101. sort
102. split
103. ssh
104. stat
105. su
106. sudo
107. sum
108. tac
109. tail
110. talk
111. tar
112. tee
113. tree
114. time
115. top
116. touch
117. tr
118. uname
119. uniq
120. uptime
121. users
122. vim/vi
123. w
124. wall
125. watch
126. wc
127. wget
128. whatis
129. which
130. who
131. whereis
132. xargs
133. yes
134. youtube-dl
135. zcmp/zdiff
136. zip
137. zz
There are a countless number of commands in Linux. We are bound to use a number
of them on a daily routine or numerous times to perform common tasks than others. It
is important to note that certain commands are “distro-based” – they can only be
found in specific distros. While others are generic Unix/Linux commands that you’ll
find in all if not most mainstream distros.
In this article, we will introduce you a list of most frequently used Linux commands
with their examples for easy learning. You can find the actual description of each
Linux command in their manual page which you can access like this:
$ man command-name
adduser/addgroup Command
The adduser and addgroup commands are used to add a user and group to the
system respectively according to the default configuration specified in
/etc/adduser.conf file.
agetty Command
alias Command
alias is a useful shell built-in command for creating aliases (shortcut) to a Linux
command on a system. It is helpful for creating new/custom commands from existing
Shell/Linux commands (including options):
The above command will create an alias called home for /home/tecmint/public_html
directory, so whenever you type home in the terminal prompt, it will put you in the
/home/tecmint/public_html directory.
anacron Command
Unlike its sister cron; it assumes that a system will not run continuously, therefore if a
scheduled job is due when the system is off, it’s run once the machine is powered on.
For more information about anacron and cron read: Cron Vs Anacron: How to
Schedule Jobs Using Anacron on Linux
apropos Command
apropos command is used to search and display a short man page description of a
command/program as follows.
$ apropos adduser
apt Command
apt tool is a relatively new higher-level package manager for Debian/Ubuntu systems:
apt-get Command
apt-get is a powerful and free front-end package manager for Debian/Ubuntu systems.
It is used to install new software packages, remove available software packages,
upgrade existing software packages as well as upgrade entire operating system.
For more apt-get usage, read: 25 Useful Commands of APT-GET for Package
Management
aptitude Command
For more usage on aptitude, read: Learn Debian Package Management with Aptitude
Command
arch Command
$ arch
arp Command
ARP (Address Resolution Protocol) is a protocol that maps IP network addresses of
a network neighbor with the hardware (MAC) addresses in an IPv4 network.
at Command
atq Command
$ atq
atrm Command
atrm command is used to remove/deletes jobs (identified by their job number) from
at command queue:
$ atrm 2
For more usage about at command, read: How to Use ‘at’ Command to Schedule a
Task in Linux
awk Command
Awk is a powerful programming language created for text processing and generally
used as a data extraction and reporting tool.
$ awk '//{print}'/etc/hosts
For more Awk concepts (basic and advance) with simple and easy-to-understand,
we’ve created a book that contains 13 chapters with a total of 41 pages, which covers
all Awk basic and advance usage with practical examples: Awk Getting Started Guide
for Beginners
batch Command
batch is also used to schedule tasks to run a future time, similar to the at command.
basename Command
basename command helps to print the name of a file stripping of directories in the
absolute path:
$ basename bin/findhosts.sh
bc Command
bc is a simple yet powerful and arbitrary precision CLI calculator language which can
be used like this:
bg Command
To learn more about bg command, read: Start Linux Command in Background and
Detach Process in Terminal
bzip2 Command
To learn more examples on bzip2, read: How to Compress and Decompress a .bz2
File in Linux
cal Command
$ cal
cat Command
cat command is used to view contents of a file or concatenate files, or data provided
on standard input, and display it on the standard output.
$ cat file.txt
To learn more about cat command, read: 13 Useful Cat Command Examples on Linux
chgrp Command
chgrp command is used to change the group ownership of a file. Provide the new
group name as its first argument and the name of file as the second argument like this:
chmod Command
$ chmod +x sysinfo.sh
chown Command
To learn more about chgrp, chmod and chwon commands, read: Managing Users &
Groups, File Permissions & Attributes in Linux
cksum Command
cksum command is used to display the CRC checksum and byte count of an input
file.
$ cksum README.txt
clear Command
clear command lets you clear the terminal screen, simply type.
$ clear
cmp Command
comm Command
comm command is used to compare two sorted files line-by-line as shown below.
cp Command
cp command is used for copying files and directories from one location to another.
$ cp /home/tecmint/file1 /home/tecmint/Personal/
date Command
date command displays/sets the system date and time like this.
$ date
$ date --set="8 JUN 2017 13:00:00"
To learn more about how to set date in Linux, read: How to Set System Date in Linux
dd Command
dd command is used for copying files, converting and formatting according to flags
provided on the command line. It can strip headers, extracting parts of binary files and
so on.
df Command
$ df -h
For more usage on df command, read: 12 Useful ‘df’ Command Examples to Check
Disk Space
diff Command
diff command is used to compare two files line by line. It can also be used to find the
difference between two directories in Linux like this:
Some useful diff tools for Linux: 8 Best File Comparison and Difference (Diff) Tools
for Linux
dir Command
dir command works like Linux ls command, it lists the contents of a directory.
$ dir
dmidecode Command
Some useful tools to find out Linux system hardware info: 10 Useful Commands to
Get Linux Hardware Information
du Command
du command is used to show disk space usage of files present in a directory as well as
its sub-directories as follows.
$ du /home/aaronkilik
echo Command
eject Command
eject command is used to eject removable media such as DVD/CD ROM or floppy
disk from the system.
$ eject /dev/cdrom
$ eject /mnt/cdrom/
$ eject /dev/sda
env Command
env command lists all the current environment variables and used to set them as well.
$ env
exit Command
expr Command
$ expr 20 + 30
factor Command
$ factor 10
find Command
find command lets you search for files in a directory as well as its sub-directories. It
searches for files by attributes such as permissions, users, groups, file type, date, size
and other possible criteria.
free Command
free command shows the system memory usage (free, used, swapped, cached, etc.) in
the system including swap space. Use the -h option to display output in human
friendly format.
$ free -h
1. Find Top Running Processes by Highest Memory and CPU Usage in Linux
2. Smem – Reports Memory Consumption Per-Process and Per-User Basis in
Linux
3. How to Clear RAM Memory Cache, Buffer and Swap Space on Linux
grep Command
grep command searches for a specified pattern in a file (or files) and displays in
output lines containing that pattern as follows.
groups Command
groups command displays all the names of groups a user is a part of like this.
$ groups
$ groups tecmint
gzip Command
Gzip helps to compress a file, replaces it with one having a .gz extension as shown
below:
$ gzip passwds.txt
$ cat file1 file2 | gzip > foo.gz
gunzip Command
gunzip expands or restores files compressed with gzip command like this.
$ gunzip foo.gz
head Command
head command is used to show first lines (10 lines by default) of the specified file or
stdin to the screen:
history Command
history command is used to show previously used commands or to get info about
command executed by a user.
$ history
hostname Command
$ hostname
$ hostname NEW_HOSTNAME
hostnamectl Command
hostnamectl command controls the system hostname under systemd. It is used to print
or modify the system hostname and any related settings:
$ hostnamectl
$ sudo hostnamectl set-hostname NEW_HOSTNAME
hwclock
hwclock is a tool for managing the system hardware clock; read or set the hardware
clock (RTC).
$ sudo hwclock
$ sudo hwclock --set --date 8/06/2017
hwinfo Command
hwinfo is used to probe for the hardware present in a Linux system like this.
$ hwinfo
id Command
id command shows user and group information for the current user or specified
username as shown below.
$ id tecmint
ifconfig Command
$ ifconfig
$ sudo ifconfig eth0 up
$ sudo ifconfig eth0 down
$ sudo ifconfig eth0 172.16.25.125
ionice Command
ionice command is used to set or view process I/O scheduling class and priority of the
specified process.
If invoked without any options, it will query the current I/O scheduling class and
priority for that process:
$ ionice -c 3 rm /var/logs/syslog
To understand how it works, read this article: How to Delete HUGE (100-200GB)
Files in Linux
iostat Command
iostat is used to show CPU and input/output statistics for devices and partitions. It
produces useful reports for updating system configurations to help balance the
input/output load between physical disks.
$ iostat
ip Command
ip command is used to display or manage routing, devices, policy routing and tunnels.
It also works as a replacement for well known ifconfig command.
This command will assign an IP address to a specific interface (eth1 in this case).
iptables Command
iptables is a terminal based firewall for managing incoming and outgoing traffic via a
set of configurable table rules.
The command below is used to check existing rules on a system (using it may require
root privileges).
$ sudo iptables -L -n -v
iw Command
iw command is used to manage wireless devices and their configuration.
$ iw list
iwlist Command
iwlist command displays detailed wireless information from a wireless interface. The
command below enables you to get detailed information about the wlp1s0 interface.
kill Command
kill command is used to kill a process using its PID by sending a signal to it (default
signal for kill is TERM).
$ kill -p 2300
$ kill -SIGTERM -p 2300
killall Command
$ killall firefox
kmod Command
kmod command is used to manage Linux kernel modules. To list all currently loaded
modules, type.
$ kmod list
last Command
$ last
ln Command
ln command is used to create a soft link between files using the -s flag like this.
$ ln -s /usr/bin/lscpu cpuinfo
locate Command
locate command is used to find a file by name. The locate utility works better and
faster than it’s find counterpart.
The command below will search for a file by its exact name (not *name*):
$ locate -b '\domain-list.txt'
login Command
login command is used to create a new session with the system. You’ll be asked to
provide a username and a password to login as below.
$ sudo login
ls Command
ls command is used to list contents of a directory. It works more or less like dir
command.
$ ls -l file1
lshw Command
$ sudo lshw
lscpu Command
$ lscpu
lsof Command
lsof command displays information related to files opened by processes. Files can be
of any type, including regular files, directories, block special files, character special
files, executing text reference, libraries, and stream/network files.
To view files opened by a specific user’s processes, type the command below.
$ lsof -u tecmint
lsusb Command
lsusb command shows information about USB buses in the system and the devices
connected to them like this.
$ lsusb
man Command
man command is used to view the on-line reference manual pages for
commands/programs like so.
$ man du
$ man df
md5sum Command
md5sum command is used to compute and print the MD5 message digest of a file. If
run without arguments, debsums checks every file on your system against the stock
md5sum files:
$ sudo debsums
mkdir Command
mkdir command is used to create single or more directories, if they do not already
exist (this can be overridden with the -p option).
$ mkdir tecmint-files
OR
$ mkdir -p tecmint-files
more Command
more command enables you to view through relatively lengthy text files one screenful
at a time.
$ more file.txt
Check difference between more and less command and Learn Why ‘less’ is Faster
Than ‘more’ Command
mv Command
$ mv test.sh sysinfo.sh
nano Command
nano is a popular small, free and friendly text editor for Linux; a clone of Pico, the
default editor included in the non-free Pine package.
$ nano file.txt
nc/netcat Command
nc (or netcat) is used for performing any operation relating to TCP, UDP, or UNIX-
domain sockets. It can handle both IPv4 and IPv6 for opening TCP connections,
sending UDP packets, listening on arbitrary TCP and UDP ports, performing port
scanning.
The command below will help us see if the port 22 is open on the host 192.168.56.5.
$ nc -zv 192.168.1.5 22
netstat Command
This command will display all open ports on the local system:
$ netstat -a | more
nice Command
nice command is used to show or change the nice value of a running program. It runs
specified command with an adjusted niceness. When run without any command
specified, it prints the current niceness.
The following command starts the process “tar command” setting the “nice” value to
12.
$ nice -12 tar -czf backup.tar.bz2 /home/*
nmap Command
nmap is a popular and powerful open source tool for network scanning and security
auditing. It was intended to quickly scan large networks, but it also works fine against
single hosts.
The command below will probe open ports on all live hosts on the specified network.
nproc Command
nproc command shows the number of processing units present to the current process.
It’s output may be less than the number of online processors on a system.
$ nproc
openssl Command
The openssl is a command line tool for using the different cryptography operations of
OpenSSL’s crypto library from the shell. The command below will create an archive
of all files in the current directory and encrypt the contents of the archive file:
passwd Command
passwd command is used to create/update passwords for user accounts, it can also
change the account or associated password validity period. Note that normal system
users may only change the password of their own account, while root may modify the
password for any account.
$ passwd tecmint
pidof Command
$ pidof init
$ pidof cinnamon
ping Command
ping command is used to determine connectivity between hosts on a network (or the
Internet):
$ ping google.com
ps Command
ps shows useful information about active processes running on a system. The example
below shows the top running processes by highest memory and CPU usage.
pstree Command
pstree displays running processes as a tree which is rooted at either PID or init if PID
is omitted.
$ pstree
pwd Command
$ pwd
rdiff-backup Command
Note that for remote backups, you must install the same version of rdiff-backup on
both the local and remote machines. Below is an example of a local backup
command:
reboot Command
$ reboot
rename Command
rename command is used to rename many files at once. If you’ve a collection of files
with “.html” extension and you want to rename all of them with “.php” extension,
you can type the command below.
rm command
$ rm file1
$ rm -rf my-files
rmdir Command
$ rmdir /backup/all
scp Command
scp command enables you to securely copy files between hosts on a network, for
example.
shutdown Command
shutdown command schedules a time for the system to be powered down. It may be
used to halt, power-off or reboot the machine like this.
$ shutdown --poweroff
Learn how to show a Custom Message to Users Before Linux Server Shutdown.
sleep Command
sort Command
sort command is used to sort lines of text in the specified file(s) or from stdin as
shown below
$ cat words.txt
split Command
split as the name suggests, is used to split a large file into small parts.
ssh (SSH client) is an application for remotely accessing and running commands on a
remote machine. It is designed to offer a secure encrypted communications between
two untrusted hosts over an insecure network such as the Internet.
$ ssh tecmint@192.168.56.10
stat Command
stat is used to show a file or file system status like this (-f is used to specify a
filesystem).
$ stat file1
su Command
$ su
$ su tecmint
sudo Command
sudo command allows a permitted system user to run a command as root or another
user, as defined by the security policy such as sudoers.
In this case, the real (not effective) user ID of the user running sudo is used to
determine the user name with which to query the security policy.
sum command is used to show the checksum and block counts for each each
specified file on the command line.
tac Command
tac command concatenates and displays files in reverse. It simply prints each file to
standard output, showing last line first.
$tac file.txt
tail Command
tail command is used to display the last lines (10 lines by default) of each file to
standard output.
If there more than one file, precede each with a header giving the file name. Use it as
follow (specify more lines to display using -n option).
$ tail long-file
OR
$ tail -n 15 long-file
talk Command
talk command is used to talk to another system/network user. To talk to a user on the
same machine, use their login name, however, to talk to a user on another machine
use ‘user@host’.
tar Command
tee Command
tee command is used to read from standard input and prints to standard output and
files as shown below.
tree Command
$ tree
time Command
$ time wc /etc/hosts
top Command
top program displays all processes on a Linux system in regards to memory and CPU
usage and provides a dynamic real-time view of a running system.
$ top
touch Command
touch command changes file timestamps, it can also be used to create a file as
follows.
$ touch file.txt
tr Command
uname Command
uname command displays system information such as operating system, network node
hostname kernel name, version and release etc.
$ uname
uniq Command
uniq command displays or omits repeated lines from input (or standard input). To
indicate the number of occurrences of a line, use the -c option.
$ cat domain-list.txt
uptime Command
uptime command shows how long the system has been running, number of logged on
users and the system load averages as follows.
$ uptime
users Command
users command shows the user names of users currently logged in to the current host
like this.
$ users
vim/vi Command
vim (Vi Improved) popular text editor on Unix-like operating systems. It can be used
to edit all kinds of plain text and program files.
$ vim file
Learn how to use vi/vim editor in Linux along with some tips and tricks.
w Command
w command displays system uptime, load averages and information about the users
currently on the machine, and what they are doing (their processes) like this.
$ w
wall Command
watch Command
watch command runs a program repeatedly while displaying its output on fullscreen.
It can also be used to watch changes to a file/directory. The example below shows
how to watch the contents of a directory change.
$ watch -d ls -l
wc Command
wc command is used to display newline, word, and byte counts for each file specified,
and a total for many files.
$ wc filename
wget Command
wget command is a simple utility used to download files from the Web in a non-
interactive (can work in the background) way.
$ wget -c http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
whatis Command
whatis command searches and shows a short or one-line manual page descriptions of
the provided command name(s) as follows.
$ whatis wget
which Command
which command displays the absolute path (pathnames) of the files (or possibly
links) which would be executed in the current environment.
$ which who
who Command
who command shows information about users who are currently logged in like this.
$ who
whereis Command
whereis command helps us locate the binary, source and manual files for commands.
$ whereis cat
xargs Command
xargs command is a useful utility for reading items from the standard input,
delimited by blanks (protected with double or single quotes or a backslash) or
newlines, and executes the entered command.
The example below show xargs being used to copy a file to multiple directories in
Linux.
yes Command
yes command is used to display a string repeatedly until when terminated or killed
using [Ctrl + C] as follows.
youtube-dl Command
The command below will list available formats for the video in the provided link.
zcmp/zdiff Command
zcmp and zdiff minimal utilities used to compare compressed files as shown in the
examples below.
zip Command
zip is a simple and easy-to-use utility used to package and compress (archive) files.
zz Command
zz command is an alias of the fasd commandline tool that offers quick access to files
and directories in Linux. It is used to quickly and interactively cd into a previously
accessed directory by selecting the directory number from the first field as follows.
$ zz
That’s it for now! As we mentioned before, there are a countless number of
commands in Linux. The list is possibly longer than we can offer. Use the feedback
form below to share any useful and frequently used commands missing in this list.