Warum wird .profile beim Öffnen eines Terminals nicht bezogen?

36

Gerade Ubuntu 14.04.1 LTS installiert.

Laut .profile,

# ~/.profile: executed by the command interpreter for login shells. 
# This file is not read by bash, if ~/.bash_profile or ~/.bash_login exists.

Es gibt kein ~ / .bash_profile oder ~ / .bash_login.

Beim Öffnen eines Terminals scheint .profile keine Quelle zu sein.

  1. Warum gibt es beim Öffnen eines Terminals keine .profile-Quelle?
  2. Warum gibt es .profile, wenn es nicht bezogen wird?
  3. Woher weiß / kontrolliere ich, was bezogen wird, wenn ein neues Terminal geöffnet wird?
  4. Erfolgt beim Öffnen eines neuen Terminals eine "Anmeldung"?
  5. Wo finde ich einen guten Ort, um meinem Pfad $ HOME / bin hinzuzufügen? .bashrc? Wird das ein Problem verursachen, weil .profile denselben Code hat?
B Sieben
quelle

Antworten:

34
  1. Da Terminals normalerweise keine Login-Shells ausführen. Normalerweise haben sie auch Optionen zum Ausführen von Login-Shells, die als Quelle dienen .profile.
  2. So steuern Sie das Verhalten von Login-Shells.
  3. Kommt auf die Schale an. Informationen bashhierzu finden Sie in den Startdateien .
  4. In gewissem Sinne nicht (z. B. Aktualisieren von Anmeldedatensätzen).
  5. Wenn Sie einen Ordner mit dem Namen haben binin $HOMEder Standard .profiletut für Ubuntu fügen Sie sie PATH. Da .profilebei der Anmeldung (auch mit einer GUI-Anmeldung) bezogen wird, sollte es Teil Ihrer PATHShells für nicht angemeldete Benutzer sein, die nach einer erneuten Anmeldung gestartet werden. Es ist nicht falsch , wenn ein Verzeichnis zweimal in erscheint PATH, sehen diese U & L Frage für weitere Einzelheiten.
muru
quelle
3
OK, jetzt macht es Sinn. Sie müssen sich erneut bei der Benutzeroberfläche anmelden, um Änderungen an der Benutzeroberfläche zu sehen .profile.
B Seven
1
@BSeven Sie können es jederzeit manuell für jede Befehlszeilen-Shell beziehen: . .profileoder source .profile.
muru
. .profileist cool und ich habe es noch nie gesehen. Konnte nicht viele Informationen über den Punktbefehl finden. Können Sie eine Referenz und Links zu anderen nützlichen Verknüpfungen bereitstellen? Vielen Dank!
B Seven
1
@BSeven für Shell-Befehle wie .oder sourcekönnen Sie zum Beispiel verwenden help:. help .Im Allgemeinen wird auf das TLDP Bash-Einsteigerhandbuch, Kapitel 3 , verwiesen . Der Bash Beginner's Guide ist an einigen Stellen etwas veraltet, aber gut als Ausgangspunkt. Oder sehen Sie andere Links in einer meiner anderen Antworten .
muru
8

Ich musste das Standardprofil bearbeiten. Klicken Sie im Terminal auf Einstellungen> Profile> Bearbeiten> Befehl> Befehl als Anmeldeshell ausführen

Danach würden neue Terminals .profile-Skripte erzeugen .

Bildbeschreibung hier eingeben

Billious
quelle
1
IIUC Dies ist ein Hack, da normalerweise .profile vor dem Starten des GUI-Terminals bezogen wurde und es überflüssig ist, es bei jedem Start eines Terminalfensters erneut zu quellen.
Mu Mind