################################################## # ~/.bashrc # $Id: bashrc 3 2005-03-29 07:36:42Z pfeifer $ # Hagen Paul Pfeifer - hagen@jauu.net # http://www.jauu.net # ################################################## # return if ! interactively [ -z "$PS1" ] && return ################################################## # common stuff goes here # Define some colors: red='\e[0;31m' RED='\e[1;31m' blue='\e[0;34m' BLUE='\e[1;34m' cyan='\e[0;36m' CYAN='\e[1;36m' NC='\e[0m' ### check for OS case $(uname -s) in Linux) OS="linux" alias psa='ps axo "user,pid,ppid,%cpu,%mem,tty,stime,state,command"' # 0x20C3F4DD is my certification only key alias gpgsign='gpg -u 20C3F4DD --sign-key' ;; *[bB][Ss][Dd]) OS="bsd" alias psa='ps axo "user,pid,ppid,%cpu,%mem,tty,start,state,command"' ;; *) OS="unknown" ;; esac ### check for DIST if [ -f /etc/redhat-release ]; then DIST="redhat" elif [ -f /etc/gentoo-release ] || [ -f /usr/bin/emerge ]; then DIST="gentoo" fi case "${DIST}" in gentoo) #if [ -f /etc/profile.d/bash-completion ]; then # source /etc/profile.d/bash-completion #fi ;; *) ;; esac ### check for DOMAINNAME DOMAINNAME=$(dnsdomainname 2>/dev/null || hostname -d) case "${DOMAINNAME}" in furcht.bar*) export CFLAGS="-O3 -fomit-frame-pointer -pipe"; export CXXFLAGS=$CFLAGS; ;; fh-furtwangen.de*) # news server export NNTPSERVER=news.ai-lab.fh-furtwangen.de export CFLAGS="-march=i386 -Os -fomit-frame-pointer -pipe"; export CXXFLAGS=$CFLAGS; alias clearcash="rm -rf ~/.firefox/default/71uumtop.slt/Cache/*" ;; *) ;; esac ### check for HOSTNAME HOSTNAME=$(hostname 2>/dev/null || hostname -f) case "${HOSTNAME}" in einstein*,bacon,euler*) export CFLAGS="-march=i386 -Os -fomit-frame-pointer -pipe"; export CXXFLAGS=$CFLAGS; ;; *) ;; esac # terminal spezific stuff case "$TERM" in xterm*|rxvt*) # If this is an xterm set the title to user@host:dir PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"' ;; *) ;; esac ############################################################################# # PERSONAL STUFF # cfs-envs export CVSROOT=/home/cvs/cvsrep export CVSUMASK=003 export CVSEDITOR=vim # save umask rw-r--r-- umask 022 # of course export EDITOR='/usr/bin/vim' # favorite pager (give more information) export PAGER='/usr/bin/less' # less options via env export LESS="--force --ignore-case -M" # Immediate background job termination notification set -b # classpath for java libaries export CLASSPATH=.:${CLASSPATH} # default encrypted session via rsync export RSYNC_RSH=ssh # misc export cur_tty=$(tty | sed -e "s/.*\/\(.*\)/\1/") # # executable directories export PATH=$HOME/bin:/sbin:${PATH} export MOZILLA_HOME=$HOME/.mozilla export PS1='\[\033[01;34m\]\!,$cur_tty,$?,\[\033[01;33m\]\W\[\033[01;34m\],\[\033[01;32m\]\$ \[\033[00m\]' export QTDIR=/usr/lib/qt2 unset ROOTPATH # add another prompt for remote connection (hostname || tty) if test -z $SSH_TTY then export PS1='\[\033[01;34m\]\!,$cur_tty,$?,\[\033[01;33m\]\W\[\033[01;34m\],\[\033[01;32m\] \$ \[\033[00m\]' else export PS1='\[\033[01;34m\]\!,\h,$?,\[\033[01;33m\]\W\[\033[01;34m\],\[\033[01;32m\] \$ \[\033[00m\]' fi # progs env export TCGREP="irnH" HISTCONTROL=ignoreboth HISTCONTROL=$HISTCONTROL # bug in shell ... HISTFILESIZE=999 HISTSIZE=999 #HISTIGNORE=ls:ll:cd:pwd:exit:vim:clear:df:su:make:rm:cp:..:... export HISTCONTROL HISTIGNORE # colors for ls, etc. if [ -f ${HOME}/.dir_colors ] then eval `dircolors -b ${HOME}/.dir_colors` elif [ -t /etc/DIR_COLORS ] then eval `dircolors -b /etc/DIR_COLORS` fi [ -x /usr/bin/lesspipe ] && eval "$(lesspipe)" # Language Stuff # english messages && time, eur support export LANGUAGE=C export LANG=C export LC_MESSAGES=C export LC_TIME=C # if you don't like underlining (or non-supporting) # then you can do something like: # setterm -ulcolor green ## Aliases # don't print copyright messages at startup alias gdb="gdb -silent" # compress and X forward (see ~/.ssh/config) #alias ssh="ssh -C -X" # verbose remove force alias shred="shred -v -u -f" # use gnu style (default) alias indent="indent --gnu-style" # sort symbols numerically by their addresses alias nm="nm -n" # verbose mode alias fuser="fuser -v" alias d="ls --color" alias ls="ls --color=auto" alias la="ls --color=auto -al" alias ll="ls --color -l" alias rm="rm -if" alias ..="cd .." alias ...="cd .. ; cd .." alias l.="ls -d .[A-Za-z]* --color=auto" alias mkernel24='time make dep clean bzImage modules modules_install && date' alias mkernel26='time make V=1 modules_install && date' alias tutime='telnet time.fu-berlin.de 13 | grep :' alias rsync='rsync -P --checksum' alias s="sudo" # change current permissions for home directory alias homeopen="chmod -R go=rX $HOME" alias homeclose="chmod -R go= $HOME" # test if X is up and start links if possile with X support if test ! -z $XAUTHORITY then alias links='links -driver x' fi # found at ... (sorry forgoten!) function __edit_new_script () { text="$1"; shift for i in ${@}; do [ ! -e "$i" ] && echo -e "$text" > "$i" chmod u+x $i done eval vim +$(echo -e "$text" | wc -l) "$@" } alias vish='__edit_new_script "#!/bin/bash\n\n"' alias vipl='__edit_new_script "#!/usr/bin/perl -w\n\nuse strict;\n\n"' alias vihtml="__edit_new_script '\n\n\n \n \n\n \n\n\n\n\n'" ############################################################################# # FUNCTIONS # programing environments function env_koctopus { export CVS_RSH=ssh export ENVURL=http://kocotpus.sourceforge.net/ } # display fortune cookies via osd_cat function osdfortune { local PRLPTH="/usr/bin/perl" local FORTUNEPATH="/usr/bin/fortune" local OSDCATPATH="/usr/bin/osd_cat" local OSDCOLOR="red" local FONTSIZE="240" if ! [ -x ${OSDCATPATH} ] && ! [ -x ${FORTUNEPATH} ] && ! [ -x ${PRLPTH} ] then echo "Install osdcat and fortunes && set current paths!"; fi; ${FORTUNEPATH} -s | \ ${PRLPTH} -MText::Wrap -e'use Text::Wrap;undef $/;$_=<>;exit()if(length>160); $Text::Wrap::columns=30;print fill("","",$_)' | \ ${OSDCATPATH} -p bottom -A center -c ${OSDCOLOR} \ #-l 30 -f -dec-terminal-medium-r-normal-*-*-${FONTSIZE}-*-*-c-${FONTSIZE}-*-1 -l 30 -f -*-*-*-*-*-*-*-${FONTSIZE}-*-*-*-${FONTSIZE}-*-* } # ls && number of entrys function lf { ls --color=tty --classify $* echo "$(ls -l $* | wc -l) files" } # get current host related info function ii { echo -e "\nYou are logged on ${RED}$HOST" echo -e "\nAdditionnal information:$NC " ; uname -a echo -e "\n${RED}Users logged on:$NC " ; w -h echo -e "\n${RED}Current date :$NC " ; date echo -e "\n${RED}Machine stats :$NC " ; uptime echo -e "\n${RED}Memory stats :$NC " ; free echo } # clear trash in history function clearhist { cp ~/.bash_history ~/.bash_history.awkbak awk '!/^(\ *)(dir|ls .*|valgrind .*|gdb .*|objdump .*|ls|cd .*|rm .*\ |cat .*|beep .*|man .*|indent .*|cp .*|gcc.*|vim.*|clear.*|find.*|grep.*)(\ *)$/{ sub(/\ *$/,""); lines[++count] = $0 data[$0] = count } END { for (i = 1; i <= count; i++) if (data[lines[i]] == i) print lines[i] }' ~/.bash_history > ~/.bash_history_temporary mv ~/.bash_history_temporary ~/.bash_history } # look for definitions function jargon { BROWSER="links" JARGON_URL="http://info.astrian.net/jargon/terms" for i in ${*}; do ${BROWSER} ${JARGON_URL}/${i}.html done } # vim:set ts=2 tw=80 ft=sh: