#!/usr/bin/env python import sys # assemble a keyphrase out of all params passed to the script keyphrase = ' '.join(sys.argv[1:]) # create a dictionary of cheatsheets cheatsheets = { ########## convert ########################################################## 'convert' : ''' To resize an image to a fixed width and proportional height: convert original-image.jpg -resize 100x converted-image.jpg To resize an image to a fixed height and proportional width: convert original-image.jpg -resize x100 converted-image.jpg To resize an image to a fixed width and height: convert original-image.jpg -resize 100x100 converted-image.jpg To resize an image and simultaneously change its file type: convert original-image.jpg -resize 100x converted-image.png To resize all of the images within a directory: for file in original/image/path/; do new_path=${file%.*}; new_file=`basename $new_path`; convert $file -resize 150 conerted/image/path/$new_file.png; done ''', ########## dhclient ########################################################## 'dhclient' : ''' @todo ''', ########## find ############################################################## 'find' : ''' executable perms file not directory directory not file ''', ########## git ############################################################### 'git' : ''' To set your identify: git config --global user.name "John Doe" git config --global user.email johndoe@example.com To enable color: git config --global color.ui true ''', ########## ifconfig ########################################################## 'ifconfig' : ''' @todo ''', ########## ln ################################################################ 'ln' : ''' To create a symlink: ln -s path/to/the/target/directory name-of-symlink ''', ########## netstat ########################################################### 'netstat' : ''' To view which users/processes are listening to which ports: sudo netstat -lnptu ''', ########## sockstat ########################################################## 'sockstat' : ''' To view which users/processes are listening to which ports: sudo sockstat -l ''', ########## ssh ############################################################### 'ssh' : ''' To execute a command on a remote server: ssh -t user@example.com 'the-remote-command' To tunnel an x session over SSH: ssh -X user@example.com To launch a specific x application over SSH: ssh -X -t user@example.com 'chromium-browser' For more information, see: http://unix.stackexchange.com/q/12755/44856 ''', ########## tar ############################################################### 'tar' : ''' To extract an uncompressed archive: tar -xvf /path/to/foo.tar To extract a .gz archive: tar -xzvf /path/to/foo.tgz To create a .gz archive: tar -czvf /path/to/foo.tgz /path/to/foo/ To extract a .bz2 archive: tar -xjvf /path/to/foo.tgz To create a .bz2 archive: tar -cjvf /path/to/foo.tgz /path/to/foo/ ''', } # print help if requested if keyphrase in ['', 'help', '--help', '-h']: cheatsheets_sorted = cheatsheets.keys() cheatsheets_sorted.sort() print "Usage: cheat [keyphrase]\n" print "Available keyphrases:" print "\n".join(cheatsheets_sorted) exit() # print the cheatsheet if it exists print cheatsheets[keyphrase] if keyphrase in cheatsheets.keys() else 'No cheatsheet found.'