web-dev-qa-db-fra.com

Comment changer les couleurs à l'invite bash

J'ai suivi les instructions ici et dans le lien vers comment qui est fourni ici. Cependant, il ne semble nulle part indiquer comment je peux changer les couleurs des différentes parties, car je le règle actuellement sur:

PS1='${debian_chroot:+($debian_chroot)}[\t] \u@\h:\w\$ '

Mais le texte est toujours tout blanc, comment pourrais-je rendre les chiffres pour le temps verts, et mon nom d'utilisateur et mon nom d'ordinateur bleu clair? J'utilise Ubuntu GNOME 15.04.

8
user364819

Tout d’abord, ouvrez votre fichier ~/.bashrc et activez les invites de couleur:

nano ~/.bashrc

décommentez puis ligne #force_color_Prompt=yes

Ensuite, modifiez la ligne PS1 directement sous la ligne if [ "$color_Prompt" = yes ]; then

à:

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

Comme vous pouvez le constater, 01: 34m est bleu clair et 00: 32m est vert. Vert clair serait 01: 32m au lieu de 00: 32m.

Presse CTRL + o puis appuyez sur ENTER pour sauvegarder le fichier. presse CTRL + x sortir nano.

Ensuite, exécutez la commande suivante pour appliquer les modifications en "recherchant" votre fichier bashrc:

. ~/.bashrc

Les modifications doivent maintenant s’appliquer à chaque nouveau terminal ouvert sous votre utilisateur.

cliquez ici pour plus d'informations

12
mchid

En voici un sur lequel un de mes amis et moi avons travaillé. Il affiche une ligne grisée en pointillé lorsque vous êtes un utilisateur normal. Si vous exécutez des commandes en tant qu'utilisateur root, il devient rouge pour la ligne en pointillé et le texte.

enter image description here

Dans votre fichier .bashrc, ajoutez le code suivant au bas du fichier:

if [ -f "$HOME/.bash_ps1" ]; then
    . "$HOME/.bash_ps1"
fi

EDIT: Ajoutez-le également au bas du /root/.bashrc. Ceci est valable si vous passez à l'utilisateur root en émettant la commande Sudo su -. (le reste de la modification est poursuivi sous le code)

Puis copiez et collez le reste de ce code dans un nouveau fichier appelé /home/<username>/.bash_ps1

# Fill with minuses
# (this is recalculated every time the Prompt is shown in function Prompt_command):
fill="--- "

reset_style='\[\033[00m\]'

# determine if root or not
a=$(id|awk -F\( '{print $1}')
if [ "$a" = "uid=0" ]
then
    # for root
    status_style=$reset_style'\[\033[1;31m\]' # bold red; use 0;37m for lighter color
    command_style=$reset_style'\[\033[1;31m\]' # bold red
else
    # for other users
    status_style=$reset_style'\[\033[0;90m\]' # gray color; use 0;37m for lighter color
    command_style=$reset_style'\[\033[1;29m\]' # bold black
fi
Prompt_style=$reset_style

# Prompt variable:

PS1="$status_style"'$fill $(date +"%m/%d/%y ")\t\n'"$Prompt_style"'${debian_chroot:+($debian_chroot)}\u@\h:\w\$'"$command_style "

# Reset color for command output
# (this one is invoked every time before a command is executed):
trap 'echo -ne "\033[00m"' DEBUG

function Prompt_command {
# create a $fill of all screen width minus the time string and a space:
let fillsize=${COLUMNS}-18
fill=""
while [ "$fillsize" -gt "0" ]
do
    fill="-${fill}" # fill with underscores to work on
    let fillsize=${fillsize}-1
done

# If this is an xterm set the title to user@Host:dir
case "$TERM" in
    xterm*|rxvt*)
    bname=$(basename "${PWD/$HOME/~}")
    echo -ne "\033]0;${bname}: ${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"
    ;;
    *)
    ;;
esac
}

Prompt_COMMAND=Prompt_command

EDIT (Part 2): Créez maintenant un lien vers le .bash_ps1 dans votre dossier /root

Sudo -s
cd /root
ln -s /home/<username>/.bash_ps1

Vous pouvez modifier n'importe lequel des codes ci-dessus pour répondre à vos besoins. C’est celui que j’utilise réellement au travail pour que je sache si je tape des commandes en tant qu’utilisateur root qui pourrait être potentiellement dangereux. De plus, l'horodatage apparaît juste au-dessus de chaque ligne que vous tapez, ce qui facilite un peu la tâche si vous faites défiler l'écran vers le bas pour voir quand vous avez tapé cette commande.

Espérons que cela aide!

10
Terrance