DEV Community

Cover image for Decoding the Linux Command Line: 52 Indispensable Utilities Explained
Sujit Kumar
Sujit Kumar

Posted on

Decoding the Linux Command Line: 52 Indispensable Utilities Explained

Top 50 Linux Commands Every Regular User Must Know

As a regular Linux user, mastering these essential commands can greatly enhance your productivity and efficiency. Let's dive into the top 52 Linux commands with practical examples.

  1. ls (List)

    • ls - List files and directories in the current directory.
    • ls -a - List all files, including hidden ones.
    • ls -l - List files with detailed information (permissions, owner, size, etc.).
    • ls -h - List files with detailed information in human readable format.
  2. pwd (Print Working Directory)

    • pwd - Display the current working directory.
  3. cd (Change Directory)

    • cd /path/to/directory - Navigate to the specified directory.
    • cd .. - Move up one directory level.
    • cd ~ - Navigate to your home directory.
    • cd - - Go back to the last directory.
  4. mkdir (Make Directory)

    • mkdir new_directory - Create a new directory.
    • mkdir -p /path/to/nested/directories - Create nested directories.
  5. mv (Move)

    • mv file.txt /path/to/directory - Move a file to a different directory.
    • mv old_name.txt new_name.txt - Rename a file.
  6. cp (Copy)

    • cp file.txt /path/to/directory - Copy a file to a different directory.
    • cp -r directory1 /path/to/directory2 - Copy a directory and its contents.
  7. rm (Remove)

    • rm file.txt - Delete a file.
    • rm -r directory - Delete a directory and its contents (use with caution!).
  8. touch (Create File)

    • touch new_file.txt - Create a new, empty file.
  9. ln (Create Link)

    • ln -s /path/to/file link_name - Create a symbolic link to a file.
  10. clear

    • clear - Clear the terminal screen.
  11. cat (Concatenate)

    • cat file.txt - Display the contents of a file.
    • cat file1.txt file2.txt > combined.txt - Combine two files into one.
  12. echo (Print)

    • echo "Hello, World!" - Print a string.
    • echo $PATH - Print the value of an environment variable.
  13. less (View File)

    • less large_file.txt - View a large file one page at a time (use arrow keys to navigate).
  14. man (Manual)

    • man ls - Display the manual page for the ls command.
  15. uname (System Information)

    • uname -a - Display detailed information about the system.
  16. whoami (User Information)

    • whoami - Print the current user's username.
  17. tar (Archive)

    • tar -czf archive.tar.gz directory - Create a compressed tar archive of a directory.
    • tar -xzf archive.tar.gz - Extract files from a compressed tar archive.
  18. grep (Search)

    • grep "pattern" file.txt - Search for a pattern in a file.
    • ps aux | grep process_name - Find processes containing a specific name.
  19. head (Show Top Lines)

    • head -n 10 file.txt - Display the first 10 lines of a file.
  20. tail (Show Bottom Lines)

    • tail -n 20 log.txt - Display the last 20 lines of a file.
  21. diff (Compare Files)

    • diff file1.txt file2.txt - Compare the contents of two files.
  22. cmp (Compare Files)

    • cmp file1.txt file2.txt - Check if two files are identical byte-by-byte.
  23. comm (Compare Files)

    • comm -13 file1.txt file2.txt - Show lines unique to each file and common lines.
  24. sort (Sort)

    • sort file.txt - Sort the lines of a file in alphabetical order.
    • sort -n file.txt - Sort the lines of a file numerically.
  25. export (Set Environment Variables)

    • export PATH=$PATH:/new/path - Add a new path to the PATH environment variable.
  26. zip (Compress Files)

    • zip archive.zip file1.txt file2.txt - Create a ZIP archive with multiple files.
  27. unzip (Extract Files)

    • unzip archive.zip - Extract files from a ZIP archive.
  28. ssh (Secure Shell)

    • ssh user@remote_host - Connect to a remote system via SSH.
  29. service (Manage Services)

    • service apache2 start - Start the Apache web server service.
    • service mysql status - Check the status of the MySQL service.
  30. ps (Process Status)

    • ps aux - Display detailed information about running processes.
  31. kill and killall (Terminate Processes)

    • kill 1234 - Terminate a process with the specified PID (1234).
    • killall process_name - Terminate all processes with a specific name.
  32. df (Disk Usage)

    • df -h - Display disk usage in a human-readable format.
  33. mount (Mount File Systems)

    • mount /dev/sdb1 /mnt/usb - Mount a USB drive to the /mnt/usb directory.
  34. chmod (Change Permissions)

    • chmod 755 file.sh - Grant read, write, and execute permissions to the owner, and read and execute permissions to group and others.
  35. chown (Change Ownership)

    • chown user:group file.txt - Change the owner and group of a file.
  36. ifconfig (Network Configuration)

    • ifconfig - Display information about network interfaces and IP addresses.
  37. traceroute (Trace Network Route)

    • traceroute example.com - Trace the network path to a remote host.
  38. wget (Web Get)

    • wget https://example.com/file.zip - Download a file from a web server.
  39. ufw (Uncomplicated Firewall)

    • ufw enable - Enable the firewall.
    • ufw allow 22 - Allow incoming connections on port 22 (SSH).
  40. iptables (Firewall)

    • iptables -L - List current firewall rules.
    • iptables -A INPUT -p tcp --dport 80 -j ACCEPT - Allow incoming TCP connections on port 80 (HTTP).
  41. apt, pacman, yum, rpm (Package Managers)

    • apt update && apt upgrade (Ubuntu/Debian) - Update package lists and upgrade installed packages.
    • pacman -Syu (Arch Linux) - Synchronize package databases and upgrade installed packages.
    • yum update (CentOS/RHEL) - Update installed packages.
    • rpm -ivh package.rpm - Install an RPM package.
  42. sudo (Escalate Privileges)

    • sudo command - Run a command with superuser (root) privileges.
  43. cal (Calendar)

    • cal - Display the current month's calendar.
    • cal 2024 - Display the entire year's calendar for 2024.
  44. alias (Create Command Shortcuts)

    • alias ll='ls -l' - Create an alias for the ls -l command.
  45. dd (Data Duplicator)

    • dd if=/dev/zero of=/path/to/file bs=1M count=1024 - Create a 1GB file filled with zeros.
    • dd if=/path/to/iso of=/dev/sdx - Write an ISO image to a USB drive.
  46. whereis (Locate Command)

    • whereis ls - Find the binary, source, and manual page files for the ls command.
  47. whatis (Command Description)

    • whatis ls - Display a brief description of the ls command.
  48. top (Process Monitor)

    • top - Display real-time information about running processes and system resource usage.
  49. useradd and usermod (User Management)

    • useradd new_user - Create a new user account.
    • usermod -aG sudo new_user - Add an existing user to the sudo group.
  50. passwd (Change Password)

    • passwd - Change the password for the current user.
    • passwd user_name (as root) - Change the password for a specific user.
  51. curl (Transfer Data)

    • curl https://example.com - Fetch the contents of a URL.
    • curl ifconfig.me - Display your public IP address.
  52. ping (Test Network Connectivity)

    • ping google.com - Test connectivity to a remote host.
    • ping -c 2 google.com - Send 2 ping packets and stop.
  53. netstat (Network Statistics)

    • netstat -tunlp - Display listening network ports and associated processes.

With these 52 essential Linux commands under your belt, you'll be well-equipped to navigate the command line, manage files and processes, customize your system, and supercharge your productivity on the Linux operating system.

Top comments (0)