# # .bash_profile ($Id: .bash_profile 25 2010-01-28 12:26:26Z arijan $) # author: arijan.luiken@gmail.com # # Aliases alias reload='source ~/.bash_profile' alias mkdir='mkdir -p' alias svim='sudo vim' alias stail='sudo tail' alias apt-get='sudo apt-get' alias apt-cache='sudo apt-cache' alias yum='sudo yum' alias screen='TERM=screen screen' alias svnprop='svn propset svn:keywords "Date Author Rev Id"' alias processes="ps axMuc | egrep '^[a-zA-Z0-9]'" alias cl='clear' alias propset='svn propset svn:keywords "Author Date Id Revision"' # Exports export PATH=$PATH:/opt/local/bin:/usr/local/bin:/opt/local/sbin:/usr/local/sbin:~/.scripts export EDITOR=vim export SVN_EDITOR=${EDITOR} export HISTCONTROL=erasedups export HISTSIZE=10000 # Shell options shopt -s histappend shopt -s cdspell shopt -s extglob shopt -s checkwinsize # Bindings bind 'set completion-ignore-case on' bind 'set show-all-if-ambiguous on' # Command completion complete -A hostname rsh rcp telnet rlogin r ftp ping disk complete -A export printenv complete -A variable export local readonly unset complete -A enabled builtin complete -A alias alias unalias complete -A function function complete -A user su mail finger complete -A helptopic help # Currently, same as builtins. complete -A shopt shopt complete -A stopped -P '%' bg complete -A job -P '%' fg jobs disown complete -A directory mkdir rmdir complete -A directory -o default cd if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi # OS Specific case `uname -s` in Darwin) test -d /Developer && export PATH=$PATH:/Developer/usr/bin export LSCOLORS="ExfxcxdxbxEgEdabagacad" alias idisk='cd /Volumes/arijan.luiken' alias ls='ls -G' alias esed='/usr/bin/sed -E' alias o='open -R .' ;; Linux) eval `dircolors -b` alias ls='ls --color=auto' alias esed='sed -r' test -d /var/lib/gems/1.8/bin/ && export PATH=$PATH:/var/lib/gems/1.8/bin/ test -d /var/lib/gems/1.8/gems/rake-0.8.7/bin && export PATH=$PATH:/var/lib/gems/1.8/gems/rake-0.8.7/bin ;; esac # Functions function titlebar() { echo "\033]0;$*\007" } export -f titlebar function man() { command man -F -a "$1" } function ff() { find . -type f -iname '*'$*'*' -ls ; } function extract() { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xvjf $1 ;; *.tar.gz) tar xvzf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) unrar x $1 ;; *.gz) gunzip $1 ;; *.tar) tar xvf $1 ;; *.tbz2) tar xvjf $1 ;; *.tgz) tar xvzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7z) 7z x $1 ;; *) echo "'$1' cannot be extracted via >extract<" ;; esac else echo "'$1' is not a valid file" fi } function back() { ( "$@" ) & } dict () { curl -s dict://dict.org/d:$1 | perl -ne 's/\r//; last if /^\.$/; print if /^151/../^250/' | less } # Prompt RED='\[\033[01;31m\]' GREEN='\[\033[01;32m\]' YELLOW='\[\033[01;33m\]' BLUE='\[\033[01;34m\]' PURPLE='\[\033[01;35m\]' CYAN='\[\033[01;36m\]' WHITE='\[\033[01;37m\]' NIL='\[\033[00m\]' DNS_SUFFIX=`hostname -f | cut -d'.' -f2-` case $DNS_SUFFIX in ryoku.org) LC=$YELLOW HC=$YELLOW ;; *) LC=$GREEN HC=$GREEN esac if [[ $UID -lt 1000 ]]; then LC=$BLUE HC=$BLUE fi if [ $UID == 0 ]; then HC=$RED fi function set_prompt() { host="${HC}\h${NIL}" _pwd=`pwd | sed "s#$HOME#~#"` if [[ $_pwd == "~" ]]; then _dirname=$_pwd else _dirname=`dirname "$_pwd" | esed "s/\/(...)[^\/]*/\/\1/g"` if [[ $_dirname == "/" ]]; then _dirname="" fi _dirname="$_dirname/`basename "$_pwd"`" fi path="${LC}${_dirname}${NIL}" export PS1="[${host}:${path}]\$${NIL} " } export PROMPT_COMMAND=set_prompt # Include local aliases if [ -f ~/.bash_local ]; then . ~/.bash_local fi