65 commonly used Linux commands

Commonly used Linux commands

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:

  • install to install a package.
  • update to update the package index.
  • remove to 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:

  • -c to display information when a change is made.
  • -v to 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:

  • -c to report when a change is made.
  • -f to 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, -2 or -3 to remove the number’s respective column.
  • -check-order to 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.
  • -l to make hard links instead of copying.
  • -s to 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:

  • -T to add a column indicating the filesystem type.
  • -m to 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:

  • -i to make the command case insensitive.
  • -u to 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:

  • -h to display the last modification date of folders and files.
  • -s to 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:

  • -n to remove the trailing new line when displaying the output.
  • -e to enable the interpretation of backslash escapes, such as \b, to remove spaces in between text.
  • -E to disable the -e option 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:

  • -name to find files by name.
  • -maxdepth to 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:

  • -g to display the information in gibibytes (GiB).
  • -l to 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:

  • -V to display the version number of grep.
  • -i to ignore lower and upper cases.

It can be used together with the find command to search files based on their content.

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 X to display a customized number of lines.
  • -q to 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:

  • -c to clear the history list.
  • X to 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:

  • -i to display the machine’s IP.
  • -f to 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:

  • -u to only display the processes of a given user.
  • -d to 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:

  • -n to list jobs whose status has changed since the last modification.
  • -p to 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:

  • SIGTERM to 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.
  • SIGKILL to 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 by less.
  • -I to 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:

  • -a to show hidden files as well.
  • -R to 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:

  • -k to search a command as a regular expression in all the manuals.
  • -f to 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:

  • -mXXX to set the permissions.
  • -p to 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:

  • -n to avoid overwriting an existing file.
  • -u to 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:

  • -B to backup the previous version of a file when saving it; suffixing the filename with a tilde (~).
  • -u to 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:

  • -u to display the user associated with each process.
  • -T to 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:

  • -P to display the physical directory, without symbolic links. This is the option by default if no option is specified.
  • -version to 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:

  • -f to ignore nonexistent files and arguments.
  • -d to 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:

  • -4 to force the use of IPv4 addresses only.
  • -6 to force the use of IPv6 addresses only.
  • -q to 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:

  • -g to specify the primary group (only available to the root user).
  • -s to 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:

  • -E to indicate to the security policy that the user wishes to preserve his existing environment variables.
  • -k to 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:

  • -q to avoid displaying headers specifying filnames.
  • --retry to 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:

  • -c to create a new archive.
  • -t to 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:

  • -a to change the access time.
  • -m to 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:

  • -a to 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:

  • -s to display the kernel name.
  • -a to 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:

  • insert to edit and create text files.
  • command to 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:

  • -c to display the byte counts.
  • -m to 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:

  • -o to log all messages to log file.
  • -nv to 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

CommandUsage
aliasCreate a shortcut for other commands and command options.
aptInstall, remove and manage packages in Debian-based distros.
calDisplay a calendar on the terminal.
cdNavigate through Linux directories.
chmodModify a file or directory’s read, write and execute permissions.
chownChange the ownership of a file, directory or symbolic link to another username.
clearClear the terminal screen.
cmpCheck if 2 files are identical.
commCombine the functionalities of the diff and cmp commands.
cpCopy and paste files, content, folders and directories.
dfReport the system’s disk space usage.
diffCompare the content of 2 files to find not matching pieces of content.
duCheck how much storage space a folder or directory takes up.
echoDisplay a line of text or string in the terminal.
exitExit the current shell session.
findSearch files directly from the command line.
freeDisplay a summary of memory usage.
grepFind content within files.
headDisplay the first 10 lines of a text.
historyDisplay a list of the commands executed in the past.
hostnameKnow the system’s hostname.
htopMonitor system resources and server processes in real time.
ifconfigDisplay a list of all network interfaces together with the IP and MAC addresses, and other additional information.
ipConfigure network interfaces.
jobsDisplay all the running processes and their status.
killTerminate an unresponsive program or process manually.
lessInspect large files backward and forward, scrolling with the Enter and Space keys.
lnCreate hard and soft links to other files.
lsList files and directories within a system.
manGet the manual of any command that can be run in the terminal.
mkdirCreate a directory or multiple directories at once, and their respective permissions.
mvMove and rename files and directories.
nanoEdit and manage files; compatible with most languages.
pacmanInstall, remove and manage packages in Arch-based distros.
passwdAdd and change user passwords.
pingTest network connectivity.
psOutput a snapshot of the running processes in the system.
pwdFind the path of the current working directory.
resetReboot the terminal, restoring settings to default.
rmDelete files and folders.
serviceStart, stop and restart services.
shutdownPower off, halt and reboot a machine.
sshConnect to an external machine on the network using the SSH protocol.
suRun a program as a different user.
sudoPerform tasks requiring admin or root permissions.
tailDisplay the last 10 lines of a file.
tarArchive files or directories into a .tar file.
topDiscover the processes consuming the most resources.
touchCreate new files and modify timestamps.
tracerouteCheck the route packets take to a particular host, as well as the time it takes.
unaliasDelete alias defined with the alias command.
unameOutput detailed information about the Linux operating system and hardware.
unzipExtract zipped files from an archive.
useraddCreate a new user.
userdelDelete existing users.
usermodModify existing users.
viEdit and manage files.
wcOutput the number of lines and words in a text file, as well as its byte-size.
wgetDownload files from the Internet.
whatisOutput any command’s functionality.
whereisDelete files and folders.
whichIdentify the path of a particular executable.
whoamiDisplay the username in use.
yumInstall, remove and manage packages in RHEL-based distros.
zipCompress 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.

ShortcutUsage
Ctrl + AMoving to the beginning of the line.
Ctrl + CTerminating a running command.
Ctrl + EMoving to the end of the line.
Ctrl + QUndoing the terminal freeze.
Ctrl + STemporarily freezing the terminal.
Ctrl + ZPausing a working command.
TabAuto-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.

Share it on Social Media!