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

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

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

Ответы (12)

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

~/.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 .

Есть ли способ сделать цветной текст не жирным?
Я нашел это (и проголосовал за него) в июле 2015 года, когда запускал Mavericks. Теперь на El Capitan (используя тот же .profileфайл, он больше не работает. Я могу проверить значения с помощью echo $LSCOLORS $CLICOLOR, и они соответствуют определению, но он больше не работает. По какой причине это может быть так?
@JamieCook Я считаю, что цвета Микулаша более совместимы с Linux. В частности, неработающая символическая ссылка должна быть темно-красной. С вашими lscolors он синий... это не маленькая проблема.
Не работает на mac sierra и более поздних версиях
@RayFoss действительно, это немалая проблема, но OS X по умолчанию не может различать действительные и неработающие символические ссылки. Единственная жизнеспособная альтернатива - использовать gnu ls
@StevieG работает на меня в High Sierra. Убедитесь, что вы установили его правильно: echo $CLICOLORдолжен дать 1?
По умолчанию на Mac на самом деле LSCOLORS=exfxcxdxbxegedabagacad Источник: freebsd.org/cgi/man.cgi?ls
Обратите внимание, что .zprofileего можно использовать для тех же двух строк, если вы используете zsh.

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

alias ls='ls -G'

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

Мой псевдоним ls="ls -Gp" -p добавляет косую черту после каждого каталога. Для меня это обеспечивает гораздо большую визуальную дифференциацию, что полезно.
Я вижу ваш -pи поднимаю вас, -Fкоторый, кроме того, ставит *после исполняемых файлов, |после каналов, @после символических ссылок и так далее.
Просто для удовольствия добавьте -h, который будет форматировать размеры в «удобочитаемых» единицах, например 100b 10k, 23m, 4,2g.
Если у вас еще нет .bash_profile в ~/.bash_profile, обязательно укажите его источник, чтобы он работал. Сделайте это с помощью «source ~/.bash_profile»
Не знаю, изменилось ли это с 2011 года, но вы можете заменить псевдоним на , export CLICOLOR=1чтобы выполнить то же самое.
Для справки, я обычно предпочитаю этого не делать alias ls, потому что 1) Если вы на самом деле запомните параметры командной строки (которые не так сложно запомнить и ввести), вы сможете добиться такого же поведения и вывода на нескольких системах. где вы не поддерживаете обновленный персональный .bash_profile, и 2) потому что много раз мне нравилось направлять мой lsвывод другим командам, чтобы выполнять операции с файлами/каталогами в выводе, что всегда терпит неудачу, если есть *или @включены в имена файлов (без предварительной передачи trили sedудаления нежелательных символов).
хорошо. тогда советую поставить -tсортировать по дате

Я обнаружил, что все, что мне действительно нужно, это добавить это в мой ~/.bash_profileили ~/.bashrc(для Bash) или ~/.zshrc(для Zsh, новой оболочки по умолчанию в Catalina)

export CLICOLOR=1
Или ~/.bashrc.
не работает на капитане):
Работал для меня как босс в El Captian, спасибо за публикацию @Filype
Вы должны либо: 1. закрыть терминал и снова открыть, 2. загрузить файл конфигурации: . ~/.bash_profile, или 3. выйти из системы / войти в систему

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

Пользуюсь больше года, без него не могу работать!

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

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

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

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

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

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

Мое потрясающее окно терминала

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

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

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

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

Это красивая цветовая тема. Могу ли я использовать эту цветовую тему на моем bash?
Хм, вы, вероятно, должны посмотреть наoh-my-bash
Очень поздно на вечеринку... но вы случайно не помните, какая тема используется на вашем скриншоте?
@EricHarlan у вас есть вся тема github.com/ohmyzsh/ohmyzsh/wiki/Themes

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

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

ОБНОВЛЕНИЕ: год назад я переключился на Oh my zsh , и это потрясающе. Моя любимая тема — лямбда-мод и моя версия .


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

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"

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

Просто добавьте в ~/.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 м

Для версии Catalina вам необходимо добавить export CLICOLOR=1.~/.zshrc

Если вы хотите настроить цветовую палитру, измените тему цветов в настройках терминала.

это самый актуальный ответ для Каталины с zsh.

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

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

У меня абсолютно ничего не получалось. В конце концов я нашел очень странное решение, которое все исправило.

Я открыл ~/Library/Preferences/com.apple.Terminal.plistи искал «терминал» с помощью Ctrl + F. Я удалил раздел с надписью «DisableColor» или что-то в этом роде.