Linux Commands Cheat Sheet for Bioinformatics and Computational Biology Professionals: Revision

The purpose of this cheat sheet is to introduce biologist and bioinformatician to the frequently used tools for NGS analysis as well as giving experience in writing one-liners.

  • File System
    ls — list items in current directory
    ls -l — list items in current directory and show in long format to see perimissions, size, and modification date
    ls -a — list all items in current directory, including hidden files
    ls -F — list all items in current directory and show directories with a slash and executables with a star
    ls dir — list all items in directory dir
    cd dir — change directory to dir
    cd .. — go up one directory
    cd / — go to the root directory
    cd ~ — go to to your home directory
    cd - — go to the last directory you were just in
    pwd — show present working directory
    mkdir dir — make directory dir
    rm file — remove file
    rm -r dir — remove directory dir recursively
    cp file1 file2 — copy file1 to file2
    cp -r dir1 dir2 — copy directory dir1 to dir2 recursively
    mv file1 file2 — move (rename) file1 to file2
    ln -s file link — create symbolic link to file
    touch file — create or update file
    cat file — output the contents of file
    less file — view file with page navigation
    head file — output the first 10 lines of file
    tail file — output the last 10 lines of file
    tail -f file — output the contents of file as it grows, starting with the last 10 lines
    vim file — edit file
    alias name 'command' — create an alias for a command
  • System
    shutdown — shut down machine
    reboot — restart machine
    date — show the current date and time
    whoami — who you are logged in as
    finger user — display information about user
    man command — show the manual for command
    df — show disk usage
    du — show directory space usage
    free — show memory and swap usage
    whereis app — show possible locations of app
    which app — show which app will be run by default
  • Process Management
    ps — display your currently active processes
    top — display all running processes
    kill pid — kill process id pid
    kill -9 pid — force kill process id pid
  • Permissions
    ls -l — list items in current directory and show permissions
    chmod ugo file — change permissions of file to ugo - u is the user's permissions, g is the group's permissions, and o is everyone else's permissions. The values of u, g, and o can be any number between 0 and 7.
    7 — full permissions
    6 — read and write only
    5 — read and execute only
    4 — read only
    3 — write and execute only
    2 — write only
    1 — execute only
    0 — no permissions
    chmod 600 file — you can read and write - good for files
    chmod 700 file — you can read, write, and execute - good for scripts
    chmod 644 file — you can read and write, and everyone else can only read - good for web pages
    chmod 755 file — you can read, write, and execute, and everyone else can read and execute - good for programs that you want to share
  • Networking
    wget file — download a file
    curl file — download a file
    scp user@host:file dir — secure copy a file from remote server to the dir directory on your machine
    scp file user@host:dir — secure copy a file from your machine to the dir directory on a remote server
    scp -r user@host:dir dir — secure copy the directory dir from remote server to the directory dir on your machine
    ssh user@host — connect to host as user
    ssh -p port user@host — connect to host on port as user
    ssh-copy-id user@host — add your key to host for user to enable a keyed or passwordless login
    ping host — ping host and output results
    whois domain — get information for domain
    dig domain — get DNS information for domain
    dig -x host — reverse lookup host
    lsof -i tcp:1337 — list all processes running on port 1337
  • Searching
    grep pattern files — search for pattern in files
    grep -r pattern dir — search recursively for pattern in dir
    grep -rn pattern dir — search recursively for pattern in dir and show the line number found
    grep -r pattern dir --include='*.ext — search recursively for pattern in dir and only search in files with .ext extension
    command | grep pattern — search for pattern in the output of command
    find file — find all instances of file in real system
    locate file — find all instances of file using indexed database built from the updatedb command. Much faster than find
    sed -i 's/day/night/g' file — find all occurrences of day in a file and replace them with night - s means substitude and g means global - sed also supports regular expressions
  • Compression
    tar cf file.tar files — create a tar named file.tar containing files
    tar xf file.tar — extract the files from file.tar
    tar czf file.tar.gz files — create a tar with Gzip compression
    tar xzf file.tar.gz — extract a tar using Gzip
    gzip file — compresses file and renames it to file.gz
    gzip -d file.gz — decompresses file.gz back to file
  • Shortcuts
    ctrl+a — move cursor to beginning of line
    ctrl+f — move cursor to end of line
    alt+f — move cursor forward 1 word
    alt+b — move cursor backward 1 word