If you had to choose the most essential Linux commands to troubleshoot servers, those you really can't live without, what would that list look like to you?
I came down to six essentials that are super important to locate and identify issues within Linux servers (not considering text editors or network commands). Meet the Singular Six!
My list includes:
These are like the basic toolchain for dealing with Linux servers, and I can't think of anything more essential than these six commands. Let's have a quick recap of each one of them, just in case.
This one just had to be on the list (pun intended). The
ls command is used to list files from a location. If you don't provide a directory to list, it will list the files from your current directory.
Lists all files from the current directory, including hidden files:
Lists all files from a directory:
ps command is used to list processes that are currently running on the system.
Shows current active processes initiated by the logged user:
Shows current active processes from all users:
cat command is used to output the full contents of a file. Many people don't know that you can also use
cat as an improptu editor to create or update text files.
Outputs content from a file named
file.txt in the current directory:
Redirects content from the standard input to a file, until an
EOF is entered:
cat > test.txt << EOF heredoc> line1 heredoc> line2 heredoc> line3 heredoc> EOF
If you run a
cat test.txt now, you'll get the following output:
line1 line2 line3
tail command is used to output only the final portion of a file, which makes it great for checking system logs. By default, it will output the last 10 lines of a file.
Show the lasts 10 lines of a file:
Shows the last 40 lines of a file:
tail -n 40 /var/log/nginx/error.log
Outputs new log lines in real time (blocks terminal - hit
CTRL+C to exit):
tail -f /var/log/nginx/error.log
kill command is used to terminate processes that are currently running on the server.
Kills a process using a PID (process ID can be obtained with
kill -9 1234
Kills all processes with a certain name:
killall -9 name
rm command is used to permanently delete files on a server.
Recursively removes all files from a certain location (includes directories):
rm -r location/
Recursively removes files from a location, but asks for confirmation (interactive) before removing:
rm -ri location/
Recursively removes all files from a location, won't ask for confirmation (force) and shows files being removed (verbose):
rm -rfv location/
Be careful with this one, because it won't give you a second chance to avoid removing important files (just make sure you're passing in the correct directory to be removed).
Now, I want to know: what is in your top six?