The following commonly used Linux commands allow users to perform numerous tasks using the Command Line Interface (CLI) instead of the Graphical User Interface (GUI), increasing control and speed.
List of some of the most used Linux commands
The following list includes helpful and interesting Linux commands to use distributions more effectively and enjoy greater control. Although they are GNU/Linux commands, they also run in most Unix and BSD systems.
Linux commands are case-sensitive.
Alias command
The alias command allows users to create temporary shortcuts for other commands and command options during a shell session. To list all aliases in the session, just run the alias command without an argument.
Syntax:
alias [-option] Name=String
An useful option to used with the alias command is -p, to print all the aliases that have been defined during a session in a reusable format.
Apt command
The apt command is used to install, remove and manage packages in Debian and Debian-based distributions like Ubuntu. It requires using the sudo command or root privileges.
Syntax:
apt [-option] packagename
Some of the options that can be added to the apt command are:
installto install a package.updateto update the package index.removeto remove an installed package.
apt replaces the older apt-get command.
Cal command
The cal command displays a calendar on the terminal. Syntax:
cal or cal month year
Cd command
The cd command, short for “change directory”, is used to navigate through directories. It requires using the sudo command or root privileges.
Syntax:
cd /path or cd directory
When used without an option, it takes the user to the home folder. Some useful options to save time when changing directories are:
..to move a level up.-to return to the previous directory.
Chmod command
The chmod command is used to modify a file or directory’s read, write and execute permissions. Syntax:
chmod [-option] permission filename
Some of the options that can be added to the chmod command are:
-cto display information when a change is made.-vto display a diagnostic for each processed file.
Chown command
The chown command allows users to change the ownership of a file, directory or symbolic link to another username. Syntax:
chown [-option] owner:group file
Some of the options that can be added to the chown command are:
-cto report when a change is made.-fto suppress most error messages.
Clear command
The clear command is used to clear the terminal screen. Syntax:
clear
Cmp command
The cmp command can be used to check if two files are identical. Syntax:
cmp
Comm command
The comm command allows combining the functionalities of the diff and cmp commands. It compares two sorted files line by line, displaying results in three columns, if no options are used. The first column contains the lines of the first file, the second column contains the lines of the second file and the third column contains the matching lines.
Syntax:
comm [-option]
Some of the options that can be added to the comm command are:
-1,-2or-3to remove the number’s respective column.-check-orderto verify if all lines of both files are properly sorted.
Cp command
The cp command is used to copy files, folders and directories. It is possible to copy several files at the same time as well.
Syntax:
cp filename.extension /destination_directory
Some of the options that can be added to the cp command are:
—backup[=t]to make a numbered backup of each existing destination file.-lto make hard links instead of copying.-sto make soft or symbolic links instead of copying.
It can also be used to copy a file’s content into another file. In this case, the syntax would be:
cp filename.extension new_file.extension
Df command
The df command can be used to report the system’s disk space usage. Data is not readable by default, therefore it is often used together with the option -h to display the information in a human-readable format.
Syntax:
df [-option] filename
Some of the options that can be added to the df command are:
-Tto add a column indicating the filesystem type.-mto display the information in MBs.
Diff command
The diff command, short for “difference”, is used to find differences between two files. It compares the content of both files, line by line, displaying the pieces that do not match.
Syntax:
diff [-option] filename_1 filename_2
Some of the options that can be added to the diff command are:
-ito make the command case insensitive.-uto avoid the display of redundant information.
Du command
The du command can be used to check a folder or directory’s storage space usage. This is useful to identify which part of a system is using an excessive amount of storage space.
Syntax:
du /directory/path
Some of the options that can be added to the du command are:
-hto display the last modification date of folders and files.-sto get the total size of a particular folder.
Echo command
The echo command is used to display a line of text or string in the terminal. Syntax:
echo [-option] string
Some of the options that can be added to the echo command are:
-nto remove the trailing new line when displaying the output.-eto enable the interpretation of backslash escapes, such as\b, to remove spaces in between text.-Eto disable the-eoption and go back to the default display.
Exit command
The exit command is used to end the current shell session, and it automatically closes the terminal in most Linux distributions. Syntax:
exit
Find command
The find command is used to locate files in Linux, based on user-specified criteria. It filters files by filename and metadata.
Syntax:
find [-option] /path expression
Some of the options that can be added to the find command are:
-nameto find files by name.-maxdepthto limit the search to a maximum number of sub-directories.
To search files based on their content, it must be used together with the grep command.
Free command
The free command is used to display a summary of memory usage — total, used, free, shared and available space, both for RAM and swap. Syntax:
free [-option]
Some of the options that can be added to the free command are:
-gto display the information in gibibytes (GiB).-lto display detailed memory statistics.
Grep command
The grep command is used to find content within files. Syntax:
grep “content” filename.extension
Some of the options that can be added to the grep command are:
-Vto display the version number ofgrep.-ito ignore lower and upper cases.
It can be used together with the find command to search files based on their content.
Head command
The head command is used to display the first ten lines of a text. Syntax:
head [-option] filename
Some of the options that can be added to the head command are:
-n Xto display a customized number of lines.-qto avoid displaying the filename before the lines, when searching several files at a time.
History command
The history command is used to display a list of the commands executed in the past. It requires using the sudo command or root privileges.
Syntax:
history [-option]
Some of the options that can be added to the history command are:
-cto clear the history list.Xto specify the maximum number of results to be displayed in the list.
Hostname command
The hostname command is used to know the system’s hostname. Syntax:
hostname [-option]
Some of the options that can be added to the hostname command are:
-ito display the machine’s IP.-fto display the machine’s Fully Qualified Domain Name (FQDN).
Htop command
The htop command is used to monitor system resources and server processes in real time. It allows vertical and horizontal scrolling and it is available in most Linux distributions.
Syntax:
htop [-option]
Some of the options that can be added to the htop command are:
-uto only display the processes of a given user.-dto display the delay between updates in tenths of seconds.
Ifconfig command
The ifconfig command, short for “interface configuration”, is used to display a list of all network interfaces together with the IP and MAC addresses, as well as other additional information.
Syntax:
ifconfig [-option]
Ip command
The ip command is used to configure network interfaces. It can be used to bring them up and down, assign and remove addresses and routes, and much more.
Syntax:
ip [-option] object command
Jobs command
The jobs command is used to display all the running processes and their status. It is only available in the following shells: bash, csh, ksh and tcsh.
Syntax:
jobs [-option] jobID
Some of the options that can be added to the jobs command are:
-nto list jobs whose status has changed since the last modification.-pto only list process IDs.
Kill command
The kill command is used to terminate an unresponsive program or process manually, when impossible to close it otherwise. Syntax:
kill signal_option processID
Run the following command to know the program’s process ID: ps
This command can be used with many different signals. The most commonly used are:
SIGTERMto request a program to stop running, giving it time to save all its progress. When not specifying a particular signal, this is the default mode.SIGKILLto force a program to stop running without saving its progress.
Less command
The less command can be used to inspect large files backward and forward, as it allows scrolling through the file using the Enter and Space keys. Syntax:
less filename.extension
Some of the options that can be added to the less command are:
-?to display a summary of the commands accepted byless.-Ito ignore low and upper cases.
Ln command
The ln command, short for “link”, can be used to create hard and soft or symbolic links to files and directories.
On the one hand, a hard link is a mirror of the original file, and shares the same inode number. Hard links are not deleted if the original file is. On the other hand, a soft or symbolic link is basically a shortcut that makes reference to the original file, without retaining its data. In case of deleting the original file, the soft link will no longer work.
The command’s default setting is intended for creating hard links, as they can only be created on the command line.
Syntax:
ln /path reference_name
Syntax to create the link in a different directory:
ln /path /alternative_path/reference_name
In order to create a symbolic link, add the -s option:
ln -s /path reference_name
Ls command
The ls command is used to list files and directories within a system. Without specifying a path, it shows the contents in the current working directory.
Syntax:
ls /path
Some of the options that can be added to the ls command are:
-ato show hidden files as well.-Rto also list the files in the subdirectories.
Man command
The man command can be used to get the manual of any command that can be run in the terminal. Syntax:
man [-option] command_name
Some of the options that can be added to the man command are:
-kto search a command as a regular expression in all the manuals.-fto know the sections in which a command is present.
Mkdir command
The mkdir command is used to create a directory or multiple directories at once. It also allows setting their respective permissions.
Syntax:
mkdir [-option] directory_name
Some of the options that can be added to the mkdir command are:
-mXXXto set the permissions.-pto create a directory between two directories.
Mv command
The mv command is used to move and rename files and directories.
Syntax to move:
mv filename.extension /path
Syntax to rename:
mv filename.extension new_filename.extension
Some of the options that can be added to the mv command are:
-nto avoid overwriting an existing file.-uto move only when the destination file is missing or the source file is newer than the destination file.
Nano command
The nano command is used to edit and manage files, and is compatible with most languages. Syntax:
nano filename
Some of the options that can be added to the nano command are:
-Bto backup the previous version of a file when saving it; suffixing the filename with a tilde (~).-uto save a file by default in Unix format.
Pacman command
The pacman command is used to install, remove and manage packages in Arch Linux and Arch-based distributions like Manjaro. Syntax:
pacman [-option] package_name
Passwd command
The passwd command can be used to add and change user passwords.
Syntax to add a password to an user after creating it with the useradd command:
passwd strong_password
Syntax to change the user password:
passwd
Ping command
The ping command is used to test network connectivity. It is also used to troubleshoot some connectivity issues.
Syntax:
ping [-option] hostname_or_IP
Ps command
The ps command, short for “process status”, outputs a snapshot of the running processes in the system. Along with each process, it displays the following details: process ID (PID), type of terminal (TTY), running time (TIME) and the command that launches the process (CMD).
Syntax:
ps [-option]
Some of the options that can be added to the ps command are:
-uto display the user associated with each process.-Tto display the current shell session associated with each process.
Pwd command
The pwd command can be used to find the path of the current working directory. Syntax:
pwd [-option]
Some of the options that can be added to the pwd command are:
-Pto display the physical directory, without symbolic links. This is the option by default if no option is specified.-versionto display information about the version.
Reset command
The reset command reboots the terminal, restoring settings to default. Its execution takes longer than the clear command.
Syntax:
reset
Rm command
The rm command is used to delete files and folders within a directory. It requires having write permissions.
Syntax:
rm filename
Some of the options that can be added to the rm command are:
-fto ignore nonexistent files and arguments.-dto remove empty directories.
It must be carefully used, as it is difficult to recover files and directories deleted with this command.
Service command
The service command is used to start, stop and restart services. Syntax:
service service_name -option
The main options of this command are: start, stop and restart.
Shutdown command
The shutdown command can be used to power off, halt and reboot a machine. The default syntax immediately shuts down the machine.
Syntax:
shutdown now
Ssh command
The ssh command is used to connect to an external machine on the network using the SSH protocol. Syntax:
ssh username@hostname
Some of the options that can be added to the ssh command are:
-4to force the use of IPv4 addresses only.-6to force the use of IPv6 addresses only.-qto enable quiet mode.
Su command
The su command, short for “switch user”, allows users to run a program as another user. Syntax:
su [-option] [username [argument]]
Some of the options that can be added to the su command are:
-gto specify the primary group (only available to the root user).-sto run the specified shell instead of the default one.
When used without an option or argument, it runs through root privileges and requires authentication and the use of sudo privileges temporarily.
Sudo command
The sudo command, short for “super do”, is used to perform tasks requiring admin or root permissions. In case the user does not authenticate himself when trying to run the command, the system will log the activity as a security event.
Syntax:
sudo (command)
Some of the options that can be added to the sudo command are:
-Eto indicate to the security policy that the user wishes to preserve his existing environment variables.-kto invalidate the user’s cached credentials, when used without a command.
By default, the command can be run for 15 minutes per session.
Tail command
The tail command is used to display the last ten lines of a file, to check for updates and error messages. Syntax:
tail [-option] filename
Some of the options that can be added to the tail command are:
-qto avoid displaying headers specifying filnames.--retryto keep trying to open a file if it is inaccessible.
Tar command
The tar command is used to archive files or directories into a .tar file, with optional compression. Syntax:
tar [-option] archive_filename file_to_be_archived
Some of the options that can be added to the tar command are:
-cto create a new archive.-tto list the contents of an archive.
Top command
The top command can be used to discover the processes consuming the most resources. It displays all running processes and a dynamic real-time view of the system, including details such as CPU and memory usage.
Syntax:
top
Touch command
The touch command can be used to create new files in the current directory. Adding options, it also allows modification of timestamps.
Syntax:
touch [-option] filename.extension
Some of the options that can be added to the touch command are:
-ato change the access time.-mto change the modification time.
Traceroute command
The traceroute command can be used to check the route packets take to a particular host, as well as the time it takes, by specifying its hostname, IP address or domain name.
Syntax:
traceroute hostname
Unalias command
The unalias command can be used to delete alias created with the alias command. Syntax:
unalias alias_name
Some of the options that can be added to the unalias command are:
-ato remove all the aliases.
Uname command
The uname command, short for “Unix name”, outputs detailed information about the Linux operating system and hardware. Syntax:
uname [-option]
Some of the options that can be added to the uname command are:
-sto display the kernel name.-ato display all the system information.
Unzip command
The unzip command is used to extract zipped files from an archive. Syntax:
unzip [-option] filename.zip
Useradd command
The useradd command allows the creation of new users. It requires using the sudo command or root privileges.
Syntax:
useradd [-option] username
Userdel command
The userdel command allows removing existing users. It requires using the sudo or root privileges.
Syntax:
userdel username
Usermod command
The usermod command allows the modification of existing users. It requires using the sudo or root privileges.
Syntax:
usermod username
Vi command
The vi command is used to edit and manage files. Syntax:
vi filename
It has two operating modes:
insertto edit and create text files.commandto perform basic operations such as opening, copying, pasting and saving.
Wc command
The wc command, short for “word count”, outputs the number of lines and words in a text file, as well as its byte-size. Syntax:
wc filename.extension
Some of the options that can be added to the wc command are:
-cto display the byte counts.-mto display the character counts.
Wget command
The wget command can be used to download files from the Internet. Syntax:
wget [-option] url
Some of the options that can be added to the wget command are:
-oto log all messages to log file.-nvto turn off the command’s output, except for error messages and basic information.
Whatis command
The whatis command outputs what any command can be used for. Syntax:
whatis command_name
Whereis command
The whereis command is used to find the path of the command typed in after it. Syntax:
whereis command
Which command
The which command is used to identify the path of a particular executable. Syntax:
which [-option] filename
Whoami command
The whoami command, short for “who am I”, can be used to display the username in use. Syntax:
whoami
Yum command
The yum command is used to install, remove and manage packages in RHEL and Red Hat-based distributions like CentOS. Syntax:
yum [-option] package_name
Zip command
The zip command is used to compress a file or several files into the ZIP universal format. It is also useful for archiving files and directories, thus reducing disk usage.
Syntax:
zip [-option] zip_file filename
Basic Linux commands summary
| Command | Usage |
|---|---|
alias | Create a shortcut for other commands and command options. |
apt | Install, remove and manage packages in Debian-based distros. |
cal | Display a calendar on the terminal. |
cd | Navigate through Linux directories. |
chmod | Modify a file or directory’s read, write and execute permissions. |
chown | Change the ownership of a file, directory or symbolic link to another username. |
clear | Clear the terminal screen. |
cmp | Check if 2 files are identical. |
comm | Combine the functionalities of the diff and cmp commands. |
cp | Copy and paste files, content, folders and directories. |
df | Report the system’s disk space usage. |
diff | Compare the content of 2 files to find not matching pieces of content. |
du | Check how much storage space a folder or directory takes up. |
echo | Display a line of text or string in the terminal. |
exit | Exit the current shell session. |
find | Search files directly from the command line. |
free | Display a summary of memory usage. |
grep | Find content within files. |
head | Display the first 10 lines of a text. |
history | Display a list of the commands executed in the past. |
hostname | Know the system’s hostname. |
htop | Monitor system resources and server processes in real time. |
ifconfig | Display a list of all network interfaces together with the IP and MAC addresses, and other additional information. |
ip | Configure network interfaces. |
jobs | Display all the running processes and their status. |
kill | Terminate an unresponsive program or process manually. |
less | Inspect large files backward and forward, scrolling with the Enter and Space keys. |
ln | Create hard and soft links to other files. |
ls | List files and directories within a system. |
man | Get the manual of any command that can be run in the terminal. |
mkdir | Create a directory or multiple directories at once, and their respective permissions. |
mv | Move and rename files and directories. |
nano | Edit and manage files; compatible with most languages. |
pacman | Install, remove and manage packages in Arch-based distros. |
passwd | Add and change user passwords. |
ping | Test network connectivity. |
ps | Output a snapshot of the running processes in the system. |
pwd | Find the path of the current working directory. |
reset | Reboot the terminal, restoring settings to default. |
rm | Delete files and folders. |
service | Start, stop and restart services. |
shutdown | Power off, halt and reboot a machine. |
ssh | Connect to an external machine on the network using the SSH protocol. |
su | Run a program as a different user. |
sudo | Perform tasks requiring admin or root permissions. |
tail | Display the last 10 lines of a file. |
tar | Archive files or directories into a .tar file. |
top | Discover the processes consuming the most resources. |
touch | Create new files and modify timestamps. |
traceroute | Check the route packets take to a particular host, as well as the time it takes. |
unalias | Delete alias defined with the alias command. |
uname | Output detailed information about the Linux operating system and hardware. |
unzip | Extract zipped files from an archive. |
useradd | Create a new user. |
userdel | Delete existing users. |
usermod | Modify existing users. |
vi | Edit and manage files. |
wc | Output the number of lines and words in a text file, as well as its byte-size. |
wget | Download files from the Internet. |
whatis | Output any command’s functionality. |
whereis | Delete files and folders. |
which | Identify the path of a particular executable. |
whoami | Display the username in use. |
yum | Install, remove and manage packages in RHEL-based distros. |
zip | Compress files into the ZIP universal format. |
Useful shortcuts for the Linux Command Line Interface
The following table includes some useful shortcuts for using the Linux Command Line Interface.
| Shortcut | Usage |
| Ctrl + A | Moving to the beginning of the line. |
| Ctrl + C | Terminating a running command. |
| Ctrl + E | Moving to the end of the line. |
| Ctrl + Q | Undoing the terminal freeze. |
| Ctrl + S | Temporarily freezing the terminal. |
| Ctrl + Z | Pausing a working command. |
| Tab | Auto-filling after entering a command with an argument. |
| ; | Separating commands, when executing multiple ones in a single line. |
| && | Allowing the next command to run if the previous one is successful, when executing several commands in a single line. |