Essential Linux Commands Every User Should Know
1. Navigation & File Management
pwd
– Prints the current working directory.ls
– Lists files and directories in the current location.ls -l
→ Long format (details like permissions, owner, size).ls -a
→ Shows hidden files.
cd <directory>
– Changes the current directory.cd ..
→ Moves up one directory level.cd /
→ Moves to the root directory.cd ~
→ Moves to the home directory.
mkdir <directory>
– Creates a new directory.rmdir <directory>
– Removes an empty directory.rm <file>
– Deletes a file.rm -r <directory>
→ Deletes a directory and its contents.
2. File Operations
cp <source> <destination>
– Copies a file or directory.cp -r <dir1> <dir2>
→ Recursively copies a directory.
mv <source> <destination>
– Moves or renames a file/directory.touch <file>
– Creates an empty file or updates a file’s timestamp.cat <file>
– Displays the contents of a file.head <file>
– Shows the first 10 lines of a file.head -n 20 <file>
→ Shows the first 20 lines.
tail <file>
– Shows the last 10 lines of a file.tail -f <file>
→ Continuously displays updates to the file (useful for log files).
3. User & Permissions
whoami
– Displays the current logged-in user.id
– Shows user ID (UID) and group ID (GID).chmod <permissions> <file>
– Changes file permissions.chmod 755 <file>
→ Read & execute for everyone, write for owner.chmod +x <file>
→ Adds execute permission.
chown <user>:<group> <file>
– Changes file ownership.sudo <command>
– Runs a command as a superuser.
4. Process Management
ps
– Lists currently running processes.ps aux
→ Shows all system processes.
top
– Displays real-time CPU/memory usage.htop
– Interactive process viewer (if installed).kill <PID>
– Terminates a process by ID.killall <process>
– Kills all processes by name.pkill <name>
– Kills processes by matching name.
5. Disk & System Info
df -h
– Shows disk space usage in human-readable format.du -sh <directory>
– Displays the total size of a directory.free -h
– Shows memory usage.uptime
– Displays how long the system has been running.uname -a
– Displays system information.
6. Networking
ip a
– Displays network interfaces and IP addresses.ping <host>
– Tests network connectivity to a server.wget <URL>
– Downloads a file from a URL.curl <URL>
– Fetches a web page’s contents.netstat -tulnp
– Lists open ports and listening services.
7. Searching & Text Processing
grep "<pattern>" <file>
– Searches for a pattern in a file.grep -i
→ Case-insensitive search.grep -r "<pattern>" <directory>
→ Recursively searches in a directory.
find <directory> -name "<filename>"
– Finds files by name.awk '{print $1}' <file>
– Extracts the first column from a file.sed 's/old/new/g' <file>
– Replaces text in a file.
8. Package Management
- Debian-based (Ubuntu, Debian):
apt update
→ Updates package lists.apt upgrade
→ Upgrades all installed packages.apt install <package>
→ Installs a package.apt remove <package>
→ Uninstalls a package.
- Red Hat-based (CentOS, Fedora):
dnf install <package>
→ Installs a package.dnf remove <package>
→ Uninstalls a package.
9. Archiving & Compression
tar -cvf archive.tar <directory>
– Creates a tar archive.tar -xvf archive.tar
– Extracts a tar archive.tar -czvf archive.tar.gz <directory>
– Creates a compressed tarball.tar -xzvf archive.tar.gz
– Extracts a compressed tarball.zip -r archive.zip <directory>
– Compresses a directory into a ZIP file.unzip archive.zip
– Extracts a ZIP file.
10. System Control
shutdown -h now
– Shuts down the system immediately.reboot
– Reboots the system.systemctl status <service>
– Checks the status of a service.systemctl start <service>
– Starts a service.systemctl stop <service>
– Stops a service.systemctl restart <service>
– Restarts a service.