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, as pwd 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 named new_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 named old_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 – Deletes file.txt.
  • Example 2: rm -r folder – Recursively deletes a directory and its contents.
  • Example 3: rm -f file.txt – Forcefully removes file.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 – Copies file1.txt to file2.txt.
  • Example 2: cp -r dir1 dir2 – Recursively copies dir1 and its contents to dir2.
  • Example 3: cp file.txt /path/to/destination/ – Copies file.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 – Renames file1.txt to new_file.txt.
  • Example 2: mv file.txt /path/to/destination/ – Moves file.txt to a different directory.
  • Example 3: mv dir1 dir2 – Moves dir1 into dir2 or renames it if dir2 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 of file.txt to 755.
  • Example 2: chmod +x script.sh – Makes script.sh executable.
  • Example 3: chmod -R 644 folder/ – Recursively sets the permissions of all files in folder 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 of file.txt to user.
  • Example 2: chown user:group file.txt – Changes both the owner and group of file.txt.
  • Example 3: chown -R user:group folder – Recursively changes the owner and group of folder 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 named newfile.txt.
  • Example 2: touch -a file.txt – Updates the access time of file.txt.
  • Example 3: touch -m file.txt – Updates the modification time of file.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 of file.txt.
  • Example 2: cat file1.txt file2.txt > combined.txt – Concatenates file1.txt and file2.txt into combined.txt.
  • Example 3: cat -n file.txt – Displays the content of file.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” in file.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 named file.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 by username.
  • 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 the ls command.
  • Example 2: man grep – Displays the manual page for the grep command.
  • Example 3: man man – Displays the manual page for the man 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 – Runs command as user.
  • 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 – Downloads file.zip from the specified URL.
  • Example 2: wget -O filename.zip https://example.com/file.zip – Downloads and renames the file to filename.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 to local.html.
  • Example 3: curl -d "param1=value1&param2=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 of file.txt.
  • Example 2: tail -f file.txt – Continuously monitors file.txt for new lines and displays them.
  • Example 3: tail -n 20 file.txt – Displays the last 20 lines of file.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 of file.txt.
  • Example 2: head -n 5 file.txt – Displays the first 5 lines of file.txt.
  • Example 3: head -c 100 file.txt – Displays the first 100 characters of file.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 the files/ directory.
  • Example 2: tar -xvf archive.tar – Extracts the contents of archive.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 – Compresses file1 and file2 into archive.zip.
  • Example 2: zip -r archive.zip folder/ – Recursively compresses folder/ and its contents into archive.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 from archive.zip.
  • Example 2: unzip archive.zip -d destination/ – Extracts files into the destination/ directory.
  • Example 3: unzip -l archive.zip – Lists the contents of archive.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 alias ll for ls -l.
  • Example 2: alias rm='rm -i' – Makes rm command interactive by default.
  • Example 3: unalias ll – Removes the alias ll.

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 between file1.txt and file2.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 to script.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 of file.txt to admin.
  • Example 2: chgrp -R admin folder – Recursively changes the group ownership of folder and its contents to admin.
  • Example 3: chgrp users file.txt – Changes the group ownership of file.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 to new-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 – Copies file.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 into host as user.
  • Example 2: ssh -p 2222 user@host – Connects to host 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 of ls -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 to google.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 to example.com, sending 10 packets to each hop and then providing a report. The -r option stops mtr from running in real-time.
    • Example 3: mtr -n -i 2 192.168.1.1 – Traces the route to 192.168.1.1 without resolving IP addresses to hostnames (-n) and sets the ping interval to 2 seconds (-i 2).
      Some extras!
      1. 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 / – Runs ncdu 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 to report.txt for later review.
      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 the eth0 interface.
      • Example 3: sudo iftop -P – Shows ports in addition to hosts, which can be useful for identifying specific applications.
      1. 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.
      1. 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 – Scans google.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.
      1. 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 by username.
      • Example 3: htop -C – Displays processes in a tree view, which can help visualize parent-child relationships.
      1. 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 user username.
      1. 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 named mysession.
      • Example 3: tmux attach -t mysession – Attaches to an existing tmux session named mysession.
          1. 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 with example.com.
          • Example 2: dig +trace example.com – Traces the path of the DNS query for example.com from the root DNS servers down to the authoritative servers.
          • Example 3: dig example.com MX – Queries for the Mail Exchange (MX) records of example.com.

          Similar Posts

          Leave a Reply

          Your email address will not be published. Required fields are marked *