Терминальные цвета не работают

30

Я получаю доступ к серверу Ubuntu 10.04.2 LTS через SSH из OSX. Недавно цвета перестали работать. Я думаю, что это произошло во время установки / устранения неполадок RVM, но я не уверен.

В .bashrc я не комментировал force_color_prompt=yes, а при запуске env | grep TERMполучаю TERM=xterm-color. Но до сих пор нет цветов.

Любые идеи? Благодарность!

Вот вывод 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"
Мэтт Фордхэм
источник
Здравствуй! Добавьте вывод cat ~/.bashrcк вашему вопросу, пожалуйста!
антивиртель

Ответы:

29

Существует пример файла .bashrc по умолчанию, расположенный в / etc / skel - вы можете сделать резервную копию вашего текущего .bashrc с помощью, mv .bashrc .bashrc.bakа затем cp /etc/skel/.bashrc .bashrcскопировать этот пример обратно в ваш домашний каталог. После этого откомментируйте force_color_prompt=yesновый файл и добавьте [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"его в конец (последнюю строку) файла, чтобы RVM все еще работал.

После этого выполните . .bashrcв ответ на приглашение перезагрузить ваш профиль bash, который должен снова выдать вам цветное приглашение, и протестируйте RVM с помощью команды, type rvm | head -1которая должна вернуть текст:rvm is a function

Если это не работает, сообщите нам, используете ли вы стандартное приложение Terminal в Mac OS X и какой профиль вы используете в Terminal на вашем Mac.

Джейсон Роу
источник
У меня работает, Xubuntu 13.04
Green
9

Цвета перестали работать, скорее всего, после того, как вы перешли на Lion из Snow Leopard .

В Lion почему-то по умолчанию терминал объявляется как « xterm-256color » вместо « xterm-color », что понимает Ubuntu.

Один из вариантов для вас, как уже упоминалось предыдущими респондентами, раскомментируйте force_color_prompt=yesв~/.bashrc

Другой вариант - переопределить терминал в Terminal.app как xterm-color. Вот как это сделать:

  1. Запустить Terminal.app
  2. Зайдите в меню Терминал -> Настройки (или используйте Cmd +,)
  3. Перейдите на Settingsвкладку и найдите тему, которая установлена ​​по умолчанию
  4. Перейти на Advancedвкладку
  5. Найдите выпадающий список рядом с ним Declare terminal as:и установите его в xterm-color

Вот мои настройки

ОБНОВЛЕНИЕ : Кажется, что Mountain Lion полностью удалил опцию xterm-color из выпадающего меню. Если вы делаете обновление, вы, скорее всего, сохраните старую конфигурацию, но если вы делаете новую установку, вам придется вручную редактировать файл конфигурации терминала, и для этого вам понадобится редактор списков (включенный в XCode, который требует быть установленным через App Store). Расположение файла терминала находится в ~ / Library / Preferences / com.apple.Terminal.plist , чтобы добавить опцию xterm-color, сделайте следующее:

  1. Закройте Terminal.app, если он в данный момент работает
  2. Установите XCode из App Store (пропустите этот шаг, если вы уже установили его)
  3. $ open ~/Library/Preferences/com.apple.Terminal.plist
  4. Перейдите к списку Root > Window Settings
  5. найдите название вашей темы по умолчанию (в моем случае это Pro), раскройте ее и найдите TerminalTypeключ.
  6. Теперь просто измените TerminalTypeключ на xterm-color вручную
  7. сохраните файл и запустите Терминал.
Георгий
источник
1
nano ~/.bashrc

Введите Ctrl+ Wи выполните поиск force_color, первый результат должен выделяться fсразу после #символа.

Нажмите Backspaceи теперь Ctrl+ X, затем Yдля Yes, затем Enter.

source ~/.bashrc

или

. ~/.bashrc

Теперь вы увидите цвет в терминале.

Я надеюсь, что это работает для вас.

асфиксия
источник
0

Один из вариантов, который у вас есть, - это создать .bash_loginфайл, если он еще не существует в вашем домашнем каталоге, и поместить его .bashrcвнутрь.

Закройте терминал и снова откройте его - ваша проблема должна быть решена!

Гаурав Манчанда
источник
0

Вместо того, чтобы пытаться заставить MacOS Terminal сообщать о TERM как о более старом xterm-цвете, вы можете изменить свой .bashrc в Linux, чтобы он распознал xterm-256color в качестве цветного клиента. Это, кажется, по умолчанию для более новых версий Ubuntu. Для этого измените эту строку:

xterm-color) color_prompt=yes;;

чтобы:

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

Затем запустите source .bashrcи ваш терминал будет отображаться в цвете.

Грег Глокнер
источник