Unterschied zwischen Bash-Profil und Bashrc
- Was sind Startdateien in Bash
-
Unterschied zwischen
~/.bash_profile
und~/.bashrc
in Bash -
Verwenden Sie den Befehl
ls
, um Startdateien in Bash anzuzeigen
Dieses Tutorial erklärt den Unterschied zwischen der ~./bash_profile
und der ~/.bashrc-Datei
in Bash.
Was sind Startdateien in Bash
Startdateien sind Dateien, die ausgeführt werden, sobald die Shell gestartet wird. Die Startdateien hängen vom Typ der gestarteten Shell ab. Eine Shell kann als interaktive Shell oder als nicht interaktive Shell ausgeführt werden.
Eine interaktive Shell ist eine Shell, die Befehle aus Benutzereingaben auf dem Terminal liest und die Ausgabe auf dem Terminal anzeigt. Im Gegensatz dazu ist dem Terminal keine nicht-interaktive Shell zugeordnet, wie zum Beispiel das Ausführen eines Skripts.
Eine interaktive Shell kann weiter in zwei Teile geteilt werden. Es kann eine interaktive Login-Shell oder eine interaktive Nicht-Login-Shell sein.
Eine Login-Shell ist der erste Prozess, der nach erfolgreicher Anmeldung mit /bin/login
durch Auslesen der /etc/passwd
-Datei gestartet wird. Die Login-Shell wird unter Ihrer Benutzer-ID ausgeführt. Eine Login-Shell wird ausgeführt, wenn Sie sich über das Terminal anmelden, zu einem anderen Benutzer wechseln oder SSH verwenden.
Die Login-Shell startet eine Nicht-Login-Shell. Es kann eine Shell sein, die mit einem Prozess ohne Anmeldung oder von einer anderen Shell startet. Ein Prozess verwendet den Namen der ausführbaren Shell-Datei, um eine Nicht-Login-Shell zu starten.
Unterschied zwischen ~/.bash_profile
und ~/.bashrc
in Bash
Sobald eine Shell als interaktive Login-Shell startet, liest sie die Befehle aus ~/.profile
, aber eine Bash liest sie stattdessen aus ~/.bash_profile
. Bash kann nur das ~/.bash_profile
lesen, und wenn die Datei nicht existiert, liest Bash stattdessen das ~/.profile
.
Das ~/.profile
wird in Linux-Distributionen häufiger verwendet als ~/.bash_profile
, da es von allen Shells gelesen und ausgeführt wird. Im Gegensatz dazu wird das ~/.bash_profile
nur von Bash gelesen und ausgeführt.
Wenn die Shell als interaktive Non-Login-Shell gestartet wird, liest sie die Befehle aus der Datei ~/.bashrc
und führt sie aus.
Die ~/.bash_profile
und ~/.bashrc
befinden sich als Dotfiles im Home-Verzeichnis des Benutzers. Dateien im Home-Verzeichnis des Benutzers werden verwendet, um Konfigurationen vorzunehmen, die nur für diesen bestimmten Benutzer gelten.
Diese Konfigurationen überschreiben normalerweise die Systemkonfigurationen. Die Datei ~/.bash_profile
enthält Startprogrammkonfigurationen und benutzerspezifische Umgebungskonfigurationen, während die Datei ~/.bashrc
Funktionen und Aliase für einen bestimmten Benutzer speichert.
Die Dateien im Verzeichnis /etc/
werden verwendet, um systemweite Konfigurationen vorzunehmen, die für alle Benutzer des Systems gelten. Zu diesen Dateien gehören /etc/profiles
und /etc/bashrc
.
Verwenden Sie den Befehl ls
, um Startdateien in Bash anzuzeigen
Um ~/.bash_profile
oder ~/profile
und ~/.bashrc
anzuzeigen, navigieren Sie in Ihrem Home-Verzeichnis und geben Sie den Befehl ls -al
ein.
Die Option -a
weist den Befehl ls
an, alle Dateien aufzulisten, auch die mit einem Punkt beginnenden. Die Option -l
weist den Befehl ls
an, die Dateien in einem langen Listenformat aufzulisten.
Das folgende Bild zeigt die Dateien ~/.bashrc
und ~/.profile
.