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 16:10:10

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Jessie
Noyau : Linux 3.16-amd64
(G)UI : XFCE
Inscription : 16-03-2012
Site Web

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

Hors ligne

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

Trefix
Adhérent(e)
Lieu : 48
Distrib. : Jessie H2D / DFLlight-alpha
Noyau : Linux 3.16.0-4 / 686-pae / amd64
(G)UI : Xfce / Fluxbox
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

Ma scolarité informatique ? 3 TP de programmation en DOS, calcu. T.I., 1984 tongue
De HL à DF : facile ! // Les cahiers du débutant

Hors ligne

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

sogal
Black Metal Modo
Distrib. : Debian Testing
Noyau : 4.7
(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


Machine perso : Thinkpad x230 Debian Stretch | Machine pro : Thinpad T450 openSUSE Leap 42.2

Hors ligne

#4 08-07-2016 16: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

nIQnutn 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 16:37:23)

Hors ligne

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

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Jessie
Noyau : Linux 3.16-amd64
(G)UI : XFCE
Inscription : 16-03-2012
Site Web

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

Hors ligne

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

sogal
Black Metal Modo
Distrib. : Debian Testing
Noyau : 4.7
(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.


Machine perso : Thinkpad x230 Debian Stretch | Machine pro : Thinpad T450 openSUSE Leap 42.2

Hors ligne

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

nIQnutn
Modérateur
Lieu : Lyon
Distrib. : Jessie
Noyau : Linux 3.16-amd64
(G)UI : XFCE
Inscription : 16-03-2012
Site Web

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

Hors ligne

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

Allain
Membre
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 15: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 08:30:53

MicP
Membre
Distrib. : debian stable
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce
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 18:48:01)

Hors ligne

Pied de page des forums