web-dev-qa-db-fra.com

Pourquoi la couleur de l'utilisateur @ nom d'hôte change-t-elle après avoir recherché un fichier?

J'ai remarqué que chaque fois que je source un fichier, la couleur de l'utilisateur @ nomhôte change:

enter image description here

Pourquoi?

3
Billal Begueradj

Parce qu'il charge les paramètres utilisateur spécifiés dans votre fichier /etc/bash.bashrc. Et les paramètres de l’invite peuvent être différents de votre contexte terminal actuel. Pour plus de détails, jetez un coup d'œil aux autres réponses votées. :)

6
COil

En effet, /etc/bash.bashrc définit une nouvelle valeur pour votre invite:

# set a fancy Prompt (non-color, overwrite the one in /etc/profile)
# but only if not SUDOing and have Sudo_PS1 set; then assume smart user.
if ! [ -n "${Sudo_USER}" -a -n "${Sudo_PS1}" ]; then
  PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
6
muclux

L'apparition de Invite (la chose user@Host) est contrôlée par la variable PS1. Vous avez probablement quelque chose comme

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

dans votre fichier ~/.bashrc. Les étranges caractères \[\033[00m\] etc. sont utilisés pour colorer l'invite. \u est le nom d'utilisateur (h4ck3r), \h est le nom d'hôte (h4ck3rE780) et \w est le répertoire de travail actuel (~, ce qui indique votre répertoire HOME).

Lorsque vous spécifiez /etc/bash.bashrc, la variable PS1 est définie sur une autre valeur (sans couleur) et vous obtenez une invite différente. C'est assez simple.

Essayer

PS1='user=\u, Host=\h, directory=\w $'

dans une fenêtre de terminal et voir le résultat. Sourcing /etc/bash.bashrc ne fait rien de différent (à part les paramètres réels).

6
PerlDuck