Ich bin neu in OS X und habe gerade einen Mac bekommen, nachdem ich einige Zeit mit Ubuntu Linux gearbeitet habe. Unter den vielen Dingen, die ich herausfinden möchte, ist das Fehlen von Farben in meinem Terminalfenster - wie die, die (unter Linux) beim Ausführen angezeigt werden ls -la
oder git status
...
Ich kann einfach nicht herausfinden, wie ich Farben in meiner Shell aktivieren kann.
Antworten:
Hier ist eine Lösung, die ich gefunden habe, um die globalen Terminalfarben zu aktivieren .
Bearbeiten Sie Ihr
.bash_profile
(seit OS X 10.8) - oder (für 10.7 und früher):.profile
oder.bashrc
oder/etc/profile
(je nach Verfügbarkeit) in Ihrem Home-Verzeichnis und fügen Sie folgenden Code hinzu:CLICOLOR=1
Aktiviert einfach die Färbung Ihres Terminals.LSCOLORS=...
Gibt an, wie bestimmte Elemente eingefärbt werden sollen..bash_profile
Starten Sie nach der Bearbeitung ein Terminal und erzwingen Sie die Änderungen, indem Sie Folgendes ausführen:source ~/.bash_profile
Gehen Sie dann zu
Terminal > Preferences
, klicken Sie auf dieProfiles
Registerkarte und dann auf dieText
Unterregisterkarte und überprüfen SieDisplay ANSI Colors
.Verifiziert in Sierra (Mai 2017).
quelle
/etc/profile
und es funktioniert wie ein Zauber.export LS_COLORS
AussageLSCOLORS=ExGxFxdxCxDxDxxbaDecac
Sie können die Linux-basierte Syntax in einem Ihrer Startskripte verwenden. Habe dies gerade auf einer OS X Mountain Lion Box getestet.
z.B. in deinem
~/.bash_profile
Dies gibt Ihnen eine schöne farbige Eingabeaufforderung. Um die farbige
ls
Ausgabe hinzuzufügen, können Sie hinzufügenalias ls="ls -G"
.Führen Sie zum Testen einfach a aus
source ~/.bash_profile
, um Ihr aktuelles Terminal zu aktualisieren.Randnotiz zu den Farben: Den Farben geht eine Escape-Sequenz voraus
\e
und sie wird durch einen Farbwert definiert, der aus einer Escape-Sequenz besteht[style;color+m]
und in diese eingeschlossen[]
ist. z.B.\[\e[0;31m\]
\[\e[1;31m\]
\[\e[0m\]
Ich füge immer ein leicht modifiziertes Farbschema in das .bash_profile des Roots ein, um den Benutzernamen rot zu machen, sodass ich immer klar sehe, ob ich als root angemeldet bin (praktisch, um Fehler zu vermeiden, wenn viele Terminalfenster geöffnet sind).
In
/root/.bash_profile
:PS1='\[\e[0;31m\]\u\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\]:\[\e[0;34m\]\w\[\e[0m\]\$ '
Bei allen meinen Online-SSH-Konten muss der Hostname rot angezeigt werden, um zu unterscheiden, ob ich mich in einem lokalen oder Remote-Terminal befinde. Bearbeiten Sie einfach die
.bash_profile
Datei in Ihrem Home-Verzeichnis auf dem Server. Wenn sich keine.bash_profile
Datei auf dem Server befindet, können Sie sie erstellen und sie sollte beim Anmelden bezogen werden.Wenn dies für Sie nicht wie erwartet funktioniert, lesen Sie bitte einige der folgenden Kommentare, da ich MacOS nicht sehr oft verwende.
Wenn Sie dies auf einem Remote-Server tun möchten, überprüfen Sie, ob die
~/.bash_profile
Datei vorhanden ist. Wenn nicht, erstellen Sie es einfach und es sollte bei Ihrem nächsten Login automatisch bezogen werden.quelle
PS1
besser mit$PWD
statt\u
, wie zum Beispiel:PS1=\[\e[0;31m\]$PWD\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\]:\[\e[0;34m\]\w\[\e[0m\]\$
PROMPT_COMMAND
die\033
Syntax verwenden müssen\e
. Beispiel zum Hinzufügen eines farbigen Zeitstempels vor Ihrer Eingabeaufforderung (fügen Sie diesen in Ihr~/.bashrc
oder ein~/.bash_profile
):PROMPT_COMMAND="${PROMPT_COMMAND}; echo; echo -e '\033[0;35m'\[\$(date +%F\ %T)\]'\033[m'"
Die Methoden MartinVonMartinsgrün und 4Levels haben bestätigt, dass sie unter Mac OS X Mountain Lion hervorragend funktionieren.
Die Datei, die ich aktualisieren musste, war ~ / .profile.
Ich konnte diese Frage jedoch nicht verlassen, ohne meine Lieblingsanwendung iTerm 2 zu empfehlen .
Mit iTerm 2 können Sie globale Farbschemata aus einer Datei laden. Wirklich einfach zu experimentieren und eine Reihe von Farbschemata auszuprobieren.
Hier ist ein Screenshot des iTerm 2-Fensters und der Farbeinstellungen.
Nachdem ich meiner ~ / .profile-Datei Folgendes hinzugefügt hatte, konnte iTerm 2 die Farben überschreiben.
Hier ist ein großartiges Repository mit einigen netten Presets:
iTerm2 Farbschemata auf Github von mbadolato
Bonus: Wählen Sie "iTerm2 mit einem systemweiten Hotkey ein- / ausblenden" und binden Sie den Schlüssel mit BetterTouchTool , um das Terminal sofort mit einer Mausbewegung auszublenden / anzuzeigen .
quelle
baskerville
Link auf den richtigen. Scheint falsch zu kopieren und einzufügen.Wenn Sie Ihr ls kolorieren lassen möchten, müssen Sie Ihre ~ / .bash_profile-Datei bearbeiten und die folgende Zeile hinzufügen (falls nicht bereits geschrieben):
Anschließend bearbeiten oder erstellen Sie die Datei ~ / .bashrc und schreiben einen Alias in den Befehl ls:
Jetzt müssen Sie
source .bashrc
ein Terminal eingeben, falls es bereits gestartet ist, oder einfach ein neues Terminal öffnen.Wenn Sie mehr Optionen in Ihrem
ls
Juste wünschen, lesen Sie das Handbuch (man ls
). Die Optionen sind nicht genau die gleichen wie in einem GNU / Linux-System.quelle
Wenn Sie tcsh verwenden, bearbeiten Sie Ihre
~/.cshrc
Datei so, dass sie die folgenden Zeilen enthält:Wo, wie Martin sagt, LSCOLORS das Farbschema angibt, das Sie verwenden möchten.
Überprüfen Sie diese Site, um die LSCOLORS zu generieren, die Sie verwenden möchten
quelle
bash
ist die Standardeinstellung in OS X seit Oktober 2003.Überprüfen Sie, was $ TERM gibt: meins ist xterm-color und ls -alG gibt dann eine kolorierte Ausgabe aus.
quelle
xterm-256color
bekomme ich keine Farben.CLICOLOR
undLSCOLORS
ändere das nicht):Als ich im Labor unter Mac OS X arbeitete, konnte ich die Terminalfarben mithilfe von Terminal (anstelle von X11) abrufen und dann das Profil (über die Mac-Menüleiste) bearbeiten. Die Benutzeroberfläche ist in Bezug auf die Farben etwas seltsam, aber Sie müssen das geänderte Thema als Standard festlegen.
Weitere Einstellungen wurden durch Bearbeiten bearbeitet
.bashrc
.quelle