Ändern Sie die Ausgabefarbe des Terminals (in Mac), damit sie sich von der Farbe des eingegebenen Textes unterscheidet

Ich weiß, wie man die Farbe der ls-Ausgabe ändert, aber ich möchte die Farbe aller Terminalausgaben ändern.

Um zu verdeutlichen, was ich meine, ist unten ein Bild meines Terminals. Meine Textfarbe ist orange.

Ich möchte jedoch, dass die -bash: p: command not found, test, und die Ausgabe von dfeine andere Farbe haben, damit der Unterschied zwischen dem, was ich eingebe, leichter zu erkennen ist. Ist das möglich?

Geben Sie hier die Bildbeschreibung ein


So sieht es mit @jmhindle answer aus. Sie können die Zahl nach setaf für eine andere Farbe ändern (z. B. 2 für grün).

Geben Sie hier die Bildbeschreibung ein

Wie haben Sie den blauen und grünen Text in Ihren Screenshots eingestellt?
Das ist so lange her, dass ich mich nicht erinnere, sorry

Antworten (1)

Ich denke, Sie können dies tun, indem Sie eine DEBUG-Trap in ~/.bash_profile installieren.

Sehen Sie sich die Antwort auf diese Superuser-Frage an .

Folgendes habe ich hinzugefügt:

preexec() { 
    tput setaf 4
    :
}
preexec_invoke_exec() {
    [ -n "$COMP_LINE" ] && return
    local this_command=`HISTTIMEFORMATE= history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//"`;
    preexec "$this_command"
}

trap 'preexec_invoke_exec' DEBUG

tput setaf 4ändert die Vordergrundfarbe in blau.

Danke! Ich werde meine Frage aktualisieren, um einzuschließen, wie es jetzt aussieht
while :; do [ "${i:=0}" -lt 8 ] || i=0; tput setaf "$i"; sleep .5; : "$((i++))"; done &Ein guter (und zerstörungsfreier) Streich. ;) (Um es loszuwerden – kill %1gefolgt von tput setaf 7.)
Für mich ändert dies die gesamte Textfarbe im Terminal, sowohl den eingegebenen Text als auch die Ausgabe.