Bash/Interaktiv: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 52: Zeile 52:
* Den aktuellen Stapelinhalt zeigt der Befehl '''dirs''' an.  
* Den aktuellen Stapelinhalt zeigt der Befehl '''dirs''' an.  


=== Pfad-Cache ===
= Pfad-Cache =


  $ '''hash'''  
  $ '''hash'''  
* (ohne Parameter) zeigt die Liste der gemerkten Pfade zu den Programmen an.  
* (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.  
Zeile 61: Zeile 62:
* 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''')
* 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 ==
 
  hash -r v
  hash -r v



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

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

siehe Linux:Shell:Bash:Eingabeverarbeitung

Aliase

Linux:Shell:Bash:Aliase