Кольори терміналів не працюють


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
Зелений

9

Кольори перестали працювати, швидше за все, після того, як ви перейшли на Лева із Snow Leopard .

У Леві чомусь термінал за замовчуванням оголошується як " 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-кольору зі спадного меню. Якщо ви робите оновлення, ви, ймовірно, збережете свою стару конфігурацію, але якщо ви робите нову установку, вам доведеться вручну редагувати файл конфігурації терміналу, і для цього вам знадобиться редактор плістів (включений у XCode, який потрібен встановити через App Store). Розташування файлу терміналу знаходиться в ~ / Бібліотека / Налаштування / com.apple.Terminal.plist , щоб додати параметр xterm-кольору, зробіть наступне:

  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-колір вручну
  7. збережіть файл та запустіть термінал.

1
nano ~/.bashrc

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

Натисніть Backspaceі тепер Ctrl+ X, потім Yдля Yes, потім Enter.

source ~/.bashrc

або

. ~/.bashrc

Тепер ви побачите колір у терміналі.

Я сподіваюся, що це працює для вас.


0

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

Закрийте термінал і знову відкрийте його - вашу проблему слід вирішити!


0

Замість того, щоб намагатися змусити macOS-термінал повідомляти про TERM як старіший xterm-колір, ви можете змінити .bashrc в Linux, щоб він визнав xterm-256color як клієнт кольорів. Здається, це за замовчуванням для нових версій Ubuntu. Для цього змініть цей рядок:

xterm-color) color_prompt=yes;;

до:

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

Потім запустіть source .bashrcі ваш термінал відобразиться кольоровим.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.