Wovon hängt ab, ob diese Datei im Benutzerhome angelegt und wovon, dass sie ausgelesen wird?
Grüße, Günther
bash.login
-
- Beiträge: 3799
- Registriert: 26.02.2009 14:35:56
Re: bash.login
Sollte in der Manpage von bash zu finden sein. Ist es auch ~/.bash_login, or ~/.profile. By default, bash reads these files when it is invoked as a login shell (see INVOCATION
below).
Bei solchen Fragen immer erst mal man befehl und dann kann man auch mit /suchbegriff in der Anzeige nach solchen Dingen suchen. Geht oft schneller, wie den Browser starten und hier was posten (Ist jetzt kein Vorwurf). Ob sie Angelegt wird, sollte das Installationsscript regeln. Und das kann je Distribution und bash-Version natürlich mal mit und mal ohne sein.
below).
Bei solchen Fragen immer erst mal man befehl und dann kann man auch mit /suchbegriff in der Anzeige nach solchen Dingen suchen. Geht oft schneller, wie den Browser starten und hier was posten (Ist jetzt kein Vorwurf). Ob sie Angelegt wird, sollte das Installationsscript regeln. Und das kann je Distribution und bash-Version natürlich mal mit und mal ohne sein.
Re: bash.login
Hintergrund meiner Frage: 2x stretch, einmal von Debian-Version zu Debian-Version upgegradet, einmal frisch installiert. In der upgegradeten wird ein automatisierter X-Start via startx in ~/.profile ignoriert, in ~/.bash.login nicht. in dem frischen stretch gibt's gar kein ~/.bash.login. der Auto-X-login funktioniert via startx in ~/.profile. /etc/passwd sagt in beiden Fällen beim jeweiligen Benutzer: /bin/bash (ich nehme mal an als login shell).
- Livingston
- Beiträge: 1816
- Registriert: 04.02.2007 22:52:25
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: 127.0.0.1
Re: bash.login
Je nachdem wie bash aufgerufen wird, wird auf verschiedene Dateien geprüft.
Für Login-Shells (direkte Anmeldung oder Script-Aufruf als gilt:
Einbindung von /etc/profile
Danach Einbindung der ersten gefundenenen Datei aus der folgenden Liste:
~/.bash_profile
~/.bash_login
~/.profile
Für interaktive Nicht-Login-Shells:
Einbindung von /etc/bash.bashrc
Dann wie oben Test auf:
~/.bashrc
Wird die bash als sh aufgerufen (wenn also sh ein Link auf bash ist), gilt das "historische Verhalten" einer bourne-shell:
Als Login-Shell werden wie open /etc/profile und ~/.profile eingebunden.
Als einfache Shell wird die Variable $ENV ausgewertet und eine evtl. vorhandene Datei eingebunden.
Außerdem gibt es noch einige mögliche Ausnahmen durch Parameter und Umgebungsvariablen. Für den Hausgebrauch sollte das hier aber erst mal reichen.
Oft bindet man die ~/.bashrc (oder beliebige andere Startup-Scripte) auch in eine Login-Shell ein, indem man sie in der ~/.profile mit oder aufruft.
Für Login-Shells (direkte Anmeldung oder Script-Aufruf als
Code: Alles auswählen
bash --login
Einbindung von /etc/profile
Danach Einbindung der ersten gefundenenen Datei aus der folgenden Liste:
~/.bash_profile
~/.bash_login
~/.profile
Für interaktive Nicht-Login-Shells:
Einbindung von /etc/bash.bashrc
Dann wie oben Test auf:
~/.bashrc
Wird die bash als sh aufgerufen (wenn also sh ein Link auf bash ist), gilt das "historische Verhalten" einer bourne-shell:
Als Login-Shell werden wie open /etc/profile und ~/.profile eingebunden.
Als einfache Shell wird die Variable $ENV ausgewertet und eine evtl. vorhandene Datei eingebunden.
Außerdem gibt es noch einige mögliche Ausnahmen durch Parameter und Umgebungsvariablen. Für den Hausgebrauch sollte das hier aber erst mal reichen.
Oft bindet man die ~/.bashrc (oder beliebige andere Startup-Scripte) auch in eine Login-Shell ein, indem man sie in der ~/.profile mit
Code: Alles auswählen
. ./.bashrc
Code: Alles auswählen
source ./.bashrc
Re: bash.login
Danke sehr! Das erklärt, wieso startx in ~/.profile nicht ausgeführt wird, wenn eine ~/.bash.login existiert - richtig?
- Livingston
- Beiträge: 1816
- Registriert: 04.02.2007 22:52:25
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: 127.0.0.1
Re: bash.login
So isses!
Das fragliche Teil heißt aber nicht ~/.bash.login sondern ~/.bash_login mit Unterstrich statt Punkt. Mit den Bezeichnungen gerät man leicht ins Schleudern, weil in /etc noch /etc/bash.bashrc rumgammelt. Bin da früher auch gerne drauf reingefallen.
EDIT: Ergänzung
Du kannst ja mitdie Datei .profile in ~/.bash_login aufrufen. Am Ende ist es fast Geschmackssache, wie man das aufbaut. Wenn Du jedoch verschiedene Shells im Einsatz hast, kann es natürlich noch andere rc-Dateien oder Startscripte geben, und Du musst genau hinschauen, welche shell mit welchen Startscripts gefüttert wird. Das kann u.U. ganz schön unübersichtlich werden.
Das fragliche Teil heißt aber nicht ~/.bash.login sondern ~/.bash_login mit Unterstrich statt Punkt. Mit den Bezeichnungen gerät man leicht ins Schleudern, weil in /etc noch /etc/bash.bashrc rumgammelt. Bin da früher auch gerne drauf reingefallen.
EDIT: Ergänzung
Du kannst ja mit
Code: Alles auswählen
source ~/.profile