### # # Bash personalisé # Source: tutos.dryades.org (Nov 2009) # # Installation: # Placer le contenu de ce fichier dans ~/.bashrc # et créer un ~/.bash_profile contenant: # # if [[ -f .bashrc ]] # then # . ./.bashrc # fi # BASH_ENV=~./bashrc # ### # Reglages de l'historique export HISTCONTROL=ignoredups # Ne pas stocker les commandes duspliquées export HISTIGNORE="cd:ls:[bf]g:clear" # Eviter de logger des infos inutiles export HISTSIZE=5000 # Nb de lignes par session export HISTFILESIZE=20000 # Nb de lignes global # Changer le titre de son terminal: PROMPT_COMMAND='echo -ne "\033];$(id -un)@$(hostname -s)\007"' # Editeur par défaut: export EDITOR=mcedit # Quelques paramètres pratiques : alias ls='ls -lisah' alias df='df -h' alias du='du -h --max-depth=1' # Correction orthographique automatique shopt -s cdspell # Désactiver la commande halt, pour éviter d'éteindre un serveur par mégarde alias halt="echo -e '\\nCommande désactivée\\n'" ## Trouvé sur linux attitude: # imprime les infos du gestionnaire de version en cours # si on en trouve un dans le pwd # __vcs_dir() { # local vcs base_dir sub_dir ref # sub_dir() { # local sub_dir # sub_dir=$(readlink -f "${PWD}") # sub_dir=${sub_dir#$1} # echo ${sub_dir#/} # } # # git # git_dir() { # base_dir=$(git rev-parse --show-cdup 2>/dev/null) || return 1 # if [ -n "$base_dir" ]; then # base_dir=`cd $base_dir; pwd` # else # base_dir=$PWD # fi # sub_dir=$(git rev-parse --show-prefix) # sub_dir="/${sub_dir%/}" # ref=$(git symbolic-ref -q HEAD || git name-rev --name-only HEAD 2>/dev/null) # ref=${ref#refs/heads/} # vcs="git" # } # # subversion # svn_dir() { # [ -d ".svn" ] || return 1 # base_dir="." # while [ -d "$base_dir/../.svn" ]; do # base_dir="$base_dir/.." # done # base_dir=`cd $base_dir; pwd` # sub_dir="/$(sub_dir "${base_dir}")" # ref=$(svn info "$base_dir" | awk '/^URL/ { sub(".*/","",$0); r=$0 } /^Revision/ { sub("[^0-9]*","",$0); print r":"$0 }') # vcs="svn" # alias pull="svn up" # alias commit="svn commit" # alias push="svn ci" # alias revert="svn revert" # } # # mercurial # hg_dir() { # base_dir="." # while [ ! -d "$base_dir/.hg" ]; do # base_dir="$base_dir/.." # [ $(readlink -f "${base_dir}") = "/" ] && return 1 # done # base_dir=$(readlink -f "$base_dir") # sub_dir="/$(sub_dir "${base_dir}")" # ref=$(< "${base_dir}/.hg/branch") # hgqtop=$(hg qtop) # if [[ $hgqtop == 'No patches applied' ]]; then # extra="" # else # extra=" >> $hgqtop" # fi # vcs="hg" # } # hg_dir || git_dir || svn_dir || base_dir="$PWD" # echo "${vcs:+($vcs)}${_bold}${base_dir/$HOME/~}${_normal}${vcs:+[$ref]${_bold}${sub_dir}${_normal}$extra}" # } # usage dans le prompt #PS1='${debian_chroot:+($debian_chroot)}\u@\h:$(__vcs_dir)\$ '