Essential Linux Commands for Daily Use
Linux, the powerhouse of operating systems, is renowned for its robustness, security, and flexibility, making it a favorite among developers, system administrators, and tech enthusiasts. Here, we explore 50 common Linux commands that are indispensable for daily operations, providing a detailed explanation and three practical examples for each to enhance your command-line proficiency.
1. ls
– List Directory Contents
Explanation: The ls
command is used to view the contents of a directory.
- Example 1:
ls
– Lists all files and directories in the current directory. - Example 2:
ls -l
– Lists files with detailed information like permissions, number of links, owner, group, size, and time of last modification. - Example 3:
ls -a
– Lists all entries including hidden files starting with ‘.’.
2. cd
– Change Directory
Explanation: cd
is used to change the current directory.
- Example 1:
cd /home
– Changes the directory to/home
. - Example 2:
cd ..
– Moves one directory up. - Example 3:
cd
– Takes you to the home directory.
3. pwd
– Print Working Directory
Explanation: Displays the path of the current directory.
- Example 1:
pwd
– Outputs the full path of the current directory. - Example 2:
pwd
– Same as above, aspwd
does not vary much in usage. - Example 3:
pwd
– Again, outputs the current directory path.
4. mkdir
– Make Directory
Explanation: Creates a new directory.
- Example 1:
mkdir new_folder
– Creates a new directory namednew_folder
. - Example 2:
mkdir -p path/to/new_folder
– Creates all non-existent parent directories leading up to the specified directory. - Example 3:
mkdir dir1 dir2 dir3
– Creates multiple directories at once.
5. rmdir
– Remove Directory
Explanation: Deletes empty directories.
- Example 1:
rmdir old_folder
– Removes an empty directory namedold_folder
. - Example 2:
rmdir dir1 dir2 dir3
– Removes multiple empty directories. - Example 3:
rmdir -p path/to/empty_folder
– Removes both the directory and its empty parents.
6. rm
– Remove Files or Directories
Explanation: Deletes files or directories.
- Example 1:
rm file.txt
– Deletesfile.txt
. - Example 2:
rm -r folder
– Recursively deletes a directory and its contents. - Example 3:
rm -f file.txt
– Forcefully removesfile.txt
, ignoring non-existent files and prompting.
7. cp
– Copy Files or Directories
Explanation: Copies files or directories.
- Example 1:
cp file1.txt file2.txt
– Copiesfile1.txt
tofile2.txt
. - Example 2:
cp -r dir1 dir2
– Recursively copiesdir1
and its contents todir2
. - Example 3:
cp file.txt /path/to/destination/
– Copiesfile.txt
to the specified directory.
8. mv
– Move or Rename Files or Directories
Explanation: Moves or renames files or directories.
- Example 1:
mv file1.txt new_file.txt
– Renamesfile1.txt
tonew_file.txt
. - Example 2:
mv file.txt /path/to/destination/
– Movesfile.txt
to a different directory. - Example 3:
mv dir1 dir2
– Movesdir1
intodir2
or renames it ifdir2
does not exist.
9. chmod
– Change File Modes or Access Permissions
Explanation: Modifies the access permissions of files or directories.
- Example 1:
chmod 755 file.txt
– Sets the permissions offile.txt
to 755. - Example 2:
chmod +x script.sh
– Makesscript.sh
executable. - Example 3:
chmod -R 644 folder/
– Recursively sets the permissions of all files infolder
to 644.
10. chown
– Change File Owner and Group
Explanation: Changes the owner and/or group of files or directories.
- Example 1:
chown user file.txt
– Changes the owner offile.txt
touser
. - Example 2:
chown user:group file.txt
– Changes both the owner and group offile.txt
. - Example 3:
chown -R user:group folder
– Recursively changes the owner and group offolder
and its contents.
11. touch
– Create Empty Files or Modify Timestamps
Explanation: Used to create a new empty file or update the timestamps of existing files.
- Example 1:
touch newfile.txt
– Creates an empty file namednewfile.txt
. - Example 2:
touch -a file.txt
– Updates the access time offile.txt
. - Example 3:
touch -m file.txt
– Updates the modification time offile.txt
.
12. cat
– Concatenate and Display Files
Explanation: Displays the contents of files and can concatenate multiple files.
- Example 1:
cat file.txt
– Displays the content offile.txt
. - Example 2:
cat file1.txt file2.txt > combined.txt
– Concatenatesfile1.txt
andfile2.txt
intocombined.txt
. - Example 3:
cat -n file.txt
– Displays the content offile.txt
with line numbers.
13. grep
– Search Text Using Patterns
Explanation: Searches for patterns in text using regular expressions.
- Example 1:
grep "pattern" file.txt
– Searches for “pattern” infile.txt
. - Example 2:
grep -i "pattern" file.txt
– Case-insensitive search for “pattern”. - Example 3:
grep -r "pattern" .
– Recursively search for “pattern” in all files in the current directory.
14. find
– Search for Files in a Directory Hierarchy
Explanation: Locates files in a directory hierarchy based on conditions specified.
- Example 1:
find /path -name "file.txt"
– Finds all files namedfile.txt
under/path
. - Example 2:
find /path -type d
– Finds all directories under/path
. - Example 3:
find /path -size +100M
– Finds files larger than 100MB in/path
.
15. df
– Report File System Disk Space Usage
Explanation: Displays the amount of disk space used and available on file systems.
- Example 1:
df
– Displays disk space usage of all mounted file systems. - Example 2:
df -h
– Displays disk space in human-readable format. - Example 3:
df -i
– Displays inode information.
16. du
– Estimate File Space Usage
Explanation: Estimates and displays the disk space used by files and directories.
- Example 1:
du
– Shows the disk usage of the current directory. - Example 2:
du -h
– Shows disk usage in human-readable format. - Example 3:
du -sh *
– Shows the size of all files and directories in the current directory in a summarized format.
17. ps
– Report a Snapshot of Current Processes
Explanation: Provides information about currently running processes.
- Example 1:
ps
– Displays your processes. - Example 2:
ps -aux
– Displays all running processes. - Example 3:
ps -ef
– Displays a full format listing.
18. kill
– Send a Signal to a Process
Explanation: Used to send signals to processes, typically for stopping the process.
- Example 1:
kill 1234
– Sends the SIGTERM signal to process with PID 1234. - Example 2:
kill -9 1234
– Sends the SIGKILL signal to forcefully stop the process with PID 1234. - Example 3:
kill -SIGINT 1234
– Sends the SIGINT signal to process with PID 1234.
19. top
– Task Manager
Explanation: Displays real-time view of running system processes.
- Example 1:
top
– Starts top with the default settings. - Example 2:
top -u username
– Displays processes owned byusername
. - Example 3:
top -i
– Starts top with idle processes omitted.
20. man
– Interface to the System Reference Manuals
Explanation: Provides detailed documentation about commands and other aspects of the Linux system.
- Example 1:
man ls
– Displays the manual page for thels
command. - Example 2:
man grep
– Displays the manual page for thegrep
command. - Example 3:
man man
– Displays the manual page for theman
command itself.
21. sudo
– Execute a Command as Another User
Explanation: Allows a permitted user to execute a command as the superuser or another user.
- Example 1:
sudo apt update
– Runs the update command as superuser. - Example 2:
sudo -u user command
– Runscommand
asuser
. - Example 3:
sudo visudo
– Edits the sudoers file to modify permissions.
22. apt-get
– APT Package Handling Utility
Explanation: Used on Debian-based systems to handle packages (install, update, remove).
- Example 1:
sudo apt-get update
– Updates package lists. - Example 2:
sudo apt-get install nginx
– Installs the nginx package. - Example 3:
sudo apt-get remove nginx
– Removes the nginx package.
23. wget
– Non-interactive Network Downloader
Explanation: Downloads files from the web.
- Example 1:
wget https://example.com/file.zip
– Downloadsfile.zip
from the specified URL. - Example 2:
wget -O filename.zip https://example.com/file.zip
– Downloads and renames the file tofilename.zip
. - Example 3:
wget -c https://example.com/file.zip
– Continues a partially downloaded file.
24. curl
– Transfer Data from or to a Server
Explanation: Used to transfer data from or to a server using various protocols.
- Example 1:
curl https://example.com
– Fetches the content of a webpage. - Example 2:
curl -o local.html https://example.com
– Saves the webpage tolocal.html
. - Example 3:
curl -d "param1=value1¶m2=value2" -X POST https://example.com
– Sends POST data to the server.
25. echo
– Display a Line of Text
Explanation: Outputs the strings it is being passed as arguments.
- Example 1:
echo "Hello, world!"
– Prints “Hello, world!” to the terminal. - Example 2:
echo $HOME
– Displays the path of the home directory. - Example 3:
echo -n "Hello, world!"
– Prints “Hello, world!” without a trailing newline.
26. tail
– Output the Last Part of Files
Explanation: Displays the last part of a file to the terminal.
- Example 1:
tail file.txt
– Displays the last 10 lines offile.txt
. - Example 2:
tail -f file.txt
– Continuously monitorsfile.txt
for new lines and displays them. - Example 3:
tail -n 20 file.txt
– Displays the last 20 lines offile.txt
.
27. head
– Output the First Part of Files
Explanation: Displays the first part of a file to the terminal.
- Example 1:
head file.txt
– Displays the first 10 lines offile.txt
. - Example 2:
head -n 5 file.txt
– Displays the first 5 lines offile.txt
. - Example 3:
head -c 100 file.txt
– Displays the first 100 characters offile.txt
.
28. tar
– Archive Utility
Explanation: Used to store multiple files in a single archive file and to extract files from the archive.
- Example 1:
tar -cvf archive.tar files/
– Creates an archive of thefiles/
directory. - Example 2:
tar -xvf archive.tar
– Extracts the contents ofarchive.tar
. - Example 3:
tar -czvf archive.tar.gz files/
– Creates a compressed archive using gzip.
29. zip
– Package and Compress Files
Explanation: Compresses files and directories into a zip file.
- Example 1:
zip archive.zip file1 file2
– Compressesfile1
andfile2
intoarchive.zip
. - Example 2:
zip -r archive.zip folder/
– Recursively compressesfolder/
and its contents intoarchive.zip
. - Example 3:
zip -e secure.zip file.txt
– Creates a password-protected zip file.
30. unzip
– Extract Files from ZIP Archives
Explanation: Extracts files from ZIP archives.
- Example 1:
unzip archive.zip
– Extracts files fromarchive.zip
. - Example 2:
unzip archive.zip -d destination/
– Extracts files into thedestination/
directory. - Example 3:
unzip -l archive.zip
– Lists the contents ofarchive.zip
without extracting.
31. alias
– Create Aliases for Commands
Explanation: Allows you to create shortcuts for long commands or frequently used command sequences.
- Example 1:
alias ll='ls -l'
– Creates an aliasll
forls -l
. - Example 2:
alias rm='rm -i'
– Makesrm
command interactive by default. - Example 3:
unalias ll
– Removes the aliasll
.
32. diff
– Compare Files Line by Line
Explanation: Compares the contents of two files line by line.
- Example 1:
diff file1.txt file2.txt
– Shows differences betweenfile1.txt
andfile2.txt
. - Example 2:
diff -u file1.txt file2.txt
– Displays differences in a unified format. - Example 3:
diff -r dir1 dir2
– Recursively compares files in two directories.
33. chmod
– Change File Permissions
Explanation: Modifies the file access permissions.
- Example 1:
chmod 755 script.sh
– Sets read, write, and execute permissions for the owner, and read and execute permissions for others. - Example 2:
chmod +x script.sh
– Adds execute permission toscript.sh
. - Example 3:
chmod -R 644 folder/
– Sets read and write permissions for the owner, and read for others on all files in the folder.
34. chgrp
– Change Group Ownership
Explanation: Changes the group ownership of a file or directory.
- Example 1:
chgrp admin file.txt
– Changes the group ownership offile.txt
to admin. - Example 2:
chgrp -R admin folder
– Recursively changes the group ownership offolder
and its contents to admin. - Example 3:
chgrp users file.txt
– Changes the group ownership offile.txt
to users.
35. hostname
– Show or Set the System’s Host Name
Explanation: Displays or sets the hostname of the system.
- Example 1:
hostname
– Displays the current hostname. - Example 2:
hostname new-hostname
– Sets the system’s hostname tonew-hostname
. - Example 3:
hostname -f
– Displays the fully qualified domain name (FQDN).
36. ping
– Check Network Connectivity
Explanation: Sends ICMP ECHO_REQUEST packets to network hosts.
- Example 1:
ping google.com
– Checks connectivity to google.com. - Example 2:
ping -c 4 google.com
– Sends 4 packets to google.com and then stops. - Example 3:
ping -i 2 google.com
– Sends a packet every 2 seconds to google.com.
37. netstat
– Network Statistics
Explanation: Displays network connections, routing tables, interface statistics, masquerade connections, and multicast memberships.
- Example 1:
netstat -a
– Shows all active connections and listening ports. - Example 2:
netstat -r
– Displays the kernel routing table. - Example 3:
netstat -tulpen
– Shows a detailed table of all current connections.
38. scp
– Secure Copy
Explanation: Copies files between hosts on a network using SSH for data transfer.
- Example 1:
scp file.txt user@remote:/path
– Copiesfile.txt
to a remote host. - Example 2:
scp user@remote:/path/file.txt ./
– Copies a file from a remote host to the local machine. - Example 3:
scp -r folder user@remote:/path
– Recursively copies a folder to a remote host.
39. ssh
– Secure Shell
Explanation: Connects to a remote machine securely.
- Example 1:
ssh user@host
– Logs intohost
asuser
. - Example 2:
ssh -p 2222 user@host
– Connects tohost
on port 2222. - Example 3:
ssh -i keyfile user@host
– Uses a private key file for the connection.
40. rsync
– Remote Sync
Explanation: Efficiently transfers and synchronizes files across computer systems.
- Example 1:
rsync -a /local/dir remote:/remote/dir
– Synchronizes directories between local and remote systems. - Example 2:
rsync -avz --delete /local/dir remote:/remote/dir
– Synchronizes while deleting extraneous files from the destination. - Example 3:
rsync -a --progress /local/dir remote:/remote/dir
– Synchronizes with progress output.
41. uname
– Print System Information
Explanation: Displays important system information.
- Example 1:
uname -a
– Displays all system information. - Example 2:
uname -r
– Displays the kernel release. - Example 3:
uname -m
– Displays the machine hardware name.
42. who
– Show Who is Logged On
Explanation: Displays who is currently logged on to the system.
- Example 1:
who
– Lists logged-in users. - Example 2:
who -H
– Lists logged-in users with column headers. - Example 3:
who am i
– Displays your current login information.
43. uptime
– Tell How Long the System Has Been Running
Explanation: Shows how long the system has been running along with the number of users and the system load averages.
- Example 1:
uptime
– Displays the current uptime. - Example 2:
uptime -p
– Shows uptime in a pretty format. - Example 3:
uptime --since
– Shows the time since the system was last booted.
44. free
– Display Memory Usage
Explanation: Shows the total amount of free and used physical and swap memory in the system.
- Example 1:
free
– Displays memory usage. - Example 2:
free -m
– Displays memory usage in megabytes. - Example 3:
free -h
– Displays memory usage in human-readable form.
45. watch
– Execute a Program Periodically
Explanation: Executes a program periodically, showing output fullscreen.
- Example 1:
watch -n 1 date
– Displays the current time every second. - Example 2:
watch -d ls -l
– Highlights changes between successive updates ofls -l
. - Example 3:
watch -n 5 'df -h'
– Checks disk space usage every 5 seconds.
46. crontab
– Schedule Periodic Background Jobs
Explanation: Manages cron jobs for time-based job scheduling.
- Example 1:
crontab -l
– Lists cron jobs for the current user. - Example 2:
crontab -e
– Edits the current user’s crontab. - Example 3:
crontab -r
– Removes the current user’s crontab.
47. date
– Display or Set the System Date and Time
Explanation: Displays or sets the system’s date and time.
- Example 1:
date
– Displays the current date and time. - Example 2:
date +%Y-%m-%d
– Displays the date in YYYY-MM-DD format. - Example 3:
sudo date --set="2024-01-01 12:00:00"
– Sets the system date and time.
48. env
– Display or Modify the Environment
Explanation: Displays, sets, or removes environment variables.
- Example 1:
env
– Lists all environment variables. - Example 2:
env PATH
– Displays the value of the PATH variable. - Example 3:
env -i bash
– Starts a new instance of bash with a clean environment.
49. mount
– Mount a File System
Explanation: Attaches a file system into the file system hierarchy.
- Example 1:
mount /dev/sda1 /mnt
– Mounts the device/dev/sda1
at/mnt
. - Example 2:
mount -o remount,rw /
– Remounts the root file system as read-write. - Example 3: `mount -t vfat /dev/sdb1 /mnt
50. mtr
– My Traceroute
Explanation: Combines the functionality of traceroute
and ping
to provide a comprehensive network diagnostic tool.
- Example 1:
mtr google.com
– Initiates a real-time traceroute togoogle.com
, showing both the route packets take to the destination and the response times. - Example 2:
mtr -r -c 10 example.com
– Performs a traceroute toexample.com
, sending 10 packets to each hop and then providing a report. The-r
option stopsmtr
from running in real-time. - Example 3:
mtr -n -i 2 192.168.1.1
– Traces the route to192.168.1.1
without resolving IP addresses to hostnames (-n
) and sets the ping interval to 2 seconds (-i 2
).
Some extras!
ncdu
– NCurses Disk Usage
Explanation: A disk usage analyzer with an ncurses interface, useful for tracking down space hogs.- Example 1:
ncdu /home
– Analyzes disk usage in the/home
directory, providing a navigable ncurses interface to explore the directories and files. - Example 2:
ncdu -x /
– Runsncdu
on the root directory, but does not cross filesystem boundaries due to the-x
option. - Example 3:
ncdu -o report.txt /var
– Analyzes the/var
directory and outputs the results toreport.txt
for later review.
- Example 1:
iftop
– Display Bandwidth Usage
Explanation: Displays bandwidth usage on an interface by host.
- Example 1:
sudo iftop
– Displays the bandwidth usage on the default network interface. - Example 2:
sudo iftop -i eth0
– Monitors bandwidth usage on theeth0
interface. - Example 3:
sudo iftop -P
– Shows ports in addition to hosts, which can be useful for identifying specific applications.
iotop
– Monitor Disk I/O
Explanation: Monitors disk I/O usage information output by the Linux kernel.
- Example 1:
sudo iotop
– Displays a table of current I/O usage by processes or threads on the system. - Example 2:
sudo iotop -o
– Shows only processes or threads which are doing I/O. - Example 3:
sudo iotop -P
– Displays processes and threads separately.
nmap
– Network Mapper
Explanation: A security scanner used to discover hosts and services on a computer network.
- Example 1:
nmap -sP 192.168.1.0/24
– Scans the local network for hosts that are up without performing port scanning. - Example 2:
nmap -p 22,80,443 google.com
– Scansgoogle.com
for open ports 22 (SSH), 80 (HTTP), and 443 (HTTPS). - Example 3:
nmap -A -T4 scanme.nmap.org
– Performs an aggressive scan with faster execution, including OS detection, version detection, script scanning, and traceroute.
htop
– Interactive Process Viewer
Explanation: An interactive process viewer for Unix systems.
- Example 1:
htop
– Opens an interactive process viewer that displays running processes and system resource usage. - Example 2:
htop -u username
– Displays processes owned byusername
. - Example 3:
htop -C
– Displays processes in a tree view, which can help visualize parent-child relationships.
lsof
– List Open Files
Explanation: Lists open files belonging to all active processes.
- Example 1:
sudo lsof -i
– Lists all network connections. - Example 2:
lsof /usr/lib
– Lists all processes that have files open in/usr/lib
. - Example 3:
lsof -u username
– Lists files opened by the userusername
.
tmux
– Terminal Multiplexer
Explanation: Allows multiple terminal sessions to be accessed simultaneously in a single window.
- Example 1:
tmux
– Starts a new tmux session. - Example 2:
tmux new -s mysession
– Starts a new tmux session namedmysession
. - Example 3:
tmux attach -t mysession
– Attaches to an existing tmux session namedmysession
.
dig
– DNS Lookup Tool
Explanation: A command-line tool for querying Domain Name System (DNS) servers.
- Example 1:
dig example.com
– Queries the DNS for records associated withexample.com
. - Example 2:
dig +trace example.com
– Traces the path of the DNS query forexample.com
from the root DNS servers down to the authoritative servers. - Example 3:
dig example.com MX
– Queries for the Mail Exchange (MX) records ofexample.com
.