Ich richte eine neue Linux-Maschine ein, die ich von unserer IT-Abteilung erhalten habe, und habe festgestellt, dass .profile
sie beim Starten einer neuen Terminalsitzung nicht geladen wird. Die aktuelle Shell ist Bash , obwohl ich sie von der Standard- Shell geändert habe, mit der sie geliefert wurde . Wie lade ich es .profile
beim Start?
Ich greife auf die Shell via SSH : ssh myusername@remotemachine
. Ich habe Administratorrechte.
Antworten:
Wenn Bash als interaktive Anmeldeshell gestartet wird, handelt es sich möglicherweise um eine der Dateien, die verarbeitet werden
~/.profile
.Wenn es als interaktive Shell ohne Anmeldung gestartet wird, geschieht dies nicht. Es verarbeitet
/etc/bash.bashrc
(wenn diese Datei oder eine ähnliche Datei in Ihrer Version von Bash aktiviert ist) und~/.bashrc
.Sie können Folgendes hinzufügen
~/.bashrc
(achten Sie jedoch darauf, dass Schleifen oder Werte nicht versehentlich geändert werden):quelle
[ -z "$SOME_VAR_SET_IN_PROFILE" ] && . ~/.profile
Es hängt davon ab, wie Sie Ihre Shell starten. Wie bereits erwähnt, lädt eine Login-Shell Ihr Profil (sie sucht zuerst nach .bash_profile und versucht es dann mit .profile). Wenn es eines davon findet, lädt es sie. Eine Shell ohne Anmeldung (entweder interaktiv oder nicht interaktiv) gibt .bashrc aus.
Ich würde vorschlagen, alles in .bashrc zu setzen. Die Aufteilung .profile / .bashrc war willkürlich und in den alten Tagen von UNIX sinnvoller, als tty nicht nur ein Gerätename war und einen tatsächlichen TeleType bedeutete. Es sollte bestimmte Dinge (wie das Überprüfen von E-Mails) beim "Haupt" -Login auf einem Server starten und nur normale Setup-Sachen für andere Shells. In den meisten Linuxes werden Sie sich jetzt anmelden, Sie melden sich nicht wirklich bei einer Shell an, da Sie sich bei einer grafischen Oberfläche (KDE, Gnome, CDE 'shudder') anmelden. Die "Spawn Login Prozesse" werden jetzt von Ihrem Session Manager erledigt. Es ist jetzt viel weniger relevant.
Mein Vorschlag: Machen Sie Ihr .profile ausschließlich aus:
Als erste Zeile von .bashrc schützen Sie sich vor seltsamen Dingen, die beim Ausführen eines Bash-Skripts auftreten, indem Sie frühzeitig aussteigen:
quelle
.profile
sollte bash agnostisch gehalten werden. Ich empfehle zu konfigurieren, um.bash_profile
zu laden.profile
und dann zu laden.bashrc
. lege nur bash agnostische Sachen hinein.profile
, wiePATH
und dieLC_*
Sachen. Leg den Rest rein.bashrc
.