Як я можу налаштувати Mac Terminal, щоб він мав кольоровий вихід?


336

Як я можу налаштувати Mac Terminal, щоб він мав кольоровий вихід? Я використовую 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 Я вважаю, що кольори Мікуласа є більш послідовними для Linux. Зокрема, ламане символьне посилання має бути темно-червоним. Що стосується ваших літніх кольорів, то це не маленька проблема.
— Рей Фосс

1
Не працює на mac sierra та пізніше
— Stevie G

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

2
@StevieG працює для мене на Високій Сьєррі. Переконайтесь, що ви правильно встановили: 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.
— Кріс Пейдж

не працює на
— капітана

1
Працював як бос в Ель-Каптіані для мене, дякую за публікацію @Filype
— fusion27

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

13

Якщо ви хочете прочитати кольорову схему Mac OS X Terminal, можливо, вам слід переглянути це:

Я використовую це вже більше року, і я, можливо, не зможу функціонувати без нього!

Ось оновлене посилання:


6
Як і в Mac OS X Lion 10.7, термінал дозволяє налаштувати кольори 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-only", якщо ви використовуєте одні і ті ж конфігураційні файли оболонки в різних системах або вже знайомі з 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 на свій смак. Ви також можете встановити шрифт. Я віддаю перевагу Menlo 12pt. Ось як це може робити будь-який звичайний Джо, а також уникати всіх шалених командних рядків, unix-esque способів робити так, як запропонували інші афіші.


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

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