Bash/Interaktiv: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 38: Zeile 38:


=== Kommandozeile editieren ===
=== Kommandozeile editieren ===
[Linux:Shell:Bash:Kommandozeile]]
[[Linux:Shell:Bash:Kommandozeile]]


=== History ===
=== History ===

Version vom 21. Februar 2022, 16:51 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

Linux:Shell:Bash:Kommandosyntax

Ausführung von Kommandos

Linux:Shell:Bash:Kommandos

Kommandozeile editieren

Linux:Shell:Bash:Kommandozeile

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