« Trucs:Prompt : une invite de commande en couleur » : différence entre les versions
Aucun résumé des modifications |
mAucun résumé des modifications |
||
Ligne 1 : | Ligne 1 : | ||
<div class="leapar">asteroid<l.asteroid chez laposte.net></div> | <div class="leapar">asteroid<l.asteroid chez laposte.net></div> | ||
Il est utile quand on travaille en console de différencier du premier coup d' | Il est utile quand on travaille en console de différencier du premier coup d'œil le résultat d'une commande. Pour ça, on peut customiser le prompt de différentes façons : | ||
* utilisez un prompt en couleur | * utilisez un prompt en couleur | ||
Ligne 7 : | Ligne 7 : | ||
* combiner les deux :) | * combiner les deux :) | ||
Pour ça il vous faut modifier le fichier <code>.bashrc</code> qui se trouve dans votre répertoire personnel en rajoutant à la fin <code>PS1="votre \prompt\perso"</code | Pour ça il vous faut modifier le fichier <code>.bashrc</code> qui se trouve dans votre répertoire personnel en rajoutant à la fin <code>PS1="votre \prompt\perso"</code> | ||
Je ne vais pas entrer dans le détail (sauf si on me le demande) car tout le web en parle. Seulement je vais m'attarder sur un point qui est très gênants, la couleur. | |||
Pour la suite il faut juste savoir que :<br /> | |||
<code>\u</code> est le nom de l'utilisateur (root, pikachou, asteroid, ...)<br /> | |||
<code>\h</code> est votre hostname (bench, monPC, station, MIR, ...), jusqu'au premier point<br /> | |||
<code>\H</code> est votre hostname complet<br /> | |||
<code>\W</code> est le répertoire courant (celui dans lequel vous êtes)<br /> | |||
<code>\w</code> est le chemin complet du répertoire courant<br /> | |||
<code>\n</code> permet de revenir à la ligne<br /> | |||
<code>\r</code> est le retour chariot<br /> | |||
<code>\D{format}</code> est la date courante, formatée comme expliqué dans <code>man strftime</code> | |||
<code>\$</code> qui met un $ quand vous n'êtes pas root ou un # si vous l'êtes<br /> | |||
et :<br /> | |||
<code>\e</code> séquence d'échappement pour les couleurs | |||
<code>\[</code> début de texte non imprimable | |||
<code>\]</code> fin de texte non imprimable | |||
(voir [http://fr.wikipedia.org/wiki/Bourne-Again_shell#Caract.C3.A8re_d.27.C3.A9chappement_anti-slash_.28.22.5C.22.29 la page sur Bash de Wikipedia]) | |||
< | Par défaut le PS1 est [\u@\h \W]\$ et on le connait en faisant <code>echo $PS1</code><br /> | ||
=>< | Lorsque j'ai mis de la couleur dans mon prompt j'ai fait <code>PS1="\e[1;31m\u sur \h dans \w \n=>\e[0m"</code> ce qui me donne un prompt rouge du style : | ||
<cadre console> | |||
<span style="color:red">root sur machine dans /home/pikachou<br /> | |||
=></span> | |||
< | <note>'''[01;31m''' est de type ['''couleur de fond''';'''couleur du texte'''m</note> | ||
Le fait de saisir PS1="... dans une console permet de voir les modifs sans pour autant les enregistrer directement. un <code>exit</code> vous remettra au prompt précédent. Mais malheureusement, lorsque je tapais des commandes qui dépassaient la fin de la ligne ça ré-écrivait sur le prompt au lieu d'aller à la ligne. | |||
<u>'''L'astuce'''</u> consiste donc à remplacer <code>\e[1;31m</code> par <code>\[\e[1;31m</code> et pareil pour arrêter la couleur le <code>\[\e[0m</code>. | |||
Voila j'espère que ce petit post aura résolu le problème de certains et donner envie aux autres d'en savoir plus sur le bash et son | Pour conclure : | ||
<code>\[\e[1;31m</code> commence la couleur dans le Bash (ici uniquement le prompt) et <code>\[\e[0m</code> arrête la couleur. | |||
Le code couleurs est facile a trouver sur le web et en français avec un tas de petites explications :) | |||
Voila j'espère que ce petit post aura résolu le problème de certains et donner envie aux autres d'en savoir plus sur le bash et son prompt :-)<br /> | |||
<div class="aparte">Merci a babar et scriptfanix pour mes lacunes en anglais.</div> | <div class="aparte">Merci a babar et scriptfanix pour mes lacunes en anglais.</div> | ||
<div class="note"><u>Note</u>: certains shell n'acceptent pas \e comme caractère d'échappement (ou le remplacent par \033). Il faut utiliser <code>\033</code> à la place. Par exemple <code>\[\033[01;31m\]</code> au lieu de <code>\[\e[01;31m\]</code>.</div> | |||
Voir aussi http://blog.gnusquad.org/2008/11/22/mettez-de-la-couleur-dans-votre-prompt/ | |||
[[Catégorie:Trucs_Shell]] | [[Catégorie:Trucs_Shell]] |
Version du 2 mars 2009 à 15:53
Il est utile quand on travaille en console de différencier du premier coup d'œil le résultat d'une commande. Pour ça, on peut customiser le prompt de différentes façons :
- utilisez un prompt en couleur
- utilisez le retour à la ligne en fin de prompt
- combiner les deux :)
Pour ça il vous faut modifier le fichier .bashrc
qui se trouve dans votre répertoire personnel en rajoutant à la fin PS1="votre \prompt\perso"
Je ne vais pas entrer dans le détail (sauf si on me le demande) car tout le web en parle. Seulement je vais m'attarder sur un point qui est très gênants, la couleur.
Pour la suite il faut juste savoir que :
\u
est le nom de l'utilisateur (root, pikachou, asteroid, ...)
\h
est votre hostname (bench, monPC, station, MIR, ...), jusqu'au premier point
\H
est votre hostname complet
\W
est le répertoire courant (celui dans lequel vous êtes)
\w
est le chemin complet du répertoire courant
\n
permet de revenir à la ligne
\r
est le retour chariot
\D{format}
est la date courante, formatée comme expliqué dans man strftime
\$
qui met un $ quand vous n'êtes pas root ou un # si vous l'êtes
et :
\e
séquence d'échappement pour les couleurs
\[
début de texte non imprimable
\]
fin de texte non imprimable
(voir la page sur Bash de Wikipedia)
Par défaut le PS1 est [\u@\h \W]\$ et on le connait en faisant echo $PS1
Lorsque j'ai mis de la couleur dans mon prompt j'ai fait PS1="\e[1;31m\u sur \h dans \w \n=>\e[0m"
ce qui me donne un prompt rouge du style :
<cadre console>
root sur machine dans /home/pikachou
=>
<note>[01;31m est de type [couleur de fond;couleur du textem</note>
Le fait de saisir PS1="... dans une console permet de voir les modifs sans pour autant les enregistrer directement. un exit
vous remettra au prompt précédent. Mais malheureusement, lorsque je tapais des commandes qui dépassaient la fin de la ligne ça ré-écrivait sur le prompt au lieu d'aller à la ligne.
L'astuce consiste donc à remplacer \e[1;31m
par \[\e[1;31m
et pareil pour arrêter la couleur le \[\e[0m
.
Pour conclure :
\[\e[1;31m
commence la couleur dans le Bash (ici uniquement le prompt) et \[\e[0m
arrête la couleur.
Le code couleurs est facile a trouver sur le web et en français avec un tas de petites explications :)
Voila j'espère que ce petit post aura résolu le problème de certains et donner envie aux autres d'en savoir plus sur le bash et son prompt :-)
\033
à la place. Par exemple \[\033[01;31m\]
au lieu de \[\e[01;31m\]
.Voir aussi http://blog.gnusquad.org/2008/11/22/mettez-de-la-couleur-dans-votre-prompt/