Kolor powłoki Bash na Macu?

8

Jak zrobić pliki wykonywalne listy powłoki bash w innym kolorze niż pliki niewykonywalne?

Próbowałem edytować, ~/.bashrcaby zawierać następujący wiersz (w przeciwnym razie jest pusty):

 LS_OPTIONS='--color=auto'

Ale to nie działa. Co ja robię źle? Pracuję na Mac OS X.

AP257
źródło

Odpowiedzi:

7

Aby włączyć wyjście kolorów w lspoleceniu bez konieczności tworzenia aliasu lslub pobierania dodatkowego oprogramowania, dodaj następujące elementy do ~/.bash_profile:

# Terminal colours
export CLICOLOR=1
export LSCOLORS=ExFxCxDxBxegedabagacad

Jeśli nie lubisz tych kolorów, możesz użyć tego generatora kolorów ls, aby dostosować tę listę kolorów do własnych upodobań.

Musisz zrobić:

source ~/.bash_profile

Po wprowadzeniu jakichkolwiek zmian, aby zaczęły obowiązywać w istniejącej powłoce.

Ian C.
źródło
nie, to wcale nie pomaga
mówi
6

Problem polega na tym, że OS X nie ma GNU ls; chociaż lsobsługuje kolorowanie nazw plików, może to zrobić tylko według typu pliku (plik, katalog, dowiązanie symboliczne, plik specjalny urządzenia, fifo, gniazdo ...). Zainstaluj coreutilsz Fink / MacPorts / HomeBrew, a następnie użyj alias ls='gls --color=auto'.

geekozaur
źródło
Dzięki. Zainstalowałem coreutilsz MacPorts. Czy powinna aliasbyć linia ~/.bashrc? Tak to położyłem, ale nie widzę żadnej różnicy.
AP257
~/.bash_aliasesmoże działać lepiej. Odkryłem również, że muszę uruchomić, eval $(gdircolors -s)aby to skonfigurować.
geekozaur
@ AP257: Na moim komputerze Mac umieściłem aliasy w pliku .bash_profile
Hai Vu
@Hai Vu: Działa to tylko wtedy, gdy nigdy nie używasz podpowłoki.
geekozaur
@geekosaur gdircolors: invalid option -- 's'masz na myśli --sh?
Anentropic
6

BSD ls działa nieco inaczej

alias ls='ls -G'

powinno działać.

I to nie jest koloryzacja, tylko koloryzacja ls. Kiedy bash tworzy listę plików (spróbuj echo *w katalogu), nie ma możliwości pokolorowania. Pisanie ls -Gdziałałoby w dowolnej powłoce, chociaż ułatwia to powłoka (jak bash) z aliasami.

Rich Homolka
źródło
6

Na komputerze Mac musisz użyć

export CLICOLOR=1

Umieściłem to w pliku .bash_profile. Wolę jednak rozwiązanie Rich Homolka od aliasu ls z flagą -G. Jeśli chcesz dostosować kolory:

man ls

i wyszukaj LSCOLORS

Hai Vu
źródło
1

Zastanów się nad zainstalowaniem brewi używaniem wersji GNU ls i innych narzędzi.

Zainstaluj XCode z AppStore.

Zainstaluj Homebrew ...

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Zainstaluj coreutils ...

brew install coreutils

Dodaj do dolnej części swojego .profile...

export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
export MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"

Alias I lsw moim .profilerobić kolory dla wszystkiego i skrót do pełnej listy.

alias ls='ls --color'
alias l='ls -lah'
# -l     use a long listing format
# -a     do not ignore entries starting with .
# -h     with -l and/or -s, print human readable sizes (e.g., 1K 234M 2G)

Istnieje wiele LS_COLORSopcji na github .

Paul J.
źródło
-1

bashjest tylko powłoką, nie wyświetla plików. Wykonuje polecenia, takie jak ls.

--colorOpcja (i długie opcji w ogóle) jest specyficzne dla wersji lsz GNU coreutils , który pochodzi z większością dystrybucji Linuksa. Z drugiej strony Mac OS X ma korzenie BSD i używa wersji BSD, lsktóra nie obsługuje kolorowania.

użytkownik1686
źródło
1
1: To czyni pomocy barwienia, tylko z innym flag linii poleceń: -G.
Wuffers