Кольорова оболонка Bash на Mac?


8

Як можна створити виконувані файли списку оболонок іншого кольору, ніж файли, що не виконуються?

Я спробував редагувати, ~/.bashrcщоб містити такий рядок (він інакше порожній):

 LS_OPTIONS='--color=auto'

Але це не працює. Що я роблю неправильно? Я працюю над Mac OS X.

Відповіді:


7

Щоб увімкнути кольоровий вихід із lsкоманди без необхідності створювати псевдонім lsабо завантажувати додаткове програмне забезпечення, додайте наступне до свого ~/.bash_profile:

# Terminal colours
export CLICOLOR=1
export LSCOLORS=ExFxCxDxBxegedabagacad

Якщо вам не подобаються ці кольори, ви можете використовувати цей генератор кольорів ls, щоб налаштувати цей список кольорів на свій смак.

Вам потрібно буде зробити:

source ~/.bash_profile

Після внесення будь-яких змін, які вони набудуть чинності у вашій наявній оболонці.


ні, це зовсім не допомагає
розкривається

6

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


Дякую. Я встановив 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?
Анентроп

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 та використання версії ls та інших інструментів GNU.

Встановіть XCode з AppStore.

Встановити домашню мову ...

/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параметр (і довгі варіанти в цілому) характерний для версії lsGNU coreutils , яка постачається з більшістю дистрибутивів Linux. З іншого боку, Mac OS X має коріння BSD і використовує версію BSD, lsяка не підтримує забарвлення.


1
-1: Це робить підтримку забарвлення, тільки з іншим прапором командного рядка: -G.
Wuffers
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.