J'ai vu dans certaines captures d'écran (je ne me souviens plus où sur le web) que le terminal peut afficher les [username@machine /]$
caractères gras. J'ai hâte de l'avoir aussi parce que je me retrouve toujours à faire défiler de longues sorties pour trouver avec difficulté la première ligne après ma commande.
Comment puis-je mettre le nom d'utilisateur, etc. en gras ou en couleur?
bash
prompt
escape-characters
Benjoin
la source
la source
Réponses:
Vous devriez pouvoir le faire en définissant la
PS1
variable d'invite dans votre~/.bashrc
fichier comme ceci:Pour le rendre coloré (et éventuellement en gras - cela dépend si votre émulateur de terminal l'a activé), vous devez ajouter des codes de couleur d'échappement:
Ici, tout ce qui ne s'échappe pas entre les parties
1;91m
et0m
sera coloré dans la1;91
couleur (rouge gras). Mettez ces codes d'échappement autour de différentes parties de l'invite pour utiliser des couleurs différentes, mais n'oubliez pas de réinitialiser les couleurs avec0m
ou sinon vous aurez également une sortie de terminal colorée. N'oubliez pas de vous procurer le fichier par la suite pour mettre à jour le shell actuel:source ~/.bashrc
la source
1;31
et1;91
. En utilisant un poids de police normal, la plage 90-97 donne des couleurs plus brillantes les unes que les autres.Trouvez où votre
PS1
est placé dans votre.bashrc
et insérez'\[\e[1m\]'
au début et\[\e[0m\]
à la fin.\[
et\]
sont nécessaires pour que le shell sache que le gâchis à l'intérieur prend 0 espace sur l'écran, ce qui empêche certains comportements foirés lors de l'édition de ligne. Vous n'avez pas besoin de trop vous en préoccuper.\e[
est connu sous le nom de CSI (control sequence introducer). Vous le verrez utilisé dans la plupart des codes répertoriés sur la page Wikipedia référencée.\e
signifie le caractère d'échappement.CSI 1m
Active ainsi le gras etCSI 0m
réinitialise la police pour que le reste de votre texte soit normal.Wikipedia a une liste complète des codes d'échappement ANSI que vous pouvez utiliser si votre émulateur de terminal le prend en charge.
modifier
Pour la portabilité et la lisibilité, vous devez utiliser
tput
au lieu de codes d'échappement codés en dur. Le seul inconvénient est que l'tput
approche ne fonctionnera pas avec les terminaux qui prennent en charge les codes ANSI mais qui ont des bases de données terminfo cassées ou manquantes, mais dans ce cas, le terminfo cassé est un problème plus important car la plupart de vos applications de console qui reposent sur terminfo peuvent ne pas fonctionner correctement.Voici un exemple de ce que je fais dans mon
.bashrc
:Voici à quoi ressemblerait une version générique de la mienne. Le
0
est l'état de sortie de la dernière commande.la source
Il s'agit de l'invite par défaut que vous obtenez dans le shell bash cygwin:
Les références:
man bash
et vérifier laPROMPTING
section.la source
J'utilise cette fonction shell pour obtenir des attributs de texte dans le terminal:
Ensuite pour l'utiliser:
Cela me donne
[username@hostname]:cwd>
oùusername@hostname
sont vert vif etcwd
bleu vif.la source
~/.bashrc
?~/.bashrc
fichier et l'utiliser pour définir mon invite. Je change même les couleurs en fonction du système sur lequel je suis.Pour le faire ressembler à une invite Ubuntu par défaut, ajoutez
export PS1='\[\e[1;32m\]\u@\h\e[0;39m\]:\e[1;34m\]\w\e[0;39m\]$\[\e[0m\] '
dans votre
~/.bashrc
.Cela produira le vert bien connu
user@host
(gras), suivi d'un deux-points blanc non gras, suivi de votre répertoire de travail en bleu gras, suivi d'un$
signe, d'un espace et de votre commande en lettres blanches non gras:la source