Wie stelle ich die Farbe der Eingabeaufforderung in Bash ein?

Wie stelle ich die Farbe der Eingabeaufforderung in Bash ein?

Das Durchsuchen der Ergebnisse des letzten Befehls in Bash ist etwas schwierig, da die Eingabeaufforderung und die Ergebnisse dieselbe Farbe haben. Dies macht es schwierig, die Ergebnisse aufeinanderfolgender Befehle zu unterscheiden.

Wie ändere ich die Farbe beispielsweise auf Pink?

Antwort1

@Rob hat Recht. Insbesondere um zu Hellrot zu wechseln (Rosa ist keine verfügbare Farbe):

PS1 = "\[\033[1;31m\]\u:\w\$\[\033[0m\] "
#      ^^^^^^^     ^^                    Begin/end ANSI escape
#             ^^^^^                      "light red foreground"
#                    ^^^^^^^             Your original prompt
#                           ^^^^^^^^^^^  Reset color back to default foreground

Sie müssen ANSI-Escapesequenzen verwenden (in diesem Fall 1;31mder Code für „hellroter Vordergrund“), die von \[\033[und umschlossen sind \].

Bearbeiten:Hellviolett kommt Ihrer gewünschten Farbe möglicherweise näher; die PS1Änderung bleibt dem Leser als Übung überlassen.

Referenz @ das Linux-Dokumentationsprojekt

Antwort2

Wenn Sie eine alternative Lösung möchten, können Sie ein kleines Skript zum Festlegen der PS1-Farben der Terminalsitzung erstellen, ohne sie dauerhaft zu machen (sofern Sie keine dauerhaften Farben wünschen, folgen Sie der Lösung von Alex).

Wenn wir yellow.shein Verzeichnis erstellen, darin speichern /usr/binund die Datei anschließend mit ausführbar machen, chmod +x yellow.shkönnen wir sie bearbeiten yellow.shund den folgenden Code hinzufügen:

#!/bin/bash
clear

# Yellow color variable
ylw='\x1b[93m'

echo -e "${ylw}"
clear

Wenn Sie dieses Skript ausführen, ändert sich die Farbe Ihres Terminals in Gelb. Sie können die Farbe Ihrer PS1 auf die gleiche Weise mit diesem Code zurücksetzen:

#!/bin/bash
clear

# Reset color to default
rst='\x1b[0m'

echo -e "${rst}"
clear

Hier ist eine kurze Liste einiger Farbcodevariablen, die Sie verwenden können.

black=$'\x1b[90m' # Dark gray. Not used much.
red=$'\x1b[91m'
green=$'\x1b[92m'
yellow=$'\x1b[93m'
blue=$'\x1b[94m'
purple=$'\x1b[95m'
cyan=$'\x1b[96m'
pink=$'\x1b[97m'
default=$'\x1b[0m' # Reset to default color.

Verwendung für allgemeine Befehle in einfachen Skripten:

echo -e "${red} $(ls $1) ${default}" # Argument would be the directory you want to list.

Dies kann ziemlich schnell erledigt werden, je nachdem, wie Sie die zu verwendenden Farben einrichten. Die von mir bereitgestellten Farbcodes sind nicht alle. Je nachdem, welche Farben Ihr Terminal unterstützt, können Sie eine Palette von 256 Farben verwenden.

verwandte Informationen