As cores do terminal não funcionam

25

Estou acessando um servidor LTS Ubuntu 10.04.2 via SSH do OSX. Recentemente as cores pararam de funcionar. Eu acho que aconteceu enquanto eu estava instalando / troubleshooting RVM, mas não tenho certeza.

No .bashrc eu uncommeneted force_color_prompt=yes , e quando eu executo env | grep TERM eu recebo TERM=xterm-color . Mas ainda sem cores.

Alguma ideia? Obrigado!

Aqui está a saída 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)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[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"
    
por Matt Fordham 03.05.2011 / 18:01

4 respostas

22

Há uma amostra, arquivo .bashrc padrão localizado em / etc / skel - você pode fazer um backup de seu atual .bashrc com mv .bashrc .bashrc.bak e, em seguida, cp /etc/skel/.bashrc .bashrc para copiar essa amostra de volta para seu diretório pessoal. Depois disso, descomente force_color_prompt=yes no novo arquivo e adicione [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" de volta ao final (última linha) do arquivo para que o RVM ainda funcione.

Depois disso, execute . .bashrc em um prompt para recarregar seu perfil bash, que deve fornecer um prompt colorido novamente e testar o RVM com o comando type rvm | head -1 , que deve retornar o texto: rvm is a function

Se isso não funcionar, informe-nos se você estiver usando o aplicativo padrão do Terminal no Mac OS X e qual perfil você está usando no Terminal no seu Mac.

    
por Jayson Rowe 17.09.2011 / 03:34
8

As cores pararam de funcionar, provavelmente depois que você atualizou para Lion do Snow Leopard .

No Lion, por algum motivo, por padrão, o terminal é declarado como " xterm-256color " em vez de " xterm-color ", que é o que o Ubuntu entende. / p>

Uma das opções é para você, conforme mencionado pelos respondentes anteriores, descomente force_color_prompt=yes em ~/.bashrc

A outra opção é redeclarar no Terminal.app o terminal como xterm-color. Veja como fazer isso:

  1. Inicie o Terminal.app
  2. Ir para o menu Terminal - > Preferências (ou use Cmd +,)
  3. Vá para a guia Settings e encontre o tema definido como padrão
  4. Ir para a guia Advanced
  5. Encontre o menu suspenso ao lado de Declare terminal as: e defina como xterm-color

Aqui estão as minhas Configurações

UPDATE : parece que o Mountain Lion removeu completamente a opção xterm-color do menu suspenso. Se você está fazendo uma atualização, você provavelmente manterá sua configuração antiga, mas se você estiver fazendo uma nova instalação, você terá que editar manualmente o arquivo de configuração do Terminal e para isso você precisará de um editor de plist (incluído em XCode que precisam ser instalados através da App Store). A localização do arquivo do Terminal está em ~ / Library / Preferences / com.apple.Terminal.plist para adicionar a opção xterm-color , faça o seguinte:

  1. Encerre Terminal.app se estiver em execução no momento
  2. Instale o XCode na App Store (pule esta etapa se você já o tiver instalado)
  3. $ open ~/Library/Preferences/com.apple.Terminal.plist
  4. Navegue pelo plist para Root > Window Settings
  5. localize o nome do seu tema padrão (no meu caso isso é Pro) expanda-o e encontre a chave TerminalType .
  6. Agora altere a tecla TerminalType para xterm-color manualmente
  7. salve o arquivo e inicie o Terminal.
por Georgi 23.10.2012 / 15:20
0

Uma alternativa que você tem é criar um arquivo .bash_login se ainda não existir em seu diretório pessoal e colocar .bashrc dentro dele.

Feche o terminal e reabra-o - seu problema deve ser resolvido!

    
por Gaurav Manchanda 22.07.2012 / 08:31
0

Em vez de tentar forçar o macOS Terminal a reportar o TERM como o xterm-color mais antigo, você pode alterar o seu .bashrc no Linux para reconhecer o xterm-256color como um cliente em cores. Este parece ser o padrão para versões mais recentes do Ubuntu. Para fazer isso, altere esta linha:

xterm-color) color_prompt=yes;;

para:

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

Em seguida, execute source .bashrc e seu terminal será exibido em cores.

    
por Greg Glockner 31.12.2017 / 08:27