-#!/usr/tcsh
-#
-# source
-#
-#stty erase \7f
+#!/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 ht='history 10'
alias p='ps -au'
alias tf='tail -25f'
-alias ls='ls -FG'
alias l='ls -lF'
alias la='ls -laF'
alias clr='clear'
alias vt='vi -t'
alias ta='vi -t'
alias wh='whoami'
-alias ff='perl ~/tools/ff.c'
alias new='frm -s new'
alias du='du -k'
-alias df='df -bk'
+alias df='df -k'
alias shizzle="perl -pe 's/\b(\w*[^aoeuiy])[aoeuiy]+[bcdfghjklmnpqrstvwxz]*\w\b/\1izzle/g'"
-alias gvim='open ~/Applications/Vim.app/'
-alias qtmlenv='source ~/Projects/qtmlenv'
function lh () { last $@ | head; }
function ll () { ls -ltF $@ | head; }
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); }
-function pidof () { ps -e -o pid,comm | grep "$1" | awk '{print $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