[prev in list] [next in list] [prev in thread] [next in thread] 

List:       suse-linux
Subject:    Re: Root-Konsole anpassen?
From:       Christian Boltz <christian.boltz () nexgo ! de>
Date:       2002-09-30 22:27:17
[Download RAW message or body]

Hallo Michael, hallo Leute,

Am Montag, 30. September 2002 10:20 schrieb Michael Messner:
> bin dabei meine user/root Konsole etwas anzupassen!
>
> Das mit dem Prompt und den Schriftfarben hab ich auch schon
> hingekriegt!

Schön.

> Aber wie kann ich die root-konsole (Hintergrund) einfärben?
> Was muss ich da in der .bashrc eintragen?

echo -e "\e[93;41m"   sorgt beispielsweise für einen roten Hintergrund 
mit gelber Schrift. (wenn Du "93;" weglässt, ändert sich nur die 
Hintergrundfarbe). Das Ganze gilt aber nur für neu ausgegebene Zeichen, 
für den ganzen Bildschirm wirkt es erst nach einem "clear".
Außerdem gibt es Probleme mit Befehlen, die eine farbige Ausgabe 
erzeugen (z. B. ls), danach ist die Konsole nämlich wieder auf 
Standardfarbe (schwarz/weiß)  :-(
Notfalls musst Du den Befehl zum Einfärben in $PS1 aufnehmen - einfach 
die Escapesequenz ganz an den Anfang setzen.
-> PS1="\e[41m$PS1"   für einen roten Hintergrund.

Blätter mal ein wenig in   man console_codes   - vielleicht findet sich 
da etwas zum permanenten Einstellen. (wunder Dich aber nicht, dass da 
die von mir genannten Farben nicht unbedingt auftauchen, die hab ich 
mal durch Probieren ermittelt ;-)

Tip am Rand: Bei mir wird automatisch eine rot hinterlegte Zeile 
ausgegeben, wenn der zuletzt ausgeführte Befehl einen Rückgabewert 
(Exitcode) ungleich 0 hatte. Wie das geht? Das hat mich ein wenig 
Knobelei gekostet - aber es geht:

cb@tux:~>  echo $PROMPT_COMMAND
LASTERROR="[$?]" ; test "$LASTERROR" = "[0]" || echo -e "\033[93;41m 
${LASTERROR} \033[0m"
### soll alles in eine Zeile

Zum Setzen des PROMPT_COMMAND [1] den ganzen Block in einfache 
Anführungszeichen (') einschließen, damit $? nicht schon dabei 
ausgewertet wird.

Den Umweg mit LASTERROR gehe ich, da $? von test überschrieben wird.

Wenn Du auch den Exitcode 0 angezeigt haben möchtest, geht es viel 
einfacher:
echo -e "\033[93;41m  $?  \033[0m"


Gruß

Christian Boltz

[1] $PROMPT_COMMAND wird von der bash jedesmal ausgeführt, bevor der
    Prompt angezeigt wird, also nach der Beendigung jedes Befehls.
-- 
Registrierter Linux-Nutzer #239431
Linux - life is too short for reboots.



-- 
Um die Liste abzubestellen, schicken Sie eine Mail an:
    suse-linux-unsubscribe@suse.com
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: suse-linux-help@suse.com

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic