Avant de cliquer, ce n’est pas la question typique "Comment puis-je créer une invite de couleur?". J'ai déjà personnalisé mon invite bash pour qu'il ressemble à ceci:
[user @ Host]----[$(pwd)]
$
où tout ce qui est entre parenthèses est bleu clair et tout le reste (y compris $) est noir en ajoutant ce qui suit dans mon fichier ~/.bashrc
# Turn the Prompt symbol red if the user is root
if [ $(id -u) -eq 0 ];
then # you are root, make the Prompt red
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n\e[01;31m#\e[00m "
else
PS1="[\e[01;34m\u @ \h\e[00m]----[\e[01;34m$(pwd)\e[00m]\n$ "
fi
Le but est de faire en sorte que la seule chose qui change lorsque j'utilise 'Sudo su' est que le $ noir se change en un # rouge. J'ai regardé dans /etc/bash.bashrc et/etc/profile pour voir s'il y a juste une ligne à commenter, mais il y a un tas de choses sur debian_chroot que je ne comprends pas, et je ne veux pas bousiller quelque chose. Comment puis-je accomplir ce que je veux?
P.S. C’est ce que je veux que l’invite ressemble à la racine
[user @ Host]----[$(pwd)]
(red)#
edit: Marquez ceci comme résolu, en ajoutant le code ci-dessus à ~/.bashrc pendant que root atteignait mon objectif. De plus, dans le code ci-dessus, $ (pwd) affiche uniquement le répertoire de base (car je suppose que c'est le répertoire de travail à l'ouverture du terminal) et ne se met jamais à jour. Remplacer $ (pwd) par\w résout ce problème, mais affiche le répertoire de base sous la forme ~
, ce que j'essayais d'éviter.
Cela dépendra également de la manière dont vous deviendrez l'utilisateur root. Vous devez modifier le fichier .bashrc de l'utilisateur root si vous utilisez quelque chose comme su - root
ou Sudo -i
, dans lequel vous lisez l'environnement.
Avec Sudo -s
, vous devriez lire votre propre fichier .bashrc.
Pensez à ajouter des instructions printf ou echo pour déboguer votre code, afin de vous informer de son exécution.
Utilisez la commande id
pour vous assurer d'être ce que vous pensez être:
root@tau:~# id
uid=0(root) gid=0(root) groups=0(root)
Pour changer la couleur de l'invite en rouge pour root, j'ai modifié le fichier .bashrc
, en suivant les exemples de ce fil.
regularuser@myubuntubox:~$ Sudo su -
root@myubuntubox:~# vim .bashrc
Ensuite, dans vim, recherchez l'apparence finale de l'attribution PS1
et ajoutez-la après (notez qu'elle met à jour la valeur de $PS1
de sorte que les autres lignes précédentes n'ont pas besoin d'être modifiées et que la modification soit facilement réversible):
# Set RED Prompt
PS1="\[\e[01;31m\]$PS1\[\e[00m\]"
Suite à la réponse valide de belacqua https://askubuntu.com/a/305053/12218 , en émettant Sudo su, le fichier .bashrc de la racine est chargé.
Vous pouvez vérifier cela en émettant Sudo su
suivi de cd ~
, vous verrez que vous vous trouvez dans le répertoire de base de la racine.
En utilisant Sudo su
vous vous connectez en tant que root (su = changer d'utilisateur) contrairement àSudo do some administrative task
en tant qu'utilisateur disposant de privilèges élevés.
Ainsi, en utilisant Sudo su
, vous devenez la racine réelle et les modifications apportées à l'environnement sont des modifications apportées spécifiquement à root, c'est-à-dire: Sudo su
suivi de vim .bashrc
.
Suivre peut aider
export PS1='`[ $(id -u) == "0" ] && echo "#" || echo ">"` '
Ceci affichera '> '
pour l'utilisateur normal et '# '
pour root. Cela doit encore être dans le .bashrc
de la racine aussi.