Important Linux commands

All the tools you need as a server admin

It is difficult to compile a definitive list of the most important commands on Linux, as the importance of different commands can vary depending on the specific needs and tasks of the user.

Let's try it anyway! Here is our all-time favorite list of commonly used and important commands on Linux systems, that you should definitely know:

  • bash - widely used Unix shell
  • cat - concatenate and display files
  • cd - change the current directory
  • cp - copy files and directories
  • df - display information about free disk space
  • du - display the size of a file or directory
  • echo - display a message or the value of a variable
  • kill - send a signal to a process
  • less - view the contents of a file one page at a time
  • ls - list the contents of a directory
  • man - display the manual page for a command
  • mc - start the Midnight Commander
  • mkdir - create a new directory
  • mv - move or rename files and directories
  • ping - send a network test packet
  • ps - display information about running processes
  • pwd - print the current working directory
  • rm - delete files and directories
  • rsync - synchronize files between two systems
  • screen - run multiple "tabs" in one terminal session
  • ssh - connect to a remote host using the Secure Shell (SSH) protocol
  • sudo - execute a command as root
  • tail - display the last few lines of a file
  • top - display the top running processes

Here at CleverUptime, we are using all of those commands on a daily basis. They make our life easier and everybody knows them by heart.

If you read this far, you probably know already all the commands above and you're interested to learn about other commands that can help you as an admin.

Great! Here is the extended list:

  • alias - create a shortcut for a command
  • apt - install, remove, and manage software packages
  • apt-cache - search for and display information about software packages
  • apt-get - install, remove, and manage software packages
  • aria2c - download files using different protocols
  • at - execute a command at a specified time
  • awk - perform text processing and data manipulation tasks
  • certbot - manage SSL/TLS certificates from Let's Encrypt
  • chgrp - change the group ownership of a file or directory
  • chmod - change the permissions of a file or directory
  • chown - change the owner of a file or directory
  • comm - compare two sorted files line by line
  • crontab - schedule a command to be executed at a specified time
  • cryptsetup - encrypt block devices
  • curl - transfer data to or from a server
  • cut - extract fields or columns from a file
  • date - display the current date and time
  • dd - copy data between block devices
  • diff - compare two files and display the differences
  • dmesg - view the kernel's message buffer
  • dnf - install, remove, and manage software packages on Fedora-based systems
  • dpkg - install, remove, and manage Debian package files
  • emacs - edit text files with the Emacs editor
  • emerge - install, remove, and manage software packages on Gentoo-based systems
  • export - set the value of an environment variable
  • fdisk - manage partitions on hard drives and SSDs
  • fdupes - find and manage duplicate files
  • ffmpeg - manipulate multimedia files
  • find - search for files and directories
  • free - display information about free and used memory
  • git - a version control system
  • grep - search for a pattern of text within a file
  • gzip - compress or decompress files
  • halt - shut down the system
  • head - display the first few lines of a file
  • hostname - display the hostname of the system
  • ifconfig - display information about network interfaces
  • iostat - display information about the current I/O performance
  • ip - display and configure network interfaces
  • iptables - configure the kernel's firewall
  • join - join lines of two files on a common field
  • locate - search for files and directories using a database
  • lsmod - list loaded kernel modules
  • lsof - list open files
  • lspci - list PCI devices
  • lynx - browse the Web in a terminal window
  • mdadm - manage RAID devices
  • mkswap - create swap space
  • modprobe - add or remove kernel modules
  • more - view the contents of a file one page at a time
  • nano - edit text files with the Nano editor
  • nc - send data over the network
  • nft - configure the kernel's firewall
  • nice - run a command with a modified scheduling priority
  • nmap - scan for open ports and services
  • pacman - install, remove, and manage software packages on Arch Linux-based systems
  • paste - combine lines of files
  • patch - apply a diff file to an original file
  • pdftk - manipulate PDF files
  • printenv - display the value of an environment variable
  • pv - monitor the progress of a pipe
  • rclone - the swiss army knife for cloud storage
  • reboot - restart the system
  • renice - alter the priority of a running process
  • rmdir - delete an empty directory
  • route - modify the IP routing table
  • scp - copy files to or from a remote host using the Secure Copy (SCP) protocol
  • sed - perform text manipulation and substitution tasks
  • sftp - transfer files to or from a remote host using the Secure File Transfer Protocol (SFTP)
  • sh - launch the Bourne shell
  • shutdown - turn off or reboot the system
  • smartctl - show health and performance data of disk drives
  • sort - sort the lines of a file
  • ss - show information about network connections
  • sysctl - a tool for fine-tuning your system
  • tar - create and extract archive files
  • telnet - connect to a remote host using the Telnet protocol
  • timeout - run a command with a time limit
  • tmux - run multiple "tabs" in one terminal session
  • touch - create a new file or update the modification time of an existing file
  • traceroute - display the network path to a host
  • uname - display information about the system
  • uniq - remove duplicate lines from a file
  • unset - unset the value of an environment variable
  • unzip - extract files from a ZIP archive
  • update-alternatives - configure default programs for your system
  • uptime - display the current uptime of the system
  • vi - edit text files with the vi editor
  • vmstat - display performance statistics
  • wc - count the number of lines, words, and characters in a file
  • wget - download files from the Web
  • whereis - display the location of a command, file, or manual page
  • which - display the path of a command
  • who - display a list of users which are currently logged in
  • xz - compress or decompress files
  • yast - configure a SUSE based system
  • yum - install, remove, and manage software packages on Red Hat-based systems
  • zip - compress files into a ZIP archive
  • zstd - compress or decompress files
  • zypper - install, remove, and manage software packages on openSUSE-based systems

This is just a small selection of the many commands that are available on Linux systems. There are many other important and useful commands that may be specific to certain applications, programming languages, or tasks, and it is always a good idea to familiarize yourself with the commands that are relevant to your work.