Bash/Interaktiv: Unterschied zwischen den Versionen

Aus Foxwiki
(Die Seite wurde neu angelegt: „Kategorie:Linux:Shell:Bash“)
 
Keine Bearbeitungszusammenfassung
 
(33 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Linux:Shell:Bash]]
*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 <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!
 
== 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
 
=== 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]]
 
[[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?[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

siehe Bash/Kommandosyntax

Ausführung von Kommandos[Bearbeiten | Quelltext bearbeiten]

siehe Bash/Kommandos

Kommandozeile editieren[Bearbeiten | Quelltext bearbeiten]

siehe Bash/Kommandozeile

History[Bearbeiten | Quelltext bearbeiten]

siehe Bash/history

Jobkontrolle[Bearbeiten | Quelltext bearbeiten]

siehe Linux/Shell:jobs

Verzeichnisstapel[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

hash