# ~/.bashrc: executed by bash [ -z "$PS1" ] && return ############# INCLUDE #################################### # ggf. Source Globale Definitionen if [ -f /etc/bashrc ]; then . /etc/bashrc fi # ggf. Schalte vervollstaendigung fuer Programme ein if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi # ggf. weitere aliases importieren if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi # Einstellungen fuer chroot if [ -z "$debian_chroot" -a -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot) fi ############# EXPORT ###################################### # Datum zum Historylog hinzufuegen export HISTTIMEFORMAT="%F %T " # History auf 3000 Eintraege erweitern export HISTSIZE=3000 # History Datei niemals ueberschreiben, sondern neue Eintraege unten anfuegen shopt -s histappend # keine doppelten Einträ speichern export HISTCONTROL=ignoredups LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.svgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01; 35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:' export LS_COLORS ############################################################ # die Fenstergroesse nach jedem Befehl pruefen und ggf. anpassen shopt -s checkwinsize # less auch fuer nicht text-Dateien vorbereiten [ -x /usr/bin/lesspipe ] && eval "$(lesspipe)" # farblichen Bash-Prompt shell_colored() { local GRAY="\[\033[1;30m\]" local LIGHT_GRAY="\[\033[0;37m\]" local CYAN="\[\033[0;36m\]" local LIGHT_CYAN="\[\033[1;36m\]" local NO_COLOUR="\[\033[0m\]" local BLUE="\[\033[0;34m\]" local LIGHT_BLUE="\[\033[1;34m\]" local RED="\[\033[0;31m\]" local LIGHT_RED="\[\033[1;31m\]" local GREEN="\[\033[0;32m\]" local LIGHT_GREEN="\[\033[1;32m\]" local PURPLE="\[\033[0;35m\]" local LIGHT_PURPLE="\[\033[1;35m\]" local BROWN="\[\033[0;33m\]" local YELLOW="\[\033[1;33m\]" local BLACK="\[\033[0;30m\]" local WHITE="\[\033[1;37m\]" PS1="\n${debian_chroot:+($debian_chroot)}$LIGHT_GREEN\u$LIGHT_BLUE@$LIGHT_GREEN\h$LIGHT_GRAY:$LIGHT_BLUE\w$LIGHT_RED->$NO_COLOUR " } shell_colored # alternativ #PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' # den Titel von einem xterm isetzen (user@host:dir) case "$TERM" in xterm*|rxvt*) PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"' ;; *) ;; esac ############# alias ######################################## # ls-Befehl optimieren if [ "$TERM" != "dumb" ]; then eval "`dircolors -b`" # verleiht dem "ls"-Befehl Farbe alias ls='ls --color=auto -Fh' # zeigt alle Dateien und Verzeichnisse ausfuehrlich an alias la='ls -laFh --color=auto' # zeigt Dateien und Verzeichnisse ausfuehrlich an alias ll='ls -lFh --color=auto --group-directories-first' # zeigt die zuletzt geaenderten Dateien unten an alias llr='ls -lartFh --color=auto --group-directories-first' # zeigt Dateien und Verzeichnisse an alias dir='ls --color=auto --format=vertical' # zeigt mehr Infos zu Dateien und Verzeichnissen an alias vdir='ls --color=auto --format=long' fi # zeigt einen Verzeichnis-Baum an alias tree='tree -Csu' # workaround fuer alte aptitude Version & grosser sources.list alias aptitude-update='export LANG=C ; aptitude update ; export LANG=de_DE.UTF-8' # update sources.list alias checkupdates='sudo apt-get update' # alias mkdd='mkdir $(date +%Y%m%d)' alias mkdd='mkdir $(date +%Y%m%d)' # fuegt einen neuen Key Launchpad PPAs fuer Ubuntu hinzu alias launchpadkey='sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys' # Ergebnisse von grep werden nun farblich markiert alias grep='grep --color=auto' # zeigt den aktuellen Timestamp im ISO 8601 Format an alias timestamp='date "+%Y%m%dT%H%M%S"' # zeigt rekursiv Dateien und Verzeichnisse die in der letzten Stunde anfasst wurden an alias lf='find ./* -ctime -1 | xargs ls -ltr --color' # zeigt deine oeffentliche IP-Adresse an alias myip='GET http://www.whatismyip.com/automation/n09230945.asp && echo' # wechselt ein Verzeichnis nach oben alias ..='cd ../' # wechselt zwei Verzeichnisse nach oben alias ::='cd ../..' # zeigt die/den entsprechenden Prozess an alias 'psx'='ps auxwf | grep' # zeigt die Prozessstruktur uebersichtlich an alias pst='pstree -Alpha' # zeigt alle meine Prozesse an alias psmy='ps -ef | grep $USER' # zeigt die Ports an, welche die Applikationen verwenden alias lsport='sudo lsof -i -T -n' # zeigt weitere Infos üie Ports an, welche die Applikationen verwenden alias llport='netstat -nape --inet' # zeigt den Festplattenverbrauch eines Verzeichnisses leserlich an alias du='du -kh' # zeigt den kompletten Festplattenverbrauch leserlich an alias df='df -kTh' # entpacken von Komprimierten Dateien 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 } # zeigt alle Dateien in dem akuellen Verzeichnis an (rekursiev) ff() { find . -type f -iname '*'$*'*' -ls ; } # Finde Text in Dateien fstr() { OPTIND=1 local case="" local usage="fstr: find string in files. Usage: fstr [-i] \"pattern\" [\"filename pattern\"] " while getopts :it opt do case "$opt" in i) case="-i " ;; *) echo "$usage"; return;; esac done shift $(( $OPTIND - 1 )) if [ "$#" -lt 1 ]; then echo "$usage" return; fi find . -type f -name "${2:-*}" -print0 | \ xargs -0 egrep --color=always -sn ${case} "$1" 2>&- | more } # Infos zu einer Datei ausgeben file_information() { if [ $1 ]; then PLACE=`type -path $1` if [ -z $PLACE ]; then echo "$1: not found"; return 1; fi echo $PLACE ls -l $PLACE file $PLACE ldd $PLACE else echo "Missing argument" fi } alias finfo=file_information # ein Backup einer Datei anlegen (mit Datum) file_backup() { for FILE ; do [[ -e "$1" ]] && cp "$1" "${1}_$(date +%Y-%m-%d_%H-%M-%S)" || echo "\"$1\" not found." >&2 done } alias fback=file_backup # Ein komprimiertes Backup + Datum erstellen packen() { tar czvf "$1-$(date +%y%m%d-%H%M%S).tar.gz" "$1" ; } # ssh Verbindung aufbauen + ein Logfile schreiben logssh() { ssh $1 | tee sshlog ; } # mehrere Dateien gleichzeitig aendern replace() { if [ $3 ]; then find $1 -type f | xargs perl -pi -e 's/$2/$3/g' else echo "Missing argument" fi }