Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/10/2022, à 19:39

saragosse

couleur du prompt

bonjour,
débutant sur Linux j'utilise Ubuntu  20.04 LTS.
Mon souci est le suivant j'ai voulu 'colorisé' mon prompt  et je m'aperçois que je dois taper la commande 'bash' dans le prompt pour obtenir la couleur  est ce normal svp?
Une fois que j'ai tapé cette commande il se met en couleur mais si je quitte et que j'ouvre de nouveau mon terminal il est  se met de nouveau en noir et blanc et rebelote je dois de nouveau tapé 'bash' pour avoir la couleur,
J'espère avoir réussi à me faire comprendre , un petit coup de pouce me serait bien utile Merci

Hors ligne

#2 Le 18/10/2022, à 19:44

saragosse

Re : couleur du prompt

export PS1="\A \[$(tput sgr0)\]\[\033[38;5;214m\]\u\[$(tput sgr0)\]@\[$(tput sgr0)\]\[\033[38;5;202m\]\H\[$(tput sgr0)\]: \[$(tput sgr0)\]\[\033[38;5;4m\]\\$\[$(tput sgr0)\]"
force_color_prompt=yes

Hors ligne

#3 Le 18/10/2022, à 19:46

Tawal

Re : couleur du prompt

Hello,

Ouvre un terminal (avec le prompt en noir et blanc) et donne le retour de :

echo "$SHELL"

Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#4 Le 18/10/2022, à 20:49

Watael

Re : couleur du prompt

force_color_prompt=yes

ce n'est pas du bash, ça. Où as-tu trouvé ça ?

tput sgr0 -> \033[m


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 19/10/2022, à 06:49

serged

Re : couleur du prompt

Watael a écrit :
force_color_prompt=yes

ce n'est pas du bash, ça. Où as-tu trouvé ça ?

Si, c'est du bash... Mais à mettre dans le .bashrc.
Dans mon mien :

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes

LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#6 Le 19/10/2022, à 07:01

iznobe

Re : couleur du prompt

Bonjour , pour que cela fonctionne a tous les coups :

il faut passer cette commande :

echo 'force_color_prompt=yes' | tee -a ~/.bashrc

et pour prendre le changement en compte :

source .bashrc

sur Linux  Mint cette option est deja intégrée au .bashrc .

Dernière modification par iznobe (Le 19/10/2022, à 07:01)


retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

En ligne

#7 Le 19/10/2022, à 10:11

Watael

Re : couleur du prompt

serged a écrit :
Watael a écrit :
force_color_prompt=yes

ce n'est pas du bash, ça. Où as-tu trouvé ça ?

Si, c'est du bash... Mais à mettre dans le .bashrc.
Dans mon mien :

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes

c'est écrit en bash, mais ça ne fait pas partie de bash (ce n'est pas dans le man).
une variable créée par les mainteneurs du .bashrc d'Ubuntu  ?

bizarre...
c'est juste défini, ou c'est réutilisé dans un test du .bashrc ?

Dernière modification par Watael (Le 19/10/2022, à 10:12)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#8 Le 19/10/2022, à 10:16

iznobe

Re : couleur du prompt

watael a écrit :

bizarre...
c'est juste défini, ou c'est réutilisé dans un test du .bashrc ?

c' est dans un test du fichier .bashrc sur Linux Mint , different de celui de @serged ( si ma memoire est bonne ), ce n ' est probablement pas la meme version de LM .
je suis sur LM 21 , mais pas d' acces là , car pas chez moi .

je donnerai le test complet de ma version en rentrant .

Dernière modification par iznobe (Le 19/10/2022, à 10:17)


retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

En ligne

#9 Le 19/10/2022, à 12:06

iznobe

Re : couleur du prompt

voici mon fichier :

iznobe@iznobe-PC:~$ cat .bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=-1
HISTFILESIZE=-1

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
	# We have color support; assume it's compliant with Ecma-48
	# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
	# a case would tend to support setf rather than setaf.)
	color_prompt=yes
    else
	color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi
if [ $TILIX_ID ] || [ $VTE_VERSION ]; then
        source /etc/profile.d/vte.sh
fi
PATH="$PATH:/home/$USER/.local/bin"
iznobe@iznobe-PC:~$

retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

En ligne

#10 Le 19/10/2022, à 13:50

Tawal

Re : couleur du prompt

Hello,

@Watael :
Sur Debian 11, j'ai bien cette variable qui est définie pourrait être définie dans mon .bashrc.
Elle est réutilisée plus tard dans un test.
Voici les sections concernées dans mon ~/.bashrc :

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
	# We have color support; assume it's compliant with Ecma-48
	# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
	# a case would tend to support setf rather than setaf.)
	color_prompt=yes
    else
	color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1="${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[0;32m\]@\[\033[1;32m\]\h\[\033[0m\]:\[\033[01;34m\]\w\[\033[00m\]$ "
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

Le 1er PS1=..... a été personnalisé par mes soins.

Edit:
En fait, la variable force_color_prompt sert (à travers un test) à définir une autre variable color_prompt qui elle est décisive dans le choix d'afficher le prompt avec ou sans couleur.
force_prompt_color n'est pas utilisée de base.

Edit2:
Au passage voici mon prompt coloré pour le compte root :

PS1='${debian_chroot:+($debian_chroot)}\[\033[5;31;10m\]\u\[\033[0;31m\]\[\033[0;32m\]@\[\033[0;31m\]\h\[\033[00m\]:\[\033[0;36m\]\w\[\033[00m\]# '

Dernière modification par Tawal (Le 19/10/2022, à 14:33)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#11 Le 19/10/2022, à 16:05

Watael

Re : couleur du prompt

ok. c'est une variable créée par les mainteneurs du .bashrc; ce n'est pas une variable interne de bash.
et puisque saragosse définit PS1 sans test dans le terminal, elle n'y sert à rien.

par contre, selon comment saragosse définit PS1 dans .bashrc, il faudra peut-être la décommenter.
il faut qu'on voie son .bashrc...


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#12 Le 19/10/2022, à 16:34

Tawal

Re : couleur du prompt

Ben vois-tu, je penche plutôt pour un souci de shell.
Car quand il lance la commande bash, le prompt est bien coloré.
Ce qui veut dire que le ~/.bashrc est bien sourcé et que le prompt y est bien défini.


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#13 Le 19/10/2022, à 17:14

Watael

Re : couleur du prompt

je suis comme toi : j'attends la réponse à ta question d'hier soir.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#14 Le 19/10/2022, à 19:22

saragosse

Re : couleur du prompt

bonjour ,

19:02 saragosse@ubuntu: $echo $SHELL
/bin/bash

Hors ligne

#15 Le 19/10/2022, à 19:31

Tawal

Re : couleur du prompt

Bon donne ton ~/.bashrc avec

cat ~/.bashrc

et donne le retour.


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#16 Le 19/10/2022, à 19:36

saragosse

Re : couleur du prompt

svp dites moi ce que je dois faire ..dois-je vous envoyez le .bashrc (120lignes) et comment je dois m'y prendre pour vous le transmettre  , je le mets entre balises  (je n'ai pas trop d'expérience dans l'utilisation de tous les outils) Merci

Hors ligne

#17 Le 19/10/2022, à 19:37

saragosse

Re : couleur du prompt

# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi
export DISPLAY=:0

export PS1="\A \[$(tput sgr0)\]\[\033[38;5;214m\]\u\[$(tput sgr0)\]@\[$(tput sgr0)\]\[\033[38;5;202m\]\H\[$(tput sgr0)\]: \[$(tput sgr0)\]\[\033[38;5;4m\]\\$\[$(tput sgr0)\]"
#export PS1='[\033[0;31m]\u\e[m@\e[1;34m$(hostname -f) \e[m\w>'

force_color_prompt=yes

Hors ligne

#18 Le 19/10/2022, à 19:39

saragosse

Re : couleur du prompt

et pour être précis j'ai utilisé le site de .bash PSI generator pour la sytaxe de mon prompt.

Hors ligne

#19 Le 19/10/2022, à 19:41

saragosse

Re : couleur du prompt

https://bashrcgenerator.com/

Hors ligne

#20 Le 19/10/2022, à 19:48

Watael

Re : couleur du prompt

où as-tu trouvé tes définitions des couleurs ? elles fonctionnent, mais je ne les reconnais pas. edit: messages croisés.
c'est le générateur qui a mis tput sgr0 ? c'est pas un super générateur alors.
là, force_color_prompt ne sert à rien.
ce n'est pas à toi de définir le DISPLAY !

pour remettre ton .bashrc à l'endroit, il faudrait en effet nous poster les 120 lignes.

Dernière modification par Watael (Le 19/10/2022, à 19:49)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#21 Le 19/10/2022, à 19:53

iznobe

Re : couleur du prompt

tu passes et tu fais la meme chose que moi dans le message #9 :
tu ouvres le terminal , puis tu y met :

cat .bashrc

tu copies tout et tu donnes le tout entre balises code , comme d ' habitude quoi hmm


retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

En ligne

#22 Le 19/10/2022, à 20:58

MicP

Re : couleur du prompt

Bonjour

Dans son message #20, Watael a écrit :

…où as-tu trouvé tes définitions des couleurs ? …

Ce sont les 256 couleurs définies dans la palette 8 bits.

https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit

Pour voir les 256 couleurs,
lancez la ligne de commandes suivante :

for id in {0..255}; do printf "\033[38;5;${id}m%s " $id; done; printf "\033[39m\n"

Dernière modification par MicP (Le 19/10/2022, à 21:00)

Hors ligne

#23 Le 19/10/2022, à 21:10

Watael

Re : couleur du prompt

j'ai oublié. j'avais mis ça dans un script comme pense-bête, mais je ne le retrouve pas. sad


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#24 Le 19/10/2022, à 22:34

Tawal

Re : couleur du prompt

Et ben, je ne connaissais pas.
C'est intéressant, car on arrive à faire ceci :

$ echo -e "\e[38;5;11;9;5;4;1mTexte jaune gras souligné, barré et clignotant\e[0m"

On définit la couleur 38;5;11 (selon l'exemple de MicP)
Puis on ajoute les effets :
   9 = barré
   5 = clignotant
   4 = souligné
   1 = gras
L'ordre des effets importe peu.
merci.gif MicP


Edit:
Ajout du "4=souligné" oublié.

Dernière modification par Tawal (Le 19/10/2022, à 22:41)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#25 Le 20/10/2022, à 06:09

saragosse

Re : couleur du prompt

Bonjour,
1/ Oui c'est le générateur qui a défini les couleurs : https://bashrcgenerator.com/
2/ c'est aussi le générateur en question qui a mis

tput sgr0 

, Je ne sais pas si c'est un super générateur mais comme débutant je me débrouille avec les outils que je trouve, si vous avez un générateur plus fiable je veux bien,
3/concernant

 DISPLAY

  je sais juste qu'il s'agit d'une variable d'environnement sans plus, mon niveau actuel de connaissances  ne me permet pas encore d'appréhender son utilité et son fonctionnement,
4/ Je vous adresse mon fichier .bashrc

Hors ligne