Elite Stars | Linux Commands Cheat Sheet

Linux Commands Cheat Sheet

Did you know that there are literally hundreds of Linux commands? Even on a bare-bones Linux server install there are easily over 1,000 different commands. The interesting thing is that most people only need to use a very small subset of those commands. Below you’ll find a Linux “cheat sheet” that breaks down some of the most commonly used commands by category. To get your own PDF and printable copy.

Download pdf Resources

Enjoy!

1 – SYSTEM INFORMATION

  • Display Linux system information

    uname -a

  • Display kernel release information

    uname -r

  • Show operating system information such as distribution name and version

    cat /etc/os-release

  • Show how long the system has been running + load

    uptime

  • Show system host name

    hostname

  • Display all local IP addresses of the host.

    hostname -I

  • Show system reboot history

    last reboot

  • Show the current date and time

    date

  • Show this month’s calendar

    cal

  • Display who is online

    w

  • Who you are logged in as

    whoami

2 – HARDWARE INFORMATION

  • Display messages in kernel ring buffer

    dmesg

  • Display CPU information

    cat /proc/cpuinfo

  • Display memory information

    cat /proc/meminfo

  • Display free and used memory ( -h for human readable, -m for MB, -g for GB.)

    free -h

  • Display PCI devices

    lspci -tv

  • Display USB devices

    lsusb -tv

  • Display DMI/SMBIOS (hardware info) from the BIOS

    dmidecode

  • Show info about disk sda

    hdparm -i /dev/sda

  • Perform a read speed test on disk sda

    hdparm -tT /dev/sda

  • Test for unreadable blocks on disk sda

    badblocks -s /dev/sda

3 – PERFORMANCE MONITORING AND STATISTICS

  • Display and manage the top processes

    top

  • Interactive process viewer (top alternative)

    htop

  • Display processor related statistics

    mpstat 1

  • Display virtual memory statistics

    vmstat 1

  • Display I/O statistics

    iostat 1

  • Display the last 100 syslog messages (Use /var/log/syslog for Debian based systems.)

    tail -100 /var/log/messages

  • Capture and display all packets on interface eth0

    tcpdump -i eth0

  • Monitor all traffic on port 80 ( HTTP )

    tcpdump -i eth0 ‘port 80’

  • List all open files on the system

    lsof

  • List files opened by user

    lsof -u user

  • Display free and used memory ( -h for human readable, -m for MB, -g for GB.)

    free -h

  • Execute “df -h”, showing periodic updates

    watch df -h

4 – USER INFORMATION AND MANAGEMENT

  • Display the user and group ids of your current user.

    id

  • Display the last users who have logged onto the system.

    last

  • Show who is logged into the system.

    who

  • Show who is logged in and what they are doing.

    w

  • Create a group named “test”.

    groupadd test

  • Create an account named john, with a comment of “John Smith” and create the user’s home directory.

    useradd -c “John Smith” -m john

  • Delete the john account.

    userdel john

  • Add the john account to the sales group

    usermod -aG sales john

5 – FILE AND DIRECTORY COMMANDS

  • List all files in a long listing (detailed) format

    ls -al

  • Display the present working directory

    pwd

  • Create a directory

    mkdir directory

  • Remove (delete) file

    rm file

  • Remove the directory and its contents recursively

    rm -r directory

  • Force removal of file without prompting for confirmation

    rm -f file

  • Forcefully remove directory recursively

    rm -rf directory

  • Copy file1 to file2

    cp file1 file2

  • Copy source_directory recursively to destination. If destination exists, copy source_directory into destination, otherwise create destination with the contents of source_directory.

    cp -r source_directory destination

  • Rename or move file1 to file2. If file2 is an existing directory, move file1 into directory file2

    mv file1 file2

  • Create symbolic link to linkname

    ln -s /path/to/file linkname

  • Create an empty file or update the access and modification times of file.

    touch file

  • View the contents of file

    cat file

  • Browse through a text file

    less file

  • Display the first 10 lines of file

    head file

  • Display the last 10 lines of file

    tail file

  • Display the last 10 lines of file and “follow” the file as it grows.

    tail -f file

6 – PROCESS MANAGEMENT

  • Display your currently running processes

    ps

  • Display all the currently running processes on the system.

    ps -ef

  • Display process information for processname

    ps -ef | grep processname

  • Display and manage the top processes

    top

  • Interactive process viewer (top alternative)

    htop

  • Kill process with process ID of pid

    kill pid

  • Kill all processes named processname

    killall processname

  • Start program in the background

    program &

  • Display stopped or background jobs

    bg

  • Brings the most recent background job to foreground

    fg

  • Brings job n to the foreground

    fg n

7 – FILE PERMISSIONS

PERMISSION EXAMPLE

      U   G   W
        rwx rwx rwx     chmod 777 filename
        rwx rwx r-x     chmod 775 filename
        rwx r-x r-x     chmod 755 filename
        rw- rw- r--     chmod 664 filename
        rw- r-- r--     chmod 644 filename

NOTE: Use 777 sparingly!

        LEGEND
        U = User
        G = Group
        W = World

        r = Read
        w = write
        x = execute
        - = no access

8 – NETWORKING

  • Display all network interfaces and IP address

    ip a

  • Display eth0 address and details

    ip addr show dev eth0

  • Query or control network driver and hardware settings

    ethtool eth0

  • Send ICMP echo request to host

    ping host

  • Display whois information for domain

    whois domain

  • Display DNS information for domain

    dig domain

  • Reverse lookup of IP_ADDRESS

    dig -x IP_ADDRESS

  • Display DNS IP address for domain

    host domain

  • Display the network address of the host name.

    hostname -i

  • Display all local IP addresses of the host.

    hostname -I

  • Download http://example.com/file

    wget http://example.com/file

  • Display listening tcp and udp ports and corresponding programs

    netstat -nutlp

9 – ARCHIVES (TAR FILES)

  • Create tar named archive.tar containing directory.

    tar cf archive.tar directory

  • Extract the contents from archive.tar.

    tar xf archive.tar

  • Create a gzip compressed tar file name archive.tar.gz.

    tar czf archive.tar.gz directory

  • Extract a gzip compressed tar file.

    tar xzf archive.tar.gz

  • Create a tar file with bzip2 compression

    tar cjf archive.tar.bz2 directory

  • Extract a bzip2 compressed tar file.

    tar xjf archive.tar.bz2

10 – INSTALLING PACKAGES

  • Search for a package by keyword.

    yum search keyword

  • Install package.

    yum install package

  • Display description and summary information about package.

    yum info package

  • Install package from local file named package.rpm

    rpm -i package.rpm

  • Remove/uninstall package.

    yum remove package

  • Install software from source code.

    tar zxvf sourcecode.tar.gz cd sourcecode ./configure make make install

  • Search for pattern in file

    grep pattern file

  • Search recursively for pattern in directory

    grep -r pattern directory

  • Find files and directories by name

    locate name

  • Find files in /home/john that start with “prefix”.

    find /home/john -name ‘prefix*’

  • Find files larger than 100MB in /home

    find /home -size +100M

12 – SSH LOGINS

  • Connect to host as your local username.

    ssh host

  • Connect to host as user

    ssh user@host

  • Connect to host using port

    ssh -p port user@host

13 – FILE TRANSFERS

  • Secure copy file.txt to the /tmp folder on server

    scp file.txt server:/tmp

  • Copy *.html files from server to the local /tmp folder.

    scp server:/var/www/*.html /tmp

  • Copy all files and directories recursively from server to the current system’s /tmp folder.

    scp -r server:/var/www /tmp

  • Synchronize /home to /backups/home

    rsync -a /home /backups/

  • Synchronize files/directories between the local and remote system with compression enabled

    rsync -avz /home server:/backups/

14 – DISK USAGE

  • Show free and used space on mounted filesystems

    df -h

  • Show free and used inodes on mounted filesystems

    df -i

  • Display disks partitions sizes and types

    fdisk -l

  • Display disk usage for all files and directories in human readable format

    du -ah

  • Display total disk usage off the current directory

    du -sh

15 – DIRECTORY NAVIGATION

  • To go up one level of the directory tree. (Change into the parent directory.)

    cd ..

  • Go to the $HOME directory

    cd

  • Change to the /etc directory

    cd /etc

16 – SECURITY

  • Change the current user’s password.

    passwd

  • Switch to the root account with root’s environment. (Login shell.)

    sudo -i

  • Execute your current shell as root. (Non-login shell.)

    sudo -s

  • List sudo privileges for the current user.

    sudo -l

  • Edit the sudoers configuration file.

    visudo

  • Display the current SELinux mode.

    getenforce

  • Display SELinux details such as the current SELinux mode, the configured mode, and the loaded policy.

    sestatus

  • Change the current SELinux mode to Permissive. (Does not survive a reboot.)

    setenforce 0

  • Change the current SELinux mode to Enforcing. (Does not survive a reboot.)

    setenforce 1

  • Set the SELinux mode to enforcing on boot by using this setting in the /etc/selinux/config file.

    SELINUX=enforcing

  • Set the SELinux mode to permissive on boot by using this setting in the /etc/selinux/config file.

    SELINUX=permissive

  • Set the SELinux mode to disabled on boot by using this setting in the /etc/selinux/config file.

    SELINUX=disabled

17 – LOGGING AND AUDITING

  • Display messages in kernel ring buffer.

    dmesg

  • Display logs stored in the systemd journal.

    journalctl

  • Display logs for a specific unit (service).

    journalctl -u servicename