Bash цвет оболочки на Mac?

8

Как вы можете сделать список исполняемых файлов оболочки Bash другого цвета, чем неисполняемые файлы?

Я попытался изменить, ~/.bashrcчтобы содержать следующую строку (в противном случае она пуста):

 LS_OPTIONS='--color=auto'

Но это не работает. Что я делаю неправильно? Я работаю на Mac OS X.

AP257
источник

Ответы:

7

Чтобы включить вывод цвета из lsкоманды без необходимости создания псевдонима lsили загрузки какого-либо дополнительного программного обеспечения, добавьте следующее к своему ~/.bash_profile:

# Terminal colours
export CLICOLOR=1
export LSCOLORS=ExFxCxDxBxegedabagacad

Если вам не нравятся эти цвета, вы можете использовать этот генератор цветов ls, чтобы настроить этот список цветов по своему вкусу.

Вам нужно будет сделать:

source ~/.bash_profile

После внесения любых изменений они вступят в силу в существующей оболочке.

Ян С.
источник
нет, это совсем не помогает
Холмс
6

Проблема в том, что OS X не имеет GNU ls; хотя lsон поддерживает раскраску имени файла, он может делать это только по типу файла (файл, каталог, символическая ссылка, специальный файл устройства, fifo, socket ...). Установите coreutilsиз Fink / MacPorts / HomeBrew, затем используйте alias ls='gls --color=auto'.

geekosaur
источник
Спасибо. Я установил coreutilsиз MacPorts. Если aliasлиния находится в ~/.bashrc? Вот где я это сказал, но я не вижу никакой разницы.
AP257
~/.bash_aliasesможет работать лучше Я также обнаружил, что мне нужно бежать, eval $(gdircolors -s)чтобы настроить его.
geekosaur
@ AP257: на моем Mac я поместил псевдонимы в .bash_profile
Hai Vu
@Hai Vu: Это работает, только если вы никогда не используете подоболочки.
geekosaur
@geekosaur gdircolors: invalid option -- 's'ты имеешь ввиду --sh?
Anentropic
6

BSD ls работает немного по-другому

alias ls='ls -G'

должно сработать.

И это не окраска bash, это lsраскрашивание. Когда Bash делает список файлов (попробуйте echo *в каталоге), нет возможности раскрасить. Набор текста ls -Gбудет работать в любой оболочке, хотя оболочка (например, bash), имеющая псевдонимы, делает это проще.

Рич Гомолка
источник
6

На Mac вам нужно использовать

export CLICOLOR=1

Я положил это в .bash_profile. Однако я предпочитаю решение Rich Homolka псевдониму ls с флагом -G. Если вы хотите настроить цвета:

man ls

и искать LSCOLORS

Хай вю
источник
1

Подумайте об установке brewи использовании GNU-версии ls и других инструментов.

Установите XCode из AppStore.

Установить Homebrew ...

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

Установить coreutils ...

brew install coreutils

Добавьте в конец вашего .profile...

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

Псевдоним я lsв моем .profileсделать цвета для всех и ярлык для полного списка.

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)

На github есть несколько LS_COLORSвариантов .

Пол Дж
источник
-1

bashэто только оболочка, она не перечисляет файлы. Он выполняет команды, такие как ls.

--colorВариант (и длинные варианты в целом) является специфичным для версии lsот GNU Coreutils , который поставляется с большинством дистрибутивов Linux. С другой стороны, Mac OS X имеет корни BSD и использует версию BSD, lsкоторая не поддерживает раскрашивание.

user1686
источник
1
-1: Это делает поддержку расцветку, только с другим флагом командной строки: -G.
Вуфферс