Bash color shell su Mac?


8

Come si può creare un elenco eseguibile bash di file in un colore diverso rispetto ai file non eseguibili?

Ho provato a modificare ~/.bashrcper contenere la seguente riga (altrimenti è vuota):

 LS_OPTIONS='--color=auto'

Ma non funziona. Che cosa sto facendo di sbagliato? Sto lavorando su Mac OS X.

Risposte:


7

Per attivare l'output a colori dal lscomando senza dover creare un alias lso scaricare alcun software aggiuntivo, aggiungere quanto segue a ~/.bash_profile:

# Terminal colours
export CLICOLOR=1
export LSCOLORS=ExFxCxDxBxegedabagacad

Se non ti piacciono quei colori, puoi usare questo generatore di colori per personalizzare l'elenco dei colori a tuo piacimento.

Dovrai fare:

source ~/.bash_profile

Dopo aver apportato le modifiche affinché abbiano effetto nella shell esistente.


no, non aiuta affatto
holms

6

Il problema è che OS X non ha GNU ls; mentre lssupporta la colorazione dei nomi dei file, può farlo solo per il tipo di file (file, directory, link simbolico, file speciale del dispositivo, fifo, socket ...). Installa coreutilsda Fink / MacPorts / HomeBrew, quindi utilizza alias ls='gls --color=auto'.


Grazie. Ho installato coreutilsda MacPorts. La aliaslinea dovrebbe essere dentro ~/.bashrc? È lì che l'ho messo, ma non vedo alcuna differenza.
AP257,

~/.bash_aliasespotrebbe funzionare meglio. Ho anche scoperto che dovevo correre eval $(gdircolors -s)per configurarlo.
Geekosaur,

@ AP257: Sul mio Mac, ho inserito gli alias nel .bash_profile
Hai Vu

@Hai Vu: Funziona solo se non usi mai i subshells.
Geekosaur,

@geekosaur gdircolors: invalid option -- 's'intendi --sh?
Anentropico

6

BSD funziona un po 'diversamente

alias ls='ls -G'

dovrebbe funzionare.

E questo non è colorazione bash, sta lsfacendo la colorazione. Quando bash fa un elenco di file (prova echo *in una directory) non c'è modo di colorizzarlo. La digitazione ls -Gfunzionerebbe in qualsiasi shell, sebbene una shell (come bash) che abbia alias lo renda più semplice.


6

Sul Mac, è necessario utilizzare

export CLICOLOR=1

L'ho messo nel .bash_profile. Tuttavia, preferisco la soluzione di Rich Homolka all'alias con la bandiera -G. Se vuoi personalizzare i colori:

man ls

e cerca LSCOLORS


1

Prendi in considerazione l'installazione brewe l'uso della versione GNU di ls e di altri strumenti.

Installa XCode dall'App Store.

Installa Homebrew ...

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

Installa coreutils ...

brew install coreutils

Aggiungi in fondo al tuo .profile...

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

Alias lsnel mio .profilefare colori per tutto e una scorciatoia per l'elenco completo.

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)

Ci sono un sacco di LS_COLORSopzioni su Github .


-1

bashè solo una shell, non elenca i file. Esegue comandi come ls.

L' --coloropzione (e le opzioni lunghe in generale) è specifica della versione di lsGNU coreutils , che viene fornita con la maggior parte delle distribuzioni Linux. D'altra parte, Mac OS X ha radici BSD e utilizza la versione BSD di lscui non supporta la colorazione.


1
-1: Si fa colorazione supporto, solo con una diversa linea di comando di segnalazione: -G.
Wuffers,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.