Bash/Interaktiv: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(16 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Eine Interaktive Shell liest und schreibt | *Eine Interaktive Shell liest und schreibt auf das Terminal des Benutzers | ||
** Ein- und Ausgabe sind mit dem Terminal verbunden. | |||
= Ist meine Shell interaktiv? = | |||
Bei Interaktiven Shells enthält der <span >''special parameter''</span> „–“ ein „i“, wenn die Shell interaktiv ist | Bei Interaktiven Shells enthält der <span >''special parameter''</span> „–“ ein „i“, wenn die Shell interaktiv ist | ||
'''echo $-''' | '''echo $-''' | ||
himBH | himBH | ||
Zeile 10: | Zeile 9: | ||
In nicht-interaktiven Shells ist zudem die Prompt-Variable PS1 nicht gesetzt! | 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 | 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 | * Job Kontrolle ist eingeschaltet | ||
Zeile 32: | Zeile 31: | ||
=== Kommandosyntax === | === Kommandosyntax === | ||
siehe [[ | siehe '''[[Bash/Kommandosyntax]]''' | ||
=== Ausführung von Kommandos === | === Ausführung von Kommandos === | ||
siehe [[ | siehe '''[[Bash/Kommandos]]''' | ||
=== Kommandozeile editieren === | === Kommandozeile editieren === | ||
siehe '''[[ | siehe '''[[Bash/Kommandozeile]]''' | ||
=== History === | === History === | ||
siehe [[ | siehe [[Bash/history]] | ||
=== Jobkontrolle === | === Jobkontrolle === | ||
siehe '''[[Linux | siehe '''[[Linux/Shell:jobs]]''' | ||
=== Verzeichnisstapel === | === Verzeichnisstapel === | ||
'''dirs''', '''pushd''', '''popd''' verwalten den Stapel der internen Verzeichnisse. | |||
'''dirs''', '''pushd''', '''popd''' verwalten den Stapel der internen Verzeichnisse. * Mit '''pushd''' Verzeichnis wird das angegebene Verzeichnis auf dem Stapel abgelegt. | * Mit '''pushd''' Verzeichnis wird das angegebene Verzeichnis auf dem Stapel abgelegt. | ||
* Mit '''popd''' gelangen Sie anschließend zum zuletzt abgelegten Verzeichnis zurück. | * Mit '''popd''' gelangen Sie anschließend zum zuletzt abgelegten Verzeichnis zurück. | ||
* Den aktuellen Stapelinhalt zeigt der Befehl '''dirs''' an. | * Den aktuellen Stapelinhalt zeigt der Befehl '''dirs''' an. | ||
= Pfad-Cache = | === Pfad-Cache === | ||
[[hash]] | |||
[[Kategorie | [[Kategorie:Bash/Interaktiv]] |
Aktuelle Version vom 1. November 2023, 15:23 Uhr
- Eine Interaktive Shell liest und schreibt 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 Bash/Kommandosyntax
Ausführung von Kommandos
siehe Bash/Kommandos
Kommandozeile editieren
siehe Bash/Kommandozeile
History
siehe Bash/history
Jobkontrolle
siehe Linux/Shell:jobs
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.