diff --git a/bin/cheat b/bin/cheat index f48f069..00940d5 100755 --- a/bin/cheat +++ b/bin/cheat @@ -42,7 +42,7 @@ from docopt import docopt if __name__ == '__main__': # parse the command-line options - options = docopt(__doc__, version='cheat 2.2.1') + options = docopt(__doc__, version='cheat 2.2.2') # list directories if options['--directories']: diff --git a/cheat/cheatsheets/alias b/cheat/cheatsheets/alias new file mode 100644 index 0000000..9bd98c1 --- /dev/null +++ b/cheat/cheatsheets/alias @@ -0,0 +1,5 @@ +# Show a list of your current shell aliases +alias + +# Map `ll` to `ls -l` (Can be used per session or put inside a shell config file) +alias ll='ls -l' diff --git a/cheat/cheatsheets/cat b/cheat/cheatsheets/cat new file mode 100644 index 0000000..69a25d0 --- /dev/null +++ b/cheat/cheatsheets/cat @@ -0,0 +1,8 @@ +# Display the contents of a file +cat /path/to/foo + +# Display contents with line numbers +cat -n /path/to/foo + +# Display contents with line numbers (blank lines excluded) +cat -b /path/to/foo diff --git a/cheat/cheatsheets/cp b/cheat/cheatsheets/cp new file mode 100644 index 0000000..7003e2c --- /dev/null +++ b/cheat/cheatsheets/cp @@ -0,0 +1,11 @@ +# Create a copy of a file +cp ~/Desktop/foo.txt ~/Downloads/foo.txt + +# Create a copy of a directory +cp -r ~/Desktop/cruise_pics/ ~/Pictures/ + +# Create a copy but ask to overwrite if the destination file already exists +cp -i ~/Desktop/foo.txt ~/Documents/foo.txt + +# Create a backup file with date +cp foo.txt{,."$(date +%Y%m%d-%H%M%S)"} diff --git a/cheat/cheatsheets/curl b/cheat/cheatsheets/curl index 52f53ea..c8c281f 100644 --- a/cheat/cheatsheets/curl +++ b/cheat/cheatsheets/curl @@ -36,3 +36,6 @@ curl --limit-rate 1000B -O http://path.to.the/file # Get your global IP curl httpbin.org/ip + +# Get only the HTTP status code +curl -o /dev/null -w '%{http_code}\n' -s -I URL diff --git a/cheat/cheatsheets/dd b/cheat/cheatsheets/dd index a557e13..88d7f4a 100644 --- a/cheat/cheatsheets/dd +++ b/cheat/cheatsheets/dd @@ -1,7 +1,7 @@ # Read from {/dev/urandom} 2*512 Bytes and put it into {/tmp/test.txt} # Note: At the first iteration, we read 512 Bytes. # Note: At the second iteration, we read 512 Bytes. -dd if=/dev/urandom of=/tmp/test.txt count=512 bs=2 +dd if=/dev/urandom of=/tmp/test.txt count=2 bs=512 # Watch the progress of 'dd' dd if=/dev/zero of=/dev/null bs=4KB &; export dd_pid=`pgrep '^dd'`; while [[ -d /proc/$dd_pid ]]; do kill -USR1 $dd_pid && sleep 1 && clear; done diff --git a/cheat/cheatsheets/export b/cheat/cheatsheets/export new file mode 100644 index 0000000..14d3d71 --- /dev/null +++ b/cheat/cheatsheets/export @@ -0,0 +1,5 @@ +# Calling export with no arguments will show current shell attributes +export + +# Create new environment variable +export VARNAME="value" diff --git a/cheat/cheatsheets/kill b/cheat/cheatsheets/kill new file mode 100644 index 0000000..d80510e --- /dev/null +++ b/cheat/cheatsheets/kill @@ -0,0 +1,5 @@ +# Kill a process gracefully +kill -15 + +# Kill a process forcefully +kill -9 diff --git a/cheat/cheatsheets/mv b/cheat/cheatsheets/mv new file mode 100644 index 0000000..a3f5f19 --- /dev/null +++ b/cheat/cheatsheets/mv @@ -0,0 +1,14 @@ +# Move a file from one place to another +mv ~/Desktop/foo.txt ~/Documents/foo.txt + +# Move a file from one place to another and automatically overwrite if the destination file exists +# (This will override any previous -i or -n args) +mv -f ~/Desktop/foo.txt ~/Documents/foo.txt + +# Move a file from one place to another but ask before overwriting an existing file +# (This will override any previous -f or -n args) +mv -i ~/Desktop/foo.txt ~/Documents/foo.txt + +# Move a file from one place to another but never overwrite anything +# (This will override any previous -f or -i args) +mv -n ~/Desktop/foo.txt ~/Documents/foo.txt diff --git a/cheat/cheatsheets/pwd b/cheat/cheatsheets/pwd new file mode 100644 index 0000000..f672c88 --- /dev/null +++ b/cheat/cheatsheets/pwd @@ -0,0 +1,2 @@ +# Show the absolute path of your current working directory on the filesystem +pwd diff --git a/cheat/cheatsheets/wc b/cheat/cheatsheets/wc new file mode 100644 index 0000000..c8d771e --- /dev/null +++ b/cheat/cheatsheets/wc @@ -0,0 +1,18 @@ +# Count the number of words (file or STDIN) +wc -w /path/to/foo.txt +cat /path/to/foo.txt | wc -w + +# Count the number of lines (file or STDIN) +wc -l /path/to/foo.txt +cat /path/to/foo.txt | wc -l + +# Count the number of bytes (file or STDIN) +wc -c /path/to/foo.txt +cat /path/to/foo.txt | wc -c + +# Count files and directories at a given location +ls -l | wc -l + +# If you ever use `wc` in a shell script and need to compare the output with an int you can +# clean the output (wc returns extra characters around the integer) by using xargs: +ls -l | wc -l | xargs diff --git a/cheat/cheatsheets/xargs b/cheat/cheatsheets/xargs index 44bf20a..a1391f3 100644 --- a/cheat/cheatsheets/xargs +++ b/cheat/cheatsheets/xargs @@ -10,3 +10,7 @@ find -name *.pdf | xargs -I{} rm -rf '{}' # -n1 => One file by one file. ( -n2 => 2 files by 2 files ) find -name *.pdf | xargs -I{} -n1 echo '&{}=' + +# If find returns no result, do not run rm +# This option is a GNU extension. +find -name "*.pdf" | xargs --no-run-if-empty rm diff --git a/setup.py b/setup.py index 514f806..499f340 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ import os setup( name = 'cheat', - version = '2.2.1', + version = '2.2.2', author = 'Chris Lane', author_email = 'chris@chris-allen-lane.com', license = 'GPL3',