Top 20 Linux Commands You Must Know
Linux is one of the most powerful and widely used operating systems in the world. From developers and system administrators to everyday users, many people rely on Linux for its flexibility, performance, and open-source nature.
One of the most important parts of Linux is the terminal. The command line allows users to interact directly with the system, manage files, install software, and automate tasks efficiently.
If you are new to Linux or want to improve your command line skills, learning the most essential commands is the best place to start.
In this guide, we will explore 20 essential Linux commands every user should know. Each command includes a simple explanation and example so you can start using them immediately.
1. ls
The ls command is one of the most commonly used Linux commands. It is used
to list files and directories inside the current working directory. When working
in the terminal, ls helps you quickly see what files and folders are available.
The command also supports many options that provide additional information such as
file permissions, file size, ownership, and modification dates. Because of this,
ls is an essential command for navigating and inspecting the Linux filesystem.
For example, the -l option shows files in a detailed list format, while
-a displays hidden files that normally start with a dot (.).
# list files in the current directory ls # list files with detailed information ls -l # show hidden files ls -a # detailed list including hidden files ls -la
Using ls regularly helps you understand the structure of directories
and manage files more efficiently when working in the Linux terminal.
2. cd
The cd command stands for "change directory". It is used to navigate
between different directories in the Linux filesystem. When working in the terminal,
this command allows you to move from one folder to another quickly.
For example, if you want to access files inside your Documents folder, you can use
cd Documents. The terminal will then switch your current working
directory to that location.
The cd command also supports shortcuts. Using cd ..
moves you one directory up, while cd ~ takes you directly to your
home directory.
# go to a directory cd Documents # go back one directory cd .. # go to home directory cd ~ # go to root directory cd /
Understanding how to use cd effectively is essential for working
efficiently in the Linux terminal and navigating the filesystem with ease.
3. pwd
The pwd command stands for Print Working Directory.
It displays the full path of the current directory you are working in.
This is very useful when navigating through multiple folders in the
Linux terminal.
When you move between directories using commands like cd,
it can sometimes be difficult to remember your exact location in the
filesystem. The pwd command solves this by printing the
absolute path of your current directory.
System administrators and developers frequently use pwd
to verify their location before running commands that may modify files
or directories.
# show the current directory pwd # example output /home/user/Documents
Using pwd is especially helpful when working in deep
directory structures, as it clearly shows your current position in the
Linux filesystem.
4. mkdir
The mkdir command stands for make directory.
It is used to create new directories (folders) in the Linux filesystem.
This command is commonly used when organizing files, creating project
folders, or setting up a structured workspace.
For example, if you are starting a new project, you can create a
separate directory for it using mkdir. This helps keep
files organized and easier to manage.
The command also supports additional options such as creating multiple directories at once or creating nested directories automatically.
# create a new directory mkdir projects # create multiple directories mkdir dir1 dir2 dir3 # create nested directories mkdir -p projects/linux/tutorials
The mkdir command is an essential tool for managing
directories and organizing files efficiently when working in the
Linux terminal.
5. touch
The touch command is used to create new empty files in Linux.
It is one of the simplest ways to quickly generate a file directly from
the terminal without opening a text editor.
Developers and system administrators often use touch when
creating configuration files, scripts, or placeholder files inside a
project directory.
If the file already exists, the touch command will not modify
its contents. Instead, it updates the file's timestamp, including the
last access and modification time.
# create a new empty file touch file.txt # create multiple files touch file1.txt file2.txt file3.txt # create a file inside a directory touch Documents/notes.txt
The touch command is especially useful when quickly creating
files while working in the Linux terminal.
6. cp
The cp command stands for copy. It is used to copy files
and directories from one location to another in the Linux filesystem.
This command is very useful when you need to create backups, duplicate
files, or move data between directories while keeping the original file intact.
By default, cp copies a file from a source location to a destination.
You can also use additional options to copy entire directories or preserve
file attributes such as timestamps and permissions.
The -r option allows you to copy directories recursively, meaning
all files and subdirectories inside the directory will also be copied.
# copy a file cp file.txt backup.txt # copy a file to another directory cp file.txt Documents/ # copy a directory and its contents cp -r folder backup_folder
The cp command is commonly used when managing files in the
Linux terminal and is essential for safely duplicating important data.
7. mv
The mv command stands for move. It is used to move files
and directories from one location to another in the Linux filesystem.
Unlike the cp command, which creates a copy, mv
relocates the original file or directory.
The mv command is also commonly used to rename files.
By specifying a new name as the destination, you can quickly rename
a file without creating a duplicate.
This command is frequently used when organizing files, restructuring directories, or renaming project files directly from the Linux terminal.
# rename a file mv oldname.txt newname.txt # move a file to another directory mv file.txt Documents/ # move multiple files into a directory mv file1.txt file2.txt Documents/
Because mv modifies file locations directly, it is important
to double-check the destination path to avoid accidentally overwriting
existing files.
8. rm
The rm command stands for remove. It is used to delete
files and directories from the Linux filesystem. This command is commonly
used to clean up unnecessary files or remove outdated data directly from
the terminal.
Unlike many graphical file managers, files removed using rm
are permanently deleted and usually do not go to a recycle bin.
Because of this, it is important to use the command carefully to avoid
accidentally deleting important files.
The -r option allows you to remove directories and all of
their contents recursively, while the -f option forces
deletion without asking for confirmation.
# remove a file rm file.txt # remove multiple files rm file1.txt file2.txt # remove a directory and its contents rm -r folder # force remove without confirmation rm -rf folder
Because rm permanently deletes files, many Linux users
double-check the command before executing it to avoid accidental data loss.
9. cat
The cat command stands for concatenate. It is commonly
used to display the contents of a file directly in the terminal. This
command is very useful when you want to quickly read small files without
opening them in a text editor.
Besides displaying file contents, cat can also be used to
combine multiple files into one or create new files directly from the
terminal. Because of its simplicity and versatility, it is a frequently
used command in the Linux command line.
However, when working with very large files, using cat may
flood the terminal with too much text. In those cases, commands like
less are more suitable.
# display the contents of a file cat file.txt # display multiple files cat file1.txt file2.txt # combine files into one cat file1.txt file2.txt > combined.txt
The cat command is a quick and convenient way to inspect
file contents directly from the Linux terminal.
10. less
The less command is used to view the contents of a file one
page at a time in the Linux terminal. It is especially useful for
reading large files such as logs, configuration files, or long text
documents.
Unlike commands like cat, which print the entire file to
the terminal at once, less allows you to scroll through the
file interactively. This makes it easier to navigate and search through
large amounts of text.
Inside the less interface you can scroll using the arrow
keys, search for text using /, and exit the viewer by
pressing the q key.
# view a file page by page less file.txt # open a log file less /var/log/syslog # search inside less /search-term
The less command is commonly used by developers and system
administrators to inspect large files efficiently without overwhelming
the terminal output.
Why Learning Linux Commands Is Important
Learning Linux commands is one of the most valuable skills for developers, system administrators, and power users. The Linux terminal allows you to interact directly with the operating system, giving you more control and flexibility than graphical interfaces.
Many important tasks such as file management, system monitoring, software
installation, and server administration are performed using command-line
tools. By mastering essential commands like ls, cd,
mkdir, and grep, users can work faster and automate
many repetitive tasks.
Another advantage of learning Linux commands is portability. Most Linux distributions share the same core commands, which means once you learn them, you can use the same knowledge across servers, cloud systems, development environments, and personal computers.
Whether you are a beginner exploring Linux or an experienced developer, understanding these commands will significantly improve your efficiency and productivity when working in the terminal.
11. grep
The grep command is used to search for specific text patterns
inside files. It is one of the most powerful tools in the Linux terminal
for finding information quickly within large files or groups of files.
The name grep stands for Global Regular Expression Print.
It scans the contents of files and prints lines that match the search
pattern you provide.
Developers and system administrators frequently use grep
to search log files, configuration files, and source code. It is often
combined with other commands using pipes to filter command output.
# search for a word in a file grep "error" logfile.txt # search ignoring case grep -i "linux" file.txt # search in multiple files grep "hello" file1.txt file2.txt # search recursively in a directory grep -r "config" /etc/
The grep command is an essential tool for filtering text
and quickly locating information within files in the Linux terminal.
12. find
The find command is used to search for files and directories
within the Linux filesystem. It is one of the most powerful tools for
locating files based on different criteria such as name, type, size,
or modification time.
Unlike basic file searches in graphical interfaces, find
allows users to perform highly specific searches directly from the
terminal. This makes it extremely useful when working with large
directory structures.
The command starts searching from a specified directory and then scans all subdirectories recursively until it finds matches that satisfy the search conditions.
# find a file by name find . -name file.txt # search for all .txt files find . -name "*.txt" # find directories only find . -type d # search inside /etc directory find /etc -name "*.conf"
The find command is commonly used by developers and system
administrators to locate files quickly within complex directory
structures in the Linux filesystem.
13. chmod
The chmod command stands for change mode.
It is used to modify file and directory permissions in the Linux
filesystem. Permissions control who can read, write, or execute a file.
In Linux, each file has three types of permissions: read (r), write (w), and execute (x). These permissions can be assigned to the file owner, the group, and other users.
The chmod command allows you to add or remove permissions
using symbolic notation or numeric values. It is commonly used when
working with scripts, programs, or shared files.
# make a file executable chmod +x script.sh # remove write permission chmod -w file.txt # give full permissions to owner chmod 700 file.sh # set common permissions chmod 755 script.sh
The chmod command is especially important when working
with shell scripts or applications that require executable permissions
to run properly.
Linux File Permission Types
| Symbol | Name | Description |
|---|---|---|
| r | Read | Allows a user to view the contents of a file. |
| w | Write | Allows a user to modify or edit the file. |
| x | Execute | Allows a file to be run as a program or script. |
14. chown
The chown command stands for change ownership.
It is used to change the owner and group of a file or directory in the
Linux filesystem. File ownership is an important part of Linux security
because it controls which users can access or modify certain files.
Each file in Linux has an associated owner and group. The owner is
usually the user who created the file, while the group defines a set of
users who may share access to the file. The chown command
allows system administrators and users with sufficient permissions to
change this ownership.
This command is commonly used when managing servers, configuring applications, or adjusting permissions for shared files and directories.
# change file owner sudo chown user file.txt # change owner and group sudo chown user:group file.txt # change ownership of a directory sudo chown user folder/ # change ownership recursively sudo chown -R user:group folder/
The chown command is especially useful when configuring
servers or fixing permission issues where files need to be assigned to
a different user or group.
14. chown
The chown command stands for change ownership.
It is used to change the owner and group of a file or directory in the
Linux filesystem. File ownership is an important part of Linux security
because it controls which users can access or modify certain files.
Each file in Linux has an associated owner and group. The owner is
usually the user who created the file, while the group defines a set of
users who may share access to the file. The chown command
allows system administrators and users with sufficient permissions to
change this ownership.
This command is commonly used when managing servers, configuring applications, or adjusting permissions for shared files and directories.
# change file owner sudo chown user file.txt # change owner and group sudo chown user:group file.txt # change ownership of a directory sudo chown user folder/ # change ownership recursively sudo chown -R user:group folder/
The chown command is especially useful when configuring
servers or fixing permission issues where files need to be assigned to
a different user or group.
16. du
The du command stands for disk usage.
It is used to estimate and display the amount of disk space used by
files and directories in the Linux filesystem.
While the df command shows overall disk usage for entire
filesystems, the du command focuses on the size of
individual directories and files. This makes it useful when trying to
identify which folders are consuming the most storage space.
The -h option displays file sizes in a human-readable
format such as KB, MB, or GB. The -s option shows the total
size of a directory instead of listing all files individually.
# show disk usage of current directory du # show sizes in human readable format du -h # show total size of a directory du -sh folder # show sizes of all directories du -h --max-depth=1
The du command is especially helpful when troubleshooting
disk space issues or identifying large directories that may need to be
cleaned up.
17. top
The top command is used to display real-time information
about running processes on a Linux system. It provides a dynamic view
of system resource usage, including CPU usage, memory consumption,
running processes, and system load.
System administrators and developers often use top to
monitor system performance and identify processes that are consuming
too many resources. This can help troubleshoot performance issues
or locate programs that are slowing down the system.
The interface updates continuously and shows a list of processes sorted by resource usage. You can also interact with the interface to sort, filter, or manage processes directly from the terminal.
# display running processes top # quit top q # sort processes by memory usage Shift + M
The top command is one of the most useful tools for
monitoring system activity and diagnosing performance problems
in Linux environments.
18. kill
The kill command is used to terminate running processes
in the Linux operating system. Every running program has a unique
identifier called a Process ID (PID), which can be used
to control or stop the process.
System administrators often use kill when a program becomes
unresponsive or consumes too many system resources. By sending a signal
to the process, the command instructs the system to stop or control the
program.
The most common signal is SIGTERM, which gracefully stops
a process. In more severe situations, SIGKILL can be used
to forcefully terminate a process immediately.
# terminate a process by PID kill 1234 # force kill a process kill -9 1234 # send a terminate signal kill -15 1234
The kill command is an important tool for managing system
processes and stopping programs that may affect system performance.
19. wget
The wget command is a powerful command-line utility used to
download files from the internet in Linux. It supports downloading files
over HTTP, HTTPS, and FTP protocols.
Unlike downloading files through a web browser, wget allows
users to download files directly from the terminal. It is commonly used
by developers and system administrators to download software packages,
scripts, and datasets.
One of the advantages of wget is that it supports
resumable downloads, meaning interrupted downloads can
continue from where they stopped.
# download a file wget https://example.com/file.zip # download and save with a custom name wget -O file.zip https://example.com/file.zip # resume an interrupted download wget -c https://example.com/file.zip
The wget command is widely used for automated downloads and
script-based installations in Linux environments.
20. curl
The curl command stands for Client URL.
It is a powerful command-line tool used to transfer data to or from a
server using various network protocols such as HTTP, HTTPS, FTP, and
more.
Developers commonly use curl to test APIs, download files,
and interact with web services directly from the Linux terminal. It is
also widely used in scripts and automation tasks.
Unlike wget, which is mainly designed for downloading
files, curl is often used for sending requests to servers
and retrieving responses.
# fetch data from a URL curl https://example.com # download a file curl -O https://example.com/file.zip # send a POST request curl -X POST https://example.com/api
The curl command is an essential tool for developers and
system administrators who need to interact with web services and APIs
directly from the terminal.
Conclusion
The Linux command line is one of the most powerful tools available to developers, system administrators, and everyday users. By learning essential Linux commands, you can manage files, monitor system resources, and perform complex tasks much faster than using graphical interfaces.
In this guide, we covered 20 essential Linux commands
that every user should know. Commands such as ls,
cd, and pwd help with navigation, while tools
like cp, mv, and rm allow you to
manage files efficiently from the terminal.
More advanced commands like grep, find,
top, and curl provide powerful capabilities
for searching data, monitoring system processes, and interacting with
web services directly from the command line.
Whether you are new to Linux or looking to improve your terminal skills, mastering these commands will help you work more efficiently and gain better control over your system.
As you continue exploring Linux, the command line will become one of your most valuable tools for development, system administration, and automation.
If you are new to Linux, you may also enjoy our guide on Why You Should Switch to Linux in 2026 , where we explore the benefits of using Linux for developers and everyday users.
Frequently Asked Questions
What are Linux commands?
Linux commands are instructions entered in the terminal that allow users to interact with the operating system. These commands can be used to manage files, monitor system performance, install software, and control different aspects of the Linux environment.
Why should beginners learn Linux commands?
Learning Linux commands helps beginners understand how the operating system works and allows them to perform tasks more efficiently. The command line also provides powerful tools that are commonly used in development, server management, and system administration.
Which Linux commands are most important for beginners?
Some of the most important Linux commands for beginners include
ls, cd, pwd, mkdir,
cp, mv, and rm. These commands are
essential for navigating directories and managing files in the Linux
filesystem.
Are Linux commands the same across all distributions?
Most basic Linux commands are the same across different Linux distributions such as Ubuntu, Debian, Fedora, and Arch Linux. While package management tools may differ, the core command-line utilities remain consistent.
How can I learn more Linux commands?
You can learn more Linux commands by reading documentation, exploring
the manual pages using the man command, and practicing in
the terminal. Regular practice is the best way to become comfortable
with the Linux command line.

No comments:
Post a Comment