Ich verwende Ubuntu Desktop 14.04 und verwende daher die Nicht-Login-Shell. Wenn ich das GUI-Terminal öffne, lesen zuerst die Shell-Sitzungen ohne Anmeldung die folgenden Startdateien:
/etc/bash.bashrc
~/.bashrc
Die Nicht-Login-Shells erben die Umgebung vom übergeordneten Prozess, bei dem es sich um eine Login-Shell handelt. Daher liest die Sitzung auch die folgenden Startdateien:
/etc/profile
~/.bash_profile
Allerdings kann ich nicht finden , die $PATH
für die systemweite Wege mögen /bin
, /sbin
, /usr/bin
, /usr/sbin
, stellen Sie in eine dieser Dateien. Wo ist der $PATH
Satz für diese Verzeichnisse?
command-line
bash
Donato
quelle
quelle
$PATH
es von der übergeordneten Anmeldeshell geerbt oder von jederbash
Instanz neu geladen wird ?$HOME
Variable nicht zu erweitern scheint . Zum Beispiel das Hinzufügen$HOME/.composer/vendor/bin
zu demPATH
in/etc/environment
nicht ermöglicht Binärdateien in diesem Verzeichnis ohne Pfadpräfix ausgeführt werden. Die Verwendung~/.composer/vendor/bin
funktioniert auch nicht. Ich finde es notwendig, den absoluten Pfad hinzuzufügen, zB :/home/vagrant/.composer/vendor/bin
. Dies scheint verwandt zu sein (erklärt dieses Verhalten jedoch nicht): askubuntu.com/questions/402353/…/etc/environment
(und~/.pam/environment
) vompam_env
PAM-Modul gelesen werden , nicht von der Shell oder irgendetwas anderem, das Shell- / Umgebungsvariablen versteht. Gleiches gilt für die~
Erweiterung. Sie müssen dort also den absoluten Pfad verwenden.