Come posso configurare Mac Terminal per avere un output a colori?


Risposte:


370

Modificare:

~/.bash_profile

o

~/.profile

e aggiungi la seguente riga per abilitare semplicemente l'output del colore tramite ls:

export CLICOLOR=1

Per personalizzare la colorazione mostrato da lsvoi può opzionalmente aggiungere questa variabile, LSCOLORS.

Esempi

  • Predefinito

    export LSCOLORS=ExFxCxDxBxegedabagacad
  • Puoi usarlo se stai usando uno sfondo nero

    export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
  • Se desideri imitare i colori di un tipico terminale Linux:

    export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd

Dopo aver aggiunto quanto sopra a entrambi ~/.bash_profileo ~/.profileè possibile disconnettersi / accedere o eseguire il sorgente del file nella shell, ad esempio:

$ . ~/.bash_profile

NOTA: se hai bisogno di aiuto per selezionare i colori da usare, puoi usare questo strumento online chiamato LSCOLORS Generator .


Esiste un modo per rendere il testo colorato non grassetto?
MemphiZ,

1
@JamieCook Trovo che i colori di Mikulas siano più coerenti con Linux. In particolare, un collegamento simbolico interrotto dovrebbe essere rosso scuro. Con il tuo lscolors è blu ... questo non è un piccolo problema.
Ray Foss,

1
Non funziona su mac sierra e versioni successive
Stevie G

1
@RayFoss, in effetti, questo non è un problema, ma OS X non può fare la differenza tra collegamenti simbolici validi e interrotti per impostazione predefinita. L'unica alternativa possibile è usare gnu ls
Ciprian Tomoiagă

2
@StevieG Funziona per me su High Sierra. Assicurati di averlo impostato correttamente: echo $CLICOLORdovrebbe dare 1?
Franklin Yu,

192

Puoi aggiungere

alias ls='ls -G'

al tuo ~/.bash_profileper ottenere un lsoutput colorato .


41
Il mio è alias ls = "ls -Gp" - il -p aggiunge una barra dopo ogni directory. Per me, fornisce molta più differenziazione visiva, il che è utile.
Quinn Taylor,

39
Vedo il tuo -pe ti sollevo un -Fche inoltre mette un *eseguibile |after , after pipe, @dopo symlink, eccetera.

25
Solo per divertimento, inserisci un -h, che formatterà le dimensioni in unità "leggibili dall'uomo", cioè 100b 10k, 23m, 4.2g
Armentage

3
Se non hai già un .bash_profile in ~ / .bash_profile, assicurati di procurartelo, in modo che funzioni. Fallo con "source ~ / .bash_profile"
y3sh

2
Non so se questo è cambiato dal 2011, ma è possibile sostituire l'alias con export CLICOLOR=1per ottenere lo stesso risultato.
David Lord,

25

Trovo che tutto ciò di cui ho davvero bisogno sia aggiungerlo al mio ~/.bash_profile

export CLICOLOR=1

Or ~/.bashrc.
Chris Page

non sembra funzionare su
Capitan

1
Ha funzionato come un capo in El Captian per me, grazie per aver pubblicato @Filype
fusion27

Devi: 1. chiudere il terminale e riaprire, 2. risorsa il file di configurazione: . ~/.bash_profileoppure 3. logout / login
slm

13

Se desideri una combinazione di colori del Terminale di Mac OS X leggibile, puoi esaminare questo:

Lo sto usando da oltre un anno e potrei non essere in grado di funzionare senza di esso!

Ecco un link aggiornato:


6
A partire da Mac OS X Lion 10.7, Terminal consente di personalizzare i colori ANSI, quindi non è più necessario utilizzare SIMBL o altre estensioni. Supporta anche 256 colori.
Chris Page

12

Inoltre puoi personalizzare il colore del prompt (e il suo formato) aggiungendo:

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

a ~/.bash_profileo ~/.profilefile. Dov'è il 0;33giallo normale che sembra bello nella mia finestra terminale nera / semitrasparente.

Ecco un elenco completo dei colori e delle loro spiegazioni: https://wiki.archlinux.org/index.php/Color_Bash_Prompt

La mia fantastica finestra terminale


8

Un'altra opzione è quella di utilizzare la GNU lsche fa parte del programma "coreutils".

Puoi ottenerlo tramite Rudix o Homebrew ( brew info coreutils) o Macports o Fink. Potrebbe essere preferibile utilizzare una soluzione "solo per Mac OS X" se si utilizzano gli stessi file di configurazione della shell su sistemi diversi o se si ha già familiarità con GNU ls.



7

Personalmente, sto usando Oh My Zsh per aggiungere colore e altri trucchi al mio Terminale. Penso che sia il modo più semplice.

oh-my-zsh è un framework open source guidato dalla community per la gestione della configurazione di Zsh.

Viene fornito in bundle con un sacco di funzioni utili, aiutanti, plugin, temi e alcune cose che ti fanno gridare ...

inserisci qui la descrizione dell'immagine


4

Aggiungi semplicemente la seguente riga al ~/.bash_profilefile:

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

Anteprima: inserisci qui la descrizione dell'immagine

Questi sono i miei colori preferiti. È possibile personalizzare ogni parte del colore del prompt modificando i mcodici (ad es. 34m) Che sono codici colore ANSI.

Elenco dei codici colore ANSI:

  • Nero: 30m
  • Rosso: 31m
  • Verde: 32m
  • Giallo: 33m
  • Blu: 34m
  • Viola: 35m
  • Ciano: 36m
  • Bianco: 37m

4

Combinando tutte le risposte qui è quello che uso:

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"

inserisci qui la descrizione dell'immagine


3

Dimentica tutti quei codici criptici di decenni per gosh sakes, usa il pannello Terminale integrato -> Preferenze ... per impostare lo skin predefinito e modificare i colori ANSI a tuo piacimento. Puoi anche impostare il carattere. Preferisco Menlo 12pt. Questo è il modo in cui qualsiasi normale Joe può farlo, ed evitare tutto il modo folle e unix-esque di fare le cose come hanno suggerito altri poster.


12
Penso che chiunque abbia abbastanza esperienza da sapere anche che lspuò avere un output colorato è anche in grado di eseguire alcuni comandi Unix per configurarlo correttamente.
Nohillside

7
Ma questo fa solo mostrare in un colore che non crea collegamenti, directory, file in diversi colori come può fare
Mark
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.