สีเทอร์มินัลไม่ทำงาน


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"

Hi! เพิ่มผลลัพธ์ของcat ~/.bashrcคำถามของคุณ!
antivirtel

คำตอบ:


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 profile ของคุณอีกครั้งซึ่งจะทำให้คุณได้รับพร้อมท์สีอีกครั้งและทดสอบ RVM ด้วยคำสั่งtype rvm | head -1ที่ควรส่งคืนข้อความ:rvm is a function

หากวิธีนี้ใช้งานไม่ได้โปรดแจ้งให้เราทราบหากคุณใช้แอป Terminal มาตรฐานบน Mac OS X และโปรไฟล์ใดที่คุณใช้ใน Terminal บน Mac ของคุณ


ใช้งานได้สำหรับฉัน Xubuntu 13.04
Green

9

สีที่ได้หยุดการทำงานส่วนใหญ่อาจจะหลังจากที่คุณปรับรุ่นสิงโตจากเสือดาวหิมะ

ใน Lion ด้วยเหตุผลบางอย่างโดยค่าเริ่มต้นเทอร์มินัลจะประกาศเป็น " xterm-256color " แทน " xterm-color " ซึ่งเป็นสิ่งที่ Ubuntu เข้าใจ

หนึ่งในตัวเลือกสำหรับคุณดังที่ผู้ตอบก่อนหน้ากล่าวไว้คือไม่มีข้อคิดเห็นforce_color_prompt=yesใน~/.bashrc

ตัวเลือกอื่นคือการประกาศใน Terminal.app เทอร์มินัลใหม่เป็น xterm-color นี่คือวิธีการทำ:

  1. เรียกใช้ Terminal.app
  2. ไปที่เมนู Terminal -> การตั้งค่า (หรือใช้ Cmd +,)
  3. ไปที่Settingsแท็บและค้นหาชุดรูปแบบที่ตั้งเป็นค่าเริ่มต้น
  4. ไปที่Advancedแท็บ
  5. ค้นหารายการแบบหล่นลงถัดจากDeclare terminal as:และตั้งค่าเป็นxterm-color

นี่คือการตั้งค่าของฉัน

UPDATE : ดูเหมือนว่าMountain Lion จะลบตัวเลือกสี xtermออกจากเมนูแบบเลื่อนลง หากคุณทำการอัปเกรดคุณจะคงการกำหนดค่าเดิมไว้ แต่ถ้าคุณกำลังทำการติดตั้งใหม่คุณจะต้องแก้ไขไฟล์การกำหนดค่าของ Terminal ด้วยตนเองและเพื่อที่คุณจะต้องใช้เครื่องมือแก้ไขแบบ Plist (รวมอยู่ใน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. บันทึกไฟล์และเรียกใช้ Terminal

1
nano ~/.bashrc

พิมพ์Ctrl+ Wและค้นหาforce_colorผลลัพธ์แรกควรเน้นที่fหลัง#อักขระ

กดBackspaceและตอนนี้Ctrl+ Xแล้วYสำหรับแล้วYesEnter

source ~/.bashrc

หรือ

. ~/.bashrc

ตอนนี้คุณจะเห็นสีในอาคารผู้โดยสาร

ฉันหวังว่าสิ่งนี้จะได้ผลสำหรับคุณ


0

อีกทางเลือกหนึ่งที่คุณต้องทำคือสร้าง.bash_loginไฟล์หากไม่มีอยู่ในโฮมไดเร็กตอรี่ของคุณและใส่.bashrcเข้าไปข้างใน

ปิดเทอร์มินัลแล้วเปิดใหม่ - ปัญหาของคุณควรได้รับการแก้ไข!


0

แทนที่จะพยายามบังคับให้ macOS Terminal รายงาน TERM เป็น xterm-color ที่เก่ากว่าคุณสามารถเปลี่ยน. bashrc ของคุณบน Linux ให้รู้จัก xterm-256color เป็นไคลเอนต์สี นี่น่าจะเป็นค่าเริ่มต้นสำหรับ Ubuntu รุ่นใหม่กว่า หากต้องการทำสิ่งนี้ให้เปลี่ยนบรรทัดนี้:

xterm-color) color_prompt=yes;;

ไปที่:

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

จากนั้นรันsource .bashrcและเทอร์มินัลของคุณจะแสดงเป็นสี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.