HOWTO zum Tcsh-Eingabeprompt
(C) 2011-2024 T.Birnthaler/H.Gottschalk <howtos(at)ostc.de>
OSTC Open Source Training and Consulting GmbH
www.ostc.de
$Id: tcshprompt-HOWTO.txt,v 1.9 2025/02/18 10:08:31 tsbirn Exp $
Dieses Dokument beschreibt die Konfiguration des Tcsh-Eingabeprompts.
1) Primärer Prompt "$PS1"
2) Sonderzeichen in Prompt-Variablen
3) Hinweise
4) Weitere Prompt-Variable
Die Variable "$prompt" legt das Aussehen des Eingabeprompts fest
Die Variable "$prompt" legt das Aussehen des Eingabeprompts
(Eingabeaufforderung)) fest, der immer dann ausgegeben wird, wenn die Shell auf
die Eingabe eines Befehls wartet. Standardwert ist:
prompt "%U%m%u:%B%~%b%#"
Sie wird für alle Benutzer gemeinsam in "/etc/tcshrc.rc" oder "/etc/csh.cshrc"
oder "/etc/csh.login" (zuerst) oder für einzelne Benutzer in "~/.login" oder
"~/.tcshrc" (danach) initialisiert.
Folgende Sonderzeichen in "$prompt" setzen spezielle (variable) Komponenten in
den Prompt ein:
+-------+----------------------------------------------------------+
|Zeichen| Bedeutung |
+-------+----------------------------------------------------------+
| %d %D | Datum-Tag (Zahl/Wochentag) [day] |
| %w %W | Datum-Monat (Zahl/Monatsname) [month] |
| %y %Y | Datum-Jahr (2/4-stellig) [year] |
| %t %T | Uhrzeit HH:MM (12/24-Format) [time] |
| %p %P | Uhrzeit HH:MM:SS (12/24-Format) [precise time] |
| %m | Rechner-Name bis zum ersten Punkt (".") [machine] |
| %M | Kompletter Rechner-Name (FQHN) [Machine] |
| %n | Benutzer-Name [name] |
+-------+----------------------------------------------------------+
| %c | Arbeitsverzeichnis [current directory] |
| %C2 | Arbeitsverzeichnis (nur 2 Teile) [Current directory] |
| %/ $~ | Aktuelles Arbeitsverz. (mit Ersetzung "~" bzw. "~user") |
+-------+----------------------------------------------------------+
| %% | "%"-Zeichen selbst |
| %h %! | Nummer des aktuellen Kommandos [history] |
| %# | "$"-Zeichen für normalen Benutzer, "#"-Zeichen für root |
| %R | Holt 1. Zeichen aus "$promptchars" für normalen Benutzer |
| | holt 2. Zeichen aus "$promptchars" für root |
+-------+----------------------------------------------------------+
| %$VAR | Wert der Shell-Variablen VAR |
| %? | Exit-Code des vorherigen Kommandos |
| %l | TTY-Name der Shell |
| %L | Terminal ab Prompt bis zum Zeilenende löschen |
| %R | Parserstatus in prompt2, Korrigierter Text in prompt3 |
+-------+----------------------------------------------------------+
| %b %B | Fettschrift an/aus [bold] |
| %s %S | Hervorhebung an/aus [standout] |
| %u %U | Unterstreichen an/aus [underline] |
| %{S%} | Text S als Escape-Sequenz einbetten |
+-------+----------------------------------------------------------+
Prompt in der "tcsh" temporär (pro Fenster bis zum Schließen) definieren
(Form: "Benutzername @ Rechnername : Aktuelles Verzeichnis > "
set prompt = "%S%n@%m:%c9 > %s " # Invers an (%S=standout on), Username
# anzeigen (%n=name), Hostname anzeigen
# (%m=machine), aktuelles Verzeichnis
# vollständig anzeigen (%c9=current
# directory), invers aus (%s=standout off)
* Das Leerzeichen am Prompt-Ende ist wichtig, damit die Kommandoeingabe etwas
abgesetzt vom Prompt beginnt.
* Der Prompt sollte auch nicht zu lang sein, da er sonst unübersichtlich wird
und zu wenig Platz für die Eingabe der Kommandozeile übrig lässt.
* Die Variable "$prompt2" legt das Bereitschaftzeichen fest, das immmer dann
ausgegeben wird, wenn Return gedrückt wird, die Shell das (mehrzeilige)
Kommando aber noch nicht als abgeschlossen betrachtet (z.B. "echo \ <RETURN>).
Standard ist:
set prompt2 = '? '
Erscheint überhaupt kein Prompt nach der Eingabe von <RETURN>, so wartet das
aufgerufene Kommando meist auf Eingaben von stdin. Diese Eingabe kann mit
"<Strg-D>" oder "." ABGESCHLOSSEN werden, mit "<Strg-C>" kann das Kommando
ABGEBROCHEN werden.
* Die Variable "$prompt3" steht für den Prompt bei der automatischen Korrektur
von Tippfehlern. Standard ist
set prompt3 = 'CORRECT>%R (y|n|e|a)? '
* Der Inhalt der Variablen "$promptchars" wird für den Promptplatzhalter "%#"
benutzt. Das 1. Zeichen für normale Benutzer, das 2. Zeichen für die root.
Standard ist:
set promptchars = "%#"