La variable PS1 par défaut sur ma machine (Kubuntu 13.10) est la suivante:
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
Je cherche une référence sur le fonctionnement de la variable $ PS1 qui, au minimum, me permet de comprendre la variable PS1 ci-dessus.
PS1
dans un terminal, par exemplePS1="How r u, \u?"
. Le changement ne durera que jusqu'à la fermeture du terminal.Réponses:
Les références
Jusqu'à présent, il n'y a pas eu une seule référence pour tout ce qui peut aller dans une invite Bash - mais comme c'est une fonctionnalité qui a évolué au fil des décennies et qui varie probablement d'une distribution à l'autre, c'est peut-être trop demander. J'ai essayé de résumer ce que j'ai trouvé le plus utile ici.
Ce mode d'emploi est le plus complet, mais il est très long et décousu. Certaines des sections les plus utiles:
\[
et\]
est nécessaire.Ce guide explique comment
${}
fonctionne Bash en général, et cette question Ask Ubuntu explique un peu plus comment cela fonctionnedebian_chroot
.Entre ceux-ci, je pense que chaque personnage de la variable Ubuntu PS1 par défaut est expliqué.
Explication de l'invite Ubuntu
L'invite comprend trois parties:
\[\e]0;\u@\h: \w\a\]
définit la barre de titre d'une fenêtre xterm:\[
démarre une section de caractères non imprimables\e]0;
est la séquence d'échappement pour 'set xterm title' (je crois que des nombres autres que 0 définiront d'autres propriétés xterm, même si je n'ai pas testé cela)\u@\h: \w
le titre à utiliser (voir ci-dessous pour\u
,\h
et\w
)\a
marque la fin du titre\]
marque la fin des caractères non imprimables${debian_chroot:+($debian_chroot)}
se développe à la valeur de $ debian_chroot entre parenthèses si $ debian_chroot est défini. Voir cette question pour plus d'informations sur $ debian_chroot.\u@\h:\w\$
est l'invite elle-même:\u
s'étend au nom d'utilisateur actuel\h
s'étend au nom d'hôte actuel\w
se développe dans le répertoire de travail actuel\$
se développe#
pour root et$
pour tous les autres utilisateursla source
Selon Bash Reference Manual ,
PS1
c'est:Quelques autres bonnes références peuvent être:
Explication de l'invite PS1 pour Linux / Unix
Que fait "$ {debian_chroot: + ($ debian_chroot)}" dans mon invite de terminal?
Bash Shell PS1: 10 exemples pour rendre votre invite Linux comme Angelina Jolie
la source
\[
et\]
, cependant - avez-vous des références à ce sujet?\[
- commencez une séquence de caractères non imprimables, qui pourrait être utilisée pour incorporer une séquence de contrôle de terminal dans l'invite;\]
- terminer une séquence de caractères non imprimables. Prenez votre temps et lisez attentivement;)ss64.com semble avoir la meilleure référence que j'ai trouvée.
Il explique les variables suivantes:
Le
\[ ... \]
définit une série de caractères non imprimables. Ils sont nécessaires pour suivre correctement la position du curseur.Dans
\e
votre invite, une séquence d'échappement démarre. Plus d'informations sur celles-ci ici (notez "Esc" sur cette page est la\e
séquence).tput
pour obtenir le code d'échappement pour vous.${debian_chroot:+($debian_chroot)}
est l'expansion des paramètres. Voir ici($debian_chroot)
si$debian_chroot
est défini sinon rien.la source