สี Terminal OS X [ปิด]


492

ฉันใหม่สำหรับ OS X เพิ่งได้รับ Mac หลังจากทำงานกับ Ubuntu Linux มาระยะหนึ่งแล้ว ท่ามกลางสิ่งต่าง ๆ ที่ฉันพยายามจะหาคือไม่มีสีในหน้าต่างเทอร์มินัลของฉัน - เหมือนกับสีที่แสดง (บน Linux) เมื่อทำงานls -laหรือgit status...

ฉันไม่สามารถหาวิธีเปิดใช้งานสีในเปลือกของฉัน


10

32
ปิดเป็น "off topic" แต่ดูที่แท็ก: osx, shell, terminal, colours ... ดูเหมือนว่าสำหรับฉันแล้วมันจะอยู่ในหัวข้อทั้งหมด ครอบคลุม OSX มันเกี่ยวกับเชลล์ใช้เทอร์มินัลและต้องการเพิ่มสี ต้องแก้ไขโปรไฟล์ทุบตีดังนั้นใช่ฉันว่ามันเป็นหัวข้อ
Danijel-James W

12
ชัดเจนเกี่ยวกับหัวข้อมันเกี่ยวกับการทุบตีสคริปต์
superluminary

5
ปิดคุณต้องล้อเล่น! เห็นได้ชัดว่านี่มีประโยชน์และคุณค่าสำหรับตัวแปลงสัญญาณ Mac จำนวนมาก (ส่วนใหญ่เป็นใหม่) หากการปิดบัญชีเหล่านั้นร้ายแรงเกี่ยวกับการปิดหัวข้อทำไมไม่ย้ายไปพูด SE คิดต่างกัน ฉันใช้มันดังนั้นสนับสนุนฟังก์ชั่นที่ใช้ในกลุ่ม SE อื่น ๆ
Cam_Aust

ลองดูคำตอบนี้: stackoverflow.com/a/48216286/3782119
Shayan Amani

คำตอบ:


745

นี่คือวิธีการแก้ปัญหาที่ฉันได้พบการเปิดใช้งานทั่วโลก สีขั้ว

แก้ไขของคุณ.bash_profile(ตั้งแต่ OS X 10.8) - หรือ (สำหรับ 10.7 และก่อนหน้านี้): .profileหรือ.bashrcหรือ/etc/profile(ขึ้นอยู่กับความพร้อมใช้งาน) - ในโฮมไดเร็กทอรีของคุณและเพิ่มรหัสต่อไปนี้:

export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced

CLICOLOR=1 เพียงแค่เปิดใช้งานการระบายสีของเทอร์มินัลของคุณ

LSCOLORS=... ระบุวิธีการสีรายการที่เฉพาะเจาะจง

หลังจากแก้ไข.bash_profileให้เริ่มต้น Terminal และบังคับให้การเปลี่ยนแปลงเกิดขึ้นโดยดำเนินการ:

source ~/.bash_profile

จากนั้นไปTerminal > Preferencesคลิกที่Profilesแท็บแล้วแท็บย่อยและการตรวจสอบTextDisplay ANSI Colors

ตรวจสอบแล้วบน Sierra (พฤษภาคม 2017)


21
เพิ่งทำได้โดยเพิ่มลงใน. bash_profile และใช้งานได้ ไม่ทำงานเมื่อฉันเพิ่มลงใน. profile แม้ว่า ขอบคุณ!
มอร์เทน

10
ฉันเพิ่งแก้ไข/etc/profileและใช้งานได้เหมือนมีเสน่ห์
Cyclonecode

2
เพื่อ @Morten และอื่น ๆ ใด ๆ ที่ดิ้นรนกับโปรไฟล์ของพวกเขาทุบตีดูคำตอบเหล่านี้สำหรับคำอธิบายและวิธีการแก้ปัญหา: stackoverflow.com/a/7780055/665488 , superuser.com/a/244990
Cam Jackson

4
dotfiles / .aliasesมีดีexport LS_COLORSคำสั่ง
bobobobo

16
หากคุณต้องการสีเดียวกับที่ Linux ใช้ (อย่างน้อย Debian และ Ubuntu) ให้ใช้LSCOLORS=ExGxFxdxCxDxDxxbaDecac
remram

125

คุณสามารถใช้ไวยากรณ์ที่ใช้ Linux ในหนึ่งในสคริปต์เริ่มต้นของคุณ เพิ่งทดสอบสิ่งนี้กับกล่อง OS X Mountain Lion

เช่น. ในของคุณ~/.bash_profile

export TERM="xterm-color" 
export PS1='\[\e[0;33m\]\u\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\]:\[\e[0;34m\]\w\[\e[0m\]\$ '

สิ่งนี้จะช่วยให้คุณมีพรอมต์สีที่ดี เพื่อเพิ่มสีออกคุณสามารถเพิ่มlsalias ls="ls -G"

หากต้องการทดสอบเพียงรัน a source ~/.bash_profileเพื่ออัปเดตเทอร์มินัลปัจจุบันของคุณ

หมายเหตุด้านข้างเกี่ยวกับสี: สีนำหน้าด้วยลำดับการยกเว้น\eและกำหนดโดยค่าสีประกอบด้วย[style;color+m]และล้อมรอบด้วย[]ลำดับการหลบหนี เช่น.

  • สีแดง = \[\e[0;31m\]
  • ตัวหนาสีแดง (สไตล์ 1) = \[\e[1;31m\]
  • สีชัดเจน = \[\e[0m\]

ฉันมักจะเพิ่มโทนสีที่ปรับเปลี่ยนเล็กน้อยใน. bash_profile ของรูทเพื่อทำให้ชื่อผู้ใช้เป็นสีแดงดังนั้นฉันจะเห็นได้อย่างชัดเจนเสมอว่าฉันเข้าสู่ระบบในฐานะรูทหรือไม่

ใน/root/.bash_profile:

PS1='\[\e[0;31m\]\u\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\]:\[\e[0;34m\]\w\[\e[0m\]\$ '

สำหรับบัญชี SSH ทั้งหมดของฉันออนไลน์ฉันแน่ใจว่าใส่ชื่อโฮสต์เป็นสีแดงเพื่อแยกความแตกต่างถ้าฉันอยู่ในเทอร์มินัลท้องถิ่นหรือระยะไกล เพียงแก้ไข.bash_profileไฟล์ในไฟล์ dir ที่บ้านของคุณบนเซิร์ฟเวอร์ .. หากไม่มี.bash_profileไฟล์บนเซิร์ฟเวอร์คุณสามารถสร้างมันขึ้นมาได้

หากวิธีนี้ใช้ไม่ได้ตามที่คาดหวังโปรดอ่านความคิดเห็นด้านล่างเนื่องจากฉันไม่ได้ใช้ MacOS บ่อยมาก ..

หากคุณต้องการทำสิ่งนี้บนเซิร์ฟเวอร์ระยะไกลให้ตรวจสอบว่ามี~/.bash_profileไฟล์อยู่หรือไม่ ถ้าไม่ใช่เพียงแค่สร้างมันขึ้นมาและมันควรจะมีแหล่งที่มาโดยอัตโนมัติเมื่อเข้าสู่ระบบครั้งต่อไปของคุณ


2
คุณจะแก้ไข bash_profile สำหรับบัญชี ssh ออนไลน์ได้อย่างไร
Andy

1
ฉันชอบPS1ดีกว่า$PWDแทนที่จะ\uเป็นเช่นนี้:PS1=\[\e[0;31m\]$PWD\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\]:\[\e[0;34m\]\w\[\e[0m\]\$
cregox

1
นี่คือบางส่วนคำอธิบายเพิ่มเติมของรหัสสำหรับพรอมต์: wiki.archlinux.org/index.php/Color_Bash_Prompt#Step_by_step
JohnK

1
การเชื่อมโยงเหล่านี้ยังอาจจะเป็นประโยชน์: ANSI รหัสสีลำดับหนี เพิ่มเติมเกี่ยวกับรหัส PS1
JohnK

1
ฉันมีปัญหาในการรับสี PROMPT_COMMAND เพื่อแสดงอย่างถูกต้องใน El Capitan (OS X 10.11) โดยใช้รหัสสีเหล่านี้ ปรากฎว่าเมื่อใช้ในการPROMPT_COMMANDที่คุณจะต้องใช้ไวยากรณ์แทน\033 \eตัวอย่างการเพิ่มการประทับเวลาที่มีสีก่อนพรอมต์ของคุณ (รวมถึงสิ่งนี้ในของคุณ~/.bashrcหรือ~/.bash_profile):PROMPT_COMMAND="${PROMPT_COMMAND}; echo; echo -e '\033[0;35m'\[\$(date +%F\ %T)\]'\033[m'"
user5359531

42

MartinVonMartinsgrünและวิธีการ 4 ระดับยืนยันว่าทำงานได้ดีบน Mac OS X Mountain Lion

ไฟล์ที่ฉันต้องการอัปเดตคือ ~ / .profile

แต่ผมไม่สามารถปล่อยให้คำถามนี้โดยไม่ต้องแนะนำแอพลิเคชันที่ชื่นชอบiTerm 2

iTerm 2 ให้คุณโหลดชุดสีสากลจากไฟล์ ง่ายต่อการทดลองและลองใช้ชุดรูปแบบสีมากมาย

นี่คือภาพหน้าจอของหน้าต่าง iTerm 2 และการตั้งค่าสี iTerm2 Color Preferences สกรีนช็อตสำหรับ Mac

เมื่อฉันเพิ่มต่อไปนี้ลงในไฟล์ ~ / .profile ของฉัน iTerm 2 ก็สามารถแทนที่สีได้

export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

นี่คือพื้นที่เก็บข้อมูลที่ยอดเยี่ยมพร้อมสถานีที่ตั้งไว้ดี:

iTerm2 Color Schemes บน Github โดย mbadolato

โบนัส: เลือก "แสดง / ซ่อน iTerm2 ด้วยฮอตคีย์ทั้งระบบ" และผูกกุญแจด้วยBetterTouchTool เพื่อซ่อน / แสดงเทอร์มินัลด้วยท่าทางการใช้เมาส์


1
iTerm2 ชนมักจะเกี่ยวกับระบบของฉันดังนั้นฉันเปลี่ยนไป Oh-My-zsh github.com/robbyrussell/oh-my-zsh นอกจากนี้ยังมีชุดรูปแบบ
LuckyMalaka

เฮ้! กรุณาเปลี่ยนbaskervilleลิงค์ให้เหมาะสม ดูเหมือนว่าคัดลอกวางผิด
Jevgeni Smirnov

@NickWoodhams ธีมสีอะไรที่คุณใช้ในหน้าจอ
Indradhanush Gupta

1
@IndradhanushGupta ไม่แน่ใจว่าชุดสีที่เคยเป็นเมื่อไม่นานมานี้ แต่ตอนนี้ฉันใช้ธีม Pure ZSH และรักมัน github.com/sindresorhus/pure
Nick Woodhams

1
นี่คือโทนสีที่ดีและสิ่งที่ฉันต้องการในการตรวจสอบประเภทของรายการ // dirs และอื่น ๆ
rio

17

หากคุณต้องการให้สีของคุณมีสีคุณต้องแก้ไขไฟล์ ~ / .bash_profile ของคุณและเพิ่มบรรทัดต่อไปนี้ (หากยังไม่ได้เขียน):

source .bashrc

จากนั้นคุณแก้ไขหรือสร้างไฟล์ ~ / .bashrc และเขียนนามแฝงลงในคำสั่ง ls:

alias ls="ls -G"

ตอนนี้คุณต้องพิมพ์source .bashrcเทอร์มินัลหากเปิดใช้แล้วหรือเพียงเปิดเทอร์มินัลใหม่

หากคุณต้องการตัวเลือกเพิ่มเติมในlsjuste ของคุณอ่านคู่มือ ( man ls) ตัวเลือกไม่เหมือนกับในระบบ GNU / Linux


6
ตัวเลือกที่ค่อนข้างดีกว่าคือการแทนที่คำจำกัดความ 'นามแฝง' ด้วย 'export CLICOLOR = ""' สิ่งนี้มีข้อดีคือโดยปกติแล้วจะทำงานต่อไปแม้ว่าคุณจะเปลี่ยนเชลล์ในระหว่างเซสชันเทอร์มินัล (ตราบใดที่ตัวแปรสภาพแวดล้อมได้รับการสืบทอด
เน็ด Deily

5

หากคุณใช้ tcsh ให้แก้ไข~/.cshrcไฟล์เพื่อรวมบรรทัด:

setenv CLICOLOR 1
setenv LSCOLORS dxfxcxdxbxegedabagacad

LSCOLORS ระบุโทนสีที่คุณต้องการใช้

ในการสร้าง LSCOLORS ที่คุณต้องการใช้ให้เช็คเอาต์ไซต์นี้


4
bashได้รับการเริ่มต้นใน OS X ตั้งแต่เดือนตุลาคม 2003
nelsonjchen

1
ฉันคิดว่าคุณพูดถูก ฉันเพิ่งได้รับ mac ใหม่และมันก็ทุบตีตามค่าเริ่มต้น ฉันเดาว่า IT ยังคงตั้งค่าแม็คในที่ทำงานให้มี tcsh ตามค่าเริ่มต้น
smaccoun

1
ลิงค์นี้ยอดเยี่ยมมาก!
Sankalp

4

ตรวจสอบสิ่งที่ $ TERM มอบให้: mine เป็น xterm-color และ ls -alG จากนั้นทำการเอาต์พุต colorized


ดีในเมืองหลวงด้วยxterm-256colorฉันไม่มีสี CLICOLORและLSCOLORSอย่าเปลี่ยนสิ่งนั้น):
drevicko

2

เมื่อฉันทำงานบน Mac OS X ในแล็บฉันสามารถรับสีเทอร์มินัลจากการใช้ Terminal (แทน X11) แล้วแก้ไขโปรไฟล์ (จากแถบเมนู Mac) อินเทอร์เฟซค่อนข้างแปลกกับสี แต่คุณต้องตั้งค่าธีมที่ปรับเปลี่ยนเป็นค่าเริ่มต้น

.bashrcการตั้งค่าเพิ่มเติมทำงานโดยการแก้ไข

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