logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 08-07-2016 15:10:10

Anonyme-8
Invité

Changer la couleur du terminal en fonction de l'utilisateur ou

Bonjour,

J'aimerai trouver un moyen (visuel) pour différencier facilement sur quelle machine je suis connecté et si je suis en root.
L'idée serait d'avoir le nom d'utilisateur en rouge si je suis en root.
Si je suis sur une machine distante, avoir le fond du terminal d'une autre couleur pourrait être utile.

J'ai pas trouvé grand chose correspondant.

edit: https://memo-linux.com/comment-personna … -terminal/

si quelqu'un a une idée par où chercher ou des astuces qui répondent à ma demande

#2 08-07-2016 15:22:24

Trefix
Membre
Lieu : 48
Distrib. : bookworm
Noyau : linux 6.1.0-18-amd64
(G)UI : Xfce4 4.18
Inscription : 15-02-2015

Re : Changer la couleur du terminal en fonction de l'utilisateur ou

Coucou.
Es-tu allé chercher chez coyotus ?
La personnalisation de l'émulateur de terminal, il connaît, le bougre wink

Hors ligne

#3 08-07-2016 15:36:07

sogal
Black Metal Modo
Lieu : Nord Isère
Distrib. : openSUSE Leap 42.3
Noyau : Linux 4.4.76
(G)UI : GNOME
Inscription : 09-05-2013
Site Web

Re : Changer la couleur du terminal en fonction de l'utilisateur ou

Pour partie utilisateur, tu peux simplement modifier les couleurs du prompt avec un truc comme ça (bash) :

if [ "$UID" = 0 ]; then
# Prompt avec couleur pour root
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
# prompt avec d'autres couleurs et info pour les autres users
    PS1='${debian_chroot:+($debian_chroot)}\[\033[1;37m\]\[\033[1;35m\]\u\[\033[0;37m\] \[\033[32m\]\t\[\033[33m\]: \w\[\033[1;35m\] > \[\033[0;00m\]'
#



Pour ce qui est de savoir si on est sur une machine distante ou pas et de changer les couleurs en fonction, je ne sais pas.
Souvent j'utilise la commande en cours dans le prompt pour le savoir, si je vois "ssh ******" je sais que je suis connecté quelque part.

J'avais trouvé ça pour indiquer dans le titre du terminal la commande en cours si ça peut aider :

# If this is an xterm set the title to user@host:dir
case "$TERM" in
st*|xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    # Show the currently running command in the terminal title:
    # http://www.davidpashley.com/articles/xterm-titles-with-bash.html
    show_command_in_title_bar()
    {
        case "$BASH_COMMAND" in
            *\033]0*)
                # The command is trying to set the title bar as well;
                # this is most likely the execution of $PROMPT_COMMAND.
                # In any case nested escapes confuse the terminal, so don't
                # output them.
                ;;
            *)
                echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD} > ${BASH_COMMAND}\007"
                ;;
        esac
    }
    trap show_command_in_title_bar DEBUG    
    ;;
*)
    ;;
esac
 



Ces 2 morceaux de codes sont à mettre dans ton .bashrc

Quelques astuces en terminal également : https://debian-facile.org/utilisateurs: … n_terminal


1485418338.png Hello IT ! Have you tried turning it off and on again ?

Hors ligne

#4 08-07-2016 15:36:22

wlourf
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : awesome
Inscription : 19-07-2010

Re : Changer la couleur du terminal en fonction de l'utilisateur ou

Anonyme-8 a écrit :

Bonjour,

J'aimerai trouver un moyen (visuel) pour différencier facilement sur quelle machine je suis connecté et si je suis en root.
L'idée serait d'avoir le nom d'utilisateur en rouge si je suis en root.



en modifiant la variable $PS1 du  .bashrc du root, c'est pas mal non ?

Si je suis sur une machine distante, avoir le fond du terminal d'une autre couleur pourrait être utile.

J'ai pas trouvé grand chose correspondant.

edit: https://memo-linux.com/comment-personna … -terminal/

si quelqu'un a une idée par où chercher ou des astuces qui répondent à ma demande



uen idée : créer un alias ou une commande qui te lance un terminal avec les couleurs de ton choix  :

alias sshtontruc="xterm -bg blue -e 'ssh tontruc' "

Dernière modification par wlourf (08-07-2016 15:37:23)

Hors ligne

#5 08-07-2016 17:47:10

Anonyme-8
Invité

Re : Changer la couleur du terminal en fonction de l'utilisateur ou

j'ai trouvé ça
https://askubuntu.com/questions/310498/ … sh-session

faut que je teste maintenant

#6 08-07-2016 20:45:56

sogal
Black Metal Modo
Lieu : Nord Isère
Distrib. : openSUSE Leap 42.3
Noyau : Linux 4.4.76
(G)UI : GNOME
Inscription : 09-05-2013
Site Web

Re : Changer la couleur du terminal en fonction de l'utilisateur ou

De ce que je comprends de la solution de ton lien, cela implique de changer le .bashrc de chaque machine à laquelle on se connecte.

Yes, you can by changing the PS1 value in .bashrc file on every hostname where you are connecting with ssh.


Ce n'est pas le prompt de la machine qui se connecte qui évolue si une connexion SSH est active.


1485418338.png Hello IT ! Have you tried turning it off and on again ?

Hors ligne

#7 08-07-2016 21:47:43

Anonyme-8
Invité

Re : Changer la couleur du terminal en fonction de l'utilisateur ou

il y a pas mal de résultats et chacun fait un truc à sa sauce, beaucoup basés sur des aliases mais j'ai vu des trucs avec des boucles pour faire un test sur le host.

en vrac:
http://bashrcgenerator.com/
https://stackoverflow.com/questions/237 … g-remotely
https://superuser.com/questions/596183/ … emote-mach

#8 05-09-2016 14:20:48

Allain
Membre
Distrib. : Jessie 8.11 (VM) / Stretch 9.7 (VM) / Jessie 8.5 (
Noyau : Il changera encore
(G)UI : Gnome 3
Inscription : 30-07-2016

Re : Changer la couleur du terminal en fonction de l'utilisateur ou

http://www.cyberciti.biz/faq/bash-shell … x-or-unix/
http://www.cyberciti.biz/tips/howto-lin … rompt.html

Plus les liens tldp.org sous le texte "Further readings:"
Il explique bien ici.
Tu as de quoi t'amuser

Hors ligne

#9 15-10-2016 14:58:58

yordox
Membre
Lieu : Repentigny, (Québec)
Distrib. : Jessie 8.6
Noyau : 3.16.0-4 amd64
(G)UI : Xfce
Inscription : 02-10-2016

Re : Changer la couleur du terminal en fonction de l'utilisateur ou

Pour obtenir les couleurs que l'on désire pour un prompt .bashrc il y a ce lien qui nous mène où l'on veut smile

http://bashrcgenerator.com/
À visiter!

Faire peu mais bien! D'aller trop vite ça va moins vite.
Ma machine = Micro-ATX ASRock Z87M Pro4, Haswell 4590 @ 3.7Ghz, 16GB DDR3/1600 Crucial Ballistix CL-9, 550w Corsair, 250GB SSD Samsung 840 EVO + 1TB Toshiba, Intel HD Graphics 4600 intégré (ou, Nvidia GTX 960, pas installée)

Hors ligne

#10 16-10-2016 07:30:53

MicP
Membre
Inscription : 29-02-2016

Re : Changer la couleur du terminal en fonction de l'utilisateur ou

… différencier facilement sur quelle machine je suis connecté et si je suis en root. …

Quand tu es connecté, c'est le shell de la machine distante sur laquelle tu t'es connecté qui définira le comportement de la fenêtre que tu utilise,
donc, si le shell est bien bash, c'est dans le ~/.bashrc du compte utilisateur de la machine distante à laquelle tu t'es connecté qu'il faut modifier la variable PS1

Bien sûr, tu peux modifier la façon dont l'émulateur de terminal local interprétera les séquences d'échappement que le shell distant lui envoie,
mais que tu sois user normal ou root sur le système distant, pour la fenêtre locale ça n'a aucune importance.

Tout ce que fait l'émulateur de terminal local, c'est interpréter et afficher tout ce que le shell distant lui envoie.

=======
Voici quelques exemples de prompt que j'utilise pour le compte root en bash :

# Prompt en noir sur fond rouge
PS1='${debian_chroot:+($debian_chroot)}\[\033[07;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '


# Prompt rouge sur fond noir
PS1='${debian_chroot:+($debian_chroot)}\[\033[31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '



C'est donc dans le ~/.bashrc du compte root sur la machine distante qu'il faut adapter la variable PS1

Dernière modification par MicP (16-10-2016 17:48:01)

Hors ligne

Pied de page des forums