Làm cách nào để định cấu hình Mac Terminal để có đầu ra ls màu?


336

Làm cách nào để định cấu hình Mac Terminal để có đầu ra ls màu? Tôi đang sử dụng MacOS 10.5


5
Đây là một câu hỏi hay ... Tôi luôn mong muốn ls --color (a la gnu ls) sẽ hoạt động ở mọi nơi. MacOS không chấp nhận - màu, vì vậy tôi cho rằng nó không có đầu ra màu như một tùy chọn.
Armentage

Câu trả lời:


370

Biên tập:

~/.bash_profile

hoặc là

~/.profile

và thêm dòng sau để chỉ cần bật đầu ra màu qua ls:

export CLICOLOR=1

Để tùy chỉnh màu được hiển thị bởi lsbạn có thể tùy ý thêm biến này , LSCOLORS.

Ví dụ

  • Mặc định

    export LSCOLORS=ExFxCxDxBxegedabagacad
  • Bạn có thể sử dụng điều này nếu bạn đang sử dụng nền đen

    export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
  • Nếu bạn muốn bắt chước màu sắc của thiết bị đầu cuối Linux điển hình:

    export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd

Khi bạn đã thêm phần trên vào ~/.bash_profilehoặc ~/.profilebạn có thể đăng xuất / đăng nhập hoặc lấy nguồn tệp trong trình bao của mình, ví dụ:

$ . ~/.bash_profile

LƯU Ý: Nếu bạn cần trợ giúp trong việc chọn màu để sử dụng, bạn có thể sử dụng công cụ trực tuyến này có tên LSCOLORS Generator .


Có cách nào để làm cho văn bản màu không trông đậm?
MemphiZ

1
@JamieCook Tôi thấy màu sắc của Mik Formula phù hợp hơn với linux. Cụ thể, một symlink bị hỏng nên có màu đỏ sẫm. Với lscolors của bạn màu xanh của nó ... đây không phải là một vấn đề nhỏ.
Ray Foss

1
Không hoạt động trên mac sierra và sau đó
Stevie G

1
@RayFoss thực sự, đó không phải là vấn đề nhỏ, nhưng OS X không thể tạo ra sự khác biệt giữa các liên kết tượng trưng hợp lệ và bị hỏng theo mặc định. Cách thay thế khả thi duy nhất là sử dụng gnu ls
Ciprian Tomoiagă

2
@StevieG Hoạt động cho tôi trên High Sierra. Hãy chắc chắn rằng bạn đặt đúng: echo $CLICOLORnên cho 1?
Franklin Yu

192

Bạn có thể thêm

alias ls='ls -G'

để bạn ~/.bash_profilecó được lsđầu ra màu .


41
Của tôi là bí danh ls = "ls -Gp" - -p thêm một dấu gạch chéo sau mỗi thư mục. Đối với tôi, nó cung cấp sự khác biệt trực quan hơn nhiều, rất hữu ích.
Quinn Taylor

39
Tôi thấy bạn -pvà nâng bạn lên -F, ngoài ra còn đặt *sau các tệp thực thi, |sau các ống dẫn, @sau các liên kết tượng trưng, ​​et cetera.

25
Để giải trí, hãy ném vào -h, sẽ định dạng kích thước theo đơn vị "con người có thể đọc được", tức là 100b 10k, 23m, 4.2g
Armentage

3
Nếu bạn chưa có .bash_profile tại ~ / .bash_profile, hãy chắc chắn nguồn đó, để nó hoạt động. Thực hiện việc này với "nguồn ~ / .bash_profile"
y3sh

2
Nếu điều này đã thay đổi kể từ năm 2011, nhưng bạn có thể thay thế bí danh export CLICOLOR=1để thực hiện điều tương tự.
David Lord

25

Tôi thấy rằng tất cả những gì tôi cần thực sự là thêm nó vào ~/.bash_profile

export CLICOLOR=1

Hoặc ~/.bashrc.
Chris Trang

không xuất hiện để làm việc trên thủ đô):
drevicko

1
Làm việc như một ông chủ ở El Captian đối với tôi, cảm ơn vì đã đăng @Filype
fusion27

Bạn phải: 1. đóng thiết bị đầu cuối của bạn và mở lại, 2. tài nguyên tệp cấu hình: . ~/.bash_profilehoặc 3. đăng xuất / đăng nhập
slm

13

Nếu bạn muốn phối màu Mac OS X Terminal có thể đọc được, bạn có thể muốn xem xét điều này:

Tôi đã sử dụng nó hơn một năm nay và tôi không thể hoạt động nếu không có nó!

Đây là một liên kết được cập nhật:


6
Kể từ Mac OS X Lion 10.7, Terminal cho phép tùy chỉnh màu ANSI, do đó, sử dụng SIMBL hoặc các tiện ích mở rộng khác không còn cần thiết nữa. Nó cũng hỗ trợ 256 màu.
Chris Trang

12

Ngoài ra, bạn có thể tùy chỉnh màu nhắc (và định dạng của nó) bằng cách thêm:

PS1='\[\e[0;33m\]\h:\W \u\$\[\e[m\] '

đến ~/.bash_profilehoặc ~/.profiletập tin. Trong trường hợp 0;33có màu vàng thường xuyên mà có vẻ tốt đẹp trong màu đen cửa sổ terminal của tôi / bán trong suốt.

Dưới đây là danh sách đầy đủ các màu sắc và lời giải thích của chúng: https://wiki.archlinux.org/index.php/Color_Bash_Prompt

Cửa sổ thiết bị đầu cuối tuyệt vời của tôi


8

Một tùy chọn khác là sử dụng GNU ls, một phần của chương trình 'coreutils'.

Bạn có thể lấy nó qua Rudix hoặc Homebrew ( brew info coreutils) hoặc Macports hoặc Fink. Điều đó có thể tốt hơn là sử dụng giải pháp "chỉ dành cho Mac OS X" nếu bạn sử dụng cùng một tệp cấu hình shell trên các hệ thống khác nhau hoặc đã quen thuộc với GNU ls.



7

Cá nhân tôi đang sử dụng Oh My Zsh để thêm màu sắc và các thủ thuật khác vào Terminal của tôi. Tôi nghĩ đó là cách dễ nhất.

oh-my-zsh là một khung công tác dựa trên cộng đồng, mã nguồn mở để quản lý cấu hình Zsh của bạn.

Nó đi kèm với rất nhiều chức năng hữu ích, người trợ giúp, plugin, chủ đề và một vài thứ khiến bạn hét lên

nhập mô tả hình ảnh ở đây


4

Chỉ cần thêm dòng sau vào ~/.bash_profiletệp:

export PS1=" \[\033[34m\]\u@\h \[\033[33m\]\w\[\033[31m\]\[\033[00m\] $ "

Xem trước: nhập mô tả hình ảnh ở đây

Đây là màu sắc ưa thích của tôi. Bạn có thể tùy chỉnh từng phần màu của dấu nhắc bằng cách thay đổi mmã (ví dụ 34m) là mã màu ANSI.

Danh sách mã màu ANSI:

  • Đen: 30m
  • Đỏ: 31m
  • Màu xanh lá cây: 32m
  • Vàng: 33m
  • Màu xanh: 34m
  • Màu tím: 35m
  • Lục lam: 36m
  • Trắng: 37m

4

Kết hợp tất cả các câu trả lời ở đây là những gì tôi sử dụng:

COLOR_RED="\033[0;31m"
COLOR_YELLOW="\033[0;33m"
COLOR_GREEN="\033[0;32m"
COLOR_OCHRE="\033[38;5;95m"
COLOR_BLUE="\033[0;34m"
COLOR_WHITE="\033[0;37m"
COLOR_RESET="\033[0m"

#git_color
function git_color {
  local git_status="$(git status 2> /dev/null)"

  if [[ ! $git_status =~ "working directory clean" ]]; then
    echo -e $COLOR_RED
  elif [[ $git_status =~ "Your branch is ahead of" ]]; then
    echo -e $COLOR_YELLOW
  elif [[ $git_status =~ "nothing to commit" ]]; then
    echo -e $COLOR_GREEN
  else
    echo -e $COLOR_OCHRE
  fi
}

#git_branch
function git_branch {
  local git_status="$(git status 2> /dev/null)"
  local on_branch="On branch ([^${IFS}]*)"
  local on_commit="HEAD detached at ([^${IFS}]*)"

  if [[ $git_status =~ $on_branch ]]; then
    local branch=${BASH_REMATCH[1]}
    echo "($branch)"
  elif [[ $git_status =~ $on_commit ]]; then
    local commit=${BASH_REMATCH[1]}
    echo "($commit)"
  fi
}

PS1='\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]'
PS1+="\[\$(git_color)\]"        # colors git status
PS1+="\$(git_branch)"           # prints current branch
PS1+="\[$COLOR_BLUE\]\[$COLOR_RESET\]\$ "
export PS1

export LC_ALL=en_US.UTF-8
export CLICOLOR=1
export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
alias ls="ls -Gp"

nhập mô tả hình ảnh ở đây


3

Quên tất cả các mã mật mã đã tồn tại hàng thập kỷ này để sử dụng gosh, hãy sử dụng cửa sổ được tích hợp sẵn trong Terminal -> Preferences ... để đặt giao diện mặc định và chỉnh sửa màu ANSI theo ý thích của bạn. Bạn cũng có thể đặt phông chữ. Tôi thích Menlo 12pt. Đây là cách mà bất kỳ Joe thông thường nào cũng có thể làm được, và tránh tất cả các cách làm điên rồ của dòng lệnh, unix-esque như những áp phích khác đã đề xuất.


12
Tôi nghĩ rằng bất kỳ ai đủ kinh nghiệm để thậm chí biết rằng lscó thể có đầu ra màu cũng có thể chạy một vài lệnh Unix để cấu hình chính xác.
nohillside

7
Nhưng điều này chỉ làm cho ls hiển thị trong một màu mà nó không tạo liên kết, thư mục, tệp hiển thị bằng các màu khác nhau như ls có thể làm
Đánh dấ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.