Bash/Interaktiv: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(29 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 ===
[[Linux:Shell:Bash:Kommandosyntax]]
siehe '''[[Bash/Kommandosyntax]]'''


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


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


=== History ===
=== History ===
* [[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.
[[Kategorie:Bash/Interaktiv]]
 
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]]

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.

Pfad-Cache

hash