Як я можу налаштувати 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.