As a Linux administrator, you probably spend a lot of time working at the command line. Whether you’re managing files, monitoring system performance, or troubleshooting network issues, the command line is an essential tool for getting the job done. This article will introduce you to the top 10 command-line tools that every Linux administrator should know.

1. Bash

Bash is typically the default shell for most Linux distributions and is an essential tool for working with the command line. Using Bash, you can execute commands, create scripts, and automate system tasks.

Table of Contents

    A few of the most common Bash commands include cd (to change directories), ls (to list files), rm (to delete files), and mkdir (to make directories).

    Make sure to read our beginner article on the Bash shell and how you can install Bash on Windows 11.

    2. SSH

    SSH (Secure Shell) is a network protocol used for secure remote access to Linux systems. With SSH, you can connect to a remote Linux system over the internet and execute commands as if sitting at the local console. You can also use SSH to connect to a remote computer, i.e. one Mac to another Mac via SSH.

    Some common SSH commands include ssh (to connect to a remote system), scp (to transfer files between systems), and sftp (to transfer files over a secure connection).

    3. Grep

    Grep is a command-line utility used for text pattern searching and manipulation. With Grep, you can search for specific text strings in files and directories, or in the output of other commands.

    Common Grep commands include grep (to search for text strings), grep -r (to search recursively), and grep -v (to search for lines that don’t match a pattern).

    Here’s an example of how to kill a process in macOS using grep as a helper utility.

    4. Awk

    Awk is a versatile command-line utility used for text processing and manipulation. With Awk, you can perform complex text transformations, extract data from text files, and generate reports.

    A couple of common Awk commands include awk ‘{print $2}’ (to extract the second column in a file), awk ‘{sum+=$1} END {print sum}’ (to calculate the sum of a column), and awk ‘/pattern/ {print $1}’ (to extract data that matches a pattern).

    Above, I used the ps -e > processes.txt command to quickly create a txt file with a list of processes in four columns. I then used awk -F ‘ ‘ ‘{print $1}’ processes.txt to extract out the 1st column. The two single quotes with a space right after the -F parameter is to tell the command that spaces separate the fields. You can replace that with whatever separator is in your file.

    5. Sed

    Sed is also a powerful tool used for text processing and manipulation, similar to Awk. With Sed, you can do text transformations, search and replace text strings, and filter and select lines of text.

    Useful Sed commands include sed ‘s/string/replacement/’ (to replace a string with another string), sed ‘/pattern/d’ (to delete lines that match a pattern), and sed -n ‘/pattern/p’ (to print lines that match a pattern).

    6. Top

    Top is a command-line utility used for system performance monitoring and management. With Top, you can view real-time information about system processes, CPU usage, memory usage, and more.

    Some good Top commands include top (to view the system summary), top -p pid (to view the summary of a specific process), and top -H (to view threads of a process).

    7. Netstat

    Netstat is a command-line utility used for network monitoring and management. With Netstat, you can view information about network connections, routing tables, and network interfaces. You may have to install the netstat tools first by typing sudo apt install net-tools.

    Helpful Netstat commands include netstat -a (to view all active network connections), netstat -r (to view the routing table), and netstat -i (to view network interface statistics).

    Netstat is also a tool that works on Windows PCs. Read our article here on how to use Netstat in Windows.

    8. Tcpdump

    Tcpdump is a command-line utility used for network traffic analysis and troubleshooting. With Tcpdump, you can capture and analyze network packets, filter traffic by protocol and port number, and identify potential network issues.

    Some common Tcpdump commands include tcpdump -i eth0 (to capture traffic on the eth0 interface), tcpdump -nn port 80 (to capture HTTP traffic), and tcpdump -r file.pcap (to read a captured file).

    9. Vim

    Vim is a command-line text editor that Linux administrators widely use. With Vim, you can create and edit text files, navigate and manipulate text, and use powerful search and replace features.

    Simple Vim commands include i (to enter insert mode), ESC (to exit insert mode), :w (to save changes), and :q (to quit Vim).

    10. Rsync

    Rsync is a command-line utility used for file synchronization and backup. With Rsync, you can copy files between local and remote systems, synchronize directories, and perform incremental backups.

    Some basic Rsync commands include rsync -avz (to copy files with compression and preservation of file attributes), rsync -r (to synchronize directories recursively), and rsync -b (to perform backups with file versioning).

    To conclude, these ten handy command-line tools are essential for Linux administrators. By mastering these tools, you can work quickly, troubleshoot issues effectively, and automate system tasks efficiently. So if you’re new to Linux administration, start by learning these tools and begin to use them regularly. With practice and patience, you’ll become a command-line expert in no time!