| 
									
										
										
										
											2024-11-24 13:12:51 +01:00
										 |  |  | # -*-shell-script-*- | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # default bash config | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # do not use the config if not in a terminal | 
					
						
							|  |  |  | if test -z "$PS1"; then | 
					
						
							|  |  |  |     return | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # and do not use it if in no interactive terminal | 
					
						
							|  |  |  | if test "$TERM" = "dumb"; then | 
					
						
							|  |  |  |   export PS1='$ ' | 
					
						
							|  |  |  |   return | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | inputrc="$HOME/.inputrc" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # create helper configs, if requested. that way I don't have to copy | 
					
						
							|  |  |  | # around multiple files if I enter a new system | 
					
						
							|  |  |  | createcfgs() { | 
					
						
							|  |  |  |     if ! test -f $inputrc; then | 
					
						
							|  |  |  |         if ! test -w $HOME; then | 
					
						
							|  |  |  |             inputrc="/tmp/.inputrc_tom" | 
					
						
							|  |  |  |         fi | 
					
						
							|  |  |  |         cat << EOF > $inputrc | 
					
						
							|  |  |  | # toms readline config | 
					
						
							|  |  |  | set show-all-if-ambiguous on | 
					
						
							|  |  |  | set meta-flag on | 
					
						
							|  |  |  | set input-meta on | 
					
						
							|  |  |  | set convert-meta on | 
					
						
							|  |  |  | set output-meta on | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # C-a blocked by screen, so use these also | 
					
						
							|  |  |  | Meta-a: beginning-of-line | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # alt-left | 
					
						
							|  |  |  | "\e[1;3C": forward-word | 
					
						
							|  |  |  | # ctrl-right | 
					
						
							|  |  |  | "\e[1;5C": forward-word | 
					
						
							|  |  |  | # alt-left, vnc | 
					
						
							|  |  |  | "\e\e[C": forward-word | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # alt-right | 
					
						
							|  |  |  | "\e[1;3D": backward-word | 
					
						
							|  |  |  | # ctrl-left | 
					
						
							|  |  |  | "\e[1;5D": backward-word | 
					
						
							|  |  |  | # alt-left, vnc | 
					
						
							|  |  |  | "\e\e[D": backward-word | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # alt-down | 
					
						
							|  |  |  | "\e[1;3B": beginning-of-line | 
					
						
							|  |  |  | # alt-down, vnc | 
					
						
							|  |  |  | "\e\e[A": beginning-of-line | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # alt-up | 
					
						
							|  |  |  | "\e[1;3A": end-of-line | 
					
						
							|  |  |  | # alt-up, vnc | 
					
						
							|  |  |  | "\e\e[B": end-of-line | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | EOF | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # stay with en, but support umlauts and the other bastards | 
					
						
							|  |  |  | export LC_COLLATE="en_US.UTF-8" | 
					
						
							|  |  |  | export LC_CTYPE="de_DE.UTF-8" | 
					
						
							|  |  |  | export LC_MONETARY="de_DE.UTF-8" | 
					
						
							|  |  |  | export LC_NUMERIC="de_DE.UTF-8" | 
					
						
							|  |  |  | export LC_TIME="de_DE.UTF-8" | 
					
						
							|  |  |  | export LC_PAPER="de_DE.UTF-8" | 
					
						
							|  |  |  | export LANG="en_US.UTF-8" | 
					
						
							|  |  |  | export LC_LANG="en_US.UTF-8" | 
					
						
							|  |  |  | export LC_ALL="en_US.UTF-8" | 
					
						
							|  |  |  | export LANGUAGE="en_US.UTF-8" | 
					
						
							|  |  |  | export GDM_LANG="en_US.UTF-8" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # generate customized support configs | 
					
						
							|  |  |  | createcfgs | 
					
						
							|  |  |  | INPUTRC="$inputrc" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # global aliases | 
					
						
							|  |  |  | alias dir='ls -l' | 
					
						
							|  |  |  | alias ll='ls -l' | 
					
						
							|  |  |  | alias la='ls -la' | 
					
						
							|  |  |  | alias l='ls -alF' | 
					
						
							|  |  |  | alias ls-l='ls -l' | 
					
						
							|  |  |  | alias lt='ls -ltr' | 
					
						
							|  |  |  | alias o='less' | 
					
						
							|  |  |  | alias ..='cd ..' | 
					
						
							|  |  |  | alias ...='cd ../..' | 
					
						
							|  |  |  | alias ....='cd ../../..' | 
					
						
							|  |  |  | alias .....='cd ../../../..' | 
					
						
							|  |  |  | alias rd=rmdir | 
					
						
							|  |  |  | alias md='mkdir -p' | 
					
						
							|  |  |  | alias which='type -p' | 
					
						
							|  |  |  | alias less='less -i -P "?f%f:Standard input. %lb / %L ?e(END):>"' | 
					
						
							|  |  |  | alias les='less' | 
					
						
							|  |  |  | alias grip='egrep -i' | 
					
						
							|  |  |  | alias lc="tr '[A-Z]' '[a-z]'" | 
					
						
							|  |  |  | alias uc="tr '[a-z]' '[A-Z]'" | 
					
						
							|  |  |  | alias table="column -t" | 
					
						
							|  |  |  | alias gethttp="fetch -n --no-verify-peer --no-verify-hostname" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-11-26 18:00:21 +01:00
										 |  |  | # use vim | 
					
						
							|  |  |  | alias vi=vim | 
					
						
							|  |  |  | EDITOR=vim | 
					
						
							| 
									
										
										
										
											2024-11-24 13:12:51 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-11-26 18:00:21 +01:00
										 |  |  | # simple command prompt | 
					
						
							|  |  |  | PS1=' | 
					
						
							| 
									
										
										
										
											2024-11-24 13:12:51 +01:00
										 |  |  | --- [\w] --- | 
					
						
							| 
									
										
										
										
											2024-11-26 18:00:21 +01:00
										 |  |  | \u@\h % ' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-11-24 13:12:51 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | # customize path | 
					
						
							| 
									
										
										
										
											2024-11-26 18:00:21 +01:00
										 |  |  | for dir in $HOME/bin /usr/local/bin /usr/local/sbin /usr/sbin; do | 
					
						
							| 
									
										
										
										
											2024-11-24 13:12:51 +01:00
										 |  |  |     if test -d $dir; then | 
					
						
							|  |  |  |         PATH=$PATH:$dir | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  | done | 
					
						
							|  |  |  | export PATH | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # history options | 
					
						
							|  |  |  | HISTFILESIZE=1000000 | 
					
						
							|  |  |  | HISTSIZE=1000000 | 
					
						
							|  |  |  | HISTCONTROL=ignoreboth | 
					
						
							|  |  |  | HISTIGNORE='ls:bg:fg:history' | 
					
						
							|  |  |  | HISTTIMEFORMAT='%F %T ' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-11-26 18:00:21 +01:00
										 |  |  | export EDITOR PS1 PATH LESSCHARSET GREP_OPTIONS HISTFILE HISTFILESIZE HISTSIZE HISTCONTROL HISTIGNORE HISTTIMEFORMAT INPUTRC | 
					
						
							| 
									
										
										
										
											2024-11-24 13:12:51 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | # better override | 
					
						
							|  |  |  | umask 0027 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # completion? | 
					
						
							|  |  |  | bash=${BASH_VERSION%.*}; bmajor=${bash%.*}; bminor=${bash#*.} | 
					
						
							|  |  |  | if [ "$PS1" ] && [ $bmajor -eq 2 ] && [ $bminor '>' 04 ] \ | 
					
						
							|  |  |  |        && [ -f ~/.completion ]; then # interactive shell | 
					
						
							|  |  |  |     # Source completion code | 
					
						
							|  |  |  |     source ~/.completion | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # bash options | 
					
						
							|  |  |  | shopt -s cdable_vars checkhash checkwinsize histappend cmdhist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # any local specific config? | 
					
						
							|  |  |  | if test -e ~/.bashrc-local; then | 
					
						
							|  |  |  |     source  ~/.bashrc-local | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 |