Bash/Interaktiv: Unterschied zwischen den Versionen

Aus Foxwiki
KKeine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(32 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.


=== Verhalten interaktiver Shells ===
= 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
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 21: Zeile 29:
* einfacher spell check für die Argumente der internen Kommandos ist aktiviert
* einfacher spell check für die Argumente der internen Kommandos ist aktiviert
* Automatisches exit nach der in der Variable '''TMOUT''' festgelegten Zeitspanne ist aktiviert
* Automatisches exit nach der in der Variable '''TMOUT''' festgelegten Zeitspanne ist aktiviert
==== Ist die 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!


=== 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 editieren]]
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, 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