1. Startseite
  2. Sonstiges
  3. Der Unterschied zwischen .bashrc und .bash_profile
  1. Startseite
  2. System
  3. Der Unterschied zwischen .bashrc und .bash_profile

Der Unterschied zwischen .bashrc und .bash_profile

Wenn du viel Zeit auf der Kommandozeile verbringst, möchtest du möglicherweise deine Shell-Umgebung individuell anpassen. Das beinhaltet das Erstellen von Aliassen, das Hinzufügen neuer Verzeichnisse zum $PATH und das Anpassen des Aussehens deiner Shell-Eingabeaufforderung.

Du bist möglicherweise auf einige Anleitungen gestoßen, die empfehlen, deine Konfiguration entweder in der Datei .bashrc, .bash_profile oder einer anderen konfigurationsbezogenen Datei zu hinterlegen, die von der Bash-Shell gelesen und ausgeführt wird.

In diesem Artikel werden wir über die Startdateien der Bash sprechen und den Unterschied zwischen den Dateien .bashrc und .bash_profile erläutern.

Interaktive Login- und Nicht-Login-Shell

Die Bash liest beim Start Befehle aus einer Reihe von Startdateien und führt sie aus. Welche Dateien genau gelesen werden, hängt davon ab, ob die Shell als interaktive Login- oder Nicht-Login-Shell aufgerufen wird.

Eine Shell kann entweder interaktiv oder nicht interaktiv sein.

Interaktiv bedeutet, dass die Shell auf dem Terminal des Benutzers liest und schreibt. Nicht interaktiv bedeutet, dass die Shell nicht direkt mit einem Terminal verbunden ist, z.B. wenn sie ein Skript ausführt.

Die interaktive Shell kann entweder eine Login- oder eine Nicht-Login-Shell sein.

Die Login-Shell wird aufgerufen, wenn sich ein Benutzer entweder per SSH oder lokal am Terminal anmeldet oder wenn die Bash mit der Option --login gestartet wird. Die interaktive Nicht-Login-Shell wird von der Login-Shell aus aufgerufen, z.B. wenn du bash in der Shell-Eingabeaufforderung eingibst oder wenn du einen neuen Gnome-Terminal-Tab öffnest.

Bash Startup-Dateien

Wenn die Bash als interaktive Anmeldeshell aufgerufen wird, sucht sie nach der Datei /etc/profile und führt, falls vorhanden, die darin enthaltenen Befehle aus. Danach sucht die Bash nach den Dateien ~/.bash_profile, ~/.bash_login und ~/.profile in dieser Reihenfolge und führt die Befehle aus der ersten lesbaren Datei aus.

Wenn die Bash als interaktive Nicht-Login-Shell aufgerufen wird, liest sie Befehle aus der Datei ~/.bashrc und führt sie aus, sofern diese Datei existiert und lesbar ist.

Unterschied zwischen .bashrc und .bash_profile

.bash_profile wird gelesen und ausgeführt, wenn die Bash als interaktive Anmeldeshell aufgerufen wird, während .bashrc für eine interaktive Nicht-Anmeldeshell ausgeführt wird.

Du kannst .bash_profile verwenden, um Befehle auszuführen, die nur einmal ausgeführt werden sollen, wie zum Beispiel die Anpassung der $PATH Umgebungsvariable.

In der Datei .bashrc legst du die Befehle ab, die jedes Mal ausgeführt werden sollen, wenn du eine neue Shell startest. Dazu gehören deine Aliasse, Funktionen, benutzerdefinierte Prompts, History-Anpassungen und so weiter.

Normalerweise enthält die Datei ~/.bash_profile Zeilen wie die folgenden, um den Inhalt der .bashrc Datei einzubinden. Dadurch werden beide Dateien jedes Mal, wenn du dich am Terminal anmeldest, gelesen und ausgeführt.

if [ -f ~/.bashrc ]; then
	. ~/.bashrc

Die meisten Linux-Distributionen verwenden ~/.profile anstelle von ~/.bash_profile. Die Datei ~/.profile wird von allen Shells gelesen, während ~/.bash_profile ausschließlich von der Bash gelesen wird.

Falls eine Startdatei auf deinem System fehlt, kannst du sie einfach erstellen.

Abschluss

.bash_profile und .bashrc sind Dateien mit Shell-Befehlen, die beim Start der Bash ausgeführt werden. .bash_profile wird auf interaktiven Login-Shells gelesen und ausgeführt, während .bashrc auf Nicht-Login-Shells ausgeführt wird.

Weitere Informationen zu den Bash-Startdateien findest du im Bash-Handbuch.

Wenn du Fragen oder Feedback hast, hinterlasse gerne einen Kommentar.

War dieser Beitrag hilfreich?

Verwandte Beiträge