Как настроить Mac Terminal на вывод цветного ls?


336

Как настроить Mac Terminal на вывод цветного ls? Я использую MacOS 10.5


5
Это отличный вопрос ... Я всегда ожидал, что ls --color (a la gnu ls) будет работать везде. MacOS не принимает --color, поэтому я предположил, что у него вообще не было цветного вывода.
— Арментаж

Ответы:


370

Редактировать:

~/.bash_profile

или же

~/.profile

и добавьте следующую строку, чтобы просто включить вывод цвета через ls:

export CLICOLOR=1

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

Примеры

  • По умолчанию

    export LSCOLORS=ExFxCxDxBxegedabagacad
  • Вы можете использовать это, если вы используете черный фон

    export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
  • Если вы хотите имитировать цвета типичного терминала Linux:

    export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd

После того как вы добавляете выше либо ~/.bash_profileили ~/.profileвы можете либо выход из системы / Логин или подключим файл в оболочке, например , для :

$ . ~/.bash_profile

ПРИМЕЧАНИЕ. Если вам нужна помощь в выборе цветов, вы можете использовать этот онлайн-инструмент под названием LSCOLORS Generator .


Есть ли способ заставить цветной текст не выглядеть жирным?
— MemphiZ

1
@JamieCook Я считаю цвета Микулаша более последовательными. В частности, битая символическая ссылка должна быть темно-красной. С вашими красками синего цвета ... это не маленькая проблема.
— Рэй Фосс

1
Не работает на Mac Sierra и позже
— Stevie G

1
@RayFoss действительно, это не маленькая проблема, но OS X не может сделать разницу между действительными и неработающими символическими ссылками по умолчанию. Единственная жизнеспособная альтернатива - использовать gnu ls
— Ciprian Tomoiagă

2
@ SteveieG Работает для меня в Высокой Сьерре. Убедитесь, что вы установили это правильно: echo $CLICOLORдолжен дать 1?
— Франклин Ю

192

Можете добавить

alias ls='ls -G'

чтобы ~/.bash_profileполучить цветной lsвывод.


41
Мой псевдоним ls = "ls -Gp" - -p добавляет косую черту после каждого каталога. Для меня это обеспечивает гораздо большую визуальную дифференциацию, что полезно.
— Куинн Тейлор

39
Я вижу ваш -pи поднимаю вам, -Fкоторый в дополнение помещает *после исполняемых файлов, |после каналов, @после символических ссылок, и так далее.

25
Просто для удовольствия, добавьте -h, который отформатирует размеры в «удобочитаемых» единицах, то есть 100b 10k, 23m, 4.2g
— Armentage

3
Если у вас еще нет файла .bash_profile в ~ / .bash_profile, убедитесь, что он создан, чтобы он работал. Сделайте это с "source ~ / .bash_profile"
— y3sh

2
Не знаю, изменилось ли это с 2011 года, но вы можете заменить псевдоним export CLICOLOR=1на то же самое.
— Дэвид Лорд

25

Я считаю, что все, что мне действительно нужно, это добавить это к моему ~/.bash_profile

export CLICOLOR=1

Или ~/.bashrc.
— Крис Пейдж

не похоже на работу на капитана):
— drevicko

1
Работал как босс в El Captian для меня, спасибо за публикацию @Filype
— fusion27

Вы должны либо: 1. закрыть свой терминал и снова открыть, 2. выделить файл конфигурации: . ~/.bash_profileили 3. выйти / войти
— slm

13

Если вам нужна читаемая цветовая схема Mac OS X Terminal, вы можете посмотреть на это:

Я использую это уже больше года, и я не смогу работать без него!

Вот обновленная ссылка:


6
Начиная с Mac OS X Lion 10.7, Terminal позволяет настраивать цвета ANSI, поэтому использование SIMBL или других расширений больше не требуется. Он также поддерживает 256 цветов.
— Крис Пейдж

12

Также вы можете настроить цвет подсказки (и ее формат), добавив:

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

к ~/.bash_profileили ~/.profileфайл. Где 0;33обычный желтый, который хорошо смотрится в моем черном / полупрозрачном окне терминала.

Вот полный список цветов и их объяснения: https://wiki.archlinux.org/index.php/Color_Bash_Prompt

Мое классное окно терминала


8

Другой вариант - использовать GNU, lsкоторый является частью программы 'coreutils'.

Вы можете получить его через Rudix или Homebrew ( brew info coreutils) или Macports или Fink. Это может быть предпочтительнее использования решения «только для Mac OS X», если вы используете одни и те же файлы конфигурации оболочки в разных системах или уже знакомы с GNU ls.



7

Лично я использую Oh My Zsh для добавления цвета и других трюков в мой терминал. Я думаю, что это самый простой способ.

oh-my-zsh - это среда с открытым исходным кодом, управляемая сообществом, для управления вашей конфигурацией Zsh.

Он поставляется в комплекте с кучей полезных функций, помощников, плагинов, тем и нескольких вещей, которые заставляют вас кричать ...

введите описание изображения здесь


4

Просто добавьте следующую строку в ~/.bash_profileфайл:

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

Предварительный просмотр: введите описание изображения здесь

Это мои любимые цвета. Вы можете настроить цвет каждой части приглашения, изменив mкоды (например 34m), которые являются цветовыми кодами ANSI.

Список цветовых кодов ANSI:

  • Черный: 30 м
  • Красный: 31м
  • Зеленый: 32м
  • Желтый: 33м
  • Синий: 34м
  • Фиолетовый: 35м
  • Голубой: 36м
  • Белый: 37м

4

Объединяя все ответы, вот что я использую:

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"

введите описание изображения здесь


3

Забудьте все эти десятилетние загадочные коды для черт возьми, используйте встроенную панель «Терминал -> Настройки», чтобы установить обложку по умолчанию, и отредактируйте цвета ANSI по своему вкусу. Вы также можете установить шрифт. Я предпочитаю Менло 12pt. Это то, как любой обычный Джо может сделать это, и избежать всего сумасшедшего командной строки, Unix-esque способ делать вещи, как предлагали другие авторы.


12
Я думаю, что любой, кто достаточно опытен, чтобы даже знать, что lsможет иметь цветной вывод, также может запустить несколько команд Unix, чтобы правильно его настроить.
— холме

7
Но это просто заставляет ls показывать в одном цвете, но не делает ссылки, каталоги, файлы отображаются в разных цветах, как это может сделать ls
— Mark
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.