La plupart des distributions Linux configurent l’invite Bash pour qu’elle ressemble à quelque chose comme username@hostname:directory$
. Mais vous pouvez configurer l’invite Bash pour contenir ce que vous voulez, et même choisir les couleurs que vous aimez.
Les étapes d’exemple ici ont été effectuées sur Ubuntu 16.04 LTS. Le processus devrait être le même sur les autres distributions Linux, bien que l’invite Bash par défaut et les paramètres dans le fichier .bashrc puissent être un peu différents.
Emplacement de stockage de la variable d’invite
La configuration de votre invite Bash est stockée dans le fichier .bashrc de votre compte utilisateur, qui se trouve à ~/.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 exécutez:
nano ~/.bashrc
Faites défiler vers le bas PS1=
section. La première variable semble assez compliquée car elle comprend des informations de couleur – nous l’expliquerons plus tard. La deuxième variable, sans informations de couleur, se lit comme suit:
${debian_chroot:+($debian_chroot)}u@h:w$
C’est encore un peu compliqué en raison du ${debian_chroot:+($debian_chroot)}
morceaux. Celles-ci indiquent simplement à Bash de vous faire savoir si vous utilisez un environnement chroot Debian et ne sera normalement pas affiché. En les ignorant, 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 utilisateur normal ou # si vous êtes root. Donc, en mettant tout 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 dans la variable PS1. Mais vous pouvez utiliser beaucoup plus de variables que les variables par défaut.
Quittez 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 Bash personnalisée
Votre configuration d’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 pour expérimenter. Par exemple, la première ligne ici définirait votre invite sur une invite de base «user $», tandis que la seconde définirait votre invite sur une invite de base «user: working_directory $».
PS1="u$ " PS1="u:w$ "
Si vous souhaitez 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 que vous apportez 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 avoir à vous déconnecter ou à 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:
PS1="Hello World u@h:w$ "
Maintenant que vous avez les bases, il vous suffit de savoir quels sont tous les caractères spéciaux. Vous ne vous soucierez probablement pas de beaucoup d’entre eux, mais voici la liste complète telle qu’elle apparaît dans le manuel Bash:
- Un personnage de cloche:
a
- La date, au format «Jour de la semaine, mois et date» (par exemple, «Mar 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 à la locale. Les accolades sont obligatoires:
D{format}
- Un personnage d’échappement:
e
- Le nom d’hôte, jusqu’au premier «.»:
h
- Le nom d’hôte:
H
- Le nombre de jobs actuellement gérés par le shell:
j
- Le nom de base du nom du terminal du shell:
l
- Une nouvelle ligne:
n
- Un retour chariot:
r
- Le nom du shell, le nom de base de $ 0 (la partie qui suit la dernière barre oblique):
s
- L’heure, au format 24 heures HH: MM: SS:
t
- L’heure, au format 12 heures HH: MM: SS:
T
- L’heure, au format 12 heures am / pm:
@
- L’heure, au format 24 heures HH: MM:
A
- Le nom d’utilisateur de l’utilisateur actuel:
u
- La version de Bash (par exemple, 2.00):
v
- La sortie de Bash, version + patchlevel (par exemple, 2.00.0):
V
- Le répertoire de travail courant, avec $ HOME abrégé par un tilde (utilise la variable $ PROMPT_DIRTRIM):
w
- Le nom de base de $ PWD, avec $ HOME abrégé par un tilde:
W
- Le numéro d’historique de cette commande:
!
- Le numéro de commande de cette commande:
#
- Si l’uid effectif est 0, #, sinon $:
$
- Le caractère dont le code ASCII est la valeur octale nnn:
nnn
- Une barre oblique inverse:
- 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:
[
- End a sequence of non-printing characters:
]
Donc, si vous souhaitez ajouter la date et l’heure à votre invite Bash et placer le répertoire de travail sur commande sur une deuxième ligne, vous pouvez utiliser la construction suivante:
PS1="[d t] u@hnw$ "
Les crochets ici ne sont pas du tout nécessaires, mais aident à diviser les choses visuellement et à rendre la ligne plus facile à lire. Comme nous l’avons vu précédemment, vous pouvez ajouter du texte ou des caractères normaux à la variable de votre choix, alors n’hésitez pas à utiliser ce qui fonctionne pour vous.
Il y a une autre astuce puissante que vous devriez connaître: vous pouvez ajouter la sortie de n’importe quelle commande à l’invite. Chaque fois que l’invite apparaît, Bash exécutera la commande et remplira les informations actuelles. Pour ce faire, incluez simplement n’importe quelle 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 Tab de votre clavier.
Par exemple, disons que vous souhaitez 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$ "
Comme autre exemple, disons que vous souhaitez afficher le temps de fonctionnement et la moyenne de charge du système, tels qu’affichés par le 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`)nu@h:w$ "
N’hésitez pas à expérimenter 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 cela rend la variable terriblement désordonnée et compliquée si vous ne comprenez pas ce que vous regardez.
Par exemple, la variable d’invite de couleur par défaut de plus tôt était:
${debian_chroot:+($debian_chroot)}[ 33[01;32m]u@h[ 33[00m]:[ 33[01;34m]w[ 33[00m]$
Ou, en supprimant à nouveau les bits debian_chroot:
[ 33[01;32m]u@h[ 33[00m]:[ 33[01;34m]w[ 33[00m]$
C’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 le u@h
bit, précédé d’informations de couleur qui le virent au vert. Le second est le :
caractère, précédé d’une information de couleur qui supprime toute coloration. Le troisième est le w
bit, précédé par des informations de couleur qui le virent au bleu. Le quatrième est le $
bit, précédé d’informations de couleur qui suppriment toute coloration.
Une fois que vous avez compris comment créer vos propres balises de couleur, vous pouvez ajouter les couleurs de votre choix à toutes les sections de votre invite Bash.
Voici ce que vous devez savoir: Vous devez inclure l’intégralité des informations de code couleur entre les [
et ] character
s. À l’intérieur de la balise, vous devez commencer par 033[
or e[
to indicate to Bash that this is color information. Both