Linux/Shells und Shell-Skripte/Aliase und Funktionen: Unterschied zwischen den Versionen
| Zeile 86: | Zeile 86: | ||
= TMP = | = TMP = | ||
===builtin=== | ===builtin=== | ||
Vor der Vergabe der Bezeichnung für Ihre Funktionen und Aliase überprüfen, ob es nicht schon ein Kommando mit diesem Namen gibt. | Vor der Vergabe der Bezeichnung für Ihre Funktionen und Aliase überprüfen, ob es nicht schon ein Kommando mit diesem Namen gibt. | ||
Version vom 20. Dezember 2025, 23:08 Uhr
Linux/Shells und Shell-Skripte/Aliase und Funktionen - Beschreibung
Beschreibung
Installation
Aufruf
Optionen
| Unix | GNU | Parameter | Beschreibung |
|---|---|---|---|
Parameter
Umgebungsvariablen
Exit-Status
| Wert | Beschreibung |
|---|---|
| 0 | Erfolg |
| >0 | Fehler |
Anwendung
Problembehebung
Konfiguration
Dateien
| Datei | Beschreibung |
|---|---|
Anhang
Siehe auch
Dokumentation
Links
Projekt
Weblinks
TMP
builtin
Vor der Vergabe der Bezeichnung für Ihre Funktionen und Aliase überprüfen, ob es nicht schon ein Kommando mit diesem Namen gibt.
- Wenn Sie dennoch eine Funktion oder einen Alias erstellen müssen, der bzw. die namentlich mit einem existierenden Kommando übereinstimmt, müssten Sie ansonsten zum Aufruf des ursprünglichen Kommandos den kompletten Pfad zu diesem Kommando angeben.
- Bei einer Übereinstimmung des Namens mit einem Shellinternen Befehl verwenden Sie vorab das Kommando builtin.
- Wenn Sie beispielsweise für den echo-Befehl standardmäßig die Maskierung durch die Verwendung eines Backslashs aktivieren wollen, können Sie diesen Alias einrichten: archangel:/ # alias echo='echo -e' Benötigen Sie echo dann ausnahmsweise doch im Originalzustand, erfolgt der Aufruf durch: archangel:/ # builtin echo
Konfigurationsdateien der Bash
In den unterschiedlichen Linux-Distributionen kann es zu unterschiedlichen Konstrukten der Konfigurationsdateien kommen.
- Konfigurationsdateien, die für alle Anwender Gültigkeit haben, befinden sich im Verzeichnis /etc und beginnen niemals mit einem Punkt.
- Die individuellen Konfigurationsdateien für den jeweiligen User befinden sich im entsprechenden Heimatverzeichnis und beginnen immer mit einem Punkt.
- Eine Datei /etc/.bashrc kommt als Konfigurationsdatei genauso wenig in Frage wie eine Datei mit der Bezeichnung /home/udo/profiles
Systemweite Konfigurationsdateien
Die systemweiten Konfigurationsdateien sind für jeden Benutzer gültig, der sich am System anmeldet.
- Die beiden gängigsten sind folgende:
- /etc/profile ist die erste Konfigurationsdatei, die bei der Anmeldung (Login- Shell) eines Benutzers eingelesen wird.
- Sie enthält erste Umgebungsvariablen und die erste PATH-Anweisung. Änderungen in dieser Datei erfordern eine neue Anmeldung des Benutzers
- /etc/bash.bashrc enthält systemweite Einstellungen, Aliase und Funktionen.
- Diese Datei wird beim Start jeder Shell neu eingelesen und erfordert deshalb nach Änderung keine Neuanmeldung des Benutzers
Konfigurationsdateien für den Benutzer
Die folgenden Dateien befinden sich im Heimatverzeichnis eines jeden Benutzers und dürfen auch durch seinen Besitzer modifiziert werden.
- Damit weniger versierte Benutzer nicht durch diese Dateien irritiert werden, sind diese mit einem Punkt vor einer Auflistung mit Dateibrowsern geschützt worden.
- Die folgende Auflistung entspricht auch der Ausführungsreihenfolge (vorausgesetzt, die Dateien sind in der jeweiligen Distribution überhaupt vorhanden)
- ~/.bash_profile wird (falls vorhanden) nur bei einer Neuanmeldung eingelesen und sofort nach /etc/profile ausgeführt.
- Sie beinhaltet zusätzliche Pfadanweisungen (beispielsweise das Heimatverzeichnis), den zu verwendenden Standardeditor und benutzerspezifische Umgebungsvariablen
- ~/.bash_login ist eine Alternative zu .bash_profile und wird auch nur dann abgearbeitet, wenn die Datei .bash_profile nicht existiert.
- Auch diese Datei wird nur während der Anmeldung verwendet.
- Der Inhalt und der Verwendungszweck entsprechen der .bash_profile
- ~/.profile ist die ursprüngliche Konfigurationsdatei der Bash.
- Sie wird nur während der Anmeldung (für die Login-Shell) eingelesen und das auch nur dann, wenn weder eine .bash_profile- noch eine .bash_login-Datei im Verzeichnis des Benutzers existieren.
- Inhalt und Verwendungszweck entsprechen der .bash_profile und .bash_login
- ~/.bashrc ist die andere, ursprüngliche Konfigurationsdatei der Bash.
- Sie wird in jedem Fall eingelesen, und zwar auch beim Aufruf einer neuen Shell.
- Nach Änderungen in dieser Datei ist entsprechend keine Neuanmeldung des Benutzers erforderlich.
- Sie beinhaltet im Wesentlichen Aliase und Funktionen
- ~/.bash_logout ist eine optionale Datei, die ausgeführt wird, wenn der Benutzer sich abmeldet.
- Sie könnte zum Beispiel den Monitor löschen
Konfiguration on the fly einlesen
Haben Sie in einer der Konfigurationsdateien beispielsweise neue Variablen deklariert, können Sie diese sofort wirksam werden lassen, indem Sie das Shell-interne Kommando source verwenden.
- Beispiel: root@archangel:~# source /etc/profile Wenn Sie Ihre Tastatur schonen wollen, lässt sich das Kommando source auf einen Punkt verkürzen: root@archangel:~# . /etc/profile
Das Skeleton-Verzeichnis /etc/skel
Das Skeleton-Verzeichnis kann als eine Vorlage für das Heimatverzeichnis eines neuen Benutzers betrachtet werden.
- Beim Erstellen eines neuen Benutzerkontos mit useradd -m willi wird, die richtigen Standardeinstellungen vorausgesetzt, ein Verzeichnis namens /home/willi erstellt.
- Der Inhalt des Skeleton-Verzeichnisses wird dann in das Verzeichnis /home/willi kopiert.
- Abschließend werden die Berechtigungen für das Verzeichnis und dessen Inhalt auf den neuen Benutzer abgestimmt.
- Der Speicherort für Skeleton ist normalerweise /etc/skel.
- Auch hier kann es zu Unterschieden in den Distributionen kommen