Avant de cliquer, ce n'est pas la question typique "comment faire pour que mon invite bash ait une couleur". J'ai déjà personnalisé mon invite bash pour qu'elle ressemble à ceci:
[user @ host]----[$(pwd)]
$
où tout entre parenthèses est bleu clair, et tout le reste (y compris $) est noir en ajoutant ce qui suit à 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 transforme en # rouge. J'ai regardé dans /etc/bash.bashrc et / etc / profile pour voir s'il n'y a qu'une ligne à commenter, mais il y a un tas de trucs sur debian_chroot que je ne comprends pas, et je ne veux pas bousiller quelque chose. Comment puis-je accomplir ce que je veux?
PS Voici à quoi je veux que l'invite ressemble en tant que root
[user @ host]----[$(pwd)]
(red)#
edit: Marquer cela comme résolu, en ajoutant le code ci-dessus à ~ / .bashrc pendant que root a atteint mon objectif. De plus, dans le code ci-dessus, $ (pwd) n'affiche que le répertoire personnel (je suppose que c'est le répertoire de travail lorsque le terminal est ouvert) et ne se met jamais à jour. Le remplacement de $ (pwd) par \ w corrige cela, mais affiche le répertoire personnel en tant que ~
, ce que j'essayais d'éviter.
la source
\e[01;31m
, dans\[...\]
. Ceci est expliqué sous PROMPTING dans le manuel. Voir aussi mywiki.wooledge.org/BashFAQ/053pwd
n'a pas fonctionné dans l'invite est que vous devez échapper au signe dollar, sinon$(pwd)
il sera exécuté avant que le contenu ne soit placé dans $ PS1. Vous pouvez le tester avec ceci:PS1="\$(pwd) "
.Réponses:
Cela dépendra également de la façon dont vous deviendrez l'utilisateur root. Vous devez apporter la modification dans le .bashrc de l'utilisateur root si vous utilisez quelque chose comme
su - root
ousudo -i
, où vous lisez dans l'environnement.Avec
sudo -s
, vous devriez lire votre propre .bashrc.Pensez à ajouter des instructions printf ou echo pour déboguer votre code, pour vous dire quand il s'est exécuté.
Utilisez la
id
commande pour vous assurer que vous êtes bien qui vous pensez être:la source
sudo su
sudo su
lit ~ root / .bashrc (au moins tel qu'il est actuellement implémenté sur mon système 13.04).Pour changer la couleur de l'invite en rouge pour root, j'ai modifié le
.bashrc
fichier en suivant les exemples de ce fil.Ensuite, dans vim, recherchez l'apparence finale de l'
PS1
affectation et ajoutez-la à la suite (notez qu'elle met à jour la valeur de$PS1
afin que les autres lignes précédentes n'aient pas besoin d'être modifiées et que la modification soit facilement réversible):la source
Suite à la réponse valide de belacqua /ubuntu//a/305053/12218 , en émettant sudo su, le .bashrc de la racine est chargé.
Vous pouvez vérifier cela en émettant
sudo su
suivi decd ~
vous verrez que vous êtes dans le répertoire personnel de root.En
sudo su
vous connectant en tant que root (su = changer d'utilisateur) contrairement à ensudo do some administrative task
tant qu'utilisateur avec des 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 à la racine, c'est-à-dire:sudo su
suivies devim .bashrc
.la source
Ce qui suit peut aider
Cela montrera
'> '
pour l'utilisateur normal et'# '
pour root. Cela doit toujours être dans la racine.bashrc
aussi.la source