Miscellaneous updates.
[scripts.git] / bashrc
diff --git a/bashrc b/bashrc
index dbe21a4..3b4910c 100644 (file)
--- a/bashrc
+++ b/bashrc
@@ -92,6 +92,8 @@ export LESS_TERMCAP_me=${VT_RESET}
 
 stty -ixon
 
+ulimit -c unlimited
+
 alias ..='cd ..'
 alias -- -='cd -'
 alias rm='rm -i'
@@ -104,8 +106,12 @@ alias md='mkdir -v'
 alias ps='ps uxaf'
 alias df='df -hT --sync'
 alias grep='grep -E --mmap --color=auto'
+alias find='ionice -c3 find'
+alias pd=pushd
+alias val='valgrind --leak-check=full --show-reachable=yes --db-attach=yes '
 
 alias s='screen -d -R -U && clear'
+
 # alias kj="keyjnote -s -D 1000 -t Crossfade -T 100"
 alias impressive="impressive -s -D 1000 -t Crossfade -T 100"
 
@@ -115,15 +121,14 @@ alias impressive="impressive -s -D 1000 -t Crossfade -T 100"
 
 if [ -e "${HOME}/.dircolors" ]; then
     eval $(dircolors "${HOME}/.dircolors")
-    alias ls='ls --color'
-    # alias ll='ls --color -lth'
+    alias ls='ls --group-directories-first --color'
     alias lt='ls --color -gohtr --time-style="+%Y %b %d %H:%M"'
     alias ll='ls --color -goh --time-style="+%Y %b %d %H:%M"'
     alias lll='ls --color -lth'
     alias l='ls --color -I "*~" -I "*.o"'
     alias less='less -R'
 else
-    # alias ll='ls -lth'
+    alias ls='ls --group-directories-first'
     alias lt='ls -gohtr --time-style="+%Y %b %d %H:%M"'
     alias ll='ls -goh --time-style="+%Y %b %d %H:%M"'
     alias lll='ls -lth'
@@ -156,6 +161,33 @@ function bak () {
     done
 }
 
+function ua () {
+    while [[ "$1" ]]; do
+
+        case "$1" in
+
+            *.tgz|*.tar.gz)
+                tar zxvf "$1"
+                ;;
+
+            *.rar)
+                unrar x "$1"
+                ;;
+
+            *.zip)
+                unzip "$1"
+                ;;
+
+            *)
+                echo "Unknown file extension $1"
+                ;;
+        esac
+
+        shift
+
+    done
+}
+
 # Create a dir and cd there
 
 function mcd () {
@@ -251,10 +283,6 @@ function map () {
     done
 }
 
-function d () {
-    wget -O - $1
-}
-
 ######################################################################
 ## A version of pho which stores the image numbers in environment
 ## variables
@@ -316,7 +344,12 @@ function netup () {
         echo ${ARGS} > ${NETUP_HISTORY}
     fi
 
-    echo "${VT_GREEN_FG}Running [sudo ifup ${ARGS}]${VT_RESET}"
+    if [[ $(ps auxwww | grep dhclient | grep -v grep) ]]; then
+        echo "There is already a dhcp client running." >&2
+        return 1
+    fi
+
+    echo "${VT_GREEN_FG}Executing [sudo ifup ${ARGS}]${VT_RESET}"
     sudo ifup ${ARGS}
 
     # Ugly hack to remove the dsl modem dns server when we add
@@ -325,7 +358,7 @@ function netup () {
     REMOVE_LOCAL_DNS=/usr/local/bin/remove-local-dns.sh
 
     if [[ -x ${REMOVE_LOCAL_DNS} ]]; then
-        echo "${VT_GREEN_FG}Running [sudo ${REMOVE_LOCAL_DNS} 192.168]${VT_RESET}"
+        echo "${VT_GREEN_FG}Executing [sudo ${REMOVE_LOCAL_DNS} 192.168]${VT_RESET}"
         sudo ${REMOVE_LOCAL_DNS} 192.168
     fi
 }
@@ -339,12 +372,18 @@ function netdown () {
         # Otherwise, use the standard ifdown
         ARGS="$@"
     fi
-    echo "${VT_GREEN_FG}Running sudo [ifdown ${ARGS}]${VT_RESET}"
+    echo "${VT_GREEN_FG}Executing sudo [ifdown ${ARGS}]${VT_RESET}"
     sudo ifdown ${ARGS}
 }
 
 function checkgw () {
-    ping $(route -n | grep ^0.0.0.0 | awk '{print $2}')
+    GW=$(route -n | grep ^0.0.0.0 | awk '{print $2}')
+    if [[ -n "${GW}" ]]; then
+        ping ${GW}
+    else
+        echo "Can not find a getaway." >&2
+        return 1
+    fi
 }
 
 ######################################################################
@@ -600,6 +639,8 @@ function git-fm () {
 ######################################################################
 # Commits all directories under git
 
+alias git-ca="echo Are you sure?"
+
 function git-ca () {
     ORIGINAL_PWD=${PWD}
     UNCOMMITTED=""
@@ -794,7 +835,7 @@ alias finddup='finddup -p'
 # git clone http://fleuret.org/git/selector/
 
 function selector-history () {
-    selector --bash -c 7,4,0,3 -q <(history)
+    selector --bash -u -c 7,4,0,3 -q <(history)
 }
 
 # M-r puts the selected history line in place of the current one
@@ -809,14 +850,15 @@ bind '"\C-[t":"\C-a\C-kselector-history\C-m\C-a\C-y\C-e"'
 # Maintain a list of visited directories and provide a selector-based
 # command to go back to any of them.
 
-export CD_HISTORY
+export SELECTOR_CD_HISTORY
 
-[[ "${CD_HISTORY}" ]] || CD_HISTORY=${HOME}/.selector-cd-history
+[[ "${SELECTOR_CD_HISTORY}" ]] || \
+    SELECTOR_CD_HISTORY=${HOME}/.selector-cd-history
 
 function selector-cd-search () {
     PATH_TEMP=$(mktemp /tmp/selector-cd-path.XXXXXX)
-    selector -l 10000 -d -i -o ${PATH_TEMP} -q ${CD_HISTORY}
-    cd "$(cat ${PATH_TEMP} | sed -e 's|~|'${HOME}'|')"
+    selector -t "cd" -l 10000 -d -i -c 7,4,0,5 -o ${PATH_TEMP} -q ${SELECTOR_CD_HISTORY}
+    cd "$(cat ${PATH_TEMP} | sed -e 's!~!'${HOME}'!')"
     \rm ${PATH_TEMP}
 }
 
@@ -826,7 +868,7 @@ function selector-cd () {
     else
         cd "$1"
     fi
-    echo $PWD | sed -e "s!${HOME}!~!" >> ${CD_HISTORY}
+    echo $PWD | sed -e "s!${HOME}!~!" >> ${SELECTOR_CD_HISTORY}
 }
 
 alias cd=selector-cd
@@ -858,6 +900,8 @@ function prompt_command () {
 # save the history after every command to avoid loosing some when
 # multiple shells are open
     history -a
+# load the saved history
+    history -n
 # and the local histories system defined above
     keep_local_history
 # and the history cue