8

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

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

 LS_OPTIONS='--color=auto'

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

6 ответов6

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' .

6

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

alias ls='ls -G'

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

И это не Баш окраски, это делает 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 которая не поддерживает раскрашивание.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .