539 Stimmen

OS X Terminal Farben

Ich habe gerade einen Mac bekommen, nachdem ich eine Zeit lang mit Ubuntu Linux gearbeitet habe. Unter den vielen Dingen, die ich versuche herauszufinden, ist das Fehlen von Farben in meinem Terminalfenster - wie diejenigen, die angezeigt werden (unter Linux), wenn ls -la oder git status ausgeführt werden.

Wie kann man Farben in ihrer Shell aktivieren?

10 Stimmen

40 Stimmen

Geschlossen als "off topic", aber schauen Sie sich die Tags an: osx, shell, terminal, Farben ... mir scheint es vollkommen on-topic zu sein. Deckt OSX ab, es geht um die Shell, die Verwendung des Terminals und die Hinzufügung von Farben. Man muss das Bash-Profil bearbeiten, also ja, ich würde sagen, es ist on-topic.

15 Stimmen

Klar zum Thema, es geht um Bash-Scripting.

802voto

0xPixelfrost Punkte 9875

Hier ist eine Lösung, die ich gefunden habe, um die globalen Terminalfarben zu aktivieren.

Bearbeiten Sie Ihre .bash_profile (seit OS X 10.8) - oder (für 10.7 und früher): .profile oder .bashrc oder /etc/profile (abhängig von der Verfügbarkeit) - in Ihrem Home-Verzeichnis und fügen Sie folgenden Code hinzu:

export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced

CLICOLOR=1 aktiviert einfach die Färbung Ihres Terminals.

LSCOLORS=... legt fest, wie bestimmte Elemente eingefärbt werden sollen.

Nachdem Sie die .bash_profile bearbeitet haben, öffnen Sie ein Terminal und erzwingen Sie die Änderungen, indem Sie folgendes ausführen:

source ~/.bash_profile

Gehen Sie dann zu Terminal > Einstellungen, klicken Sie auf den Profile-Tab und dann auf den Text-Untertab und aktivieren Sie ANSI-Farben anzeigen.

Verifiziert auf Sierra (Mai 2017).

21 Stimmen

Gerade das gemacht, indem ich es zu .bash_profile hinzugefügt habe und es funktioniert. Hat nicht funktioniert, als ich es zu .profile hinzugefügt habe. Danke!

10 Stimmen

Ich habe gerade meine /etc/profile bearbeitet und es funktioniert einwandfrei.

0 Stimmen

@Krister Andersson: +1, bearbeitet die Antwort. Danke.

135voto

4levels Punkte 2925

Sie können die Linux-basierte Syntax in einem Ihrer Startskripte verwenden. Habe dies gerade auf einem OS X Mountain Lion-Rechner getestet.

z.B. in Ihrer ~/.bash_profile

export TERM="xterm-color" 
export PS1='\[\e[0;33m\]\u\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\]:\[\e[0;34m\]\w\[\e[0m\]\$ '

Dies gibt Ihnen eine schöne farbige Eingabeaufforderung. Um die farbige ls Ausgabe hinzuzufügen, können Sie alias ls="ls -G" hinzufügen.

Zum Testen führen Sie einfach source ~/.bash_profile aus, um Ihr aktuelles Terminal zu aktualisieren.

Seitenhinweis zu den Farben: Die Farben werden von einer Escape-Sequenz \e vorangestellt und durch einen Farbwert definiert, der aus [style;color+m] besteht und in einer entkommenen [] Sequenz eingeschlossen ist. z.B.

  • rot = \[\e[0;31m\]
  • fett rot (Stil 1) = \[\e[1;31m\]
  • farben löschen = \[\e[0m\]

Ich füge immer ein leicht modifiziertes Farbschema in die .bash_profile des Root hinzu, um den Benutzernamen rot zu machen, damit ich immer klar sehen kann, ob ich als Root angemeldet bin (nützlich, um Fehler zu vermeiden, wenn ich viele Terminalfenster offen habe).

In /root/.bash_profile:

PS1='\[\e[0;31m\]\u\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\]:\[\e[0;34m\]\w\[\e[0m\]\$ '

Für alle meine SSH-Konten online sorge ich dafür, dass der Hostname rot ist, um zu unterscheiden, ob ich in einem lokalen oder einem Remote-Terminal bin. Bearbeiten Sie einfach die .bash_profile Datei in Ihrem Home-Verzeichnis auf dem Server.. Wenn es keine .bash_profile Datei auf dem Server gibt, können Sie diese erstellen und sie sollte beim Login automatisch eingebunden werden.

Wenn dies nicht wie erwartet funktioniert, lesen Sie bitte einige der Kommentare unten, da ich MacOS nicht sehr häufig verwende..

Wenn Sie dies auf einem Remote-Server tun möchten, überprüfen Sie, ob die Datei ~/.bash_profile existiert. Falls nicht, erstellen Sie sie einfach und sie sollte beim nächsten Login automatisch eingebunden werden.

2 Stimmen

Wie bearbeiten Sie bash_profile für SSH-Konten online?

1 Stimmen

Ich mag PS1 lieber mit $PWD anstelle von \u, wie folgt: PS1=\[\e[0;31m\]$PWD\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\]:\[\e[0‌​;34m\]\w\[\e[0m\]\$

1 Stimmen

Hier ist eine weitere Erklärung der Codes für die Aufforderung: wiki.archlinux.org/index.php/Color_Bash_Prompt#Step_by_step.

46voto

Nick Woodhams Punkte 11149

MartinVonMartinsgrün und 4Levels Methoden bestätigen, dass sie auf Mac OS X Mountain Lion gut funktionieren.

Die Datei, die ich aktualisieren musste, war ~/.profile.

Dennoch konnte ich diese Frage nicht verlassen, ohne meine Lieblingsanwendung zu empfehlen, iTerm 2.

iTerm 2 ermöglicht es Ihnen, globale Farbschemata aus einer Datei zu laden. Sehr einfach zu experimentieren und eine Vielzahl von Farbschemata auszuprobieren.

Hier ist ein Screenshot des iTerm 2-Fensters und der Farbeinstellungen. iTerm2 Farbeinstellungen Screenshot Mac

Nachdem ich Folgendes zu meiner ~/.profile-Datei hinzugefügt hatte, konnte iTerm 2 die Farben überschreiben.

export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

Hier ist ein großartiges Repository mit einigen schönen Voreinstellungen:

iTerm2 Farbschemata auf Github von mbadolato

Bonus: Wählen Sie "Zeigen/Verstecken von iTerm2 mit einem systemweiten Hotkey" und binden Sie die Taste mit BetterTouchTool für ein sofortiges Ausblenden/Einblenden des Terminals mit einer Mausgeste.

1 Stimmen

ITerm2 ist oft auf meinem System abgestürzt, also bin ich zu oh-my-zsh github.com/robbyrussell/oh-my-zsh gewechselt. Es gibt auch Themes verfügbar.

0 Stimmen

Hey! Bitte ändern Sie den baskerville-Link auf den richtigen - es scheint ein falsches Kopieren und Einfügen zu sein.

0 Stimmen

@NickWoodhams, welche Farbthema verwendest du auf dem Screenshot?

19voto

Marcio Punkte 1912

Wenn Sie Ihre ls farbig haben möchten, müssen Sie Ihre ~/.bash_profile Datei bearbeiten und folgende Zeile hinzufügen (falls nicht bereits vorhanden):

source .bashrc

Dann bearbeiten oder erstellen Sie die ~/.bashrc Datei und schreiben Sie ein Alias für den ls Befehl:

alias ls="ls -G"

Jetzt müssen Sie source .bashrc in einem Terminal eingeben, falls bereits gestartet, oder einfach ein neues Terminal öffnen.

Wenn Sie mehr Optionen in Ihrem ls wollen, lesen Sie einfach das Handbuch (man ls). Die Optionen sind nicht genau die gleichen wie in einem GNU/Linux-System.

6 Stimmen

Eine etwas bessere Option ist es, die 'alias'-Definition durch 'export CLICOLOR=" "' zu ersetzen. Dies hat den Vorteil, dass es in der Regel weiterhin funktioniert, auch wenn Sie während einer Terminalsession die Shells wechseln (solange Umgebungsvariablen vererbt werden - Aliasnamen nicht).

7voto

Wenn Sie tcsh verwenden, bearbeiten Sie Ihre ~/.cshrc Datei, um die folgenden Zeilen einzuschließen:

setenv CLICOLOR 1
setenv LSCOLORS dxfxcxdxbxegedabagacad

Wo, wie Martin sagt, LSCOLORS das Farbschema angibt, das Sie verwenden möchten.

Um die gewünschten LSCOLORS zu generieren, besuchen Sie diese Website

4 Stimmen

bash ist seit Oktober 2003 der Standard in OS X.

1 Stimmen

Ich denke, du hast recht. Ich habe gerade einen neuen Mac bekommen und er hatte bash als Standard. Ich schätze, die IT hat meine Macs bei der Arbeit immer so eingerichtet, dass tcsh standardmäßig vorhanden war.

2 Stimmen

Der Link ist einfach fantastisch!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X