[ -z "$BASH_VERSION" ] && return
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
-HISTSIZE=10000
-HISTFILESIZE=10000
+HISTSIZE=50000
+HISTFILESIZE=50000
HISTTIMEFORMAT='%Y-%m-%d %H:%M:%S '
HISTCONTROL=ignoredups:ignorespace
# append to the history file, don't overwrite it
shopt -s checkwinsize
# make less more friendly for non-text input files, see lesspipe(1)
-[ -x /bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
+[[ -x /bin/lesspipe ]] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
-if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
+if [[ -z "${debian_chroot:-}" && -r /etc/debian_chroot ]]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# should be on the output of commands, not on the prompt
force_color_prompt=yes
-if [ -n "$force_color_prompt" ]; then
- if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
+if [[ -n "$force_color_prompt" ]]; then
+ if [[ -x /usr/bin/tput ]] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
fi
fi
-if [ "$color_prompt" = yes ]; then
+prompt_status() {
+ local e=$?;
+ [[ $e != 0 ]] && echo -e "$e ";
+}
+
+if [[ "$color_prompt" = yes ]]; then
if type -t __git_ps1 >/dev/null ; then
- if [ "$UID" = 0 ]; then
- PS1='$? ${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[01;30m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(__git_ps1)\[\033[01;34m\] \$ \[\033[00m\]'
+ if [[ "$UID" = 0 ]]; then
+ PS1='${debian_chroot:+($debian_chroot)}\[\e[31m\]$(prompt_status)\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w\[\033[01;31m\]$(__git_ps1)\[\033[01;35m\] \$ \[\033[00m\]'
else
- PS1='$? ${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(__git_ps1)\[\033[01;34m\] > \[\033[00m\]'
+ PS1='${debian_chroot:+($debian_chroot)}\[\e[31m\]$(prompt_status)\[\033[01;32m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w\[\033[01;31m\]$(__git_ps1)\[\033[01;35m\] > \[\033[00m\]'
fi
else
- if [ "$UID" = 0 ]; then
- PS1='$? ${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[01;30m\]:\[\033[01;34m\]\w \$ \[\033[00m\]'
+ if [[ "$UID" = 0 ]]; then
+ PS1='${debian_chroot:+($debian_chroot)}\[\e[31m\]$(prompt_status)\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w \[\033[01;35m\]\$ \[\033[00m\]'
else
- PS1='$? ${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w > \[\033[00m\]'
+ PS1='${debian_chroot:+($debian_chroot)}\[\e[31m\]$(prompt_status)\[\033[01;32m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w \[\033[01;35m\]> \[\033[00m\]'
fi
fi
else
- PS1='$? ${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
+ PS1='${debian_chroot:+($debian_chroot)}$(prompt_status)\u@\h:\w\$ '
fi
# enable color support of ls and also add handy aliases
-if [ -x /usr/bin/dircolors ]; then
+if [[ -x /usr/bin/dircolors ]]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
fi
alias rd='rmdir'
-if [ "$(type -t colordiff)" = "file" ] ; then
+if [[ "$(type -t colordiff)" = "file" ]] ; then
alias diff="$(type -p colordiff)"
fi
-if [ -f ~/.bash_aliases ]; then
+if [[ -f ~/.bash_aliases ]]; then
. ~/.bash_aliases
fi
# enable bash completion in interactive shells
if ! shopt -oq posix; then
- if [ -f /usr/share/bash-completion/bash_completion ]; then
+ if [[ -f /usr/share/bash-completion/bash_completion ]]; then
. /usr/share/bash-completion/bash_completion
- elif [ -f /etc/bash_completion ]; then
+ elif [[ -f /etc/bash_completion ]]; then
. /etc/bash_completion
fi
fi
# if the command-not-found package is installed, use it
-if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
+if [[ -x /usr/lib/command-not-found || -x /usr/share/command-not-found/command-not-found ]]; then
function command_not_found_handle {
- # check because c-n-f could've been removed in the meantime
- if [ -x /usr/lib/command-not-found ]; then
- /usr/bin/python /usr/lib/command-not-found -- "$1"
- return $?
- elif [ -x /usr/share/command-not-found/command-not-found ]; then
- /usr/bin/python /usr/share/command-not-found/command-not-found -- "$1"
- return $?
+ # check because c-n-f could've been removed in the meantime
+ if [[ -x /usr/lib/command-not-found ]]; then
+ /usr/bin/python /usr/lib/command-not-found -- "$1"
+ return $?
+ elif [[ -x /usr/share/command-not-found/command-not-found ]]; then
+ /usr/bin/python /usr/share/command-not-found/command-not-found -- "$1"
+ return $?
else
- printf "%s: command not found\n" "$1" >&2
- return 127
+ printf "%s: command not found\n" "$1" >&2
+ return 127
fi
}
fi