Comment personnaliser (et coloriser) votre invite Bash

Table des matières:

Comment personnaliser (et coloriser) votre invite Bash
Comment personnaliser (et coloriser) votre invite Bash

Vidéo: Comment personnaliser (et coloriser) votre invite Bash

Vidéo: Comment personnaliser (et coloriser) votre invite Bash
Vidéo: Renault Scénic 2 Injection à contrôler - YouTube 2024, Novembre
Anonim
La plupart des distributions Linux configurent l'invite Bash pour ressembler à quelque chose comme
La plupart des distributions Linux configurent l'invite Bash pour ressembler à quelque chose comme

username@hostname:directory$

. Mais vous pouvez configurer l'invite Bash pour qu'elle contienne ce que vous aimez et même choisir les couleurs de votre choix.

Les exemples d’exemple présentés ici ont été réalisés sur Ubuntu 16.04 LTS. Le processus devrait être identique sur les autres distributions Linux, bien que l'invite Bash par défaut et les paramètres du fichier.bashrc puissent être légèrement différents.

Où la variable d'invite est stockée

La configuration de votre invite Bash est stockée dans le fichier.bashrc de votre compte utilisateur, qui se trouve à la page.

~/.bashrc

. Donc, si votre nom d'utilisateur est bob, le fichier est à

/home/bob/.bashrc

Vous pouvez ouvrir le fichier pour afficher la variable Bash actuelle. Nous utiliserons nano comme exemple d’éditeur de texte, bien que vous puissiez également utiliser vi, emacs ou tout autre éditeur de texte avec lequel vous êtes à l’aise. Ouvrez un terminal et lancez:

nano ~/.bashrc

Faites défiler jusqu'à la
Faites défiler jusqu'à la

PS1=

section. La première variable semble assez compliquée car elle inclut des informations sur les couleurs. Nous l’expliquerons plus tard. La deuxième variable, sans information de couleur, se lit comme suit:

${debian_chroot:+($debian_chroot)}u@h:w$

C’est encore un peu compliqué à cause de la
C’est encore un peu compliqué à cause de la

${debian_chroot:+($debian_chroot)}

morceaux. Celles-ci indiquent simplement à Bash de vous indiquer si vous utilisez un environnement chroot Debian et si, en règle générale, il ne sera pas affiché. Ignorant ceux-ci, voici la structure par défaut de la variable d’invite Bash:

u@h:w$

u

indique votre nom d'utilisateur,

@

indique le signe @,

h

indique le nom d'hôte (nom de l'ordinateur),

:

indique le caractère:

w

indique le répertoire de travail, et

$

indique un $ si vous êtes un compte d'utilisateur normal ou # si vous êtes un utilisateur root. Donc, en mettant cela ensemble, vous obtenez

username@hostname:working_directory$

Pour modifier votre invite Bash, il vous suffit d’ajouter, de supprimer ou de réorganiser les caractères spéciaux de la variable PS1. Mais vous pouvez utiliser beaucoup plus de variables que celles par défaut.

Laissez l'éditeur de texte pour le moment. Dans nano, appuyez sur Ctrl + X pour quitter. Nous allons vous montrer comment expérimenter des variables avant d’en écrire une nouvelle dans votre fichier.bashrc.

Comment créer une invite de Bash personnalisée

La configuration de votre invite Bash est stockée dans la variable PS1. Pour enregistrer le contenu de la variable PS1 dans une nouvelle variable, exécutez la commande suivante:

DEFAULT=$PS1

Vous pouvez maintenant définir la variable PS1 sur différentes valeurs à expérimenter. Par exemple, la première ligne définirait votre invite comme une invite «utilisateur $» de base, tandis que la seconde définirait votre invite comme une invite «utilisateur: répertoire_travail $» de base.

PS1='u$ ' PS1='u:w$ '

Si vous souhaitez un jour revenir à votre invite par défaut, exécutez simplement la commande suivante.

PS1=$DEFAULT

Bash sera restauré à son invite par défaut grâce au fait que vous avez enregistré ces paramètres par défaut plus tôt. Notez que toutes les modifications apportées ici ne sont que temporaires pour la session Bash en cours. Vous pouvez donc toujours vous déconnecter et vous reconnecter ou fermer et rouvrir la fenêtre du terminal pour revenir à votre invite par défaut. Mais la ligne ci-dessus permet de revenir facilement à votre invite Bash par défaut sans la peine de vous déconnecter ou de fermer une fenêtre.

Vous pouvez ajouter des caractères ou du texte à la variable. Ainsi, pour préfixer l’invite par défaut avec «Hello World», vous pouvez utiliser:
Vous pouvez ajouter des caractères ou du texte à la variable. Ainsi, pour préfixer l’invite par défaut avec «Hello World», vous pouvez utiliser:

PS1='Hello World u@h:w$ '

Maintenant que vous maîtrisez les bases, il vous suffit de connaître tous les caractères spéciaux. Vous ne vous en soucierez probablement pas, mais voici la liste complète, telle qu’elle apparaît dans le manuel de Bash:
Maintenant que vous maîtrisez les bases, il vous suffit de connaître tous les caractères spéciaux. Vous ne vous en soucierez probablement pas, mais voici la liste complète, telle qu’elle apparaît dans le manuel de Bash:
  • Un personnage de cloche:

    a

  • La date, au format «Jour de la semaine, mois» (par exemple, «mardi 26 mai»):

    d

  • Le format est passé à strftime (3) et le résultat est inséré dans la chaîne d'invite; un format vide donne une représentation temporelle spécifique à l'environnement local. Les accolades sont obligatoires:

    D{format}

  • Un personnage d'évasion:

    e

  • Le nom d’hôte, jusqu’au premier «.»:

    h

  • Le nom d'hôte:

    H

  • Le nombre de tâches actuellement gérées par le shell:

    j

  • Le nom de base du nom du périphérique terminal du shell:

    l

  • Une nouvelle ligne:
  • Un retour de voiture:
  • Le nom du shell, le nom de base de $ 0 (la partie qui suit la barre oblique finale):

    s

  • L'heure, au format HH: MM: SS sur 24 heures:

  • L'heure, au format HH: MM: SS sur 12 heures:

    T

  • L'heure, au format 12 heures am / pm:

    @

  • L'heure, au format HH: MM sur 24 heures:

    A

  • Le nom d'utilisateur de l'utilisateur actuel:

    u

  • La version de Bash (par exemple, 2.00):

    v

  • La version de Bash, version + patchlevel (par exemple, 2.00.0):

    V

  • Le répertoire de travail actuel, avec $ HOME abrégé avec un tilde (utilise la variable $ PROMPT_DIRTRIM):

    w

  • Le nom de base de $ PWD, avec $ HOME abrégé avec un tilde:

    W

  • Le numéro d'historique de cette commande:

    !

  • Le numéro de commande de cette commande:

    #

  • Si l'ID effectif est 0, #, sinon $:

    $

  • Le caractère dont le code ASCII est la valeur octale nnn:

    nn

  • Un backslash:

  • Commencez une séquence de caractères non imprimables. Cela pourrait être utilisé pour incorporer une séquence de contrôle de terminal dans l'invite:

    [

  • Terminez une séquence de caractères non imprimables:

    ]

Donc, si vous voulez ajouter la date et l'heure à votre invite Bash et mettre le répertoire de travail en commande sur une deuxième ligne, vous pouvez utiliser la construction suivante:

PS1='[d ] u@h

w$ '

Les crochets ne sont pas nécessaires du tout, mais ils aident à dissocier visuellement les choses et rendent la ligne plus lisible. Comme nous l'avons vu précédemment, vous pouvez ajouter du texte ou des caractères normaux à la variable de votre choix. N'hésitez donc pas à utiliser ce qui vous convient.

Il existe une astuce plus puissante que vous devez connaître: vous pouvez ajouter le résultat de n’importe quelle commande à l’invite. Chaque fois que l'invite apparaît, Bash exécutera la commande et renseignera les informations actuelles. Pour ce faire, il suffit d'inclure toute commande que vous souhaitez exécuter entre deux
Il existe une astuce plus puissante que vous devez connaître: vous pouvez ajouter le résultat de n’importe quelle commande à l’invite. Chaque fois que l'invite apparaît, Bash exécutera la commande et renseignera les informations actuelles. Pour ce faire, il suffit d'inclure toute commande que vous souhaitez exécuter entre deux

`

personnages. Ce n’est pas une apostrophe, c’est l’accent grave qui apparaît au-dessus de la touche de tabulation de votre clavier.

Par exemple, supposons que vous souhaitiez afficher la version du noyau Linux dans l'invite. Vous pouvez utiliser une ligne comme celle-ci:

PS1='u@h on `uname -s -r` w$ '

Autre exemple, supposons que vous souhaitiez afficher le temps de disponibilité du système et la charge moyenne, comme indiqué par
Autre exemple, supposons que vous souhaitiez afficher le temps de disponibilité du système et la charge moyenne, comme indiqué par

uptime

commander. Vous pouvez utiliser la construction suivante, qui place le temps de disponibilité sur sa propre ligne avant le reste de l'invite.

PS1='(`uptime`)

u@h:w$ '

N'hésitez pas à expérimenter avec différents caractères spéciaux et commandes pour assembler votre invite de commande idéale.
N'hésitez pas à expérimenter avec différents caractères spéciaux et commandes pour assembler votre invite de commande idéale.

Comment ajouter des couleurs à votre invite Bash

Une fois que vous avez déterminé votre invite préférée, vous pouvez y ajouter des couleurs. C’est en fait très simple, mais la variable a l’air terriblement compliquée si vous ne comprenez pas ce que vous regardez.

Par exemple, la variable d'invite de couleur par défaut de précédemment était:

${debian_chroot:+($debian_chroot)}[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[00m]$

Ou encore, en supprimant les bits debian_chroot:

[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[00m]$

Ceci est en fait juste le
Ceci est en fait juste le

u@h:w$

variable de plus tôt, mais avec des informations de couleur. Vraiment, nous pouvons le décomposer en quelques sections:

[33[01;32m] u@h [33[00m] : [33[01;34m] w [33[00m] $

La première section est la

u@h

bit, précédé par une information de couleur qui passe au vert. La seconde est la

:

caractère, précédé d'informations de couleur qui supprime toute coloration. Le troisième est le

w

bit, précédé par une information de couleur qui passe au bleu. Le quatrième est le

$

bit, précédé par une information de couleur qui supprime toute coloration.

Une fois que vous avez compris comment créer vos propres balises de couleur, vous pouvez ajouter les couleurs de votre choix aux sections de votre invite Bash de votre choix.
Une fois que vous avez compris comment créer vos propres balises de couleur, vous pouvez ajouter les couleurs de votre choix aux sections de votre invite Bash de votre choix.

Voici ce que vous devez savoir: Vous devez inclure toute l’information sur le code de couleur entre

[

et

] character

s. À l'intérieur de la balise, vous devez commencer par

33[

ou

e[

pour indiquer à Bash qu'il s'agit d'informations de couleur. Tous les deux

33[

et

e[

faire la même chose.

e[

est plus courte, donc peut-être plus pratique à utiliser, mais nous utiliserons

33[

ici car il correspond à ce qui est utilisé par défaut. À la fin de la balise, vous devez terminer par

m

pour indiquer la fin d'une étiquette de couleur.

Pour résumer, voici à quoi chaque étiquette de couleur ressemblera. La seule différence réside dans les informations que vous ajoutez à la place de COLOR pour définir la couleur réelle:

[33[ COLORm]

Bash vous permet de changer la couleur du texte de premier plan, d'ajouter des attributs tels que "gras" ou "souligné" au texte et de définir une couleur d'arrière-plan.

Voici les valeurs pour le texte au premier plan:

  • Noir: 30
  • Bleu: 34
  • Cyan: 36
  • Vert: 32
  • Violet: 35
  • Rouge: 31
  • Blanc: 37
  • Jaune: 33

Par exemple, comme le texte violet correspond au code de couleur 32, vous utiliseriez

[33[ 32m]

pour le texte violet.

Vous pouvez également spécifier un attribut pour le texte. Cet attribut doit être ajouté avant le numéro de couleur, séparé par un point-virgule (;). Le texte avec ces attributs aura un aspect différent selon les émulateurs de terminaux.
Vous pouvez également spécifier un attribut pour le texte. Cet attribut doit être ajouté avant le numéro de couleur, séparé par un point-virgule (;). Le texte avec ces attributs aura un aspect différent selon les émulateurs de terminaux.

Voici les valeurs pour les attributs de texte:

  • Texte normal: 0
  • Texte en gras ou clair: 1 (Cela dépend de l'émulateur de terminal.)
  • Dim Text: 2
  • Texte souligné: 4
  • Texte clignotant: 5 (Ceci ne fonctionne pas dans la plupart des émulateurs de terminaux.)
  • Texte inversé: 7 (Ceci inverse les couleurs de l'avant-plan et de l'arrière-plan. Vous verrez ainsi du texte noir sur un arrière-plan blanc si le texte actuel est du texte blanc sur un arrière-plan noir.)
  • Texte caché: 8

Vous n'avez pas réellement besoin d'inclure l'attribut de texte normal. De toute façon, c’est le défaut.

Par exemple, comme le texte rouge correspond au code 31 et le texte en gras au code 1, vous utiliserez

[33[ 1;31m]

pour le texte rouge en gras.

Vous pouvez également spécifier une couleur d'arrière-plan, mais vous ne pouvez pas ajouter d'attribut à une couleur d'arrière-plan.
Vous pouvez également spécifier une couleur d'arrière-plan, mais vous ne pouvez pas ajouter d'attribut à une couleur d'arrière-plan.

Voici les valeurs pour les couleurs de fond:

  • Fond noir: 40
  • Fond bleu: 44
  • Contexte cyan: 46
  • Fond vert: 42
  • Fond violet: 45
  • Fond rouge: 41
  • Fond blanc: 47
  • Fond jaune: 43

Par exemple, puisqu'un fond bleu est le code 44,

[33[ 44m]

spécifierait un fond bleu.

Vous pouvez spécifier des balises de couleur de premier plan et d’arrière-plan. Par exemple, 42 représente un arrière-plan vert et 31, un texte en rouge. Donc, pour que l’invite par défaut devienne du texte rouge sur un fond vert, vous devez utiliser:
Vous pouvez spécifier des balises de couleur de premier plan et d’arrière-plan. Par exemple, 42 représente un arrière-plan vert et 31, un texte en rouge. Donc, pour que l’invite par défaut devienne du texte rouge sur un fond vert, vous devez utiliser:

PS1='[33[ 42m][33[ 31m]u@h:w$ '

Nous spécifions simplement une couleur d'arrière-plan unique, puis une couleur de texte de premier plan unique, qui commence au début de l'invite et est appliquée à tout le texte de l'invite. Cependant, vous pouvez spécifier autant de balises de couleur que vous le souhaitez dans la variable pour colorer différentes sections de votre invite à votre guise.

Les couleurs du texte d'arrière-plan et de premier plan continuent de dépasser l'invite, sauf si vous spécifiez le code de couleur 00 pour effacer les informations de couleur. Vous pouvez également utiliser cette balise dans la variable pour rétablir le formatage par défaut quelque part dans votre invite. Par exemple, la ligne suivante mettrait fin à toute la coloration avant la
Les couleurs du texte d'arrière-plan et de premier plan continuent de dépasser l'invite, sauf si vous spécifiez le code de couleur 00 pour effacer les informations de couleur. Vous pouvez également utiliser cette balise dans la variable pour rétablir le formatage par défaut quelque part dans votre invite. Par exemple, la ligne suivante mettrait fin à toute la coloration avant la

$

personnage.

PS1='[33[ 42m][33[ 31m]u@h:w\[33[ 00m]$ '

Image
Image

Comment définir votre nouvelle invite par défaut

Une fois que vous avez fini d’expérimenter les couleurs, vous devriez avoir une invite Bash semblable à celle de la session en cours. Mais vous voudrez probablement rendre cette nouvelle invite permanente afin qu’elle soit automatiquement utilisée dans toutes vos sessions Bash.

Pour ce faire, il vous suffit de modifier le contenu de la variable PS1 dans le fichier.bashrc, que nous avons examiné précédemment.

Ouvrez le fichier.bashrc dans votre éditeur de texte préféré, comme suit:

nano ~/.bashrc

Faites défiler et localisez la section PS1 =.Il suffit de remplacer la variable par défaut par votre variable personnalisée. Vous voudrez probablement quitter le

${debian_chroot:+($debian_chroot)}

Les bits seuls, cependant, n’apparaîtront que si vous êtes dans un environnement chroot, de toute façon.

Entrez votre variable PS1 colorée sous le

if [ '$color_prompt' = yes ]; then

ligne. Entrez la variable sans couleur sous le

else

ligne.

Enregistrez le fichier et fermez votre éditeur de texte. Par exemple, pour enregistrer le fichier en nano, appuyez sur Ctrl + O, appuyez sur Entrée, puis sur Ctrl + X pour quitter.
Enregistrez le fichier et fermez votre éditeur de texte. Par exemple, pour enregistrer le fichier en nano, appuyez sur Ctrl + O, appuyez sur Entrée, puis sur Ctrl + X pour quitter.

La prochaine fois que vous lancerez un nouveau shell Bash, par exemple en vous connectant au terminal ou en ouvrant une nouvelle fenêtre de terminal, vous verrez apparaître votre invite personnalisée.

Conseillé: