DEV Community

Harish Kumar
Harish Kumar

Posted on

The Ultimate Linux Command Line Cheatsheet: Essential Commands for Beginners and Power Users

The Linux command line is an incredibly versatile tool that empowers users to interact with their systems in ways that graphical interfaces often can’t match. Mastering the command line is essential for system administrators, developers, and even casual Linux users who want to get more out of their systems. This article provides an extensive, easy-to-follow Linux cheatsheet covering essential commands and tools, from beginner basics to advanced management.


1. Why Use the Linux Command Line?

The command line offers direct control over the Linux operating system, often providing more flexibility and speed than graphical user interfaces (GUIs). It’s particularly useful for automating tasks, managing servers, and performing batch processing of files. Once you become familiar with it, the Linux terminal is a tool you can rely on to execute powerful actions in just a few keystrokes.


2. Getting Started: Basic Commands

When starting with Linux, these are the first commands every user should know. They help you navigate and perform basic file operations.

Command Description
pwd Prints the current working directory
ls Lists files and directories
cd Changes the directory
clear Clears the terminal screen
man Displays the manual page for a command
exit Closes the terminal session
  • Example: To navigate into a folder named Documents, you’d use: $ cd Documents

3. Navigating the File System

Understanding how to move around the Linux file system is crucial. Use these commands to navigate directories and find files.

Command Description
cd /path/to/dir Changes directory to the specified path
ls -a Lists all files, including hidden ones
tree Displays directory structure in tree format
find Finds files or directories
locate Quickly searches for a file by name
  • Tip: If you can’t find a command, use man command_name to pull up its documentation.

4. Managing Files and Directories

Creating, deleting, and copying files or directories are among the most common tasks you’ll perform. Here's a cheatsheet for those basic actions:

Command Description
mkdir Creates a new directory
touch Creates a new, empty file
cp source dest Copies a file or directory
mv source dest Moves or renames a file or directory
rm file Deletes a file
rmdir Deletes an empty directory
rm -r dir Deletes a directory and its contents

Example: To create a directory and move a file into it, use:

$ mkdir new_folder
$ mv file.txt new_folder/
Enter fullscreen mode Exit fullscreen mode

5. Viewing and Editing Files

Linux provides several ways to view and manipulate text files directly from the terminal. These commands will help you manage file contents efficiently.

Command Description
cat file Displays the content of a file
head -n 5 file Shows the first 5 lines of a file
tail -n 5 file Shows the last 5 lines of a file
nano file Opens the file in the Nano text editor
vim file Opens the file in the Vim text editor
  • Pro Tip: For simple edits, nano is beginner-friendly, while vim offers more advanced features.

6. Understanding Permissions and Ownership

In Linux, file permissions control who can read, write, or execute a file. You can view and modify these permissions using the following commands:

Command Description
ls -l Lists files with their permissions
chmod 755 file Changes the permission of a file (read/write/execute)
chown user:group file Changes the owner and group of a file
umask 022 Sets the default permissions for new files

Tip: To give a script executable permission, use:

$ chmod +x script.sh
Enter fullscreen mode Exit fullscreen mode

7. Networking Tools and Commands

Networking is a critical part of using Linux, especially on servers. Here are some useful networking commands:

Command Description
ifconfig Displays network interface information
ping Sends packets to test connectivity
wget Downloads files from the web
curl Fetches data from a URL
netstat Shows active network connections
ssh user@host Connects to a remote server via SSH

Example: To test whether your connection to a server is working:

$ ping google.com
Enter fullscreen mode Exit fullscreen mode

8. Monitoring and Managing Processes

Process management allows you to control running applications or services. These commands help you view, manage, or kill processes:

Command Description
ps aux Lists all running processes
top Displays running processes and CPU usage
kill PID Terminates a process using its PID
pkill process Terminates all processes with a specific name
htop Interactive process viewer
  • Tip: Use ps aux | grep process_name to find the PID of a specific process.

9. Managing Software Packages

Package management is essential for installing, updating, and removing software on your Linux system. Different distributions use different tools:

Debian-based (Ubuntu):

Command Description
sudo apt update Updates the package list
sudo apt upgrade Upgrades installed packages
sudo apt install package Installs a specific package
sudo apt remove package Removes a specific package

Red Hat-based (CentOS, Fedora):

Command Description
sudo yum update Updates the system
sudo yum install package Installs a package
sudo yum remove package Removes a package

10. Text Processing and File Manipulation

Linux includes powerful tools to process and manipulate text files. These commands are especially useful for automation and scripting:

Command Description
grep "pattern" file Searches for a pattern in a file
awk '{print $1}' file Extracts fields from a file
sed 's/old/new/g' file Replaces text in a file
cut -d' ' -f1 file Cuts specific columns from a file
sort file Sorts lines in a file alphabetically

Pro Tip: Combine commands using pipes (|) for more powerful processing. For example, grep "error" file | sort | uniq.


11. Advanced Commands for Power Users

For those who need to manage systems or automate tasks, here are some advanced commands that give you even more control:

Command Description
tar -czvf archive.tar.gz /dir Creates a compressed archive
cron Schedules tasks to run at regular intervals
rsync Synchronizes files across systems
systemctl start/stop service Manages services on systemd systems
iptables Configures the firewall

Example: To schedule a task to run every day at 5 PM, add a cron job:

$ crontab -e
# Add the following line:
0 17 * * * /path/to/script.sh
Enter fullscreen mode Exit fullscreen mode

Conclusion

The Linux command line is packed with tools that let you control every aspect of your system. Whether you’re just starting out or are an experienced user, a cheatsheet like this can help you remember essential commands and improve your efficiency. Keep practicing, and soon these commands will become second nature!

.

What is Ctrl+Alt+Cheat VSCode Extension?

👉 Download Ctrl+Alt+Cheat today and start coding like a pro!

.

Top comments (3)

Collapse
 
jimmymcbride profile image
Jimmy McBride

I love tar. I have a tar file that's all my dot files. So I have a script that downloads, unzips the tar file and add's all my configurations where they need to go, in addition to downloading all the programs that I normally use. Makes setting up a new distro super easy!

Collapse
 
tromineo profile image
Monteiro Steil

Really good list. Basically what you would use on a daily basis.
I'd also add

tar -xvf file.tar
to extract at the same level you're at

Ctrl+Q
to 'unfreeze' vim (you know what im saying)

Collapse
 
manjeetsingh230 profile image
Manjeet Singh

Amazing very useful article,