Wie kann ich Mac Terminal so konfigurieren, dass Farb-ls ausgegeben werden?

Wie kann ich Mac Terminal so konfigurieren, dass Farb-ls ausgegeben werden? Ich verwende MacOS 10.5

Das ist eine großartige Frage ... Ich habe immer erwartet, dass ls --color (a la gnu ls) einfach überall funktioniert. MacOS akzeptiert --color nicht, daher bin ich davon ausgegangen, dass es überhaupt keine farbige Ausgabe als Option gibt.

Antworten (12)

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 Farbgebung anzupassen, lskönnen Sie optional diese Variable 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 nachahmen möchten:

    export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd
    

Sobald Sie das obige entweder zu ~/.bash_profileoder hinzugefügt haben, ~/.profilekönnen Sie sich entweder abmelden/anmelden oder die Datei in Ihrer Shell beziehen, z. B.:

$ . ~/.bash_profile

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

Gibt es eine Möglichkeit, den farbigen Text nicht fett erscheinen zu lassen?
Ich habe dies im Juli 2015 gefunden (und positiv bewertet), als ich Mavericks leitete. Jetzt auf El Capitan (mit derselben .profileDatei funktioniert es nicht mehr. Ich kann die Werte mit überprüfen echo $LSCOLORS $CLICOLORund sie sind wie definiert, aber es funktioniert nicht mehr. Gibt es einen Grund dafür?
@JamieCook Ich finde die Farben von Mikulas Linux-konsistenter. Insbesondere sollte ein defekter Symlink dunkelrot sein. Mit Ihren lscolors ist es blau ... das ist kein kleines Problem.
Funktioniert nicht auf Mac Sierra und höher
@RayFoss, das ist in der Tat kein kleines Problem, aber OS X kann standardmäßig nicht zwischen gültigen und defekten Symlinks unterscheiden. Die einzig praktikable Alternative ist die Verwendung von gnu ls
@StevieG Funktioniert für mich auf High Sierra. Stellen Sie sicher, dass Sie es richtig einstellen: echo $CLICOLORsollte 1 geben?
Der Standard auf dem Mac ist eigentlich LSCOLORS=exfxcxdxbxegedabagacad Source: freebsd.org/cgi/man.cgi?ls
Beachten Sie, dass .zprofiledies für dieselben zwei Zeilen verwendet werden kann, wenn Sie verwenden zsh.

Du kannst hinzufügen

alias ls='ls -G'

um ~/.bash_profileeine farbige lsAusgabe zu erhalten.

Meins ist alias ls="ls -Gp" – das -p fügt nach jedem Verzeichnis einen Schrägstrich hinzu. Für mich bietet es so viel mehr visuelle Differenzierung, was hilfreich ist.
Ich sehe Ihre -pund erhebe Ihnen eine -F, die zusätzlich eine *After-Executables, |After-Pipes, @After-Symlinks usw. enthält.
Werfen Sie nur zum Spaß ein -h ein, das Größen in "vom Menschen lesbaren" Einheiten formatiert, dh 100b 10k, 23m, 4,2g
Wenn Sie noch kein .bash_profile unter ~/.bash_profile haben, stellen Sie sicher, dass Sie es beziehen, damit es funktioniert. Mach das mit "source ~/.bash_profile"
Keine Ahnung, ob sich das seit 2011 geändert hat, aber Sie können den Alias ​​durch ersetzen export CLICOLOR=1, um dasselbe zu erreichen.
Fürs Protokoll, ich ziehe es normalerweise vor, es nicht zu tun alias ls, denn 1) Wenn Sie sich die Befehlszeilenparameter merken (die nicht so schwer zu merken und einzugeben sind), können Sie dasselbe Verhalten und dieselbe Ausgabe auf mehreren Systemen erzielen wo Sie kein aktualisiertes personal pflegen .bash_profile, und 2) weil ich meine Ausgabe oft gerne an lsandere Befehle weiterleite, um Operationen auf Dateien/Verzeichnissen in der Ausgabe auszuführen, was immer fehlschlägt, wenn a *oder a @in enthalten ist Dateinamen (ohne zuerst an die unerwünschten Zeichen zu gelangen troder seddiese zu entfernen).
OK. dann rate ich -t, nach Datum zu sortieren

Ich finde, dass alles, was ich wirklich brauche, das Hinzufügen zu meinem ~/.bash_profileoder ~/.bashrc(für Bash) oder ~/.zshrc(für Zsh, die neue Standard-Shell in Catalina) ist.

export CLICOLOR=1
Oder ~/.bashrc.
scheint bei capitan nicht zu funktionieren):
Hat für mich wie ein Boss in El Captian gearbeitet, danke für das Posten von @Filype
Sie müssen entweder: 1. Ihr Terminal schließen und erneut öffnen, 2. die Konfigurationsdatei bereitstellen: . ~/.bash_profileoder 3. sich abmelden/anmelden

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

Ich benutze dies jetzt seit über einem Jahr und ich könnte ohne es möglicherweise nicht funktionieren!

Hier ein aktualisierter Link:

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 unterstützt auch 256 Farben.

Außerdem können Sie die Farbe der Eingabeaufforderung (und ihr 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 schwarzen / halbtransparenten Terminalfenster gut aussieht?

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

Mein tolles Terminalfenster

Persönlich verwende 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 von der Community betriebenes Open-Source-Framework zur Verwaltung Ihrer Zsh-Konfiguration.

Es kommt gebündelt mit einer Menge hilfreicher Funktionen, Helfer, Plugins, Themen und ein paar Dingen, die Sie zum Schreien bringen …

Geben Sie hier die Bildbeschreibung ein

Dies ist ein wunderschönes Farbthema. Kann ich dieses Farbthema auf meiner Bash verwenden?
Hmm, solltest du dir wahrscheinlich ansehenoh-my-bash
Super spät zur Party ... aber erinnerst du dich zufällig, welches Thema in deinem Screenshot verwendet wird?
@EricHarlan Sie haben das ganze Thema dort github.com/ohmyzsh/ohmyzsh/wiki/Themes

Eine weitere Option ist die Verwendung von GNU ls, das Teil des Programms „coreutils“ ist.

Sie können es über Rudix oder Homebrew ( brew info coreutils) oder Macports oder Fink beziehen. Dies ist möglicherweise einer „Nur-Mac-OS-X“-Lösung vorzuziehen, wenn Sie dieselben Shell-Konfigurationsdateien auf verschiedenen Systemen verwenden oder bereits mit GNU ls vertraut sind.

UPDATE: Ich bin vor einem Jahr zu Oh my zsh gewechselt und es ist großartig. Mein Lieblingsthema ist Lambda-Mod und meine Version davon.


Ich kombiniere alle Antworten hier:

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"

Geben Sie hier die Bildbeschreibung ein

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: Geben Sie hier die Bildbeschreibung ein

Das sind meine bevorzugten Farben. Sie können die Farbe jedes Teils der Eingabeaufforderung anpassen, indem Sie mCodes (z. B. 34m) ändern, bei denen es sich um ANSI-Farbcodes handelt.

Liste der ANSI-Farbcodes:

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

Für die Catalina - Version müssen Sie export CLICOLOR=1.~/.zshrc

Wenn Sie die Farbpalette anpassen möchten, ändern Sie das Farbdesign in den Terminaleinstellungen.

Dies ist die aktuellste Antwort für Catalina mit zsh.

Vergessen Sie um Himmels willen all diese jahrzehntealten kryptischen Codes, verwenden Sie den integrierten Bereich Terminal --> Einstellungen ... Einstellungen, um die Standard-Skin festzulegen, und bearbeiten Sie die ANSI-Farben nach Ihren Wünschen. Sie können auch die Schriftart festlegen. Ich bevorzuge Menlo 12pt. So kann es jeder normale Joe machen und all die verrückten Kommandozeilen-, Unix-ähnlichen Methoden vermeiden, wie andere Poster vorgeschlagen haben.

Ich denke, jeder, der genug Erfahrung hat, um überhaupt zu wissen, lsdass farbige Ausgaben möglich sind, ist auch in der Lage, ein paar Unix-Befehle auszuführen, um sie korrekt zu konfigurieren.
Aber dadurch wird ls nur in einer Farbe angezeigt, es werden keine Links, Verzeichnisse und Dateien in verschiedenen Farben angezeigt, wie dies bei ls möglich ist

Bei mir hat absolut nichts funktioniert. Schließlich fand ich eine sehr seltsame Lösung, die alles reparierte.

Ich habe mit Strg+F geöffnet ~/Library/Preferences/com.apple.Terminal.plistund nach „Terminal“ gesucht. Ich habe einen Abschnitt entfernt, in dem 'DisableColor' oder so ähnlich stand.