Bash/Interaktiv: Unterschied zwischen den Versionen

Aus Foxwiki
(Die Seite wurde neu angelegt: „Kategorie:Linux:Shell:Bash“)
 
KKeine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Eine Interaktive Shell liest und schreibt grundsätzlich auf das Terminal des Benutzers: Ein- und Ausgabe sind mit dem Terminal verbunden.
=== 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<span > ''</span>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<span > ''</span>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
==== Ist die Shell interaktiv? ====
Bei Interaktiven Shells enthält der <span >''special parameter''</span> „–“ ein „i“, wenn die Shell interaktiv ist
'''echo $-'''
himBH
In nicht-interaktiven Shells ist zudem die Prompt-Variable PS1 nicht gesetzt!
=== Kommandosyntax ===
[[Linux:Shell:Bash:Kommandosyntax]]
=== Ausführung von Kommandos ===
[[Linux:Shell:Bash:Kommandos]]
=== Kommandozeile editieren ===
[[Linux:Shell:Bash:Kommandozeile editieren]]
=== History ===
* [[Linux:Shell:Bash:history]]
=== Jobkontrolle ===
[[Linux:Shell:Bash: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.
=== 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 ===
[[Linux:Shell:Bash:Eingabeverarbeitung]]
=== Aliase ===
[[Linux:Shell:Bash:Aliase]]
[[Category:Linux:Shell:Bash]]
[[Kategorie:Linux:Shell:Bash]]
[[Kategorie:Linux:Shell:Bash]]

Version vom 21. Februar 2022, 15:50 Uhr

Eine Interaktive Shell liest und schreibt grundsätzlich auf das Terminal des Benutzers: Ein- und Ausgabe sind mit dem Terminal verbunden.

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

Ist die 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!

Kommandosyntax

Linux:Shell:Bash:Kommandosyntax

Ausführung von Kommandos

Linux:Shell:Bash:Kommandos

Kommandozeile editieren

Linux:Shell:Bash:Kommandozeile editieren

History

Jobkontrolle

Linux:Shell:Bash: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.

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

Linux:Shell:Bash:Eingabeverarbeitung

Aliase

Linux:Shell:Bash:Aliase