orm@doc-tcpip.org

Erstellt: Februar 2001 - Letzte Modifikation: Mai 2001

[ Main | Local ]


Die Kornshell wird bunt.


Man kann den Shell Prompt farbig darstellen. Das ist lustig und beeindruckt die Mädels.

Allerdings geht das nur mit einer Terminal Emulation, die mit Farben umgehen kann (aixterm, dtterm). Deshalb sind die Skripte hier auch unvollständig, eigentlich müßte noch eine Abfrage davor, um den genauen Typ der Terminal-Emulation zu finden.

Man muss die PS1 Environment Variable im Shell Startup Skript entsprechend setzen:
PS1='^[[33mroot$ ^[[37m' (Das gibt einen gelben Prompt "root$").

Dabei ist ^[ die ESC Sequenz, die man durch drücken von CTRL V (es erschient dann das Caret) und der Esc-Taste erhält. Wichtig ist dabei, das ^[ *ein* Zeichen ist, der Kursor muss also eine Stelle übersprungen, wenn man ihn mit den Pfeiltasten bewegt. Das ist wichtig, weil bei Copy & Paste die Funktion verloren geht! Die Nummern sind aus dem ISO 6429 Farbcode, siehe unten.

Es geht auch anders:
RED=$(tput colf1)
WHITE=$(tput colf7)
GREEN=$(tput colf2)
typeset PS1='$GREEN$LOGNAME@$NODE:$WO${PWD##$STRIPPATH}$WHITE $ '
export PS1
Ein paar Beispiele aus dem Leben (in der .kshrc des Users):
#!/usr/bin/ksh
set -o vi
export NODE=`uname -n`
PS1='^[];'"$NODE:"'$PWD^G'"^[[31m$LOGNAME^[[36m@^[[32m$NODE^[[36m
#^[[37m"
export PS1

Das sieht dann so aus:

root@cristina
#
(root in rot, @ in blau, Maschinenname in grün, Eingabezeile abgesetzt)

Das ganze für den User:
PS1='^[];'"$NODE:"'$PWD^G'"^[[33m$LOGNAME^[[36m@^[[32m$NODE^[[36m
%^[[37m"
export PS1

Was dann so aussieht:

hager@cristina
%
(user in gelb, @ in blau, Maschinenname in grün, Eingabezeile abgesetzt)

In beiden Fällen wird oben im Fenster auch noch die Maschine und das aktuelle Direktory angezeigt (das ist der Teil: ^[];'"$NODE:"'$PWD^G').
Um es perfekt zu machen, müßte man noch eine Abfrage nach dem Terminaltype einfügen, weil das nur mit dtterm geht...
ISO 6429 color codes (und alle anderen ASCII spezial Codes):

LF  = "012"            Linefeed
FF  = "014"            Formfeed
CR  = "015"            Carriage Return
CSI = "033[" or "233" Control Sequence Introducer
ESC = "033"            Escape
RS  = "036"            Record separator
SPC = " "               Space

GSM = CSI Ps SPC B      Graphic Size Modification
"033[50 B"     50% of the default font size
"033[100 B"    default font size (from fonts resource)
"033[150 B"    150% enlargement
"033[200 B"    double sized font

JFY = CSI Ps... SPC F   Justify
"033[ F"       Return to default justification
"033[0 F"      Return to default justification
"033[1 F"      Turn on word fill (wrap lines)
"033[2 F"      Begin justified section
"033[5 F"      Begin start aligned (ragged right)
"033[6 F"      Begin center aligned (ragged left and right)
"033[7 F"      Begin end aligned (ragged left)

PLD = "033K"           Partial Line Down
PLU = "033L"           Partial Line Up

QUAD = CSI Ps... SPC H  Quad

"033[ H"       Align current text in line to start
"033[0 H"      Align current text in line to start
"033[2 H"      Align current text in line to center
"033[4 H"      Align current text in line to the end
"033[6 H"      Justify current text.

SGR = CSI Ps1;Ps2;... m Select Graphic Rendition

"033[m"        Reset
"033[0m"       Reset
"033[1m"       Bold
"033[3m"       Italic
"033[4m"       Underline
"033[7m"       Inverse
"033[9m"       Crossed out
"033[10m"      primary font
"033[11m"      1st alternate font
"033[12m"      2nd alternate font
"033[13m"      3rd alternate font
"033[14m"      4th alternate font
"033[15m"      5th alternate font
"033[16m"      6th alternate font
"033[17m"      7th alternate font
"033[18m"      8th alternate font
"033[19m"      9th alternate font
"033[21m"      Double underline
"033[22m"      Bold off
"033[23m"      Italic off
"033[24m"      Underline off (double or single)
"033[27m"      Inverse off
"033[29m"      Crossed out off

"033[30m"      Black foreground
"033[31m"      Red foreground
"033[32m"      Green foreground
"033[33m"      Yellow foreground
"033[34m"      Blue foreground
"033[35m"      Magenta foreground
"033[36m"      Cyan foreground
"033[37m"      White foreground
"033[39m"      Default foreground

"033[40m"      Black background
"033[41m"      Red background
"033[42m"      Green background
"033[43m"      Yellow background
"033[44m"      Blue background
"033[45m"      Magenta background
"033[46m"      Cyan background
"033[47m"      White background
"033[49m"      Default background

"033[51m"      Framed on
"033[54m"      Framed off

STAB = CSI Ps SPC ^     Selective Tabulation
"033[1 ^"      Jump to tabulation reference #1
"033[2 ^"      Jump to tabulation reference #2
...             ...
...             ...
"033[9999 ^"   Jump to tabulation reference #9999

[ Main | Local ]

[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | RPi | SMTP | Tracing | GPS | LW ]

Copyright 2001-2021 by Orm Hager - Es gilt die GPL
Feedback bitte an: Orm Hager (orm@doc-tcpip.org )