Bash/Interaktiv: Unterschied zwischen den Versionen
Zeile 54: | Zeile 54: | ||
=== Pfad-Cache === | === Pfad-Cache === | ||
'''hash''' (ohne Parameter) zeigt die Liste der gemerkten Pfade zu den Programmen an. | $ '''hash''' | ||
* (ohne Parameter) zeigt die Liste der gemerkten Pfade zu den Programmen an. | |||
Um die Zugriffe auf Programme zu beschleunigen, verwaltet die Bash einen internen Cache der Pfade auf bereits gestartete Programme. | * Um die Zugriffe auf Programme zu beschleunigen, verwaltet die Bash einen internen Cache der Pfade auf bereits gestartete Programme. | ||
* Wird ein Programm erneut gestartet, kann die zeitaufwendige Suche entlang des Pfades entfallen. | |||
Wird ein Programm erneut gestartet, kann die zeitaufwendige Suche entlang des Pfades entfallen. | * Bei der Gelegenheit wird auch gleich angezeigt, wie oft das Programm gestartet wurde. | ||
* Wer am Abend wissen will, womit er sich den ganzen Tag über beschäftigt hat, kann mit diesem Kommando zumindest Hinweise bekommen (oder er wirft einen Blick auf die '''.bash_history''') | |||
Bei der Gelegenheit wird auch gleich angezeigt, wie oft das Programm gestartet wurde. | |||
Wer am Abend wissen will, womit er sich den ganzen Tag über beschäftigt hat, kann mit diesem Kommando zumindest Hinweise bekommen (oder er wirft einen Blick auf die '''.bash_history''') | |||
===== Verwerfen alle gespeicherten Pfade ===== | ===== Verwerfen alle gespeicherten Pfade ===== |
Version vom 21. Februar 2022, 16:54 Uhr
Eine Interaktive Shell liest und schreibt grundsätzlich auf das Terminal des Benutzers: Ein- und Ausgabe sind mit dem Terminal verbunden.
Ist meine Shell interaktiv?
Bei Interaktiven Shells enthält der special parameter „–“ ein „i“, wenn die Shell interaktiv ist
echo $- himBH
In nicht-interaktiven Shells ist zudem die Prompt-Variable PS1 nicht gesetzt!
Verhalten interaktiver Shells
Der interaktive Modus der Bash wird gestartet, wenn das 'bash'-Kommando ohne non-option argument gestartet wird, also ohne auszuführendes Kommando oder Skript.* Bash liest Start-Dateien ein
- Job Kontrolle ist eingeschaltet
- Prompts sind gesetzt. PS2 ist aktiviert für mehrzeilige Kommandos (">"), wird auch angezeigt, wenn Kommandos nicht korrekt abgeschlossen wurden.
- Kommandos werden mit readline von der Kommandozeile gelesen.
- Bash beachtet die Shell-Option ignoreeof statt unmittelbar zu terminieren, wenn sie ein EOF (End Of File) empfängt.
- Kommando-History und History-Expansion sind aktiviert
- Alias-Expansion ist aktiviert
- Ohne traps werden SIGTERM-Signale ignoriert
- Ohne traps wird SIGINT beachtet und behandelt, Ctrl+C, beendet z.B. nicht die interaktive Shell
- SIGHUP Signal an alle Jobs, beim Verlassen der Shell, kann mit der huponexit-Option konfiguriert werden
- Kommandos werden nach dem Lesen ausgeführt.
- Bash prüft periodisch nach neuen Mails
- Bash terminiert nicht, wenn sie auf eine unreferenzierte Variable triff
- redirection error interner Befehle terminiert die Shell nicht
- Fehler interner Befehle im POSIX-Mode terminieren die Shell nicht
- fehlerhafter Aufrufe mit exec terminieren die Shell nicht
- Parser syntax errors terminiert die Shell nicht
- einfacher spell check für die Argumente der internen Kommandos ist aktiviert
- Automatisches exit nach der in der Variable TMOUT festgelegten Zeitspanne ist aktiviert
Kommandosyntax
siehe Linux:Shell:Bash:Kommandosyntax
Ausführung von Kommandos
siehe Linux:Shell:Bash:Kommandos
Kommandozeile editieren
siehe Linux:Shell:Bash:Kommandozeile
History
siehe Linux:Shell:Bash:history
Jobkontrolle
Verzeichnisstapel
dirs, pushd, popd verwalten den Stapel der internen Verzeichnisse. * Mit pushd Verzeichnis wird das angegebene Verzeichnis auf dem Stapel abgelegt.
- Mit popd gelangen Sie anschließend zum zuletzt abgelegten Verzeichnis zurück.
- Den aktuellen Stapelinhalt zeigt der Befehl dirs an.
Pfad-Cache
$ hash
- (ohne Parameter) zeigt die Liste der gemerkten Pfade zu den Programmen an.
- Um die Zugriffe auf Programme zu beschleunigen, verwaltet die Bash einen internen Cache der Pfade auf bereits gestartete Programme.
- Wird ein Programm erneut gestartet, kann die zeitaufwendige Suche entlang des Pfades entfallen.
- Bei der Gelegenheit wird auch gleich angezeigt, wie oft das Programm gestartet wurde.
- Wer am Abend wissen will, womit er sich den ganzen Tag über beschäftigt hat, kann mit diesem Kommando zumindest Hinweise bekommen (oder er wirft einen Blick auf die .bash_history)
Verwerfen alle gespeicherten Pfade
hash -r v
Eingabeverarbeitung
siehe Linux:Shell:Bash:Eingabeverarbeitung