100+ Linux Commands Cheat Sheet List With Examples

In this article, we have listed more than 100 Linux commands that you need to know and there are countless commands but we’re listing some of the important commands here.

We have explained in detail all of the above-listed commands below with examples. You can find the actual description of each Linux command on their manual page which you can access like this:

$ man command-name

adduser or useradd / addgroup Command

adduser/useradd and addgroup are the default command to add users and the group for the users to the system and generally located at /etc folder.

$ sudo adduser cbspost
$ sudo addgroup cbspost

agetty Command

agetty is a substitute for getty Linux command and it is used to manage the physical and virtual terminals by invoking init. It opens tty port and prompts for login name and invokes the /bin/login command.

$ agetty [options] port [baud_rate...] [term]
$ agetty -s 90 9600 vt112

alias Command

alias is a shell built-in command to create assumed-name/nickname to a Linux command. You can create a custom command if the original command is lengthy.

$ alias website='cd /home/cbspost/public_html'

The above command will create a shortcut for and next time you just need to type “website” to go “/home/cbspost/public_html” directory.

anacron Command

anacron is used to run commands periodically in the frequency in days, weeks, months. It runs once if the scheduled job is due when the machine is not running.

apt Command

apt (Advanced Package Tool) is a new high-level core package manager for Debian/Ubuntu system.

$ sudo apt update

apt-get Command

apt-get is a Linux command used to install, remove and perform various operations on the installed packages.

$ sudo apt-get update

aptitude Command

Linux command aptitude is a text-based front-end for the apt package management system like apt, apt-get to install, remove, update software packages on a system.

$ sudo aptitude update

arch Command

arch command is used to simply display the system architecture or hardware name.

$ 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.

$ arp [-v] [-i if] [-H type] -a [hostname]

at Command

The AT command schedules tasks and programs to run in the future at a specified time and date.

$ at [OPTION...] runtime

atq Command

atq displays the list of pending jobs that are scheduled by the user. A superuser can see the pending jobs of all users.

$ atq

atrm Command

atrm command is used to delete/remove particular jobs identified by their number. A user can only delete jobs that belong to him but a superuser can delete all user’s jobs.

$ atrm [job number]

awk Command

awk is a general-purpose programming language that is used for text processing. Mostly used for data extraction and reporting purposes.

$ awk '//{print}'/etc/hosts

batch Command

batch read commands from standard input or a specified file which are to be executed at a later time. it is more or less the same as at command.

$ batch

basename Commanad

basename strips directory information and suffixes from file names and only prints the file name.

$basename NAME [SUFFIX]
$basename OPTION NAME

bc Command

bc command is a command-line calculator same as the basic calculator that can do basic mathematics calculator as shown below.

$ echo 3+2 | bc

bg Command

bg is a job control command and it sends the jobs to the background.

$ bg [job]

bzip2 Command

bzip2 in Linux is used to compress and decompress the files.

$ bzip2 filename.txt


cal command is used to print the calendar of the current month in the standard output.

$ 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 filename.txt

chgrp Command

The chgrp command changes the ownership of a directory or file in Linux. Each file is associated with an owning user or a group and has rules defining which users or groups can read, write, or execute the file.

$ chgrp cbspost users.txt

chmod Command

The Linux chmod command is used to change or update the access permission type of a file/folder.

$ chmod 775 [filename]

chown Command

This command is used the change/update the ownership of a file or folder in Linux OS.

$ chown username [filename/foldername]

cksum Command

cksum command is used to display a CRC(Cyclic Redundancy Check) value, the byte size of the file, and the name of the file to standard output.

$ cksum [filename]

clear Command

clear command will simply clear the terminal. Just type “clear” in the terminal.

$ clear

cmp Command

cmp command is used to compare two files byte-by-byte in the Linux OS

$ cmp [filename1] [filename2]

comm Command

comm command performs the comparison between two sorted files line-by-line.

$ comm [filename1] [filename2]

cp Command

You can use the cp command to copy one or multiple files from one location to another location.

$ cp /etc/cbspost/filename1 /etc/cbspost/myfolder/

date Command

date command will display or used to set the date of a system.

$ date
$ date --set="23 DEC 2025 21:10:00"

dd Command

dd command is used to copy files, convert, and format according to flags provided on the command line.

$ dd [option]

df Command

Show information about the file system on which each FILE resides, or all file systems by default.

$ df -h

diff Command

diff command is used to compare two files/folders line by line in Linux OS.

$ diff [filename1] [filename2]

dir Command

dir command will display the files/folders of the current directory.

$ dir

dmidecode Command

dmidecode command is used to retrieve the system’s hardware-related information such as Processor, RAM(DIMMs), BIOS detail, Memory, Serial numbers, etc.

$ dmidecode [option]

du Command

this command is used to display the disk usage of a file as well as its sub-directory.

$ du /home/filename.txt

echo Command

echo command is used to print a string that is passed to its argument.

$ eacho "Hello World!"

eject Command

eject remove the removable media (typically a CD-ROM, floppy disk, tape, JAZ, ZIP, or USB disk).

$ eject /mnt/cdrom/

env Command

env command is used to print all lists of current environment variables.

$ env

exit Command

exit command is used to exit the current shell.

$ exit

expr Command

expr command is used to calculate an expression as shown below.

$ expr 5 + 7

factor Command

This command is used to print the prime factor of a number.

$ factor [number]

find Command

It searches for files and directories in a directory hierarchy based on a user given expression.

$ find ./ngt -name filename.txt

free Command

free command is used to display the system memory usage (free, used, swapped, cached, etc.). Use the -h option to display output in human friendly format.

$ free -h

grep Command

grep command searches for a specified pattern in a file (or files) and displays in output lines containing that pattern.

$ grep ‘cbspost’ country.txt


This command will display the list of all groups of the system.

$ groups

gzip Command

If you want to compress a file, you can use gzip. It will replace with .gz extension.

$ gzip hugefile.txt

gunzip Command

gunzip command expands or restores files that are compressed by gzip command.

$ gunzip filename.gz

head command is used to show first lines of the specified file or stdin to the screen. It will show 10 lines by default.

$ head [option]... [filename]...

history Command

This command will display previously performed task on Linux OS.

$ history

hostname Command

This command is used to print/set system hostname in Linux operating system.

$ hostname
$ hostname [new_hostname]

hostnamectl Command

hostnamectl command is used to query or change system hostname.

$ hostnamectl
$ hostnamectl set-hostname [new_hostname]

hwclock Command

hwclock command can print or set the system hardware clock.

$ hwclock
$ hwclock --set --date 7/02/2025

hwinfo Command

The hwinfo command is a very handy command line tool that can be used to check details about hardware components.

$ hwinfo

id Command

id command will print the user/group information of the current user or specified users.

$ id [option]... [user]

ifconfig Command

ifconfig command is used to configure a Linux systems network interfaces. It is used to configure, view and control network interfaces.

$ ifconfig

ionice Command

This command is used to set/query process I/O scheduling class and priority of the specified process.

$ ionice [optoin] -p [pid]...

iostat Command

The iostat command in Linux is used for monitoring system input/output statistics for devices and partitions.

$ iostat

ip Command

ip command is used to print or manage routing, devices, policy routing and tunnels. It also works as a replacement for well known ifconfig command.

$ ip [ OPTIONS ] OBJECT { COMMAND | help }

iptables Command

iptables is a command line interface used to set up and maintain tables for the Netfilter firewall for IPv4, included in the Linux kernel.

$ iptables -[ACD] chain rule-specification [options]

iw Command

iw command is used to manage wireless devices and their configuration.

$ iw [ OPTIONS ] { help | OBJECT COMMAND }

iwlist Command

iwlist command displays detailed wireless information from a wireless interface. 

$ iwlist [interface] frequency

kill Command

This command is used to kill a process by its process ID. The command kill sends the specified signal to the specified processes or process groups. If no signal is specified, the TERM signal is sent.

$ kill -p 7600
$ kill -SIGTERM -p 7600

killall Command

killall command will kill a process by its name.

$ killall FileZilla

kmod Command

kmod comman is used to Manage kernel modules: list, load, unload, etc.

$ kmod unload

last Command

last command is used to list the last logged-in users.

$ last

ln Command

ln command is used to create a soft link between files using the -s flag like this.

$ ln -s /usr/share/anylink target_link

locate Command

This command is simply used to find the file by name and locate command is faster and better than the find command.

$ locate [option] pattern...

login Command

the login command is used to begin a new session on the system. You need to enter your username and password.

$ login

ls Command

This command List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor –sort is specified.

$ ls [OPTION]... [FILE]...

lshw Command

This command will list down the detailed information on the hardware configuration of the machine. If invoked with superuser, you’ll get more comprehensive results.

$ lshw

lscpu Command

lscpu command displays the system’s CPU architecture information (such as number of CPUs, threads, cores, sockets, and more).

$ lscpu

lsof Command

This command provides a list of files that are opened. Basically, it gives the information to find out the files which are opened by which process.

$ lsof -u [FILENAME]

lsusb Command

lsusb command shows information about USB buses in the system and the devices connected to them like this.

$ lsusb

man Command

man is the system’s manual pager. Each page argument given to man is normally the name of a program, utility, or function.

$ man cmp
$ man hostname

md5sum Command

The md5sum is designed to verify data integrity using MD5 (Message-Digest Algorithm 5) and it is 128-bit cryptographic.

$ md5sum [OPTION]... [FILE]...

mkdir Command

mkdir command is used to create one or more than one file and if the file already exists, it can be overwritten.

$ mkdir [FILENAME]

more Command

more command is used to view the text files in the command prompt, displaying one screen at a time in case the file is large.

$ more [FILENAME]

mv Command

mv is used to move one or more files or directories from one place to another. If both filenames are on the same filesystem, this results in a simple file rename.


nano Command

nano is a popular small, free and friendly text editor for Linux, a clone of Pico. The default editor is included in the non-free Pine package.

$ nano [FILENAME]

nc/netcat Command

netcat is a computer networking utility for reading from and writing to network connections using TCP or UDP.

$ nc -zv 22

netstat Command

netstat is a command-line utility that can be used to list out all the network (socket) connections on a system.

$ netstat -a | more

nice Command

nice command in Linux helps in the execution of a program/process with modified scheduling priority. It launches a process with a user-defined scheduling priority.

$ nice [OPTION] [COMMAND [ARG]...]

nmap Command

nmap is a free open source tool, employed to discover hosts and services on a computer network by sending packets and analyzing the retrieved responses.

$ nmap

nproc Command

Print the number of processing units available to the current process, which may be less than the number of online processors.

$ nproc [OPTION]...

openssl Command

OpenSSL is an open-source command-line tool that is commonly used to generate private keys, create CSRs, install your SSL/TLS certificate, and identify certificate information.

$ openssl command [ command_opts ] [ command_args ]

passwd Command

The passwd utility is used to update the user’s authentication token(s). You can create/update an existing user’s passwords.

$ passwd [USERNAME]

pidof Command

pidof finds the processes id’s (pids) of the named programs. It prints that id’s on the standard output.

$ pidof sshf

ping Command

PING (Packet Internet Groper) command is used to check the network connectivity between host and server/host.

$ ping

ps Command

ps displays information about a selection of the active processes. If you want a repetitive update of the selection and the displayed information, use top(1) instead.

$ ps [OPTION]

pstree Command

pstree shows running processes as a tree. The tree is rooted at either pid or init if pid is omitted. If a user name is specified, all process trees rooted at processes owned by that user are shown.

$ pstree

pwd Command

The pwd (print working directory) command will print the name of the current working directory.

$ pwd


rdiff-backup is a powerful local/remote incremental backup script written in Python. It works on any POSIX operating system such as Linux, Mac OS X.

$ rdiff-backup ./backup_folder ./backup_folder.backup

reboot Command

reboot command is used to restart or reboot the system. In a Linux system administration, there comes a need to restart the server after the completion of some network and other major updates.

$ reboot

rename Command

the rename command is used to rename one or more than one file at a time.

$ rename [Old_FileName] [New_FileName]

rm Command

rm command is used to remove files/directories from the specified location. By default, it doesn’t remove directories.

$ rm [FileName]

rmdir Command

rmdir command is used to remove empty directories.

$ rmdir /backup/mydata

scp Command

This command is used to securely copy the files/folders from one location to another location over the network.

$ scp ~/filename.txt root@

shutdown Command

The shutdown command brings the system down securely. You can set a time to shut down the system as well.

$ shutdown [OPTIONS...] [TIME] [WALL...]

sleep Command

the sleep command is used to delay or pause (specifically the execution of a command) for a specified amount of time.

$ sleep NUMBER[SUFFIX]...

sort Command

The sort command will sort the lines of text of the specified file.

$ sort [FileName]

split Command

the split command is used to split the large file into small pieces. Output pieces of FILE to PREFIXaa, PREFIXab, …; default size is 1000 lines, and default PREFIX is ‘x’.

$ split [OPTION]... [FILE [PREFIX]]

ssh Command

ssh is a powerful application to access and run commands on a remote system. It offers a secure and encrypted connection between two hosts over an insecure network.

$ ssh cbspost@

stat Command

This command is simply used to display file or file system status.

$ stat [FileName]

su Command

su command is used to switch to another user ID or become root during a login session. Note that when su is invoked without a username, it defaults to becoming root.

$ su
$ su cbspost

sudo Command

sudo command allows a permitted system user to run a command as root or another user, as defined by the security policy.

$ sudo adduser [UserName]

sum Command

sum command is used to show the checksum and block counts for each specified file on the command line.

$ sum [OPTION]... [FILE]...

tac Command

tac command concatenates and displays files in reverse. It simply prints each file to standard output, showing last line first.

$ tac [FileName]

tail Command

tail command is used to display the last lines (10 lines by default) of each file to standard output. If they’re more than one file, precede each with a header giving the file name. Use it as follow (specify more lines to display using the -n option).

$ tail long-file
$ tail -n 19 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 using ‘user@host’.

$ talk person [ttyname]
$ talk‘user@host’ [ttyname]

tar Command

The Linux ‘tar’ stands for tape archive, which is used to create an Archive and extract the archive files.

$ tar cvf file.tar *.php

tee Command

Copy standard input to each file, and also to standard output.

$ tee [OPTION]... [FILE]...

tree Command

The tree command is a tiny, cross-platform command-line program used to recursively list or display the content of a directory in a tree-like format.

$ tree

time Command

time command in Linux is used to execute a command and prints a summary of real-time, user CPU time, and system CPU time spent by executing a command when it terminates.

$ time

top Command

The top program provides a dynamic real-time view of a running system. It can display system summary information as well as a list of processes or threads currently being managed by the Linux kernel.

$ top

touch Command

touch command changes file timestamps, it can also be used to create a file

$ touch [OPTION]... FILE...

tr Command

The tr command will translate, squeeze, and/or delete characters from standard input, writing to standard output.

$ tr [OPTION] SET1 [SET2]

uname Command

The uname command is used to print certain system information. With no OPTION, same as -s.

$ uname

uniq Command

The uniq command will filter adjacent matching lines from INPUT (or standard input), writing to OUTPUT (or standard output).

$ uniq [OPTION]... [INPUT [OUTPUT]]

uptime Command

uptime gives a one-line display of the following information. The current time, how long the system has been running, how many users are currently logged on, and the system load averages for the past 1, 5, and 15 minutes.

$ uptime

users Command

The users command is used to print the user names of users currently logged in to the current host.

$ users

vim/vi Command

vim (Vi Improved version) is a popular text editor that can edit any text file or program file.

$ vi [FileName]

w Command

This command is used to display system uptime, load averages, and information about the users currently on the machine, what are their processes are doing.

$ w

wall Command

The wall displays a message, or the contents of a file, or otherwise its standard input, on the terminals of all currently logged-in users.

$ wall "Hello Linux World"

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.

$ watch [options] command

wc Command

The wc command will print newline, word, and byte counts for each FILE, and a total line if more than one FILE is specified.

$ 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 [options] [url]

whatis Command

whatis command searches and shows a short or one-line manual page description of the provided command name.

$ whatis vi

which Command

which command takes one or more arguments. For each of its arguments, it prints to stdout the full path of the executables that would have been executed when this argument had been entered at the shell prompt.

$ which [options] [--] programname [...]

who Command

The who command is used to print information about users who are currently logged in.

$ who

whereis Command

This command is used to locate the binary, source, and manual page files for a command.

$ whereis vi

xargs Command

xargs is a useful command that reads streams of data from standard input, then generates and executes command lines; meaning it can take the output of a command and passes it as an argument of another command.

$ echo 'folder1 folder2 folder3' | xargs mkdir

yes Command

yes command is used to display a string repeatedly until when terminated or killed using [ctrl + c].

$ yes "Hello Linux World"

youtube-dl Command

youtube-dl is a lightweight command-line program to download videos and also extract MP3 tracks from

$ youtube-dl --list-formats [YouTube video URL]

zcmp/zdiff Command

zcmp and zdiff are used to invoke the cmp or the diff program on files compressed via gzip. All options specified are passed directly to cmp or diff. If only file1 is specified, it is compared to the uncompressed contents of file1.gz.

$ zcmp
$ zdiff 

zip Command

zip command is simply used to pack or compress files/folders.

$zip filename.txt

There are countless Linux commands. With new tools every day, we get new commands and we’ve listed very limited commands here. You all are very welcome to comment if you think there are other Linux commands that need to be listed in this article.

You Might Also Like

More Similar Posts


Notify of
Inline Feedbacks
View all comments
Would love your thoughts, please comment.x