Bash màu vỏ trên Mac?


8

Làm thế nào bạn có thể tạo một bash shell danh sách các tệp thực thi có màu khác với các tệp không thể thực thi?

Tôi đã thử chỉnh sửa ~/.bashrcđể chứa dòng sau (nếu không thì trống):

 LS_OPTIONS='--color=auto'

Nhưng nó không hoạt động. Tôi đang làm gì sai? Tôi đang làm việc trên Mac OS X.

Câu trả lời:


7

Để bật đầu ra màu từ lslệnh mà không phải tạo bí danh lshoặc tải xuống bất kỳ phần mềm bổ sung nào, hãy thêm phần sau vào ~/.bash_profile:

# Terminal colours
export CLICOLOR=1
export LSCOLORS=ExFxCxDxBxegedabagacad

Nếu bạn không thích những màu đó, bạn có thể sử dụng trình tạo màu ls này để tùy chỉnh danh sách màu đó theo ý thích của bạn.

Bạn sẽ cần phải làm:

source ~/.bash_profile

Sau khi thực hiện bất kỳ thay đổi nào để chúng có hiệu lực trong vỏ hiện tại của bạn.


không, nó chẳng giúp ích gì cả
holms 16/11/13

6

Vấn đề là OS X không có GNU ls; trong khi nó lskhông hỗ trợ tô màu tên tệp, nó chỉ có thể làm như vậy theo loại tệp (tệp, thư mục, symlink, tệp đặc biệt của thiết bị, fifo, socket ...). Cài đặt coreutilstừ Fink / MacPorts / HomeBrew, sau đó sử dụng alias ls='gls --color=auto'.


Cảm ơn. Tôi đã cài đặt coreutilstừ MacPorts. Có nên aliasxếp hàng ~/.bashrc? Đó là nơi tôi đã đặt nó, nhưng tôi không thấy bất kỳ sự khác biệt nào.
AP257

~/.bash_aliasescó thể làm việc tốt hơn Tôi cũng thấy rằng tôi cần phải chạy eval $(gdircolors -s)để thiết lập nó.
geekizard

@ AP257: Trên máy Mac của tôi, tôi đặt bí danh vào .bash_profile
Hai Vu

@Hai Vu: Điều đó chỉ hoạt động nếu bạn không bao giờ sử dụng subshells.
geekizard

@geekizard gdircolors: invalid option -- 's'có nghĩa là --shgì?
Anentropic

6

BSD ls hoạt động hơi khác một chút

alias ls='ls -G'

nên làm việc.

Và đây không phải là màu bash, nó đang lslàm màu. Khi bash thực hiện một danh sách tệp (thử echo *trong một thư mục), không có cách nào để tô màu. Gõ ls -Gsẽ hoạt động trong bất kỳ shell nào, mặc dù shell (như bash) có bí danh giúp dễ dàng hơn.


6

Trên máy Mac, bạn cần sử dụng

export CLICOLOR=1

Tôi đặt nó trong .bash_profile. Tuy nhiên, tôi thích giải pháp của Rich Homolka hơn là bí danh với cờ -G. Nếu bạn muốn tùy chỉnh màu sắc:

man ls

và tìm kiếm LSCOLORS


1

Xem xét việc cài đặt brewvà sử dụng phiên bản GNU của ls và các công cụ khác.

Cài đặt XCode từ AppStore.

Cài đặt Homebrew ...

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Cài đặt coreutils ...

brew install coreutils

Thêm vào dưới cùng của .profile...

export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
export MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"

Bí danh tôi lstrong tôi .profileđể làm màu sắc cho tất cả mọi thứ và một phím tắt cho danh sách đầy đủ.

alias ls='ls --color'
alias l='ls -lah'
# -l     use a long listing format
# -a     do not ignore entries starting with .
# -h     with -l and/or -s, print human readable sizes (e.g., 1K 234M 2G)

Có một loạt các LS_COLORStùy chọn trên github .


-1

bashchỉ là một vỏ, nó không liệt kê các tập tin. Nó thực thi các lệnh, chẳng hạn như ls.

Các --colortùy chọn (và các tùy chọn dài nói chung) là cụ thể cho các phiên bản của lstừ GNU coreutils , mà đi kèm với hầu hết các bản phân phối Linux. Mặt khác, Mac OS X có gốc BSD và sử dụng phiên bản BSD lskhông hỗ trợ tô màu.


1
-1: Nó không màu hỗ trợ, chỉ với một dòng lệnh cờ khác nhau: -G.
Wuffers
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.