153 lines
3.0 KiB
Bash
Executable File
153 lines
3.0 KiB
Bash
Executable File
# -*-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"
|
|
|
|
# use vim
|
|
alias vi=vim
|
|
EDITOR=vim
|
|
|
|
# simple command prompt
|
|
PS1='
|
|
--- [\w] ---
|
|
\u@\h % '
|
|
|
|
|
|
# customize path
|
|
for dir in $HOME/bin /usr/local/bin /usr/local/sbin /usr/sbin; do
|
|
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 '
|
|
|
|
export EDITOR PS1 PATH LESSCHARSET GREP_OPTIONS HISTFILE HISTFILESIZE HISTSIZE HISTCONTROL HISTIGNORE HISTTIMEFORMAT INPUTRC
|
|
|
|
# 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
|
|
|
|
|
|
|