Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 19/10/2008, à 15:37

Claude Vil

Variable $ps1

Bonjour !

Je pense avoir un problème avec ma variable $PS1 que j'ai configuré pour avoir un beau prompt.

gustaf@zenwalk(~)$ echo $PS1
\e[0;33m\u\e[0;32m@\e[0;34m\H\e[0;36m(\W)\033[0m$
gustaf@zenwalk(~)$

Lorsque j'encode une ligne de commande dont la taille totale dépasse 48 ou 49 caractères, je continue à encoder mais sur la même ligne en cours, au début de la ligne.

Cela me dérange un peu, quelqu'un aurait une idée s'il vous plaît ?

Je pense que c'est un caractère qui cause cela dans mon $PS1 ?


Merci à vous.

#2 Le 21/10/2008, à 12:54

Claude Vil

Re : Variable $ps1

Bonjour,

Quelqu'un aurait une idée ?

#3 Le 21/10/2008, à 12:55

Claude Vil

Re : Variable $ps1

Bonjour,

Quelqu'un aurait une idée ?

#4 Le 21/10/2008, à 13:11

Aneldix

Re : Variable $ps1

regarde ca : http://aide.sivit.fr/index.php?2005/10/02/92-personalisation-du-prompt

Je trouve bizarre que tu ne ferme pas tes [ et surtout : il devraient etre précédés de \

Voici mon prompt  :

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

edit : j'aurais bien limité le nombre de répertoire présent dans le prompt mais je ne sais pas si c'est faisable.

Dernière modification par Aneldo (Le 21/10/2008, à 13:13)

Hors ligne

#5 Le 18/12/2011, à 15:12

uboops

Re : Variable $ps1

Un autre prompt assez sympa:
Afin de visualiser l'état de sortie de la commande précédente ainsi que l'utilisateur en cour ( couleur vert pour l'utilisateur normal, et rouge pour les autres utilisateurs (dont sudo -s ).
Modif dans .bashrc (ajouter à la fin du fichier)

gedit .bashrc
PS1='${debian_chroot:+($debian_chroot)}@\h:\w\$ '
PROMPT_COMMAND='echo -n $?"-"; RET=$(whoami); if [[ $RET = "mon_compte_utilisateur" ]]; then echo -ne "\033[0;32m$RET\033[0m"; else echo -ne "\033[0;31m$RET\033[0m"; fi; echo -n ""'

exemple si : "mon_compte_utilisateur" = "toto"
0-toto@pc0:~$ true
0-toto@pc0:~$ false
1-toto@pc0:~$ true
0-toto@pc0:~$sudo -s
0-root@pc0:~# exit
0-toto@pc0:~$


Tout comme, Ce qui a créé l'Univers (...dont l'Homme) est Patrimoine Universel, tout ce qui a été créé par l'Homme "via ce créateur" doit être au minimum Patrimoine de l'Humanité !

Hors ligne

#6 Le 10/05/2013, à 20:03

SpleenX

Re : Variable $ps1

Le seul soucis que tu va avoir uboops c'est quand tu va faire une auto-complétion dans le terminal.
Puisque dès le début d'une commande ça va supprimer "\h" et mettre que "@pc0". Je ne pourrai pas te l'expliquer (si qqun sait pourquoi...)
J'ai repris ton idée pour faire

    PROMPT_COLOR=`RET=$(whoami); if [[ $RET = "compte_utilisateur_a_renseigner" ]]; then echo -ne "\033[0;32m$RET\033[0m"; else echo -ne "\033[0;31m$RET\033[0m"; fi; echo -n ""`
    PS1='${debian_chroot:+($debian_chroot)}'$PROMPT_COLOR'@\h:\w\$ '

Dernière modification par SpleenX (Le 10/05/2013, à 20:04)

Hors ligne

#7 Le 10/05/2013, à 20:35

Bousky

Re : Variable $ps1

SpleenX a écrit :

Le seul soucis que tu va avoir uboops c'est quand tu va faire une auto-complétion dans le terminal.
Puisque dès le début d'une commande ça va supprimer "\h" et mettre que "@pc0". Je ne pourrai pas te l'expliquer (si qqun sait pourquoi...)
J'ai repris ton idée pour faire

    PROMPT_COLOR=`RET=$(whoami); if [[ $RET = "compte_utilisateur_a_renseigner" ]]; then echo -ne "\033[0;32m$RET\033[0m"; else echo -ne "\033[0;31m$RET\033[0m"; fi; echo -n ""`
    PS1='${debian_chroot:+($debian_chroot)}'$PROMPT_COLOR'@\h:\w\$ '

En fait "PROMPT_COMMAND" n'est exécuté que quand une commande se termine et revient au prompt. Il est possible de mettre des commandes directement dans le prompt avec « $(...) » :

PS1='${debian_chroot:+($debian_chroot)}\[\e[0;3$(if [ `id -u` -eq 0 ] ; then echo 1 ; else echo 3 ; fi)m\]\h\[\e[0m\]@\h:\w\$ '

Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

Haut de page ↑