Linux distributions can leverage an extensive range of commands to accomplish various tasks. For most Linux distros, Bash (Bourne again shell) is the default command-line interface or shell used to execute these commands. In this A to Z list of Linux commands, we have tried to include as many commands as possible which can be run using bash.
CLIs (command-line interface) have existed since ages. We can find their roots in the first instance of CLI built for “interfacing with computers over teletype machines in the 1950s.” It allows a user to interact with the system, taking character-based command inputs from the keyboard or a script. However, CLI is just an interface, the main task is done by a program called command language interpreter.
It’s a known fact that the command line interface (CLI), also known as the shell, is an integral part of the digital lives of various Linux users even when the graphical desktop environments on Linux systems have become quite user-friendly.
The first piece of text you see when you land on the shell is called prompt. It signifies system’s readiness to execute commands. The shell is accessed using the Terminal – a hardware device used to input data into, and displaying device from. However, the terminal application you see on your Linux systems is an emulator that replicates the jobs of a real-world terminal.
Many people often confuse the terms shell and terminal. Take the example of a car; the body of the car is the terminal and the dashboard can be considered as the shell where you perform various operations like acceleration, reverse, shifting, etc. The car responds to your actions performed using the dashboard. Similarly, the terminal displays responses for the commands executed using the shell or CLI.
Is Linux CLI case-sensitive?
The answer is, yes. If you try to run LS instead of ls, it would display an error. There are some advantages of using a case-sensitive command line. The computers that existed in earlier decades weren’t fast enough, it was favorable to compare identical strings instead of normalizing the upper and lower cases. This continued and became a habit, even though today’s machines are way faster and efficient. It also gives people the flexibility over the choice of the command name.
So, In this post, I have tried to compile a list of commands used in various Linux distributions. This has been possible with inputs from Ubuntu manual, SS64, and Linux Dev Center. As you might be knowing, some or many of these commands may not work on your distribution. Running those commands may require you to install additional packages or it’s just that the commands aren’t meant to work on your system.
The descriptions of these Linux commands are based on their manual pages. To access the man page:
For eg: man cat
If you find any discrepancy, please feel free to contact for any correction.
Linux Commands – A
Accept or Reject jobs to a destination, such as a printer.
Check a user’s RWX permission for a file.
GNU autoconf too
ALSA sequencer connection manager.
Show information about the Advanced Configuration and Power Interface.
Check if ACPI functionality exists on the system.
Informs user-space programs about ACPI events.
Used to convert addresses into file names and line numbers.
Formats for internet mail addresses.
An alternative Linux Getty
Create an alias for Linux commands
Access advanced controls for ALSA soundcard driver.
Perform read/write operation for ALSA RawMIDI ports.
Access CLI-based mixer for ALSA soundcard driver.
Used to run commands periodically.
Sound recorder and player for CLI.
CLI utility used to play MIDI files.
Show Advanced Power Management (APM) hardware info on older systems.
Used to handle events reported by APM BIOS drivers.
Shows the list of all man pages containing a specific keyword
Advanced Package Tool, a package management system for Debian and derivatives.
Command-line utility to install/remove/update packages based on APT system.
Another utility to add/remove/upgrade packages based on the APT system.
A utility to create/modify/extract from archives.
Display print machine hardware name.
Just like aplay, it’s a sound recorder and player for ALSA soundcard driver.
Record standard MIDI files.
Used to make changes to the system’s ARP cache
A portable GNU assembler.
An interactive spell checker utility.
Used to schedule command execution at specified date & time, reading commands from an input file.
Used to execute jobs queued by the at command.
List a user’s pending jobs for the at command.
Delete jobs queued by the at command.
Used to send an audio recording as an email.
An audio mixer utility.
Generate configuration scripts from a TEMPLATE-FILE and send the output to standard output.
Create a template header for configure.
Creates GNU standards-compliant Makefiles from template files
Update generated configuration files.
Generate a preliminary configure.in
Update a configure.in file to newer autoconf.
Used to find and replace text in a file(s).
Linux Commands – B
Search a disk partition for bad sectors.
Used to print characters as a poster.
Used to display filenames with directoy or suffix.
GNU Bourne-Again Shell.
Used to run commands entered on a standard input.
Access the GNU bc calculator utility.
Send processes to the background.
Notify about incoming mail and sender’s name on a system running comsat server.
Used to attach a name to a socket.
A GNU parser generator, compatible with yacc.
Used to exit from a loop (eg: for, while, select).
Used to run shell builtin commands, make custom functions for commands extending their functionality.
Used to call the cmp program for bzip2 compressed files.
Used to call the diff program for bzip2 compressed files.
Used to call grep for bzip2 compressed files.
A block-sorting file compressor used to shrink given files.
Used to apply ‘less’ (show info one page at a time) to bzip2 compressed files.
Used to apply ‘more’ (an inferior version of less) to bzip2 compressed files.
Linux Commands – C
Used to control PCMCIA sockets and select configuration schemes.
Keeps an eye on the added/removes sockets for PCMCIA devices.
Execute a command conditionally by matching a pattern.
Used to concatenate files and print them on the screen.
GNU C and C++ compiler.
Used to change directory.
Used to rip a CD-ROM and make WAV file.
Record audio from CD more reliably using data-verification algorithms.
Used to write all the content specified to a file to a CD all at once.
Used to record data or audio compact discs.
Show or change the disk partition table.
Used to change user password information.
Used to change file attributes.
Used to change active working directory.
Used to change real user name and information.
Used to change group ownership for file.
Manage execution of runlevel services.
Change access permission for a file(s).
Change the owner or group for a file.
Update password in a batch.
Run a command with root privileges.
Alter process attributed in real-time.
Switch login shell.
Change foreground virtual terminal.
Perform a CRC checksum for files.
Used to clear the terminal window.
Compare two files (byte by byte).
Filter reverse (and half-reverse) line feeds from the input.
Filter nroff output for CRT previewing.
Remove columns from the lines of a file.
A utility that formats its input into columns.
Used to compare two sorted files line by line.
Used to execute a command with arguments ignoring shell function named command.
Used to compress one or more file(s) and replacing the originals ones.
Resume the next iteration of a loop.
Copy contents of one file to another.
Copy files from and to archives.
GNU C language processor.
A daemon to execute scheduled commands.
Same work as cron.
Manage crontab files (containing schedules commands) for users.
Split a file into sections on the basis of context lines.
Make a list of functions and macro names defined in a programming source file.
A scheduler for CUPS.
Used to transfer data from or to a server using supported protocols.
Used to remove sections from each line of a file(s).
Concurrent Versions System. Used to track file versions, allow storage/retrieval of previous versions, and enables multiple users to work on the same file.
Linux Commands – D
Show system date and time.
Desk calculator utility.
Used to convert and copy a file, create disk clone, write disk headers, etc.
Used to recover data from a crashed partition.
Deallocates kernel memory for unused virtual consoles.
File system debugger for ext2/ext3/ext4
Used to declare variables and assign attributes.
Generate modules.dep and map files.
Interactively displays the contents of device or file system ISO.
Show disk usage.
Used to compare files line by line.
Compare three files line by line.
Domain Information Groper, a DNS lookup utility.
List the contents of a directory.
Set colors for ‘ls’ by altering the LS_COLORS environment variable.
Display pathname after removing the last slash and characters thereafter.
Show the list of remembered directories.
Restrict access to a printer.
Interactive Desktop Link Protocol (DLP) shell for PalmOS.
Examine and control the kernel ring buffer.
Show the DNS domain name of the system.
Generate encrypted Secure DNS keys for a given domain name.
Produce domain key set from one or more DNS security keys generated by dnssec-keygen.
Sign a secure DNS keyset with key signatures specified in the list of key-identifiers.
Sign a secure DNS zonefile with the signatures in the specified list of key-identifiers.
Used to run an executable with an arbitrary argv list provided.
Show or set the name of current NIS (Network Information Services) domain.
Check and repair MS-DOS file systems.
Show disk usage summary for a file(s).
Backup utility for ext2/ext3 file systems.
Dump ext2/ext3/ext4 file systems.
Show information about the keyboard driver’s current translation tables.
Linux Commands – E
Used to check ext2/ext3/ext4 file systems.
Store important ext2/ext3/ext4 filesystem metadata to a file.
Show or change the label on an ext2/ext3/ext4 filesystem.
Send input string(s) to standard output i.e. display text on the screen.
GNU Ed – a line-oriented text editor.
Used to edit filesystem quotas using a text editor, such as vi.
Search and display text matching a pattern.
Eject removable media.
Used to set latency in the elevator algorithm used to schedule I/O activities for specified block devices.
Emacs text editor command line utility.
Used to enable/disable shell builtin commands.
Run a command in a modified environment. Show/set/delete environment variables.
Substitute environment variable values in shell format strings.
Start the Enlightenment Sound Daemon (EsounD or esd). Enables multiple applications to access the same audio device simultaneously.
Manage EsounD configuration.
Use EsounD to send audio data from a specified file.
EsounD control program.
Used to reroute non-esd audio data to esd and control all the audio using esd.
Used to copy the sound being sent to a device. Also, send it to a secondary device.
Use EsounD system to play a file.
Use EsounD to record audio to a specified file.
Sample audio using esd.
Used to create a list of functions and macros from a programming source file. These etags are used by emacs. For vi, use ctags.
Used to query and control network driver and hardware settings.
Used to evaluate multiple commands or arguments are once.
An interactive line-based text editor.
Exit from the terminal.
Convert tabs into spaces in a given file and show the output.
An extension to the Tcl script, it’s used to automate interaction with other applications based on their expected output.
Used to set an environment variable.
Evaluate expressions and display them on standard output.
Linux Commands – F
Display prime factors of specified integer numbers.
Do nothing, unsuccessfully. Exit with a status code indicating failure.
Make font information cache after scanning the directories.
Show the list of available fonts.
Do a low-level format on a floppy disk.
Make changes to the disk partition table.
Fetch mail from mail servers and forward it to the local mail delivery system.
Used to send a job to the foreground.
Display the number of the current virtual console.
Display lines from a file(s) that match a specified string. A variant of grep.
Determine file type for a file.
Do a file search in a directory hierarchy.
Display user data including the information listed in .plan and .project in each user’s home directory.
Provides a network interface for the finger program.
Generate programs that perform pattern-matching on text.
Used to convert text to a specified width by filling lines and removing new lines, displaying the output.
Wrap input line to fit in a specified width.
Expand words and run commands for each one in the resultant list.
Used to filter standard input into mailbox format.
Used to format disks.
Show free and used system memory.
Check and repair a Linux file system
File transfer protocol user interface.
FTP server process.
Used to define function macros.
Find and kill a process accessing a file.
Linux Commands – G
Run the g++ compiler.
Used for pattern scanning and language processing. A GNU implementation of AWK language.
A C and C++ compiler by GNU.
A utility to debug programs and know about where it crashes.
Shows entries from Name Service Switch Libraries for specified keys.
Displays the kernel scancode-to-keycode mapping table.
A utility to parse positional parameters.
Allows an administrator to change group passwords.
Enables encryption and signing services as per the OpenPGP standard.
Used to split an OpenPGP message into packets.
Used to verify OpenPGP signatures.
It enables cut and paste functionality and a mouse server for the Linux console.
Shows call graph profile data.
Searches input files for a given pattern and displays the relevant lines.
Serves as the front-end of the groff document formatting system.
Displays groff files and man pages.
Used to add a new user group.
Used to remove a user group.
Used to modify a group definition.
Show the group(s) to which a user belongs.
Verifies the integrity of group files.
Creates a gshadow file from a group or an already existing gshadow.
Invokes Ghostscript, and interpreter and previewer for Adobe’s PostScript and PDF languages.
A utility to compress/expand files.
Used compress executable files in place and have them automatically uncompress and run at a later stage.
Same as gzip.
Linux Commands – H
Command used to half the machine.
Shows the path for the commands executed in the shell.
Show/configure parameters for SATA/IDE devices.
Shows first 10 lines from each specified file.
Display’s help for a built-in command.
Shows specified file output in hexadecimal, octal, decimal, or ASCII format.
Shows the command history.
A utility to perform DNS lookups.
Shows host’s numeric ID in hexadecimal format.
Display/set the hostname of the system.
Manage the user authentication file used by the Apache web server.
An interactive process viewer for the command line.
Show or configure the system’s hardware clock.
Linux Commands – I
Convert text file from one encoding to another.
Show user and group information for a specified user.
Execute a command conditionally.
Used to configure network interfaces.
Stops a network interface.
Starts a network interface.
An IMAP (Interactive Mail Access Protocol) server daemon.
Capture an X server screen and saves it as an image.
Extended internet services daemon, it starts the programs that provide internet services.
Used to read the documentation in Info format.
Systemd system and service manager.
A program that inserts a module into the Linux kernel.
Used to copy files to specified locations and set attributions during the install process.
Shows statistics for CPU, I/O devices, partitions, network filesystems.
Display/manipulate routing, devices, policy, routing and tunnels.
Used to remove System V interprocess communication (IPC) objects and associated data structures.
Show information on IPC facilities for which calling process has read access.
Administration tool for IPv4 packet filtering and NAT.
Used to restore IP tables from data specified in the input or a file.
Used to dump IP table contents to standard output.
A utility that shows the content iso9660 images to verify the integrity of directory contents.
A utility to perform directory like listings of iso9660 images.
Show the length of an iso9660 filesystem contained in a specified file.
Verifies the integrity of an iso9660 image.
A CLI-based spell-check utility.
Linux Commands – J
Show the list of active jobs and their status.
For each pair of input lines, join them using a command field and display on standard output.
Linux Commands – K
Set a keyboard mode. Without arguments, shows the current keyboard mode.
Reset keyboard repeat rate and delay time.
Send a kill (termination) signal to one more processes.
Kills a process(es) running a specified command.
A SystemV killall command. Kills all the processes excluding the ones which it depends on.
Control and prioritize the kernel messages to be displayed on the console, and log them through syslogd.
Used to detect new and enhanced hardware by comparing it with existing database. Only for RHEL and derivates.
Linux Commands – L
Shows a list of recent logins on the system by fetching data from /var/log/wtmp file.
Shows the list of bad login attempts by fetching data from /var/log/btmp file.
Displays information about the most recent login of all users or a specified user.
The Unix linker, it combines archives and object files. It then puts them into one output file, resolving external references.
Configure dynamic linker run-time bindings.
Shows shared object dependencies.
Displays contents of a file one page at a time. It’s advanced than more command.
Used to specify key bindings for less command.
Used to perform integer artithmetic on shell variables.
An FTP utility with extra features.
Uses lftop to retrieve HTTP, FTP, and other protocol URLs supported by lftp.
Create links between two files. Similar to ln command.
Create links between files. Links can be hard (two names for the same file) or soft (a shortcut of the first file).
Load keyboard translation tables.
Used to create function variables.
Shows information about current or all locales.
Used to find files by their name.
Create semaphore file(s) which can be used to limit access to a file.
Make entries in the system log.
Create a new session on the system.
Shows the login name of the current user.
Performs the logout operation by making changes to the utmp and wtmp files.
Used for automatic rotation, compression, removal, and mailing of system log files.
Shows any lines in a file containing a given string in the beginning.
Set up and control loop devices.
Used to configure printer and class queues provided by CUPS (Common UNIX Printing System).
Line printer control program, it provides limited control over CUPS printer and class queues.
Shows the list of avaiable devices and drivers known to the CUPS server.
Move on or more printing jobs to a new destination.
Shows current print queue status for a specified printer.
Used to submit files for printing.
Used to print a file.
Used to abort a print job.
List the print queue.
Cancel print jobs.
Displays status information about current classes, jobs, and printers.
Shows the list of files in the current directory.
Shows file attributes on a Linux ext2 file system.
Lists information about all available or the specified block devices.
Show the status of modules in the Linux kernel.
List open files.
List all PCI devices.
List USB devices.
Linux Commands – M
Utility to compose, receive, send, forward, and reply to emails.
Shows to list all emails queued for delivery (sendmail queue).
Shows current mail statistics.
Used to send mail with multimedia content in MIME format.
Utility to maintain groups of programs, recompile them if needed.
Creates an NIS (Network Information Services) database map.
Creates database maps used by the keyed map lookups in sendmail.
Shows manual pages for Linux commands.
Determine search path for manual pages.
Used to change MS-DOS file attribute flags.
Checks MD-DOS filesystems for bad blocks.
Dump raw disk image.
Used to change MS-DOS directory.
Used to copy MS-DOS files from or to Unix.
Used to check MD5 checksum for a file.
Used to delete MS-DOS file. mdeltree recursively deletes MS-DOS directory and its contents.
Used to display an MS-DOS directory.
Used to display the amount of space occupied by an MS-DOS directory.
Three-way file merge. Includes all changes from file2 and file3 to file1.
Allow/disallow osends to sedn write messages to your terminal.
For sending and showing rich text or multimedia email using MIME typing metadata.
An interface for sending non-text mail.
Used to add an MS-DOS filesystem to a low-level formatted floppy disk.
Translate to/from MIME multimedia mail encoding formats.
Display parameters of an MS-DOS filesystem.
Used to create directories.
Used to create an MS-DOS filesystem under Linux.
Used create an ext2/ext3/ext4 filesystem.
Used to create named pipes (FIFOs) with the given names.
Used to build a Linux filesystem on a hard disk partition.
Same as mke2fs, create an ext3 Linux filesystem.
Used to create an ISO9660/JOLIET/HFS hybrid filesystem.
Create a lost+found directory on a mounted ext2 filesystem.
Makes a list of file names and their DOS 8.3 equivalent.
Create a FIFO, block (buffered) special file, character (unbuffered) special file with the specified name.
Used to setup RAID device arrays.
Set up a Linux swap area.
Create a temporary file or directory.
Make an MD-DOS volume label.
Make an MS-DOS subdirectory.
Mount an MS-DOS disk.
Move or rename an MS-DOS file or subdirectory.
Mass move and rename files.
Show information about a Linux kernel module.
Add or remove modules from the Linux kernel.
Display content of a file page-by-page.
Browse or page through a text file.
Mount a filesystem.
NFS mount daemon.
Partition an MS-DOS disk.
Command-line mp3 player.
Similar to mpg123.
Remove an MS-DOS subdirectory.
Rename an existing MS-DOS file.
Show FTA clusters allocated to a file.
Control magnetic tape drive operation.
Utilities to access MS-DOS disks.
Tests and displays the mtools configuration files.
A network diagnostic tool.
Display contents of an MS-DOS file.
Move/rename files or directories.
Change protection mode and eject disk on Zip/Jaz drive.
Linux Commands – N
Internet domain name server.
Follow a pathname until a terminal point is found.
Name network interfaces based on MAC addresses.
Netcat utility. Arbitrary TCP and UDP connections and listens.
Show network information.
Rebuilds mail alias database.
Log-in to a new group.
Update/create new users in batch.
Special filesystem for controlling Linux NFS server.
List NFS statistics.
Run a program with modified scheduling priority.
Show numbered line while displaying the contents of a file.
List symbols from object files.
Run a command immune to hangups.
A program to send desktop notifications.
Used performs DNS queries. Read this article for more info.
Dynamic DNS update utility.
Linux Commands – O
Copy and translate object files.
Display information from object files.
Dump files in octal and other formats.
Operator access, allows system administrators to grant users access to certain root operations that require superuser privileges.
Open a file using its default application.
Start a program on a new virtual terminal (VT).
Linux Commands – P
Change user password.
Merge lines of files. Write to standard output, TAB-separated lines consisting of sqentially correspnding lines from each file.
Apply a patchfile (containing differences listing by diff program) to an original file.
Check if file names are valid or portable.
Perl 5 language interpreter.
List process IDs matching the specified criteria among all the running processes.
Find process ID of a running program.
Send ICMP ECHO_REQUEST to network hosts.
Send kill signal to processes based on name and other attributes.
Report memory map of a process.
Removes directory on the head of the directory stack and takes you to the new directory on the head.
Converts RPC program numbers to IP port numbers.
Shuts down the machine.
Point-to-point protocol daemon.
Convert (column or paginate) text files for printing.
Prints the current system mail aliases.
Printer capability database.
Show values of all or specified environment variables.
Show arguments formatted according to a specified format.
Report a snapshot of the current processes.
Produce a permuted index of file contents.
Appends a given directory name to the head of the stack and then cd to the given directory.
Monitor progress of data through a pipe.
Verify integrity of password files.
Creates shadow from passwd and an optionally existing shadow.
Show current directory.
Linux Commands – Q
Shows disk usage, and space limits for a user or group. Without arguments, only shows user quotas.
Used to scan a file system for disk usage.
Make changes to disk quotas.
Enable enforcement of filesystem quotas.
Disable enforcement of filesystem quotas.
Shows the report of quota system statistics gathered from the kernel.
Linux Commands – R
Start/stop RAID devices.
RAM disk device used to access the RAM disk in raw mode.
Show usage information for the RAM disk.
Generate index to the contents of an archive and store it in the archive.
Create and manage RAR file in Linux.
Respond to Reverse Address Resoultion Protocol (RARP) requests.
Remote copy command to copy files between remote computers.
Set system date and time by fetching information from a remote machine.
Set or query RAM disk size, image root device, or video mode.
Remote file distribution client, maintains identical file copies over multiple hosts.
Start the rdist server.
Read from a file descriptor.
Read lines from a file into an array variable.
Read/write compact disks.
Shows information about ELF (Executable and Linkable fomrat) files.
Display value of a symbolic link or canonical file name.
Mark functions and variables as read-only.
Restart the machine.
Accept/reject print jobs sent to a specified destination.
Synchronize remote files over email.
Rename one or more files.
Change priority of active processes.
Report disk usage and quotas for a specified filesystem.
Reinitialize the terminal.
Used to resize ext2/ext3/ext4 file systems.
Restore files from a backup created using dump.
Exit a shell function.
Show contents of a file, reversing the order of characters in every line.
Remote execution client for exec server.
Remote execution server.
View “richtext” on an ACSII terminal.
Used to connect a local host system with a remote host.
Acts as the server for rlogin. It facilitates remote login, and authentication based on privileged port numbers from trusted hosts.
Removes specified files and directories (not by default).
Handle remote mail received via uucp.
Used to remove empty directories.
A program to remove modules from Linux kernel.
Name server control utility. Send command to a BIND DNS server over a TCP connection.
Show/set flags for the kernel image.
Show/change IP routing table.
A daemon, invoked at boot time, to manage internet routing tables.
An RPC protocol compiler. Parse a file written in the RPC language.
Shows RPC information. Makes an RPC call to an RPC server and reports the findings.
A package manager for linux distributions. Originally developed for RedHat Linux.
Remote shell. Connects to a specified host and executes commands.
A daemon that acts as a server for rsh and rcp commands.
A versitile to for copying files remotely and locally.
Shows previous and current SysV runlevel.
Remote status display. Shows current system status for all or specified hosts on the local network.
Shows uptime and login details of the machines on the local network.
Shows the list of the users logged-in to the host or on all machines on the local network.
The rsuerd daemon acts as a server that responds to the queries from rsuers command.
Sends messages to all users on the local network.
Reports who is logged-in to the hosts on the local network.
Acts as a server for rwho and ruptime commands.
Linux Commands – S
Find SCSI and USB scanner and determine their device files.
Retrieve multiple images from a scanner equipped with an automatic document feeder (ADF).
Read images from image aquistion devices (scanner or camera) and display on standard output in PNM (Portable aNyMap) format.
Copy files between hosts on a network securely using SSH.
A window manager that enables multiple pseudo-terminals with the help of ANSI/VT100 terminal emulation.
Used to make a typescript of everything displayed on the screen during a terminal session.
Shows two files side-by-side and highlights the differences.
Stream editor for filtering and transforming text (from a file or a pipe input).
Synchronous I/O multiplexing.
It’s a mail router or an MTA (Mail Transfer Agent). sendmail support can send a mail to one or more recepients using necessary protocols.
Shows the current readings of all sensor chips.
Displays an incremental sequence of numbers from first to last.
Used to manipulate shell variables and functions.
Sets floppy disk parameters as provided by the user.
So, this was the compilation of different Linux commands. I hope this A-Z Linux commands might help you in some way. I’ve spent weeks curating these Linux commands from various sources and testing them. If you find some command missing or some discrepency, please give your valuable feedback and help me make the overall list better. I’ll be looking forward to it.
[…] Also Read: A To Z List of Linux Commands […]
Thanks for some other great article. Where else could anybody get
that thpe of information in such a perfect means of writing?
I have a presentation next week, and I am att the ook for such information.
Takee a look at my site 918 kiss App