These days, graphical user interfaces rule our screens. As such, the command line may appear to be a thing of the past. It is still a powerful tool, though, for anyone who wants to fully utilise a computer’s potential. Greetings from the Linux command line universe. Here, we will uncover the tips and tricks that can transform you from a casual user into a command line maestro.

    Essential Command Line Basics for Linux

    We’ll lay the groundwork for your exploration of the Linux command line in this article. In order to make sure you are comfortable using the terminal and carrying out commands successfully, we will start with the fundamentals.

    Open a Terminal

    You can use the terminal application that comes with most Linux distributions. Usually, you can locate it by looking for “Terminal” in the Applications menu or using the system search bar.

    Basic Commands:

    • ls: List files and directories in the current directory.
      bash
      ls
    • cd: Change the current directory.
      bash
      cd Documents
    • pwd: Print the current working directory.
      bash
      pwd
    • mkdir: Create a new directory.
      bash
      mkdir NewFolder
    • touch: Create an empty file.
      bash
      touch myfile.txt

    Navigating the File System:

    • Using cd to navigate through directories.
      bash
      cd ..
    • Using ls to list the contents of a directory.
      bash
      ls /home/user/Documents

    File Manipulation:

    • cp: Copy files or directories.
      bash
      cp file.txt /path/to/destination/
    • mv: Move or rename files or directories.
      bash
      mv oldfile.txt newfile.txt
    • rm: Remove files or directories.
      bash
      rm myfile.txt

    Viewing File Content:

    • cat: Display the entire content of a file.
      bash
      cat myfile.txt
    • less or more: View file contents one screen at a time.
      bash
      less myfile.txt
    • head and tail: Show the first or last few lines of a file.
      bash
      head myfile.txt

    File Permissions:

    • Use chmod to change file permissions.
      bash
      chmod 755 myscript.sh
    • chown changes the owner of a file or directory.
      bash
      sudo chown user:group myfile.txt

    File Searching:

    • find: Search for files and directories.
      bash
      find /path/to/search -name "*.txt"
    • grep: Search for text within files.
      bash
      grep "keyword" myfile.txt

    Managing Users and Permissions:

    • passwd: Change your password.
      bash
      passwd
    • sudo: Execute a command with superuser privileges.
      bash
      sudo command
    • useradd and userdel: Add and delete user accounts.
      bash
      sudo useradd newuser
      sudo userdel olduser

    Help and Manuals:

    • To get help for a command, use the --help option.
      bash
      ls --help
    • Use the man command to access comprehensive manuals.
      bash
      man ls

    Keyboard Shortcuts:

    • Up and Down arrow keys for command history.
    • Tab key for auto-completion.

    Package Management:

    • For Debian/Ubuntu systems (using apt):
      bash
      sudo apt update
      sudo apt upgrade
    • For CentOS/RHEL systems (using yum):
      bash
      sudo yum update

    These examples should help you get started with the Linux command line and understand how to perform basic operations.

     

    How to Use the Linux Command Line Productively

    We’re going to look at some methods and resources that will help you work with the Linux command line environment more effectively and efficiently. Therefore, mastering these abilities is crucial to optimising your workflow and developing your command-line skills.

    Tab Completion in Linux command line

    By pressing the “Tab” key, you can quickly and efficiently complete file and directory names, command names, and other arguments in the Linux command line thanks to a powerful feature called tab completion. It saves you time and prevents you from manually typing lengthy and possibly mistake-prone names. Here’s how tab completion functions and some advice on how to use it efficiently:

    • File and Directory Names:

      • When you start typing the name of a file or directory, you can press the “Tab” key to autocomplete it. If there’s a single matching option, it will be completed for you.
      • If there are multiple matching options, pressing “Tab” twice will display a list of all possible matches for you to choose from.
      • For example, if you have files named “file1.txt” and “file2.txt,” and you type cat f and then press “Tab,” it will complete to cat file.
    • Command Names:

      • Tab completion also works for command names. When you start typing a command, pressing “Tab” will attempt to complete it. If you press “Tab” twice, it will list all available commands that match what you’ve typed so far.
      • For example, if you start typing su and press “Tab,” it might complete to sudo or sum. Pressing “Tab” twice will show you all available commands that start with “su.”
    • Directory Paths:

      • Tab completion works with directory paths as well. You can start typing a directory path, and it will complete both directory names and the path itself.
      • For example, if you want to navigate to the “/var/www” directory, you can type cd /v and then press “Tab” to autocomplete to cd /var/.
    • Options and Arguments:

      • Tab completion can also help you complete command options and arguments. For example, if you type ls -l /ho and press “Tab,” it can autocomplete to ls -l /home/.
    • Custom Tab Completion:

      • You can create custom tab completion scripts or functions for specific commands or tasks. These scripts can provide tab-completable options and arguments based on your needs.
      • Custom tab completion scripts are typically stored in files like /etc/bash_completion.d/ or loaded in your shell’s profile configuration (e.g., .bashrc or .zshrc).
    • Escaping Spaces:

      • If you have spaces in your file or directory names, you can use backslashes or quotes to escape them. For example, if you have a file named “my file.txt,” you can type cat my\ file.txt or cat "my file.txt" to use tab completion.

     

    Linux Command History and Recall

    Ever use a command only to find yourself in need of it again a short while later? Command history and recall allow you to quickly access commands that you have already run. A list of recent commands, each with a number attached, is displayed by the history command. An exclamation point (!) followed by the command number can be used to rerun a command (e.g.,!42 will rerun the 42nd command in your history). By pressing Ctrl + R and then entering a keyword from the command you’re looking for, you can also search your command history. By using this feature, you can avoid typing lengthy, intricate commands again.

    Using Aliases in the Linux Shell

    Aliases are like custom shortcuts for your commands. You can create your own shorthand for frequently used or complex commands. For example, if you often find yourself typing ls -l to list files in long format, you can create an alias like this:

    bash
    alias ll='ls -al'

    After creating the alias, you can use ll instead of ls -al to list files.

    Linux Command Line Shortcuts

    Command line shortcuts are quick key combinations that help you navigate, edit, and control your terminal more efficiently. Here are a few essential shortcuts:

    Keyboard Shortcut Description
    CTRL + A Moves the cursor to the beginning of the line.
    CTRL + E Moves the cursor to the end of the line.
    CTRL + U Deletes text from the cursor to the beginning of the line.
    CTRL + K Deletes text from the cursor to the end of the line.
    CTRL + L Clears the terminal screen.
    CTRL + C Interrupts (stops) the current command.
    CTRL + D Exits the current shell or terminal session.
    CTRL + Z Suspends the current command (resumable with the fg command).

    Pipelines and Redirections in Linux command line

    Pipelines and redirections are powerful features in the Linux command line that allow you to manipulate input and output streams of commands, enabling you to perform complex tasks efficiently. Here’s some examples of pipelines and redirections:

    Pipelines (|):

    Pipelines allow you to chain multiple commands together, passing the output of one command as the input to another. This can be incredibly useful for processing and transforming data on the fly.

    For example, let’s say you have a list of files in a directory, and you want to find all the files that contain a specific keyword:

    bash
    grep "keyword" *txt

    In this example, grep searches for the keyword in all txt files in the current directory. However, if you want to narrow down the results to only show the filenames containing the keyword, you can use a pipeline:

    bash
    grep -l "keyword" *txt | xargs -I {} basename {}

    Here, the grep command searches for the keyword and uses the -l option to list only the filenames. The | symbol passes this list of filenames to xargs, which then extracts the basename of each file, giving you a cleaner list of matching filenames.

    Redirections (>, >>, <):

    Redirections allow you to control where the input to and output from a command comes from or goes to. There are several redirection operators:

    1. >: Redirects the output of a command to a file, overwriting the file if it already exists.
      bash
      echo "Hello, world!" > output.txt
    2. >>: Redirects the output of a command to a file, but appends it to the file if it already exists.
      bash
      echo "Appended text" >> output.txt
    3. <: Takes input for a command from a file.
      bash
      sort < input.txt
    4. 2> and 2>>: Redirects standard error (stderr) output to a file, overwriting or appending as needed.
      bash
      command_that_generates_error 2> error.log
      command_that_generates_error 2>> error.log

    Combining Redirection and Pipelines:

    You can combine redirection and pipelines to perform more complex operations. For instance, you can redirect the output of a command into a file and then use that file as input for another command.

    For example, you can sort the lines in a file and save the sorted result to another file:

    bash
    sort < input.txt > sorted_output.txt

    These are just a few Linux command line examples for pipelines and redirections. These facilitate data manipulation and process automation by enabling you to carry out an extensive array of tasks with efficiency and flexibility.

     

    Searching and Manipulating Text in the Linux Terminal

    Let us look at powerful tools and techniques available in the Linux command line for searching and manipulating text. These skills are useful in parsing log files, extracting specific information, and performing various text-related tasks efficiently.

    Searching for Text:

    1. grep: grep is a versatile command-line tool for searching text in files. It’s often used with regular expressions for more complex searches.
      • Basic usage:
        bash
        grep "pattern" file.txt
      • Using regular expressions:
        bash
        grep -E "pattern1|pattern2" file.txt
    2. find: The find command is used to search for files and directories based on various criteria, including text content.
      • Searching for files containing a specific text:
        bash
        find /path/to/search -type f -exec grep -l "pattern" {} \;
    3. ag (The Silver Searcher): An alternative to grep, ag is faster and more efficient for searching large codebases. Install it if it’s not already available on your system.
      • Basic usage:
        bash
        ag "pattern" /path/to/search

    Text Manipulation:

    1. sed (Stream Editor): sed is a powerful tool for text manipulation and transformation. It can be used to replace text, delete lines, and perform other operations.
      • Replace text in a file:
        bash
        sed 's/old_text/new_text/g' file.txt
    2. awk: awk is a versatile text-processing tool that allows you to perform operations on text data, including filtering, formatting, and calculations.
      • Print specific columns from a file:
        bash
        awk '{print $1, $3}' file.txt
    3. cut: The cut command is used to remove sections from lines of files.
      • Extract specific columns from a file:
        bash
        cut -d' ' -f1,3 file.txt
    4. sort: The sort command is used to sort lines in text files.
      • Sorting a file alphabetically:
        bash
        sort file.txt
    5. uniq: uniq is used to remove duplicate lines from a sorted file.
      • Removing duplicate lines from a sorted file:
        bash
        sort file.txt | uniq
    6. tr (Translate): tr is used for character-level text manipulation, such as translating or deleting characters.
      • Translate characters to uppercase:
        bash
        tr '[:lower:]' '[:upper:]' < file.txt
    7. cut and paste: The cut and paste commands can be used together to manipulate columns of text.
      • Combining columns from two files:
        bash
        cut -f1 file1.txt > col1.txt
        cut -f2 file2.txt > col2.txt
        paste col1.txt col2.txt > combined.txt

    These are just a few examples of the many text-processing commands available in the Linux terminal. Depending on your specific needs, you can combine these commands and use them in scripts to perform more complex text manipulation tasks.

    Linux System Information and Troubleshooting

    In this chapter, we will explore essential tools and techniques for gathering system information, troubleshooting common issues, and monitoring resource usage in a Linux environment. These skills are convenient for maintaining system health and resolving problems effectively.

    Checking System Information (uname, df, free)

    To gain insights into your system’s configuration and resource utilization, you can use a variety of commands:

    Command Description Example
    uname Displays basic system information such as the kernel version and system architecture. Uname -a
    df Shows disk space usage, including information about disk partitions and their available space. df -h
    free Displays memory (RAM) usage information, including total, used, and available memory. free -m

    Linux System Logs and Troubleshooting (journalctl, dmesg)

    Troubleshooting system issues often involves examining logs and messages. Two key commands for this purpose are:

    journalctl: The journalctl command provides access to the systemd journal, which contains logs for various system services and events. This tool enables you to view and filter log entries, making it invaluable for diagnosing system issues. To display recent system logs:

    1. bash
      journalctl -xe

    dmesg: Additionally the dmesg command displays kernel ring buffer messages, which can be useful for diagnosing hardware-related problems. It specifically shows messages related to hardware detection, driver initialization, and system boot. To view kernel messages:

    1. bash
      dmesg | less

    Monitoring Resource Usage (htop)

    htop is an interactive and feature-rich process viewer and system monitor. Furthermore, it provides a real-time overview of system resource usage, including CPU, memory, and processes.

    It looks like this:

    Monitoring Resource Usage (htop)

    To install htop use the following command:

    Debian/Ubuntu:

    bash
    sudo apt update
    sudo apt install htop

    CentOS/RHEL:

    bash
    sudo yum install epel-release # This is needed for EPEL repository on CentOS/RHEL 7 and earlier.
    sudo yum install htop

    Fedora:

    bash
    sudo dnf install htop

    htop is an excellent alternative to the basic top command. In addition, it offers a more user-friendly interface and additional features for monitoring and managing processes and system resources.

    How to Customize the Linux Terminal (color schemes, fonts)

    Customizing the Linux terminal can make your command-line experience more enjoyable and efficient. Here are several ways to customize the terminal to suit your preferences:

    Customizing the Prompt (PS1):

    To customize your command prompt, you can modify the PS1 environment variable in your shell configuration file (e.g., .bashrc for Bash). Here’s an example of a custom Bash prompt:

    bash
    # Add the following line to your .bashrc file
    PS1='\[\e[32m\]\u@\h\[\e[m\]:\[\e[34m\]\w\[\e[m\]\$ '
    • \u displays the username.
    • \h displays the hostname.
    • \w displays the current working directory.
    • \[\e[32m\] and \[\e[m\] change text color (in this case, green for the username and blue for the directory).

    Customizing Terminal Colors:

    Most terminal emulators allow you to customize text and background colors in their preferences. For example, in GNOME Terminal, you can navigate to “Edit” > “Preferences” > “Profiles” and click the “Edit” button for your profile. There, you can customize colors under the “Text” and “Background” tabs.

    Aliases:

    Create aliases for frequently used commands or command sequences. Here’s an example:

    bash
    # Add the following line to your .bashrc file
    alias ll='ls -al'

    After adding this alias, you can use ll in the terminal to list files and directories in long format with hidden files.

    Customizing Tab Completion:

    You can create custom tab completion behavior for specific commands. For example, let’s create a simple completion for a custom script named my_script:

    bash
    # Add the following lines to your .bashrc file
    _my_script_completion() {
    COMPREPLY=($(compgen -W "option1 option2 option3" -- "${COMP_WORDS[COMP_CWORD]}"))
    }
    complete -F _my_script_completion my_script

    This completion script suggests options (“option1,” “option2,” “option3”) when you tab-complete my_script in the terminal.

    Customizing Key Bindings:

    You can customize key bindings in your shell by adding entries to your shell’s configuration file. For example, to bind the Ctrl+L key combination to clear the terminal screen:

    bash
    # Add the following line to your .bashrc file
    bind -x '"\C-l": clear'

    After adding this line, pressing Ctrl+L will clear the terminal screen.

    Using Oh My Zsh or Powerline:

    If you’re using Zsh, you can install Oh My Zsh or Powerline to customize your prompt and add plugins. Here’s how to install Oh My Zsh:

    bash
    sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

    After installation, you can change the Zsh theme and customize plugins in the ~/.zshrc file.

    Using a Custom Terminal Font:

    You can change your terminal font through your terminal emulator’s settings. For example, in GNOME Terminal, go to “Edit” > “Preferences” > “Profiles” > “Text” to select a custom font.

    Share.
    Unknown's avatar

    Hollands Web is a web design and digital solutions agency specializing in WordPress development, web hosting, SEO, and custom digital solutions. Our team shares practical insights, guides, and strategies to help businesses build, improve, and grow their online presence.

    Leave A Reply

    Ready to get started?

    Are you ready
    Let’s Make Something
    Amazing Together

    Need help? Contact our experts
    Tell us about your project

    Groningen, Netherlands.

    Kuipenstreek 1,
    Oosterwolde 8431 LX

    Istanbul, Turkey.

    Hırka-i şerif mah.
    Fatih 34091

    Newsletter

    Sign up to our newsletter!

    © 2026, Holland’s Web. All Right Reserved.