J’ai longtemps cherché comment faire un joli bash prompt J’ai trouvé pas mal d’exemples datant de 1996 et 1998 que j’ai du pas mal bidouiller.
Cependant, cette bidouille n’a jamais bien fonctionné. Par exemple, lorsque je voulais chercher une commande dans l’historique en utilisant les flèches (haut et bas) ou les raccourci CTRL-R, Il y avait un problème de colonnes.
Si je voulais changer un caractères (ou plus) dans la commande choisie dans l’historique, les caractères n’étaient en fait pas ou je les crouais, et souvent le prompt était en partie caché par la commande. Pas très utilisable.
Il ya peu de temps j’ai essayé BashStyle-ng pour voir à quel point , et de quelle manière il pouvait changer mon invite bash. AEt quelle n’a pas été ma surprise de voir dans les choix : “elite prompt” (qui était le nom du vieux prompt que j’avasi bidoullé). Du coup jai testé cette option et (encore bidouillé le bash derrière pour obtenir le look finlaement voulu.
J’ai cherché la fonction générant le prompt dans le code de BashStyle, puis apres avoir fait quelques changement j’étais content de ne pas voir mon bug d’affichage d’historique revenir. Apres un moment pas si long, j’ai fini par en retirer exactement ce que je voulais.
Donc voici la première partie de ce bashrc largement inspiré par bashstyle :*
Note :comme certains caractères spéciaux servant à dessiner les coins et lignes n’apparaissent pas dans l’article, téléchargez le fichier en bas de page..
#!/bin/bash
# based on a function found in bashtstyle-ng 5.0b1
# Original author Christopher Roy Bratusek (http://www.nanolx.org)
# Last arranged by ayoli (http://ayozone.org) 2008-02-04 17:16:43 +0100 CET
function pre_prompt {
newPWD="${PWD}"
user="whoami"
host=$(echo -n $HOSTNAME | sed -e "s/[\.].*//”)
datenow=$(date “+%a, %d %b %y”)
let promptsize=$(echo -n “–($user@$host ddd, DD mmm YY)—(${PWD})—” \
| wc -c | tr -d ” “)
let fillsize=${COLUMNS}-${promptsize}
fill=”"
while [ "$fillsize" -gt "0" ]
do
fill=”${fill}—”
let fillsize=${fillsize}-1
done
if [ "$fillsize" -lt "0" ]
then
let cutt=3-${fillsize}
newPWD=”…$(echo -n $PWD | sed -e “s/\(^.\{$cutt\}\)\(.*\)/\2/”)”
fi
}
PROMPT_COMMAND=pre_prompt
export black=”\[\033[0;38;5;0m\]”
export red=”\[\033[0;38;5;1m\]”
export green=”\[\033[0;38;5;2m\]”
export yellow=”\[\033[0;38;5;3m\]”
export blue=”\[\033[0;38;5;4m\]”
export magenta=”\[\033[0;38;5;55m\]”
export cyan=”\[\033[0;38;5;6m\]”
export white=”\[\033[0;38;5;7m\]”
export coldblue=”\[\033[0;38;5;33m\]”
export smoothblue=”\[\033[0;38;5;111m\]”
export iceblue=”\[\033[0;38;5;45m\]”
export turqoise=”\[\033[0;38;5;50m\]”
export smoothgreen=”\[\033[0;38;5;42m\]”
PS1=”$green??($coldblue\u@\h \$(date \”+%a, %d %b %y\”)$green)?\${fill}?($coldblue\$newPWD\
$green)?????\n$green??($coldblue\$(date \”+%H:%M\”) \$$green)?>$white ”
Note :comme certains caractères spéciaux servant à dessiner les coins et lignes n’apparaissent pas dans l’article, téléchargez le fichier en bas de page..
La seconde partie concerne plutot les aliases et autres réglages :
# bash_history settings: size and no duplicates and no lines w/ lead spaces
exportHISTCONTROL="ignoreboth"
export HISTSIZE=1024
# aliases #############################################
# enable color support of ls and also add handy aliases
eval `dircolors -b`
alias ls='ls --color=auto'
alias dir='ls --color=auto --format=vertical'
alias vdir='ls --color=auto --format=long'
# some more ls aliases
alias ll='ls -lhX'
alias la='ls -A'
alias ldir='ls -lhA |grep ^d'
alias lfiles='ls -lhA |grep ^-'
#alias l='ls -CF'
# To see something coming into ls output: lss
alias lss='ls -lrt | grep $1'
# To check a process is running in a box with a heavy load: pss
alias pss='ps -ef | grep $1'
# usefull alias to browse your filesystem for heavy usage quickly
alias ducks='ls -A | grep -v -e '\''^\.\.$'\'' |xargs -i du -ks {} |sort -rn |head -16 | awk '\''{print $2}'\'' | xargs -i du -hs {}'
# cool colors for manpages
alias man="TERMINFO=~/.terminfo TERM=mostlike LESS=C PAGER=less man"
##########################################################
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
# CDPATH initialisation
# CDPATH=.:~:/media
download bashrc.txt
(faites une copie de sauvegarde de votre ~/.bashrc, puis téléchargez ce fichier en utilisant le clic droit puis “enregistrer la cible sous” puis placez le dans votre home en le renomant .bashrc).

english
français
“imp?ovments”?
My english writing skills sux, but a spelling error in the title is too much =P