Les couleurs des bornes ne fonctionnent pas

30

J'accède à un serveur Ubuntu 10.04.2 LTS via SSH depuis OSX. Récemment, les couleurs ont cessé de fonctionner. Je pense que cela s'est produit lors de l'installation / du dépannage de RVM, mais je ne suis pas positif.

Dans .bashrc force_color_prompt=yes, je env | grep TERMn'ai pas reçu de commande , et quand je cours, j'obtiens TERM=xterm-color. Mais toujours pas de couleurs.

Des idées? Merci!

Voici la sortie de 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
[ -z "$PS1" ] && return

# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoredups:ignorespace

# 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

# 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) 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

# some more ls aliases
alias ll='ls -alF'
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 [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

[[ -s "/usr/local/rvm/scripts/rvm" ]] && . "/usr/local/rvm/scripts/rvm"
Matt Fordham
la source
Salut! Ajoutez la sortie de la cat ~/.bashrcà votre question s'il vous plaît!
antivirtel

Réponses:

29

Il y a un exemple de fichier .bashrc par défaut situé dans / etc / skel - vous pouvez faire une sauvegarde de votre .bashrc actuel avec mv .bashrc .bashrc.bakpuis cp /etc/skel/.bashrc .bashrccopier cet échantillon dans votre répertoire personnel. Après cela, annulez le commentaire force_color_prompt=yesdans le nouveau fichier et ajoutez [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"à la fin (dernière ligne) du fichier pour que RVM fonctionne toujours.

Après cela, exécutez . .bashrcà une invite pour recharger votre profil bash, ce qui devrait vous donner à nouveau une invite colorée et tester RVM avec la commande type rvm | head -1qui devrait retourner le texte:rvm is a function

Si cela ne fonctionne pas, veuillez nous indiquer si vous utilisez l'application Terminal standard sur Mac OS X, et quel profil vous utilisez dans Terminal sur votre Mac.

Jayson Rowe
la source
Fonctionne pour moi, Xubuntu 13.04
Green
9

Les couleurs ont cessé de fonctionner, probablement après la mise à niveau vers Lion de Snow Leopard .

Dans Lion, pour une raison quelconque, par défaut, le terminal est déclaré comme " xterm-256color " au lieu de " xterm-color ", ce que Ubuntu comprend.

L' une des options est pour vous, comme mentionné par les intervenants précédents, uncomment force_color_prompt=yesen~/.bashrc

L'autre option consiste à redéclarer dans Terminal.app le terminal en tant que xterm-color. Voici comment procéder:

  1. Lancez Terminal.app
  2. Allez dans le menu Terminal -> Préférences (ou utilisez Cmd +,)
  3. Accédez à l' Settingsonglet et recherchez le thème défini par défaut
  4. Allez dans l' Advancedonglet
  5. Trouvez la liste déroulante à côté de Declare terminal as:et définissez-la sur xterm-color

Voici mes paramètres

MISE À JOUR : Il semble que Mountain Lion ait complètement supprimé l' option xterm-color du menu déroulant. Si vous effectuez une mise à niveau, vous conserverez très probablement votre ancienne configuration, mais si vous effectuez une nouvelle installation, vous devrez modifier manuellement le fichier de configuration de Terminal et pour cela, vous aurez besoin d'un éditeur plist (inclus dans XCode qui a besoin à installer via l'App Store). L'emplacement du fichier du terminal est dans ~ / Library / Preferences / com.apple.Terminal.plist afin d'ajouter l' option xterm-color , procédez comme suit:

  1. Quittez Terminal.app s'il est en cours d'exécution
  2. Installez XCode depuis l'App Store (ignorez cette étape si vous l'avez déjà installé)
  3. $ open ~/Library/Preferences/com.apple.Terminal.plist
  4. Naviguez dans le plist pour Root > Window Settings
  5. recherchez le nom de votre thème par défaut (dans mon cas, c'est Pro) développez-le et trouvez la TerminalTypeclé.
  6. Maintenant, changez simplement la TerminalTypeclé en xterm-color manuellement
  7. enregistrez le fichier et lancez Terminal.
Georgi
la source
1
nano ~/.bashrc

Tapez Ctrl+ Wet recherchez force_color, le premier résultat devrait mettre en surbrillance le f, juste après un #caractère.

Appuyez sur Backspaceet maintenant Ctrl+ X, puis Ypour Yes, puis Enter.

source ~/.bashrc

ou

. ~/.bashrc

Vous verrez maintenant la couleur dans le terminal.

J'espère que cela fonctionne pour vous.

Asphyxie
la source
0

Une alternative que vous avez est de créer un .bash_loginfichier s'il n'en existe pas déjà dans votre répertoire personnel et de le mettre à l' .bashrcintérieur.

Fermez le terminal et rouvrez-le - votre problème devrait être résolu!

Gaurav Manchanda
la source
0

Plutôt que d'essayer de forcer le terminal macOS à signaler TERM comme l'ancienne xterm-color, vous pouvez modifier votre .bashrc sous Linux pour reconnaître xterm-256color en tant que client couleur. Cela semble être la valeur par défaut pour les nouvelles versions d'Ubuntu. Pour ce faire, modifiez cette ligne:

xterm-color) color_prompt=yes;;

à:

xterm-color|*-256color) color_prompt=yes;;

Exécutez ensuite source .bashrcet votre terminal s'affichera en couleur.

Greg Glockner
la source