Run tmux commands from shell script
        # 1. create new-sessin and name it "latexmk"
        # 2. create new window and name it "latex" and open file with vim
        tmux new-session -n "latexmk" latexmk -pvc -pdf $1 > /dev/null 2>&1 ';' new-window  -n "latex" vim $1
        
Redirect stdin=Fid 0, stdout=Fid 1, stderr=Fid 2 to file
        &2 >1  # redirect stderr to stdout
        &2> file # redirect stderr and stdout to file
        > /dev/null 1>&2  # redirect stdout to nothing(discard), and redirect out to stderr
        #e.g.
        ls -la > /dev/null
        ls -la non-existing-file > /dev/null
        ls -la non-existing-file > /dev/null 2>&1
        
curl download sequence files
        curl http://google-maps-icons.googlecode.com/files/blue0[0-9].png -O "#1.png"
        
Install package in MacOS
        brew install vim or brew uninstall vim
        
Latex, latexmk and Skim refresh latex in real time
        " Use latexmk and Skim to run realtime fresh latex
        latexmk -pvc -pdf mythesis.tex  (command line)
        !open -a /Applications/Skim.app/Contents/MacOS/Skim %:p:r.pdf
        
Generate public/private key with ssh-keygen
        ssh-keygen -C noname    // avoid your email or host name inside the public key
        // you might need to ssh-add ~/.ssh/your_private_key to to ssh-agent in MacOS,
        // You might spend many hours on figuring out what is wrong with your public/private key
        // on MacOS.e.g. In Github, you might not authenticate your private key
        // because you didnot ssh-add your private key to ssh-agent[you need another passphrase]