+#!/bin/bash
+
+# The following aliases vary depending on the host OS:
+case "$(uname -s)" in
+ Linux )
+ alias ls='ls -F --color=auto'
+ ;;
+ Darwin )
+ alias ls='ls -FG'
+ ;;
+esac
+
+alias m='pine'
+alias beep='echo \a'
+alias h=history
+alias hm='history | more'
+alias hrm="history -r | more"
+alias hh='history -r | head'
+alias ht='history 10'
+alias p='ps -au'
+alias tf='tail -25f'
+alias l='ls -lF'
+alias la='ls -laF'
+alias clr='clear'
+alias cls='clear'
+alias d='date'
+alias vi='vim '
+alias v='vi'
+alias vt='vi -t'
+alias ta='vi -t'
+alias wh='whoami'
+alias new='frm -s new'
+alias du='du -k'
+alias df='df -k'
+alias shizzle="perl -pe 's/\b(\w*[^aoeuiy])[aoeuiy]+[bcdfghjklmnpqrstvwxz]*\w\b/\1izzle/g'"
+
+function lh () { last $@ | head; }
+function ll () { ls -ltF $@ | head; }
+function lu () { ls -ltuF $@ | head; }
+function lum () { ls -ltuF $@ | more; }
+function lut () { ls -ltuF $@ | tail; }
+function lm () { ls -ltF $@ | more; }
+function lt () { ls -ltF $@ | tail; }
+function lk () { ls -sltF $@ | sort -nr | head; }
+function lkm () { ls -sltF $@ | sort -nr | more; }
+function lkt () { ls -sltF $@ | sort -nr | tail; }
+function lf () { ls -lt $(find $1 -name $2 -print); }
+function vif () { vi $(find $1 -name $2 -print); }
+function viw () { vi $(which $1); }
+function toss () { mv -f $@ ~/.trashcan; }
+function xcopy () { tar cvf - -C $1 $1/* | tar xvf - -C $2; }
+function checkdns () { ping $( grep nameserver /etc/resolv.conf | awk '{print $2}' | head -1); }
+
+if [[ $(which -s pidof) -eq 0 ]]; then
+ function pidof () { ps -e -o pid,comm | grep "$1" | awk '{print $1}'; }
+fi
+
+function ssh-forget() {
+ sed -i "" "/^$1,/d" ~/.ssh/known_hosts
+}
+
+function ssh-learn() {
+ sed -i "" "/^$1,/d" ~/.ssh/known_hosts
+ ssh-keyscan -t rsa $1 >> ~/.ssh/known_hosts
+}
+
+function _ssh_complete() {
+ COMPREPLY=()
+ cur="${COMP_WORDS[COMP_CWORD]}"
+ opts=$( grep -o '^[^, ]\+' ~/.ssh/known_hosts )
+ COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
+ return 0
+}
+complete -F _ssh_complete ssh
+
+function _ssh_screen () {
+ DISCONNECT=""
+ RECONNECT="-R"
+ HOST=$1
+ while [ "$2" != "" ]; do
+ case $2 in
+ -d | --disconnect )
+ DISCONNECT="-D"
+ ;;
+ * )
+ echo "Usage: $HOST [-d | --discconnect]"
+ return 1
+ ;;
+ esac
+ shift
+ done
+
+ ssh -t $HOST screen $DISCONNECT $RECONNECT
+}
+
+for host in $( grep '^Host[ ][^*]' ~/.ssh/config | cut -c 6- ); do
+ alias "$host"="_ssh_screen $host $@"
+done