Debian-facile

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

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

#1 17-09-2019 07:24:11

Bwice
Membre
Distrib. : Buster 10
Noyau : Linux 4.19.0-5-amd64
(G)UI : Mate
Inscription : 11-08-2019

Édition de .bashrc pour un terminal coloré

Bonjours à tous!
Je suis nouveau sur Debian, et je découvre les subtilités entre le compte Root et User par rapport à mon ancien système (Ubuntu).
Je suis en train d’éditer mes .bashrc sur /root et sur ~/ pour avoir des couleurs différentes suivant le prompt sur lequel je suis loggé. Je voudrais mon invite/prompte (?) c'est à dire "user@machine" en vert, et "root@machine" en rouge-qui-fait-peur.
Cela fonctionne sur mon terminal en session graphique, mais pas quand je suis en tty1/6. Pour le moment, seul mon invite "root@machine" est en rouge mais "user@machine" reste désespérément blanc... Pourriez-vous comparer mes .bashrc et me dire ce qui cloche s'il vous plaît?

brice@debian:~$ 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=1000
HISTFILESIZE=2000

# 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 -l'
#alias la='ls -A'
#alias l='ls -CF'

# 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 [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[07;31m\]\u@\h\[\033[00m\]:\[\033[01;31m\]\w\[\033[00m\]\$ '
force_color_promt=yes
fi
brice@debian:~$




root@debian:/home/brice#cat /root/.bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.

# Note: PS1 and umask are already set in /etc/profile. You should not
# need this unless you want different defaults for root.
#PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ '
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;31m\]\w\[\033[00m\]\$'
# umask 022

# You may uncomment the following lines if you want `ls' to be colorized:
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
#
# Some more alias to avoid making mistakes:
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'

#force_color_prompt=yes
#if [ "$color_prompt" = yes ]; then


#if [ "$color_prompt" = yes ]; then
#    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;31m\]\w\[\033[00m\]\$ '
#fi
#force_color_promt=yes
#fi

export PATH=/sbin:/bin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/bin
root@debian:/home/brice#




Questions subsidiaires:
Est-ce normal que je sois dans /home/brice quand je me log en root? Et que vient faire ce dièse # à la fin de mon prompt?

(à tous hasards, je fournis mon /etc/bash.bashrc, au cas où!)

brice@debian:~$ cat /etc/bash.bashrc
# System-wide .bashrc file for interactive bash(1) shells.

# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

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

# 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, overwrite the one in /etc/profile)
# but only if not SUDOing and have SUDO_PS1 set; then assume smart user.
if ! [ -n "${SUDO_USER}" -a -n "${SUDO_PS1}" ]; then
  PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

# Commented out, don't overwrite xterm -T "title" -n "icontitle" by default.
# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
#    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
#    ;;
#*)
#    ;;
#esac

# enable bash completion in interactive shells
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 the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
  function command_not_found_handle {
          # check because c-n-f could've been removed in the meantime
                if [ -x /usr/lib/command-not-found ]; then
       /usr/lib/command-not-found -- "$1"
                   return $?
                elif [ -x /usr/share/command-not-found/command-not-found ]; then
       /usr/share/command-not-found/command-not-found -- "$1"
                   return $?
    else
       printf "%s: command not found\n" "$1" >&2
       return 127
    fi
  }
fi
brice@debian:~$




Merci de votre aide, et bonne journée!


HP-Pavilion-15-Notebook-PC | AMD A4-6210 apu with amd radeon r3 graphics × 4
Upgrade => 1x Crucial SO-DIMM DDR3L 8 Go 1600 MHz 1,35 Volts | SSD Corsair Force Series LE - 480 Go SATA 3 (6 Gb/s)

Hors ligne

#2 04-10-2019 14:27:03

choops
Membre
Distrib. : Debian testing
(G)UI : XFCE
Inscription : 07-05-2017

Re : Édition de .bashrc pour un terminal coloré

Salut

Dans le .bashrc de ton user, décommente la ligne suivante (retire le '#' en début de ligne):

#force_color_prompt=yes



Ca devrait être ok ensuite pour la coloration du prompt user en TTY.

Hors ligne

#3 04-10-2019 17:28:13

MicP
Membre
Inscription : 29-02-2016

Re : Édition de .bashrc pour un terminal coloré

Bonjour

Vu le prompt et la ligne de commande qui y est collée :

root@debian:/home/brice#cat /root/.bashrc

tu n'as pas utilisé l'option --login (qui peut être remplacée par un simple tiret) de la commande su
donc :

su -

et dans ton fichier /root/.bashrc tu as oublié d'ajouter un caractère espace à la fin de la définition de ta variable PS1
qui devrait donc être

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


Et tu peux enlever la ligne

PATH=/sbin:/bin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/bin

qui est dans le fichier /root/.bashrc

Dernière modification par MicP (04-10-2019 17:31:09)

Hors ligne

#4 05-10-2019 20:13:17

ubub
Membre
Distrib. : debian 10 buster/stable
(G)UI : xfce
Inscription : 14-05-2019

Re : Édition de .bashrc pour un terminal coloré

sympath ce petit script...
Mais a l'avant derniere ligne du /home/user/.bashrc :


if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[07;31m\]\u@\h\[\033[00m\]:\[\033[01;31m\]\w\[\033[00m\]\$ '
force_color_promt=yes
fi



j'imagine faut ecrire:

......blabla....
force_color_prompt=yes
fi

Hors ligne

#5 06-10-2019 14:00:59

Bwice
Membre
Distrib. : Buster 10
Noyau : Linux 4.19.0-5-amd64
(G)UI : Mate
Inscription : 11-08-2019

Re : Édition de .bashrc pour un terminal coloré

Hello, merci pour vos explications à toutes

@Choops:
Yes! Ça marche impecc dans mon TTY maintenant!

@MicP:
Corrigé la variable PS1, mais je m’étais déjà débarrassé de la ligne PATH. Par contre je vais faire des recherches sur l'option --login.

@ubub:
Pardon, je ne comprends pas ce que tu veux dire...

Merci de votre aide!

HP-Pavilion-15-Notebook-PC | AMD A4-6210 apu with amd radeon r3 graphics × 4
Upgrade => 1x Crucial SO-DIMM DDR3L 8 Go 1600 MHz 1,35 Volts | SSD Corsair Force Series LE - 480 Go SATA 3 (6 Gb/s)

Hors ligne

#6 06-10-2019 16:18:04

ubub
Membre
Distrib. : debian 10 buster/stable
(G)UI : xfce
Inscription : 14-05-2019

Re : Édition de .bashrc pour un terminal coloré

je veux dire que dans ton script je vois ecrit "promt" au lieu de "prompt"

Hors ligne

Pied de page des forums