Jak skonfigurować terminal Mac, aby wyświetlał kolor w ls?


Odpowiedzi:


370

Edytować:

~/.bash_profile

lub

~/.profile

i dodaj następujący wiersz, aby po prostu włączyć drukowanie w kolorze za pomocą ls:

export CLICOLOR=1

Aby dostosować kolorystykę przedstawioną przez lswas może ewentualnie dodać tej zmiennej LSCOLORS.

Przykłady

  • Domyślna

    export LSCOLORS=ExFxCxDxBxegedabagacad
  • Możesz użyć tego, jeśli używasz czarnego tła

    export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
  • Jeśli chcesz naśladować kolory typowego terminalu Linux:

    export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd

Po dodać powyższe albo ~/.bash_profileczy ~/.profilemożna albo logout / login lub źródło plik w swojej skorupie, na np:

$ . ~/.bash_profile

UWAGA: Jeśli potrzebujesz pomocy w wyborze kolorów, możesz użyć tego narzędzia online o nazwie LSCOLORS Generator .


Czy istnieje sposób, aby kolorowy tekst nie był pogrubiony?
— MemphiZ

1
@JamieCook Uważam, że kolory Mikulasa są bardziej spójne z linuksem. W szczególności przerwane dowiązanie symboliczne powinno być ciemnoczerwone. Z twoimi lscolors jest niebieski ... to nie jest mały problem.
— Ray Foss,

1
Nie działa na mac sierra i później
— Stevie G.

1
@RayFoss rzeczywiście nie jest to mały problem, ale OS X nie może domyślnie odróżniać prawidłowych i uszkodzonych dowiązań symbolicznych. Jedyną realną alternatywą jest użycie gnu ls
— Ciprian Tomoiagă

2
@StevieG Działa dla mnie w High Sierra. Upewnij się, że dobrze to ustawiłeś: echo $CLICOLORpowinien dać 1?
— Franklin Yu,

192

Możesz dodać

alias ls='ls -G'

aby ~/.bash_profileuzyskać kolorowe lswydruki.


41
Mój to alias ls = "ls -Gp" - -p dodaje ukośnik po każdym katalogu. Dla mnie zapewnia to znacznie większe zróżnicowanie wizualne, co jest pomocne.
— Quinn Taylor

39
Widzę twoją -pi wychowuję cię, -Fktóra dodatkowo dodaje *pliki wykonywalne |po, @po potokach, po dowiązaniach symbolicznych i tak dalej.

25
Dla zabawy wrzuć -h, która sformatuje rozmiary w jednostkach „czytelnych dla człowieka”, tj. 100b 10k, 23m, 4,2g
— Armentage

3
Jeśli nie masz pliku .bash_profile w ~ / .bash_profile, pamiętaj o jego źródle, aby działał. Zrób to za pomocą „source ~ / .bash_profile”
— y3sh

2
Nie wiem, czy zmieniło się to od 2011 roku, ale możesz zamienić alias na, export CLICOLOR=1aby osiągnąć to samo.
— David Lord

25

Uważam, że wszystko, czego naprawdę potrzebuję, to dodanie tego do mojego ~/.bash_profile

export CLICOLOR=1

Lub ~/.bashrc.
— Chris Page

nie wydaje się działać na
— Capitan

1
Pracował dla mnie jak szef w El Captian, dzięki za opublikowanie @Filype
— fusion27

Musisz: 1. zamknąć terminal i otworzyć go ponownie, 2. zasób pliku konfiguracyjnego: . ~/.bash_profilelub 3. wylogować się / zalogować
— slm

13

Jeśli potrzebujesz czytelnego schematu kolorów terminala Mac OS X, możesz przyjrzeć się temu:

Używam tego od ponad roku i może nie być w stanie funkcjonować bez niego!

Oto zaktualizowany link:


6
Począwszy od systemu Mac OS X Lion 10.7, Terminal pozwala na dostosowanie kolorów ANSI, więc używanie SIMBL lub innych rozszerzeń nie jest już konieczne. Obsługuje również 256 kolorów.
— Chris Page

12

Możesz także dostosować kolor zachęty (i jego format), dodając:

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

do ~/.bash_profilelub ~/.profileplik. Gdzie 0;33jest zwykły żółty, który ładnie wygląda w moim czarnym / półprzezroczystym oknie terminala.

Oto pełna lista kolorów i ich wyjaśnienia: https://wiki.archlinux.org/index.php/Color_Bash_Prompt

Moje niesamowite okno terminala


8

Inną opcją jest użycie GNU, lsktóry jest częścią programu „coreutils”.

Możesz go uzyskać za pośrednictwem Rudix lub Homebrew ( brew info coreutils) lub Macports lub Fink. Może to być lepsze niż użycie rozwiązania „tylko Mac OS X”, jeśli używasz tych samych plików konfiguracyjnych powłoki w różnych systemach lub znasz już GNU ls.



7

Osobiście używam Oh My Zsh do dodawania kolorów i innych sztuczek do mojego terminalu. Myślę, że to najłatwiejszy sposób.

oh-my-zsh to środowisko open source, oparte na społeczności, do zarządzania konfiguracją Zsh.

Zawiera mnóstwo pomocnych funkcji, pomocników, wtyczek, motywów i kilka rzeczy, które powodują, że krzyczysz…

wprowadź opis zdjęcia tutaj


4

Wystarczy dodać następujący wiersz do ~/.bash_profilepliku:

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

Zapowiedź: wprowadź opis zdjęcia tutaj

To są moje ulubione kolory. Możesz dostosować każdą część koloru zachęty, zmieniając mkody (np. 34m), Które są kodami kolorów ANSI.

Lista kodów kolorów ANSI:

  • Czarny: 30m
  • Czerwona: 31 m
  • Zielony: 32m
  • Żółty: 33 m
  • Niebieski: 34m
  • Fioletowy: 35m
  • Cyjan: 36m
  • Biała: 37 m

4

Łączę tutaj wszystkie odpowiedzi, których używam:

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"

wprowadź opis zdjęcia tutaj


3

Zapomnij o wszystkich tych kilkudziesięcioletnich tajemniczych kodach na miłość boską, użyj wbudowanego panelu Terminal -> Preferencje ... Ustawienia, aby ustawić domyślną skórkę i edytuj kolory ANSI według własnych upodobań. Możesz także ustawić czcionkę. Wolę Menlo 12pt. W ten sposób każdy zwykły Joe może to zrobić i unikać szalonego wiersza poleceń, unikatowego sposobu robienia rzeczy, jak sugerują inni plakaty.


12
Myślę, że każdy, kto ma wystarczające doświadczenie, by wiedzieć, że lsmoże mieć kolorowe wydruki, jest także w stanie uruchomić kilka poleceń Uniksa, aby poprawnie go skonfigurować.
— nohillside

7
Ale to tylko powoduje, że ls pokazuje się w jednym kolorze, nie powoduje to, że linki, katalogi, pliki są wyświetlane w różnych kolorach, jak ls może
— Mark
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.