Ich kann .bash_profileUbuntu 14.04 nicht in meinem /home/userVerzeichnis finden. Ich habe den ls -aBefehl verwendet, um das zu sehen .bash_profile, aber es gibt keine solche Datei.
Es ist ziemlich häufig, dass einige Konfigurationsdateien (oder sogar Verzeichnisse) fehlen. In diesem Fall verwendet die Software, die sie lesen soll, eine Standardkonfiguration und / oder liest andere Quellen, um die Konfiguration abzurufen. Wenn Sie eine Konfigurationsdatei ändern möchten, die nicht vorhanden ist, erstellen Sie sie einfach zuerst.
Bakuriu
Antworten:
84
Ubuntu verwendet ~/.profile.
du kannst dein .bash_profilein Ubuntu erstellen aber dann .profilewird es nicht gelesen.
Wenn wir den .profile-Inhalt lesen:
cat ~/.profile
Ausgabe
# ~/.profile: executed by the command interpreter for login shells.# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login# exists.
.profile hat bei mir nicht funktioniert. Ich hatte Bashrc bearbeiten vim ~/.bashrcdann. ~/.bashrc
Nahid
Die Verwendung von .bash_profile funktioniert unter Ubuntu nicht. Es verwendet Dash als GUI-Anmeldeshell und nicht Bash, sodass bash_profile nicht gelesen wird.
Jonathan Hartley
Wenn Sie Ihr .profile bearbeiten, müssen Sie sich abmelden und erneut anmelden, um die Änderungen zu sehen.
Jonathan Hartley
8
Beim Aufrufen einer Login-Shell sucht bash nach den Konfigurationsdateien in der folgenden Reihenfolge:
[0]~/.bash_profile[1]~/.bash_login[2]~/.profile
Nach dem ersten zu finden, hört es sucht die andere so , wenn es eine ist .bash_profilein meiner $HOMEbash wird nicht aussehen .bash_loginund .profilemehr.
Aus diesen drei Dateinamen, die Ubuntu standardmäßig verwendet .profile, können Sie ihn umbenennen, .bash_profilewenn Sie möchten:
mv ~/.profile ~/.bash_profile
Nun , wenn wir eine neue Bash - Shell öffnen bash -l, su - $USER, sudo -u $USER -ioder andere Befehle , die bash als Login - Shell ausgeführt wird , ~/.bash_profilewird erhalten bezogen.
Wichtig zu beachten:
Was ich bisher angesprochen habe, gilt nur für Bash selbst. Wenn Sie sich über eine grafische Benutzeroberfläche am System anmelden, ist der Display-Manager für die Beschaffung der richtigen Dateien verantwortlich.
Ubuntu verwendet gdm3als Anzeigemanager, wenn wir uns Folgendes ansehen: /etc/gdm3/XsessionWir können sehen, dass keine der Dateien bezogen wird, außer .profile:
# First read /etc/profile and .profilefor file in/etc/profile "$HOME/.profile";doif[-f "$file"];then
source_with_error_check "$file"fidone
Wenn Sie sich also über eine grafische Benutzeroberfläche anmelden, behalten Sie den .profileNamen der Datei bei, da Sie sonst möglicherweise einige Variablen und Einstellungen in Ihren Umgebungen übersehen.
Ich denke, die bessere Option ist das Erstellen eines Symlinks zu .profile:
ln -s ~/.profile ~/.bash_profile
Jetzt bleiben Ihre Daten erhalten .profile, gdmverpassen nichts, .bash_profilewas tatsächlich passiert .profile, und wenn Sie sie bearbeiten, erhalten Sie dasselbe Ergebnis.
Fehlendes .profil?
Wenn Sie keine haben, .profileholen Sie sich hier eine Kopie davon:
cp /etc/skel/.profile ~/.profile
oder
# Remember the note above
cp /etc/skel/.profile ~/.bash_profile
Aber wenn Bash zuerst nach ~ / .bash_profile sucht, wie kommt es dann, dass dies in Ubuntu nicht funktioniert? Hat Ubuntu Bash modifiziert? Das scheint seltsam. man bashUnter Ubuntu wird noch beschrieben, wie es zuerst nach .bash_profile aussehen wird.
Jonathan Hartley
Es sucht .bash_profilezuerst, es kann es nicht finden (weil es nicht existiert), dann sucht, .bash_loginkann es nicht wieder finden (weil Ubuntu diese beiden Namen nicht verwendet), schließlich sucht es .profileund ja, da ist es. Wenn Sie also ein .bash_profileIn erstellen und ~Ubuntus überschreiben ~/.profile, ist dies das Standardverhalten von bash. Hier wurde nichts geändert.
Ravexina
Richtig, das habe ich mir auch zuerst gedacht! Und was Sie beschreiben, passiert auf RHEL. Auf Ubuntu ist dies jedoch nicht der Fall. Wenn ich einen erstelle .bash_profile, wird dieser nicht gelesen. Mir ist gerade aufgefallen, dass Ubuntu 'Bash' nicht mehr als GUI-Anmeldeshell verwendet. Stattdessen wird "Dash" verwendet. Ich denke, dass dies seit ungefähr 18.04 wahr ist.
Jonathan Hartley
Sie verpassen den Punkt hier. Eigentlich geht es um die Bash selbst. Ich sage hier, dass Ubuntu ".profile" erstellt und nicht die anderen. Wenn wir also eine neue Bash-Shell (Login-Shell) öffnen, wird diese in der angegebenen Reihenfolge gelesen. Es spielt keine Rolle, welche Distribution wir verwenden. :)
Ravexina
Wenn Leser .profile in .bash_profile umbenennen, wie es Ihre Antwort nahelegt, wird diese Datei für Ubuntu-Benutzer weder beim Anmelden noch beim Öffnen eines Terminals gelesen. Sie haben ihr System gebrochen. Die Datei wird nur gelesen, wenn sie Bash-Sitzungen mit dem Argument '--login' startet, um sie explizit zu einer Anmeldeshell zu machen. Das wird niemals automatisch auf ihrem Desktop passieren.
Jonathan Hartley
5
Das heißt, die Datei existiert nicht. Sie können die Datei jedoch erstellen und die Datei bashausführen / als Quelle angeben, wenn sie bashals Anmeldeshell aufgerufen wird. Sie melden sich also immer über eine Shell an (zum Beispiel über ssh).
Wenn der Inhalt bei jedem Öffnen eines Terminals ausgeführt werden soll, sollten Sie .bashrcstattdessen die Datei ändern .
Unter echtem Linux wird das Profil angewendet, wenn Sie sich an der GUI anmelden oder eine Remoteverbindung herstellen oder sich an der Konsole anmelden, dh nachdem Sie Strg + Umschalt + F2 gedrückt haben. Es soll das erste Mal darstellen, dass Sie sich bei der Maschine anmelden und eine Shell erstellen, die allen anderen Prozessen übergeordnet ist, die Sie anschließend erstellen. Ich vermute, dass es auf der WSL nichts davon gibt, sodass Ihr .profile möglicherweise nie gelesen wird.
Jonathan Hartley
gleiche für mich. ~/.profilenur nicht standardmäßig in Ubuntu 18.04 geladen
javapowered
0
Wenn Sie die .bashrc-Datei meinen, finden Sie sie in Ihrem Home-Ordner. Wenn es nicht vorhanden ist, können Sie es aus dem Ordner / etc / skel in Ihren Ausgangsordner kopieren.
Wenn Sie weitere Informationen zu diesem Thema benötigen, besuchen Sie bitte die Seite stefaan lippens.
~/.profile
stattdessen verwenden.Antworten:
Ubuntu verwendet
~/.profile
.du kannst dein
.bash_profile
in Ubuntu erstellen aber dann.profile
wird es nicht gelesen.Wenn wir den .profile-Inhalt lesen:
Ausgabe
Also
~/.profile
statt verwenden~/.bash_profile
quelle
vim ~/.bashrc
dann. ~/.bashrc
Beim Aufrufen einer Login-Shell sucht bash nach den Konfigurationsdateien in der folgenden Reihenfolge:
Nach dem ersten zu finden, hört es sucht die andere so , wenn es eine ist
.bash_profile
in meiner$HOME
bash wird nicht aussehen.bash_login
und.profile
mehr.Aus diesen drei Dateinamen, die Ubuntu standardmäßig verwendet
.profile
, können Sie ihn umbenennen,.bash_profile
wenn Sie möchten:Nun , wenn wir eine neue Bash - Shell öffnen
bash -l
,su - $USER
,sudo -u $USER -i
oder andere Befehle , die bash als Login - Shell ausgeführt wird ,~/.bash_profile
wird erhalten bezogen.Wichtig zu beachten:
Was ich bisher angesprochen habe, gilt nur für Bash selbst. Wenn Sie sich über eine grafische Benutzeroberfläche am System anmelden, ist der Display-Manager für die Beschaffung der richtigen Dateien verantwortlich.
Ubuntu verwendet
gdm3
als Anzeigemanager, wenn wir uns Folgendes ansehen:/etc/gdm3/Xsession
Wir können sehen, dass keine der Dateien bezogen wird, außer.profile
:Wenn Sie sich also über eine grafische Benutzeroberfläche anmelden, behalten Sie den
.profile
Namen der Datei bei, da Sie sonst möglicherweise einige Variablen und Einstellungen in Ihren Umgebungen übersehen.Ich denke, die bessere Option ist das Erstellen eines Symlinks zu
.profile
:Jetzt bleiben Ihre Daten erhalten
.profile
,gdm
verpassen nichts,.bash_profile
was tatsächlich passiert.profile
, und wenn Sie sie bearbeiten, erhalten Sie dasselbe Ergebnis.Fehlendes .profil?
Wenn Sie keine haben,
.profile
holen Sie sich hier eine Kopie davon:oder
quelle
man bash
Unter Ubuntu wird noch beschrieben, wie es zuerst nach .bash_profile aussehen wird..bash_profile
zuerst, es kann es nicht finden (weil es nicht existiert), dann sucht,.bash_login
kann es nicht wieder finden (weil Ubuntu diese beiden Namen nicht verwendet), schließlich sucht es.profile
und ja, da ist es. Wenn Sie also ein.bash_profile
In erstellen und~
Ubuntus überschreiben~/.profile
, ist dies das Standardverhalten von bash. Hier wurde nichts geändert..bash_profile
, wird dieser nicht gelesen. Mir ist gerade aufgefallen, dass Ubuntu 'Bash' nicht mehr als GUI-Anmeldeshell verwendet. Stattdessen wird "Dash" verwendet. Ich denke, dass dies seit ungefähr 18.04 wahr ist.Das heißt, die Datei existiert nicht. Sie können die Datei jedoch erstellen und die Datei
bash
ausführen / als Quelle angeben, wenn siebash
als Anmeldeshell aufgerufen wird. Sie melden sich also immer über eine Shell an (zum Beispiel überssh
).Wenn der Inhalt bei jedem Öffnen eines Terminals ausgeführt werden soll, sollten Sie
.bashrc
stattdessen die Datei ändern .quelle
/etc/skel/
Verzeichnis kopieren ..bash_profile
in Kommentaren zu anderen Antworten erklärt, warum Ubuntu fehlt (und nicht funktioniert).Top-Antwort zu verwenden,
~/.profile
anstatt~/.bash_profile
hat bei mir nicht funktioniert.Änderung hat
.bashrc
funktioniertGerade:
Hinweis: Ich verwende Ubuntu WSL.
quelle
~/.profile
nur nicht standardmäßig in Ubuntu 18.04 geladenWenn Sie die .bashrc-Datei meinen, finden Sie sie in Ihrem Home-Ordner. Wenn es nicht vorhanden ist, können Sie es aus dem Ordner / etc / skel in Ihren Ausgangsordner kopieren.
Wenn Sie weitere Informationen zu diesem Thema benötigen, besuchen Sie bitte die Seite stefaan lippens.
http://stefaanlippens.net/bashrc_and_others
quelle