Warna Terminal Tidak Bekerja

30

Saya mengakses server Ubuntu 10.04.2 LTS melalui SSH dari OSX. Baru-baru ini warnanya berhenti bekerja. Saya pikir itu terjadi ketika saya menginstal / troubleshooting RVM, tetapi saya tidak positif.

Di .bashrc saya uncommeneted force_color_prompt=yes, dan ketika saya menjalankan env | grep TERMsaya dapatkan TERM=xterm-color. Tapi tetap tidak ada warna.

Ada ide? Terima kasih!

Ini adalah output dari 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"
Matt Fordham
sumber
Hai! cat ~/.bashrcTolong tambahkan output untuk pertanyaan Anda!
antivirtel

Jawaban:

29

Ada sampel, file .bashrc default yang terletak di / etc / skel - Anda dapat membuat cadangan dengan .bashrc saat ini dengan mv .bashrc .bashrc.bakdan kemudian cp /etc/skel/.bashrc .bashrcmenyalin sampel itu kembali ke direktori home Anda. Setelah itu, hapus komentar force_color_prompt=yesdi file baru dan tambahkan [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"kembali ke akhir (baris terakhir) dari file sehingga RVM masih berfungsi.

Setelah itu, jalankan . .bashrcpada prompt untuk memuat kembali profil bash Anda, yang akan memberi Anda prompt berwarna lagi dan menguji RVM dengan perintah type rvm | head -1yang akan mengembalikan teks:rvm is a function

Jika ini tidak berhasil, beri tahu kami jika Anda menggunakan aplikasi Terminal standar pada Mac OS X, dan profil apa yang Anda gunakan di Terminal pada Mac Anda.

Jayson Rowe
sumber
Bekerja untuk saya, Xubuntu 13.04
Hijau
9

Warna-warna telah berhenti bekerja, kemungkinan besar setelah Anda meng-upgrade ke Lion dari Snow Leopard .

Dalam Lion, untuk beberapa alasan, secara default terminal dinyatakan sebagai " xterm-256color " dan bukan " xterm-color " yang dipahami Ubuntu.

Salah satu opsi adalah untuk Anda, sebagaimana disebutkan oleh responden sebelumnya, batalkan komentar force_color_prompt=yesdalam~/.bashrc

Pilihan lain adalah untuk mendeklarasikan ulang di Terminal. Aplikasi terminal sebagai xterm-color. Berikut cara melakukannya:

  1. Luncurkan Terminal.app
  2. Buka menu Terminal -> Preferensi (atau gunakan Cmd +,)
  3. Buka Settingstab dan temukan tema yang ditetapkan sebagai bawaan
  4. Buka Advancedtab
  5. Temukan drop down di sebelah Declare terminal as:dan atur ke xterm-color

Ini Pengaturan saya

UPDATE : Tampaknya Mountain Lion menghapus opsi xterm-color sepenuhnya dari menu drop down. Jika Anda melakukan upgrade, kemungkinan besar Anda akan menyimpan konfigurasi lama Anda, tetapi jika Anda melakukan instalasi baru, Anda harus mengedit file konfigurasi Terminal secara manual dan untuk itu Anda akan memerlukan editor plist (termasuk dalam XCode yang membutuhkan untuk diinstal melalui App Store). Lokasi file Terminal ada di ~ / Library / Preferences / com.apple.Terminal.plist untuk menambahkan opsi xterm-color lakukan hal berikut:

  1. Keluar dari Terminal.app jika sedang berjalan
  2. Instal XCode dari App Store (lewati langkah ini jika Anda sudah menginstalnya)
  3. $ open ~/Library/Preferences/com.apple.Terminal.plist
  4. Arahkan plist ke Root > Window Settings
  5. cari nama tema default Anda (dalam kasus saya itu Pro) perluas dan temukan TerminalType kuncinya.
  6. Sekarang ubah saja TerminalTypekey menjadi xterm-color secara manual
  7. simpan file dan luncurkan Terminal.
Georgi
sumber
1
nano ~/.bashrc

Ketik Ctrl+ Wdan cari force_color, hasil pertama harus menyorot f, hanya setelah# karakter

Tekan Backspacedan sekarang Ctrl+ X, lalu Yuntuk Yes, lalu Enter.

source ~/.bashrc

atau

. ~/.bashrc

Anda sekarang akan melihat warna di terminal.

Saya harap ini berhasil untuk Anda.

Asfiksia
sumber
0

Salah satu alternatif yang Anda miliki adalah membuat .bash_loginfile jika belum ada di direktori home Anda, dan masukkan ke .bashrcdalamnya.

Tutup terminal dan buka kembali - masalah Anda harus diselesaikan!

Gaurav Manchanda
sumber
0

Daripada mencoba memaksa Terminal macOS untuk melaporkan TERM sebagai warna xterm yang lebih lama, Anda dapat mengubah .bashrc Anda di Linux untuk mengenali xterm-256color sebagai klien warna. Ini tampaknya menjadi default untuk versi Ubuntu yang lebih baru. Untuk melakukan ini, ubah baris ini:

xterm-color) color_prompt=yes;;

untuk:

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

Kemudian jalankan source .bashrcdan terminal Anda akan ditampilkan dalam warna.

Greg Glockner
sumber