HOWTO zum Tcsh-Eingabeprompt

(C) 2011-2017 T.Birnthaler/H.Gottschalk <howtos(at)ostc.de>
              OSTC Open Source Training and Consulting GmbH
              www.ostc.de

$Id: tcshprompt-HOWTO.txt,v 1.8 2019/11/26 19:37:07 tsbirn Exp $

Dieses Dokument beschreibt die Konfiguration des Tcsh-Eingabeprompts.

Inhaltsverzeichnis

1) Primärer Prompt "$PS1"
2) Sonderzeichen in Prompt-Variablen
3) Hinweise
4) Weitere Prompt-Variable

1) Prompt "$prompt"   (Toc)

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.

2) Sonderzeichen in Prompt-Variablen   (Toc)

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)

3) Hinweise   (Toc)

* 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.

4) Weitere Prompt-Variable   (Toc)

* 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 = "%#"