Wie kann ich Mac Terminal für die Ausgabe von Farben konfigurieren?

336

Wie kann ich Mac Terminal für die Ausgabe von Farben konfigurieren? Ich benutze MacOS 10.5

bmike
quelle
5
Das ist eine großartige Frage ... Ich habe immer erwartet, dass ls --color (a la gnu ls) überall funktioniert. MacOS akzeptiert --color nicht, daher habe ich angenommen, dass es überhaupt keine Farbausgabe als Option gibt.
Armentage

Antworten:

370

Bearbeiten:

~/.bash_profile

oder

~/.profile

und fügen Sie die folgende Zeile hinzu, um die Farbausgabe einfach über zu aktivieren ls:

export CLICOLOR=1

Um die von angezeigte Farbe anzupassen, lskönnen Sie diese Variable optional hinzufügen LSCOLORS.

Beispiele

  • Standard

    export LSCOLORS=ExFxCxDxBxegedabagacad
  • Sie können dies verwenden, wenn Sie einen schwarzen Hintergrund verwenden

    export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx
  • Wenn Sie die Farben eines typischen Linux-Terminals imitieren möchten:

    export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd

Sobald Sie die oben , um entweder mehr haben ~/.bash_profileoder ~/.profilekönnen Sie entweder logout / login oder die Datei in Ihrer Shell Quelle, zB:

$ . ~/.bash_profile

HINWEIS: Wenn Sie Hilfe bei der Auswahl der zu verwendenden Farben benötigen, können Sie das Online-Tool LSCOLORS Generator verwenden .

slm
quelle
Gibt es eine Möglichkeit, den farbigen Text nicht fett aussehen zu lassen?
MemphiZ
1
@JamieCook Ich finde Mikulas 'Farben unter Linux konsistenter. Insbesondere sollte ein unterbrochener Symlink dunkelrot sein. Mit Ihren lscolors sein Blau… ist dieses nicht eine kleine Ausgabe.
Ray Foss
1
Funktioniert nicht auf Mac Sierra und später
Stevie G
1
@RayFoss ist in der Tat kein kleines Problem, aber OS X kann standardmäßig keinen Unterschied zwischen gültigen und defekten Symlinks machen. Die einzig praktikable Alternative ist die Verwendung von gnu ls
Ciprian Tomoiagă
2
@StevieG Funktioniert für mich in High Sierra. Stellen Sie sicher, dass Sie es richtig eingestellt haben: echo $CLICOLORsollte 1 geben?
Franklin Yu
192

Du kannst hinzufügen

alias ls='ls -G'

zu Ihrem ~/.bash_profilefarbigen bekommen lsausgegeben.

Barry Wark
quelle
41
Meins ist alias ls = "ls -Gp" - das -p fügt nach jedem Verzeichnis einen Schrägstrich ein. Für mich bietet es eine viel größere visuelle Differenzierung, was hilfreich ist.
Quinn Taylor
39
Ich sehe deine -pund hebe dich ein, -Fwas zusätzlich ein *After Executables, |After Pipes, @After Symlinks, etc. setzt.
25
Geben Sie zum Spaß ein -h ein, um die Größe in "lesbaren" Einheiten zu formatieren, dh 100b 10k, 23m, 4,2 g
Armentage
3
Wenn Sie unter ~ / .bash_profile noch kein .bash_profile haben, geben Sie es unbedingt als Quelle an, damit es funktioniert. Tun Sie dies mit "source ~ / .bash_profile"
y3sh
2
Keine Ahnung, ob sich dies seit 2011 geändert hat, aber Sie können den Alias ​​durch ersetzen export CLICOLOR=1, um dasselbe zu erreichen.
David Lord
25

Ich finde, alles, was ich wirklich brauche, ist, dies zu meinem hinzuzufügen ~/.bash_profile

export CLICOLOR=1
Dateityp
quelle
Oder ~/.bashrc.
Chris Seite
scheint nicht auf capitan zu funktionieren):
drevicko
1
Hat für mich wie ein Boss in El Captian gearbeitet, danke für das Posten von @Filype
fusion27
Sie müssen entweder: 1. Ihr Terminal schließen und erneut öffnen, 2. die Konfigurationsdatei . ~/.bash_profile
abrufen
13

Wenn Sie ein lesbares Mac OS X Terminal-Farbschema wünschen, sollten Sie Folgendes prüfen:

Ich benutze es seit über einem Jahr und könnte ohne es nicht funktionieren!

Hier ist ein aktualisierter Link:

Jeff
quelle
6
Ab Mac OS X Lion 10.7 ermöglicht Terminal das Anpassen der ANSI-Farben, sodass die Verwendung von SIMBL oder anderen Erweiterungen nicht mehr erforderlich ist. Es werden auch 256 Farben unterstützt.
Chris Seite
12

Sie können auch die Eingabeaufforderungsfarbe (und das Format) anpassen, indem Sie Folgendes hinzufügen:

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

zu ~/.bash_profileoder ~/.profileDatei. Wo 0;33ist normales Gelb, das in meinem schwarz / halbtransparenten Terminalfenster gut aussieht?

Hier finden Sie eine vollständige Liste der Farben und ihrer Erklärungen: https://wiki.archlinux.org/index.php/Color_Bash_Prompt

Mein tolles Terminalfenster

nacho4d
quelle
8

Eine andere Möglichkeit ist die Verwendung von GNU, lsdas Teil des Programms 'coreutils' ist.

Sie können es über Rudix oder Homebrew ( brew info coreutils) oder Macports oder Fink bekommen. Dies ist möglicherweise der Verwendung einer "Mac OS X-only" -Lösung vorzuziehen, wenn Sie dieselbe Shell-Konfigurationsdatei auf verschiedenen Systemen verwenden oder bereits mit GNU ls vertraut sind.

TJ Luoma
quelle
7

Persönlich benutze ich Oh My Zsh, um meinem Terminal Farbe und andere Tricks hinzuzufügen. Ich denke das ist der einfachste Weg.

oh-my-zsh ist ein Open-Source-Framework für die Verwaltung Ihrer Zsh-Konfiguration.

Es wird mit einer Menge hilfreicher Funktionen, Hilfsprogrammen, Plugins, Themen und ein paar Dingen gebündelt, die Sie zum Schreien bringen ...

Bildbeschreibung hier eingeben

StrawHara
quelle
4

Fügen Sie einfach die folgende Zeile zur ~/.bash_profileDatei hinzu:

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

Vorschau: Bildbeschreibung hier eingeben

Das sind meine bevorzugten Farben. Sie können jeden Teil der Eingabeaufforderungsfarbe anpassen, indem Sie mCodes ändern (z. B. 34mANSI-Farbcodes).

Liste der ANSI-Farbcodes:

  • Schwarz: 30 m
  • Rot: 31 m
  • Grün: 32 m
  • Gelb: 33 m
  • Blau: 34 m
  • Lila: 35 m
  • Cyan: 36 m
  • Weiß: 37 m
Shayan Amani
quelle
4

Alle Antworten hier zu kombinieren, ist das, was ich benutze:

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"

Bildbeschreibung hier eingeben

Sand1512
quelle
3

Vergessen Sie diese jahrzehntealten kryptischen Codes, und verwenden Sie das integrierte Fenster Terminal -> Einstellungen ..., um die Standard-Skin festzulegen und die ANSI-Farben nach Ihren Wünschen zu bearbeiten. Sie können auch die Schriftart festlegen. Ich bevorzuge Menlo 12pt. So kann es jeder normale Joe tun und die verrückte, unixartige Befehlszeilenmethode vermeiden, die andere Plakate vorgeschlagen haben.

Geoff Hoffman
quelle
12
Ich denke, jeder, der genug Erfahrung hat, um überhaupt zu wissen, dass lseine farbige Ausgabe möglich ist, kann auch ein paar Unix-Befehle ausführen, um sie korrekt zu konfigurieren.
Nohillside
7
Aber das macht ls nur in einer Farbe anzeigen, es macht keine Links, Verzeichnisse, Dateien in verschiedenen Farben anzeigen, wie es ls kann
Mark