Màu thiết bị đầu cuối không hoạt động


30

Tôi đang truy cập máy chủ Ubuntu 10.04.2 LTS qua SSH từ OSX. Gần đây màu sắc ngừng hoạt động. Tôi nghĩ rằng nó đã xảy ra trong khi tôi đang cài đặt / xử lý sự cố RVM, nhưng tôi không tích cực.

Trong .bashrc tôi không hiểu force_color_prompt=yesvà khi tôi chạy, env | grep TERMtôi nhận được TERM=xterm-color. Nhưng vẫn không có màu.

Có ý kiến ​​gì không? Cảm ơn!

Đây là đầu ra của 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"

Chào! Thêm đầu ra của cat ~/.bashrccâu hỏi của bạn xin vui lòng!
antivirtel

Câu trả lời:


29

Có một tệp, tệp .bashrc mặc định nằm trong / etc / skel - bạn có thể tạo bản sao lưu của .bashrc hiện tại của mình mv .bashrc .bashrc.bakvà sau đó cp /etc/skel/.bashrc .bashrcsao chép mẫu đó trở lại thư mục chính của bạn. Sau đó, bỏ nhận xét force_color_prompt=yestrong tệp mới và thêm [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"lại vào cuối (dòng cuối cùng) của tệp để RVM vẫn hoạt động.

Sau đó, thực hiện . .bashrctại một dấu nhắc để tải lại hồ sơ bash của bạn, nó sẽ cung cấp cho bạn một dấu nhắc màu một lần nữa và kiểm tra RVM bằng lệnh type rvm | head -1sẽ trả về văn bản:rvm is a function

Nếu điều này không hoạt động, vui lòng cho chúng tôi biết nếu bạn đang sử dụng ứng dụng Terminal tiêu chuẩn trên Mac OS X và cấu hình nào bạn đang sử dụng trong Terminal trên máy Mac.


Hoạt động với tôi, Xubfox 13.04
Green

9

Màu sắc đã ngừng hoạt động, rất có thể là sau khi bạn nâng cấp lên Lion từ Snow Leopard .

Trong Lion, vì một số lý do, theo mặc định, thiết bị đầu cuối được khai báo là " xterm-256color " thay vì " xterm-color ", đó là những gì Ubuntu hiểu.

Một trong những lựa chọn dành cho bạn, như được đề cập bởi những người trả lời trước đó, không chú ý force_color_prompt=yesđến~/.bashrc

Tùy chọn khác là phân phối lại trong Terminal.app thiết bị đầu cuối dưới dạng xterm-color. Đây là cách để làm điều đó:

  1. Khởi chạy Terminal.app
  2. Chuyển đến menu Terminal -> Preferences (hoặc sử dụng Cmd +,)
  3. Chuyển đến Settingstab và tìm chủ đề được đặt làm mặc định
  4. Chuyển đến Advancedtab
  5. Tìm trình đơn thả xuống bên cạnh Declare terminal as:và đặt thành màu xterm

Đây là Cài đặt của tôi

CẬP NHẬT : Có vẻ như Mountain Lion đã loại bỏ hoàn toàn tùy chọn xterm-color khỏi menu thả xuống. Nếu bạn đang thực hiện nâng cấp, rất có thể bạn sẽ giữ cấu hình cũ của mình, nhưng nếu bạn đang cài đặt mới, bạn sẽ phải chỉnh sửa thủ công tệp cấu hình của Terminal và vì thế bạn sẽ cần một trình soạn thảo plist (có trong XCode cần để được cài đặt qua App Store). Vị trí tệp của Terminal nằm trong ~ / Library / Preferences / com.apple.Terminal.plist để thêm tùy chọn xterm-color, hãy làm như sau:

  1. Thoát khỏi Terminal.app nếu nó đang chạy
  2. Cài đặt XCode từ App Store (bỏ qua bước này nếu bạn đã cài đặt nó)
  3. $ open ~/Library/Preferences/com.apple.Terminal.plist
  4. Điều hướng plist đến Root > Window Settings
  5. xác định tên của chủ đề mặc định của bạn (trong trường hợp của tôi là Pro) mở rộng nó và tìm TerminalTypekhóa.
  6. Bây giờ chỉ cần thay đổi TerminalTypekhóa thành xterm-color bằng tay
  7. lưu tập tin và khởi chạy Terminal.

1
nano ~/.bashrc

Nhập Ctrl+ Wvà tìm kiếm force_color, kết quả đầu tiên sẽ làm nổi bật f, chỉ sau một #ký tự.

Nhấn Backspacevà bây giờ Ctrl+ X, sau đó Ycho Yes, sau đó Enter.

source ~/.bashrc

hoặc là

. ~/.bashrc

Bây giờ bạn sẽ thấy màu sắc trong thiết bị đầu cuối.

Tôi mong công việc này phù hợp với bạn.


0

Một cách khác bạn có là gửi một .bash_logintập tin nếu một tập tin không tồn tại trong thư mục chính của bạn và đặt .bashrcbên trong.

Đóng thiết bị đầu cuối và mở lại nó - vấn đề của bạn sẽ được giải quyết!


0

Thay vì cố gắng buộc MacOS Terminal báo cáo TERM là màu xterm cũ hơn, bạn có thể thay đổi .bashrc trên Linux để nhận ra xterm-256color là máy khách màu. Đây dường như là mặc định cho các phiên bản Ubuntu mới hơn. Để làm điều này, thay đổi dòng này:

xterm-color) color_prompt=yes;;

đến:

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

Sau đó chạy source .bashrcvà thiết bị đầu cuối của bạn sẽ hiển thị màu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.