Mastering Linux Command Line: Essential Commands and Power Tips

Mastering Linux Command Line: Essential Commands and Power Tips
Photo by realfish / Unsplash

For developers, system administrators, and anyone working with Linux, mastering the command line is not just a skill—it’s a survival tool. This guide summarizes essential Linux commands, marked with bold highlights for the key concepts. It covers system info, disk and memory management, file operations, networking, package management, permissions, and a few miscellaneous but critical commands. Plus, I’ll add extra insights and real-world tips you might not know.


🖥️ System Information

When you need to know what system you’re dealing with:

  • uname -a: Shows kernel version and OS information. Helpful when debugging or checking compatibility.
  • uptime: Displays how long the system has been running and current load average.
  • top or htop: Real-time process viewer. htop is preferred for its colorful, interactive interface, but you might need to install it (sudo apt install htop).

Extra tip: Combine uptime with w to see who’s logged in and what they’re doing: w.


💾 Disk & Memory Management

Keep an eye on storage and memory usage:

  • df -h: Disk usage of mounted filesystems in human-readable format. Critical when you face "disk full" errors.
  • du -sh *: Shows size of directories in the current location. Good for identifying large folders.
  • free -h: Displays RAM usage, swap, and buffers/caches. -h makes it easy to read (GB, MB).

Extra tip: Use ncdu for a more interactive disk usage browser (sudo apt install ncdu).


📂 File Operations

Managing files and searching efficiently:

  • ls -al: Lists all files (including hidden ones) with detailed permissions, owner, and timestamps.
  • find . -name "foo": Searches recursively from the current directory for files named "foo".
  • grep -r "bar" .: Searches for the string "bar" recursively in files. grep is your friend when debugging logs or code.

Extra tip: Use rg (ripgrep) or ag (the_silver_searcher) for faster file searching in big projects.


🌐 Networking Commands

Essential for checking network status and connectivity:

  • ip a: Displays network interfaces and IP addresses. It replaces the older ifconfig.
  • ss -tuln: Shows listening ports, protocol (TCP/UDP), and socket info. Replace netstat with ss.
  • curl -I URL: Fetches HTTP headers for a URL. Useful for checking server response or debugging a website.

Extra tip: For DNS lookups, use dig or nslookup. To ping a host, use ping <host>.


📦 Package Management

Keeping systems updated:

  • Debian/Ubuntu:
    • apt update && apt upgrade: Updates the package list and installs available upgrades.
  • RHEL/CentOS:
    • yum update: Updates all packages.

Extra tip: On Ubuntu/Debian, use apt full-upgrade to handle package removals and kernel updates.


🔒 Permissions Management

File permissions are critical for security:

  • chmod +x file: Makes a file executable. Needed for scripts or binaries you want to run.
  • chown user:group file: Changes the owner and group of a file.

Extra tip: Use chmod 755 or chmod 644 as quick permission settings for scripts or web files, but be cautious about over-permissive settings.


🛠️ Miscellaneous Essentials

A few must-know commands that don’t fit elsewhere:

  • tar -xzvf file.tar.gz: Extracts a tar.gz archive.
    • x: extract, z: handle gzip, v: verbose, f: filename.
  • scp file user@host:/path: Securely copy a file over SSH to a remote host.

Extra tip: Use rsync -avz for resuming interrupted transfers or syncing directories across servers.


📝 Other Must-Know Considerations

  • Always use sudo when running commands requiring elevated permissions. For example: sudo apt update.
  • Know your logs: /var/log/syslog, /var/log/auth.log, and /var/log/nginx/access.log are gold mines for debugging.
  • Learn how to monitor resource usage with vmstat, iostat, and dstat for advanced performance checks.
  • For process management, don’t forget kill, pkill, killall, and nice to control processes.
  • Be aware of cron (crontab -e) to automate tasks.

🎓 Finally

The Linux command line isn’t just about memorizing commands—it’s about understanding what your system is doing and how to control it. With these essential commands, you’ll be ready to monitor, manage, secure, and optimize your Linux systems.

Support Us