Kolory terminali nie działają


30

Uzyskuję dostęp do serwera Ubuntu 10.04.2 LTS za pośrednictwem SSH z OSX. Ostatnio kolory przestały działać. Wydaje mi się, że stało się to podczas instalowania / rozwiązywania problemów z RVM, ale nie jestem pozytywny.

W .bashrc byłem niekomentowany force_color_prompt=yes, a kiedy biegnę env | grep TERM, dostaję TERM=xterm-color. Ale nadal nie ma kolorów.

Jakieś pomysły? Dzięki!

Oto wynik działania 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"

Cześć! Dodaj wynik cat ~/.bashrcswojego pytania!
antivirtel

Odpowiedzi:


29

W / etc / skel znajduje się przykładowy, domyślny plik .bashrc - możesz wykonać kopię zapasową bieżącego pliku .bashrc, mv .bashrc .bashrc.baka następnie cp /etc/skel/.bashrc .bashrcskopiować tę próbkę z powrotem do katalogu domowego. Następnie usuń komentarz force_color_prompt=yesz nowego pliku i dodaj z [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"powrotem na końcu (ostatniej linii) pliku, aby RVM nadal działał.

Następnie uruchom . .bashrckomendę, aby ponownie załadować swój profil bash, co powinno dać ci kolorowy monit i przetestować RVM poleceniem, type rvm | head -1które powinno zwrócić tekst:rvm is a function

Jeśli to nie zadziała, daj nam znać, jeśli używasz standardowej aplikacji Terminal w systemie Mac OS X i jakiego profilu używasz w Terminalu na komputerze Mac.


Działa dla mnie, Xubuntu 13.04
Zielony

9

Kolory przestały działać, najprawdopodobniej po aktualizacji do Lion from Snow Leopard .

W Lion z jakiegoś powodu domyślnie terminal jest zadeklarowany jako „ xterm-256color ” zamiast „ xterm-color ”, co rozumie Ubuntu.

Jedną z opcji jest, jak wspomnieli poprzedni respondenci, brak komentarza force_color_prompt=yesw~/.bashrc

Inną opcją jest ponowne nałożenie w Terminalu. Zastosowanie terminala jako koloru xterm. Oto jak to zrobić:

  1. Uruchom Terminal.app
  2. Przejdź do menu Terminal -> Preferencje (lub użyj Cmd +,)
  3. Przejdź do Settingskarty i znajdź motyw ustawiony jako domyślny
  4. Idź do Advancedzakładki
  5. Znajdź menu obok Declare terminal as:i ustaw kolor xterm

Oto moje ustawienia

AKTUALIZACJA : Wygląda na to, że Mountain Lion całkowicie usunął opcję xterm-color z menu rozwijanego. Jeśli wykonujesz aktualizację, najprawdopodobniej zachowasz starą konfigurację, ale jeśli wykonujesz świeżą instalację, będziesz musiał ręcznie edytować plik konfiguracyjny terminalu i do tego potrzebny będzie edytor list (dołączony do XCode, który wymaga do zainstalowania za pośrednictwem App Store). Lokalizacja pliku terminala znajduje się w ~ / Library / Preferences / com.apple.Terminal.plist , aby dodać opcję xterm-color , wykonaj następujące czynności:

  1. Zamknij Terminal.app, jeśli jest obecnie uruchomiony
  2. Zainstaluj XCode z App Store (pomiń ten krok, jeśli już go zainstalowałeś)
  3. $ open ~/Library/Preferences/com.apple.Terminal.plist
  4. Przejdź do listy Root > Window Settings
  5. zlokalizuj nazwę domyślnego motywu (w moim przypadku to Pro) rozwiń go i znajdź TerminalTypeklucz.
  6. Teraz po prostu ręcznie zmień TerminalTypeklucz na xterm-color
  7. zapisz plik i uruchom Terminal.

1
nano ~/.bashrc

Wpisz Ctrl+ Wi wyszukaj force_color, pierwszy wynik powinien wyróżnić f, zaraz po #znaku.

Naciśnij Backspacei teraz Ctrl+ X, następnie Ydla Yes, a następnie Enter.

source ~/.bashrc

lub

. ~/.bashrc

Teraz zobaczysz kolor w terminalu.

Mam nadzieję, że to ci odpowiada.


0

Alternatywą jest utworzenie .bash_loginpliku, jeśli jeszcze go nie ma w katalogu domowym, i umieszczenie go w .bashrcśrodku.

Zamknij terminal i otwórz go ponownie - twój problem powinien zostać rozwiązany!


0

Zamiast próbować zmusić terminal macOS do zgłaszania TERM jako starszego koloru xterm, możesz zmienić swój plik .bashrc w systemie Linux, aby rozpoznać xterm-256color jako klienta kolorów. Wydaje się, że jest to domyślne ustawienie dla nowszych wersji Ubuntu. Aby to zrobić, zmień ten wiersz:

xterm-color) color_prompt=yes;;

do:

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

Następnie uruchom, source .bashrca terminal wyświetli się w kolorze.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.