Was ist der Unterschied zwischen .profile und .bash_profile und wann konfigurieren Sie welche? (Mac) [duplizieren]

23

Mögliches Duplikat:
Unterschied zwischen .bashrc und .bash_profile

Was ist der Unterschied zwischen .profileund .bash_profileund wann konfigurieren Sie welche?

Dh wenn ich das konfiguriere .bash_profile, muss ich es noch konfigurieren .profile?

Imran
quelle

Antworten:

12

Vorausgesetzt, es bashhandelt sich um Ihre Standardshell, werden die Unterschiede in der bashManpage ( man bash) beschrieben:

   When bash is invoked as an interactive login shell, or as  a  non-interac-
   tive  shell  with the --login option, it first reads and executes commands
   from the file /etc/profile, if that file exists.  After reading that file,
   it  looks  for  ~/.bash_profile,  ~/.bash_login,  and  ~/.profile, in that
   order, and reads and executes commands from the first one that exists  and
   is readable.  The --noprofile option may be used when the shell is started
   to inhibit this behavior.

In der Manpage finden Sie weitere Informationen zum POSIX-Shell-Kompatibilitätsmodus .profile. Lesen Sie den gesamten Manpage-Abschnitt für alle Details.


quelle
In Ubuntu 18.04 wird beim Öffnen eines neuen Terminal-Fensters nicht .profilenur .bashrc
Folgendes
5

Wenn Sie konfigurieren .bash_profile, müssen Sie auch nicht konfigurieren .profile.

Ich behalte gerne meine eigenen Aliase und Befehle bei, .profiledamit ich, wenn ich etwas vermassle, immer das löschen kann, .profileohne das System bei großen oder anderen Anwendungen zu beeinträchtigen, die sich ändern .bash_profile(wie MacPorts).

Um a zu verwenden .profile, müssen Sie möglicherweise die Zeile source ~/.profilein Ihre einfügen .bash_profile, damit die .profileDatei gelesen wird (siehe Antwort von Ned Deily).

speedofmac
quelle
3

.profile wird von bash ausgeführt, wenn Sie einen normalen Shell-Prozess erhalten - z. B. wenn Sie ein Terminal-Tool öffnen. .bash_profile wird von bash für Login-Shells ausgeführt - dies ist also der Fall, wenn Sie beispielsweise aus der Ferne in Ihren Computer telnet / ssh. Wenn Sie zum Beispiel remote in eine Maschine sshten (sagen wir, Sie öffnen ein X-Terminal), wird zunächst .bash_profile ausgeführt. Wenn Sie in diesem XTerminal "xterm" eingeben und ein anderes X-Terminal erzeugen, wird .profile für die zweite Instanz von XTerminal ausgeführt. Die Dateien befinden sich in Ihrem Home-Verzeichnis (~). Wenn ich mich nicht irre, führen beide standardmäßig ~ / .bashrc aus, sodass Sie dies bearbeiten können, um gemeinsame Einstellungen / Variablen für Anmelde- und Nicht-Anmelde-Shells zu konfigurieren (z. B. Festlegen von PATH, einigen Aliasen / Verknüpfungen usw.).


quelle
in Ubuntu 18.04 das Öffnen eines neuen Terminal-Fensters ruft nicht auf .profile?
CpILL
1

Für die schnelle und einfache Konfiguration (wo Sie keine komplizierten Dinge wollen) konfigurieren Sie einfach alles in Ihrem ~ / .profile. Nur wenn Sie auf Probleme stoßen (aber wahrscheinlich nie mehr über das .bash_login oder .bash_profile erfahren werden);)

Ich bin auch unter OS X und benötige nie .bash_profile oder .bash_login und verwende nur .profile, aber Ihre Laufleistung kann variieren ...

jm666
quelle