Terminalfarben funktionieren nicht


30

Ich greife über SSH von OSX auf einen Ubuntu 10.04.2 LTS-Server zu. Vor kurzem haben die Farben aufgehört zu arbeiten. Ich denke, dass es passiert ist, während ich RVM installiert / behoben habe, aber ich bin nicht sicher.

In Bashrc ich uncommeneted force_color_prompt=yes, und wenn ich laufe env | grep TERMich TERM=xterm-color. Aber immer noch keine Farben.

Irgendwelche Ideen? Vielen Dank!

Hier ist die Ausgabe von 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"

Hallo! Fügen cat ~/.bashrcSie bitte die Ausgabe von zu Ihrer Frage hinzu!
Antivirtel

Antworten:


29

In / etc / skel befindet sich ein Beispiel für eine .bashrc-Datei. Sie können eine Sicherungskopie Ihrer aktuellen .bashrc-Datei erstellen mv .bashrc .bashrc.bakund dann cp /etc/skel/.bashrc .bashrcdieses Beispiel in Ihr Ausgangsverzeichnis kopieren. Danach entfernen Sie den Kommentar force_color_prompt=yesaus der neuen Datei und fügen [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"ihn zum Ende (letzte Zeile) der Datei hinzu, damit RVM weiterhin funktioniert.

Anschließend führen Sie . .bashrcan einer Eingabeaufforderung Bash Profil neu zu laden , die Ihnen einen farbigen prompt wieder und Test RVM mit dem Befehl geben sollen , type rvm | head -1die den Text zurückkehren sollen:rvm is a function

Wenn dies nicht funktioniert, teilen Sie uns bitte mit, ob Sie die Standard-Terminal-App unter Mac OS X verwenden und welches Profil Sie in Terminal auf Ihrem Mac verwenden.


Funktioniert für mich, Xubuntu 13.04
Grün

9

Die Farben funktionieren nicht mehr, höchstwahrscheinlich nachdem Sie von Snow Leopard auf Lion umgestellt haben .

In Lion wird das Terminal aus irgendeinem Grund standardmäßig als " xterm-256color " anstelle von " xterm-color " deklariert, was Ubuntu versteht.

Eine der Optionen ist für Sie, wie von früheren Respondern erwähnt, das Auskommentieren force_color_prompt=yesin~/.bashrc

Die andere Möglichkeit ist, das Terminal in Terminal.app als xterm-color neu zu deklarieren. So geht's:

  1. Starten Sie Terminal.app
  2. Gehen Sie zum Menü Terminal -> Einstellungen (oder verwenden Sie Cmd +,)
  3. Gehen Sie zur SettingsRegisterkarte und suchen Sie das als Standard festgelegte Thema
  4. Gehen Sie zur AdvancedRegisterkarte
  5. Suchen Sie das Dropdown-Menü neben Declare terminal as:und setzen Sie es auf xterm-color

Hier sind meine Einstellungen

UPDATE : Es scheint, dass Mountain Lion die Option xterm-color vollständig aus dem Dropdown-Menü entfernt hat. Wenn Sie ein tun Upgrade werden Sie höchstwahrscheinlich Ihre alte Konfiguration halten, aber wenn Sie eine frische Installation tun, werden Sie manuell bearbeiten Terminal - Konfigurationsdatei haben und dass Sie einen plist - Editor in benötigen (inklusive XCode , dass Bedarf über den App Store zu installieren). Der Speicherort der Terminal-Datei befindet sich in ~ / Library / Preferences / com.apple.Terminal.plist , um die Option xterm-color hinzuzufügen.

  1. Beenden Sie Terminal.app, wenn es gerade ausgeführt wird
  2. Installieren Sie XCode aus dem App Store (überspringen Sie diesen Schritt, wenn Sie es bereits installiert haben)
  3. $ open ~/Library/Preferences/com.apple.Terminal.plist
  4. Navigieren Sie in der Liste zu Root > Window Settings
  5. Suchen Sie den Namen Ihres Standardthemas (in meinem Fall Pro), erweitern Sie es und suchen Sie den TerminalTypeSchlüssel.
  6. Ändern Sie nun den TerminalTypeSchlüssel manuell auf xterm-color
  7. Speichern Sie die Datei und starten Sie Terminal.

1
nano ~/.bashrc

Geben Sie Ctrl+ ein Wund suchen Sie force_color. Das erste Ergebnis sollte das fnach einem #Zeichen stehende hervorheben .

Drücken Sie Backspaceund jetzt Ctrl+ X, dann Yfür Yes, dann Enter.

source ~/.bashrc

oder

. ~/.bashrc

Sie sehen jetzt Farbe im Terminal.

Ich hoffe das klappt bei dir


0

Eine Alternative, die Sie haben, besteht darin, eine .bash_loginDatei zu erstellen, falls diese noch nicht in Ihrem Home-Verzeichnis vorhanden ist, und sie dort .bashrcabzulegen.

Schließen Sie das Terminal und öffnen Sie es erneut - Ihr Problem sollte gelöst sein!


0

Anstatt das macOS Terminal zu zwingen, TERM als ältere xterm-Farbe zu melden, können Sie Ihre .bashrc-Datei unter Linux so ändern, dass xterm-256color als Farbclient erkannt wird. Dies scheint die Standardeinstellung für neuere Versionen von Ubuntu zu sein. Ändern Sie dazu diese Zeile:

xterm-color) color_prompt=yes;;

zu:

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

Führen source .bashrcSie dann aus, und Ihr Terminal wird in Farbe angezeigt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.