Ich habe in einigen Screenshots gesehen (kann mich nicht erinnern, wo im Web), dass das Terminal die [username@machine /]$
fett gedruckten Buchstaben anzeigen kann . Ich freue mich darauf, das auch zu bekommen, weil ich immer durch lange Ausgaben scrolle, um die erste Zeile nach meinem Befehl mühsam herauszufinden.
Wie kann ich den Benutzernamen usw. fett oder farbig machen?
bash
prompt
escape-characters
Benjamin
quelle
quelle
Antworten:
Sie sollten in der Lage sein, dies zu tun, indem Sie die
PS1
Eingabeaufforderungsvariable in Ihrer~/.bashrc
Datei wie folgt festlegen :Um es farbig (und möglicherweise fett - dies hängt davon ab, ob Ihr Terminal-Emulator es aktiviert hat) zu machen, müssen Sie Escape-Farbcodes hinzufügen:
Hier wird alles, was nicht zwischen den
1;91m
und0m
-Teilen ausgeblendet wird, in der1;91
Farbe (fett rot) eingefärbt . Setzen Sie diese Escape-Codes an verschiedenen Stellen der Eingabeaufforderung ein, um unterschiedliche Farben zu verwenden. Vergessen Sie jedoch nicht, die Farben mit zurückzusetzen0m
, da Sie sonst auch eine farbige Terminalausgabe erhalten. Denken Sie daran, die Datei anschließend als Quelle zu verwenden, um die aktuelle Shell zu aktualisieren:source ~/.bashrc
quelle
1;31
und1;91
. Bei normaler Schriftgröße liefert der Bereich 90-97 hellere Farben als der andere.Finden Sie, wo Ihr
PS1
in Ihrem festgelegt ist,.bashrc
und fügen Sie'\[\e[1m\]'
am Anfang und\[\e[0m\]
am Ende ein.\[
und\]
sind notwendig, damit die Shell weiß, dass das Chaos im Inneren 0 Platz auf dem Bildschirm einnimmt, was ein vermasseltes Verhalten bei der Zeilenbearbeitung verhindert. Sie brauchen sich nicht zu viele Sorgen zu machen.\e[
ist als CSI (Control Sequence Introducer) bekannt. Sie werden sehen, dass es in den meisten Codes verwendet wird, die auf der Wikipedia-Seite aufgeführt sind, auf die verwiesen wird.\e
bedeutet das Fluchtzeichen.CSI 1m
wird es fettCSI 0m
angezeigt und die Schriftart wird zurückgesetzt, sodass der Rest Ihres Texts normal ist.Wikipedia hat eine volle Liste der ANSI-Escape-Codes , die Sie verwenden können, wenn Ihr Terminal-Emulator dies unterstützt.
Bearbeiten
Für die Portabilität und Lesbarkeit sollten Sie verwenden
tput
Escape-Codes anstelle der festen Codierung verwenden. Der einzige Nachteil ist, dass dertput
Ansatz bei Terminals, die ANSI-Codes unterstützen, jedoch fehlerhafte oder fehlende Terminfo-Datenbanken aufweisen, nicht funktioniert. In diesem Fall ist der Fehler jedoch ein größeres Problem, da viele Ihrer Konsolen-Apps, die auf terminfo basieren, möglicherweise nicht ordnungsgemäß funktionieren.Hier ist ein Beispiel, was ich in meinem mache
.bashrc
:Hier ist, wie eine generisierte Version von mir aussehen würde. Dies
0
ist der Beendigungsstatus des letzten Befehls.quelle
Dies ist die Standardeingabeaufforderung, die Sie in der Cygwin-Bash-Shell erhalten:
Verweise:
man bash
und überprüfen Sie diePROMPTING
Abschnitt.quelle
Ich benutze diese Shell-Funktion, um Textattribute in das Terminal zu bekommen:
Dann benutze es:
Dies gibt mir,
[username@hostname]:cwd>
wousername@hostname
fett grün undcwd
fett blau sind.quelle
~/.bashrc
?~/.bashrc
Datei festgelegt und verwende es, um meine Eingabeaufforderung festzulegen. Ich ändere sogar die Farben, je nachdem, auf welchem System ich bin.Fügen Sie hinzu, damit es wie eine Standard-Ubuntu-Eingabeaufforderung aussieht
export PS1='\[\e[1;32m\]\u@\h\e[0;39m\]:\e[1;34m\]\w\e[0;39m\]$\[\e[0m\] '
in deinem
~/.bashrc
.Dies erzeugt das bekannte Grün
user@host
(fett), gefolgt von einem nicht fettgedruckten weißen Doppelpunkt, gefolgt von Ihrem Arbeitsverzeichnis in fettgedrucktem Blau, gefolgt von einem$
Zeichen, einem Leerzeichen und Ihrem Befehl in nicht fettgedruckten weißen Buchstaben:quelle