• Pages
  • Rahul Nayak
  • Linux Commands Cheat Sheet for Bioinformatics and Computational Biology Professionals

Linux Commands Cheat Sheet for Bioinformatics and Computational Biology Professionals

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