Die .bash_profile-Datei (und auch die .profile-Datei) wird für Anmeldeshells geladen, Nicht-Anmeldeshells verwenden .bashrc (kein _-Symbol). In der .screenrc-Datei befindet sich eine Zeile, die dem Bildschirm mitteilt, welche Shell beim Starten eines Bildschirmfensters erzeugt werden soll (wenn ein bestimmtes Programm nicht als Fensteranwendung gestartet wird). In meiner .screenrc-Datei ist dies so (einschließlich Kommentaren):
# shell: Default process started in screen's windows.
# Makes it possible to use a different shell inside screen
# than is set as the default login shell.
# If begins with a '-' character, the shell will be started as a login shell.
shell -$SHELL
Überprüfen Sie Ihre .screenrc-Datei und stellen Sie sicher, dass die Shell-Linie den Bindestrich vor sich hat. Wenn Sie dieses Bindestrichsymbol haben und eine Anmeldeshell erzwingen, erhalten Sie Ihre .bash_profile-Quelle. Die Variable $ SHELL in meinem .screenrc verwendet den Shell-Wert, der von der Shell bereitgestellt wird, die screen startet (normalerweise ist es bash).
Falls Sie sich fragen, ist der größte Unterschied, den ich zwischen Anmelde- und Nicht-Anmelde-Shells feststellen konnte, dass normalerweise eine Nicht-Anmelde-Shell zum Ausführen von Skripten aufgerufen wird.
Die Beschaffung
.bash_profile
unterscheidet sich von der Mac-Terminal-App, die die meisten Terminal-Apps nicht bieten. Der Bildschirm liest sich~/.bashrc
jedoch jedes Mal, wenn Sie eine neue Shell erstellen.Wenn Sie Ihre umbenennen
~/.bash_profile
in~/.bashrc
(ohne Unterstreichung zwischen Bash und RC, wie in Ihrer Frage), wird er als Quelle verwendet.Meine bevorzugte Strategie ist es jedoch, alle meine Einstellungen in das zu setzen
bashrc
und sie dannbash_profile
wie folgt zu extrahieren :quelle
Sie brauchen keine Konfigurationsdatei zu ändern, wenn Sie alle Ihre Einstellungen auf schreiben
.bash_profile
, wie Sie es normalerweise tun, um Ihr Terminal einzurichten, und einen Link mit dem Namen erstellen.bashrc
, der auf Ihre.bash_profile
für die Bildschirmsitzungen verweist :$ ln -s ~/.bash_profile ~/.bashrc
Alle Änderungen, die an einer der Dateien vorgenommen werden, werden in gespeichert, sind
.bash_profile
jedoch auch für zugänglich.bashrc
.Der einzige Nachteil ist, dass Sie nicht nur einer der Konfigurationsdateien Einstellungen hinzufügen können.
quelle
Die Linux-Anmeldung schält Quell-Nicht-Anmeldedateien, indem bei Benutzerdateien die folgende Zeile hinzugefügt wird:
quelle