Personnaliser Bash

Un bash en couleur est toujours plus agréable, fait moins mal aux yeux et permet de distinguer plus facilement les lignes et les résultats. Le fichier de configuration se situe dans votre dossier personnel : /home/utilisateur/.bashrc

Les variables du prompt

Voici a liste des variables utilisables dans dans le fichier .bashrc pour personnaliser le promt, le détail se trouve dans le manuel (man bash)

\a		# ASCII bell character (fait un bruit chaque fois que l'on appuie sur Entrée)
\d # date in "Weekday Month Date" format (e.g., "Tue May 26")
\D{format} # the format is passed to strftime and the result is inserted into the prompt string; an empty format results in a locale-specific time representation. The braces are required
\e # ASCII escape character (033)
\h # hostname up to the first part
\H # hostname
\j # number of jobs currently managed by the shell
\l # basename of the shell's terminal device name
\n # newline
\r # carriage return
\s # name of the shell, the basename of $0 (the portion following the final slash)
\t # current time in 24-hour HH:MM:SS format
\T # current time in 12-hour HH:MM:SS format
\@ # current time in 12-hour am/pm format
\A # current time in 24-hour HH:MM format
\u # username of the current user
\v # version of bash (e.g., 2.00)
\V # release of bash, version + patch level (e.g., 2.00.0)
\w # current working directory, with $HOME abbreviated with a tilde
\W # basename of the current working directory, with $HOME abbreviated with a tilde
\! # history number of this command
\# # command number of this command
\$ # if the effective UID is 0, a #, otherwise a $
\nnn # character corresponding to the octal number nnn \\ a backslash
\[ # begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt
\] # end a sequence of non-printing character

Les couleurs du prompt et les effets

Effacer la couleur

Toujours utile à savoir, pour s’en servir dans un script par exemple. Pour effacer la couleur :

\e[0m       # Text Reset

Palette de couleurs de base

Ci dessous la liste des couleurs de bases et des couleurs lumineuses :

# Regular Colors 1	# Regular Colors 2
\e[0;30m \e[2;30m # Black
\e[0;31m \e[2;31m # Red
\e[0;32m \e[2;32m # Green
\e[0;33m \e[2;33m # Yellow
\e[0;34m \e[2;34m # Blue
\e[0;35m \e[2;35m # Purple
\e[0;36m \e[2;36m # Cyan
\e[0;37m \e[2;37m # White

# High Intensity # Bold High Intensity
\e[0;90m \e[1;90m # Black
\e[0;91m \e[1;91m # Red
\e[0;92m \e[1;92m # Green
\e[0;93m \e[1;93m # Yellow
\e[0;94m \e[1;94m # Blue
\e[0;95m \e[1;95m # Purple
\e[0;96m \e[1;96m # Cyan
\e[0;97m \e[1;97m # White

Couleurs avec effets

Il possible d’avoir des effets de texte, notamment la possibilité de mettre du texte en gras, en souligné et en italique. Le “1” représente le texte en gras, le “3” représente le l’italique et le “4” le souligné.

# Bold			# Italic		# Underline
\e[1;30m \e[3;30m \e[4;30m # Black
\e[1;31m \e[3;31m \e[4;31m # Red
\e[1;32m \e[3;32m \e[4;32m # Green
\e[1;33m \e[3;33m \e[4;33m # Yellow
\e[1;34m \e[3;34m \e[4;34m # Blue
\e[1;35m \e[3;35m \e[4;35m # Purple
\e[1;36m \e[3;36m \e[4;36m # Cyan
\e[1;37m \e[3;37m \e[4;37m # White

Les backgrounds

Il est également possible de colorer le background

# Background		# High Intensity bg
\e[0;40m \e[0;100m # Black
\e[0;41m \e[0;101m # Red
\e[0;42m \e[0;102m # Green
\e[0;43m \e[0;103m # Yellow
\e[0;44m \e[0;104m # Blue
\e[0;45m \e[0;105m # Purple
\e[0;46m \e[0;106m # Cyan
\e[0;47m \e[0;107m # White

Mélanger backgrounds et couleur du texte

Il suffit d’indiquer la couleur du fond en 2ème position et celle du texte en 3ème. La première position indique l’effet sur le texte. Exemple :

\e[0;43;95m		\e[0;103;95m		# Yellow background and purple bold text
\e[0;46;97m \e[0;10;976m # Cyan background and white text

Petits codes à tester

Petits codes à tester pour faciliter la compréhension, à lancer directement dans la console.

echo -e "------ Testing colors -------
\e[0m--- Purple :
\e[0;95m test0 \e[0;35m test0
\e[1;95m test1 \e[1;35m test1
\e[2;95m test2 \e[2;35m test2
\e[3;95m test3 \e[3;35m test3
\e[4;95m test4 \e[4;35m test4
\e[0m--- Green :
\e[0;92m test0 \e[0;32m test0
\e[1;92m test1 \e[1;32m test1
\e[2;92m test2 \e[2;32m test2
\e[3;92m test3 \e[3;32m test3
\e[4;92m test4 \e[4;32m test4
\e[0m--- Blue :
\e[0;94m test0 \e[0;34m test0
\e[1;94m test1 \e[1;34m test1
\e[2;94m test2 \e[2;34m test2
\e[3;94m test3 \e[3;34m test3
\e[4;94m test4 \e[4;34m test4"
echo -e "------ Testing colors -------
\e[0m--- Purple :
\e[0;35m test0
\e[2;35m test2
\e[0m--- Green :
\e[0;32m test0
\e[2;32m test2
\e[0m--- Blue :
\e[0;34m test0
\e[2;34m test2"

Avec un background. Le \e[m en fin de ligne permet de ne pas prolonger le background à la ligne suivante.

echo -e "------ Testing colors -------
\e[1;103;35m Yellow intensity background and purple bold text \e[m
\e[3;43;35m Yellow background and purple italic text \e[m
\e[0;46;37m Cyan background and white text \e[m
\e[1;106;37m Cyan intensity background and white bold text \e[m"

Exemples de prompt

Promts simples

Pour avoir un bash avec des tonalités de rouge qui ressemble à ceci :

   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 13:37:00
  [root@ks7337:~]#

Ouvrir le fichier .bashrc et ajouter :

export PS1='
\[\e[0;30m\]---------------------------------------------------------\t
\[\e[1;31m\][\
\[\e[0;31m\]\u\
\[\e[1;31m\]@\
\[\e[0;31m\]\h\
\[\e[1;31m\]:\
\[\e[1;35m\]\w\
\[\e[1;31m\]]\
\[\e[0;35m\]\$\
\[\e[0;0m\] \

Pour avoir un bash avec des tonalités de bleu qui ressemble à ceci :

   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 13:37:00
   [root@ks7337:~]#$

export PS1='
\[\e[0;30m\]---------------------------------------------------------\t
\[\e[1;34m\][\
\[\e[0;36m\]\u\
\[\e[1;34m\]@\
\[\e[0;36m\]\h\
\[\e[1;34m\]:\
\[\e[1;34m\]\w\
\[\e[1;34m\]]\
\[\e[0;36m\]\$\
\[\e[0;0m\] \

Promts avec background

Pour avoir un bash qui ressemble à ceci :


   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 13:37:42
   [root@ks7337:~]#$

PS1=' 
\[\e[0;104;37m\]-----------------------------------------------\[\e[0;44;97m\] \t \e[m
\[\e[1;34m\][\
\[\e[0;39m\]\u\
\[\e[1;34m\]@\
\[\e[0;39m\]\h\
\[\e[1;34m\]:\
\[\e[1;34m\]\w\
\[\e[1;34m\]]\
\[\e[0;39m\]\$\
\[\e[0;0m\] \

Thème Rose

'PS1=
\[\e[38;5;240m\]-----------------------------------------------------------------\
\[\e[38;5;240m\] \t
\[\e[38;5;200m\][\
\[\e[38;5;15m\]\u\
\[\e[38;5;200m\]@\
\[\e[38;5;15m\]\h\
\[\e[38;5;200m\]:\
\[\e[38;5;15m\]\w\
\[\e[38;5;200m\]]\
\[\e[38;5;200m\]\$\
\[\e[0;0m\] \
'

# Manuel en couleurs
export LESS_TERMCAP_mb=$'\e[0m'
export LESS_TERMCAP_md=$'\e[38;5;170m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\e[38;5;200m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[38;5;218m'

Exécuter le fichier

Si les modifications ne sont pas prise en compte il faut relancer un terminal ou lancer la commande suivante :

# . ~/.bashrc

Générateurs de prompt

http://bashrcgenerator.com/
http://ezprompt.net/
https://www.kirsle.net/wizards/ps1.html

> Partager <