Bash/Interaktiv: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(21 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
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.  
*Eine Interaktive Shell liest und schreibt auf das Terminal des Benutzers
 
** Ein- und Ausgabe sind mit dem Terminal verbunden.
==== Ist meine Shell interaktiv? ====


= 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 ===
== 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 [[Linux:Shell:Bash:Kommandosyntax]]
siehe '''[[Bash/Kommandosyntax]]'''


=== Ausführung von Kommandos ===
=== Ausführung von Kommandos ===
siehe [[Linux:Shell:Bash:Kommandos]]
siehe '''[[Bash/Kommandos]]'''


=== Kommandozeile editieren ===
=== Kommandozeile editieren ===
siehe [[Linux:Shell:Bash:Kommandozeile]]
siehe '''[[Bash/Kommandozeile]]'''


=== History ===
=== History ===
siehe [[Linux:Shell:Bash:history]]
siehe [[Bash/history]]


=== Jobkontrolle ===
=== Jobkontrolle ===
[[Linux:Shell:Bash:Jobs]]
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]]
$ '''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]]
 
[[Category:Linux:Shell:Bash]]
 


[[Kategorie:Linux:Shell:Bash]]
[[Kategorie:Bash/Interaktiv]]

Aktuelle Version vom 1. November 2023, 16: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.

Pfad-Cache

hash