Was sind „Shell Variablen“ und wie werden diese eingesetzt ?
Shell-Variablen sind spezielle Variablen, die in der Shell-Umgebung verfügbar sind und von der Shell zur Steuerung des Verhaltens und der Ausführung von Befehlen verwendet werden. Sie sind im Wesentlichen Namen, die auf einen Wert verweisen und können zur Speicherung von Informationen wie Textzeichenfolgen, Zahlen, Pfaden und Dateinamen verwendet werden.
Shell-Variablen werden normalerweise in Großbuchstaben geschrieben, um sie von anderen Variablen zu unterscheiden. Sie können von der Shell oder von Skripten verwendet werden, um spezifische Aufgaben auszuführen oder Informationen zu speichern.
Hier sind einige Beispiele für die Verwendung von Shell-Variablen:
- $HOME: Diese Variable enthält den Pfad zum Home-Verzeichnis des Benutzers und kann verwendet werden, um auf Dateien in diesem Verzeichnis zuzugreifen.
- $PATH: Diese Variable enthält eine Liste von Verzeichnissen, in denen die Shell nach ausführbaren Dateien suchen soll. Sie kann verwendet werden, um die Ausführung von Befehlen zu steuern.
- $USER: Diese Variable enthält den Benutzernamen des aktuellen Benutzers und kann verwendet werden, um auf Informationen zu diesem Benutzer zuzugreifen.
- $PWD: Diese Variable enthält den Pfad zum aktuellen Arbeitsverzeichnis und kann verwendet werden, um auf Dateien in diesem Verzeichnis zuzugreifen.
Eine Subshell ist eine separate Shell-Instanz, die innerhalb einer anderen Shell-Umgebung ausgeführt wird. Sie wird normalerweise verwendet, um komplexe Befehle auszuführen oder um Umgebungsvariablen oder Optionen innerhalb einer bestimmten Umgebung zu ändern, ohne die Umgebung der übergeordneten Shell zu beeinflussen.
Hier sind einige Beispiele für die Verwendung von Subshells:
- $() – Die Subshell, die innerhalb der runden Klammern ausgeführt wird, gibt das Ergebnis zurück, das der Shell als Argument übergeben werden kann. Zum Beispiel: $(ls) gibt eine Liste der Dateien im aktuellen Verzeichnis zurück.
- {} – Die geschweiften Klammern können verwendet werden, um eine Gruppe von Befehlen zu einer einzigen Einheit zusammenzufassen, die als Argument an eine andere Anweisung übergeben werden kann. Zum Beispiel: {ls; pwd} gibt eine Liste der Dateien im aktuellen Verzeichnis und den aktuellen Arbeitsverzeichnispfad aus.
- & – Das kaufmännische Und-Zeichen kann verwendet werden, um einen Befehl in einer Hintergrund-Subshell auszuführen. Zum Beispiel: sleep 10 & führt den Befehl „sleep 10“ in einer Hintergrund-Subshell aus.
- $() – Die Backticks werden auch verwendet, um eine Subshell auszuführen und das Ergebnis an die Shell zurückzugeben. Zum Beispiel:
ls
gibt eine Liste der Dateien im aktuellen Verzeichnis zurück. Beachten Sie jedoch, dass diese Methode veraltet ist und durch die $()-Syntax ersetzt werden sollte.
Wie funktioniert die Bash?
Bash (Bourne-Again SHell) ist eine Unix-Shell, die in der Regel auf Linux- und macOS-Systemen als Standard-Shell verwendet wird. Es ist eine leistungsfähige und vielseitige Befehlszeilen-Schnittstelle, die es Benutzern ermöglicht, interaktive Befehle auszuführen oder Skripte zu schreiben, um wiederholte Aufgaben zu automatisieren. Hier sind einige Beispiele, wie die Bash-Shell funktioniert:
- Befehle ausführen: Die Bash-Shell ermöglicht es Benutzern, Befehle auszuführen, indem sie einfach den Befehl und die erforderlichen Argumente in die Befehlszeile eingeben. Zum Beispiel kann der Befehl „ls -l“ verwendet werden, um eine Liste der Dateien und Verzeichnisse im aktuellen Verzeichnis anzuzeigen.
- Umgebungsvariablen steuern: Die Bash-Shell ermöglicht es Benutzern, Umgebungsvariablen festzulegen, die von Skripten oder anderen Befehlen verwendet werden können. Zum Beispiel kann die Variable „PATH“ festgelegt werden, um den Suchpfad für ausführbare Dateien zu ändern.
- Skripte schreiben: Die Bash-Shell ermöglicht es Benutzern, Skripte zu schreiben, um wiederholte Aufgaben automatisch auszuführen. Zum Beispiel kann ein Skript geschrieben werden, um eine Sicherung von wichtigen Dateien und Verzeichnissen zu erstellen.
- Eingabe- und Ausgabeumleitung: Die Bash-Shell ermöglicht es Benutzern, die Eingabe und Ausgabe von Befehlen umzuleiten, um sie mit anderen Befehlen zu verknüpfen oder sie in Dateien zu speichern. Zum Beispiel kann der Befehl „cat file.txt | grep ‚keyword'“ verwendet werden, um eine Datei zu durchsuchen und nur Zeilen zurückzugeben, die das angegebene Schlüsselwort enthalten.
- Pipelines erstellen: Die Bash-Shell ermöglicht es Benutzern, Pipelines zu erstellen, um die Ausgabe eines Befehls an den Eingang eines anderen Befehls zu senden. Zum Beispiel kann der Befehl „ls -l | grep ‚file.txt'“ verwendet werden, um eine Liste der Dateien im aktuellen Verzeichnis zu erstellen und nur diejenigen zurückzugeben, die „file.txt“ im Namen enthalten.