Do you ever spend 20 minutes figuring out the perfect way to do some arcane task on the command line, only to forget it and need it again in a month? I do. A lot.
I started keeping a directory with little plain text documents that had the command line I wanted inside them. I recently uploaded them to my static site and wrote a script to use them easier.
It’s real simple, just download the howto bash script in the following directory http://static.velvetcache.org/howtos/ and place it in your path. Now make a directory for your HowTo’s somewhere and put the whole path into a file in your home directory called “.howto”.
You should be able to call $ howto --sync and it will pull down a tar of the most current files, then expand it into your HowTo directory.
If you download the howto.tar.gz by itself, be warned that it is a tar bomb and will rudely scatter its files all over your directory.
Lastly, onceyou have some HowTo’s installed, just use $ howto -l to list out the possible choices, then $ howto print-unix-timestamp, replacing “print-unix-timestamp” with the name or number of the HowTo you want.
Below is the howto shell script, because I like including code in my posts whenever I can.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | #!/bin/bash function printUsage { echo "Usage: howto [-l | --list] file-name" exit 1 } if [ $# -ne 1 ]; then printUsage fi if [ ! -f ~/.howto ]; then echo "No .howto file found in your home directory!" exit 1 fi HOWTODIR=$(cat ~/.howto) if [ "$1" == "--sync" ]; then LRECENT=$(cat $HOWTODIR/CURRENT) SRECENT=$(wget -O - http://static.velvetcache.org/howtos/CURRENT 2> /dev/null) if [ $? -ne 0 ]; then echo "Can't contact download server." exit 1 fi if [ "$LRECENT" != "$SRECENT" ]; then cd $HOWTODIR if [ $? -ne 0 ]; then echo "Can't change to the HowTo directory." exit 1 fi wget -O howtos.tar.gz http://static.velvetcache.org/howtos/howtos.tar.gz if [ $? -ne 0 ]; then echo "Can't download new files." exit 1 fi tar -zxf howtos.tar.gz if [ $? -ne 0 ] ; then echo "Can't untar the updates." exit 1 fi rm -f howtos.tar.gz exit 0 else echo 'Nothing new to download.' exit 0 fi fi if [ "$1" == "--list" ] || [ "$1" == "-l" ]; then COUNTER=0 for howto in `ls $HOWTODIR`; do echo "$COUNTER $howto" COUNTER=$(expr $COUNTER + 1) done exit 0 fi echo $1 | grep '^[0-9][0-9]*$' > /dev/null 2>&1 if [ $? -eq 0 ]; then COUNTER=0 for howto in `ls $HOWTODIR`; do if [ $COUNTER -eq $1 ]; then cat $HOWTODIR/$howto exit 0 fi COUNTER=$(expr $COUNTER + 1) done echo 'That HowTo was not found.' exit 1 elif [ ! -f "$HOWTODIR/$1" ]; then echo 'That HowTo was not found.' exit 1 fi cat $HOWTODIR/$1 exit 0 |