Wo wird $PATH in OS X 10.6 Snow Leopard festgelegt?
Ich gebe echo $PATH
in die Befehlszeile ein und erhalte
/opt/local/bin:/opt/local/sbin:/Users/andrew/bin:/usr/local/bin:/usr/local/mysql/bin:/usr/local/pear/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin
Ich frage mich, wo dies eingestellt wird, da meine .bash_login
Datei leer ist.
Ich bin besonders besorgt, dass nach der Installation von MacPorts eine Reihe von Junk in /opt
installiert wurde. Ich glaube nicht, dass dieses Verzeichnis in einer normalen Mac OS X-Installation vorhanden ist.
Update: Danke an jtimberman für die Korrektur meiner echo $PATH
Anweisung
8 answers
Wenn bash
startet, liest es bei jeder Anmeldung die folgenden Dateien. Für die Zwecke von OS X bedeutet dies jedes Mal, wenn Sie ein neues Terminal
Fenster öffnen.
/etc/profile
~/.bash_profile
~/.bash_login (if .bash_profile does not exist)
~/.profile (if .bash_login does not exist)
Wenn Sie eine neue Shell starten, indem Sie bash
in die Befehlszeile eingeben, lautet sie .bashrc
OS X verwendet auch~/.MacOSX/environment.plist
so legen Sie bei Bedarf weitere Umgebungsvariablen fest, einschließlich Pfade.
Schließlich werden /etc/paths
und /etc/paths.d
auch von der Shell gelesen.
/opt/local/bin
etc. werden in ~/.tcshrc
von MacPorts hinzugefügt. Auch achten Sie darauf, in ~/.cshrc
zu schauen.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-10-20 07:50:44
Schauen Sie sich die Datei /etc/paths
an, die von /usr/libexec/path_helper
verwendet wird, die von /etc/profile
verwendet wird.
Verwenden Sie für MacPorts sudo /etc/paths/opt/local/bin
und öffnen Sie das Terminalfenster erneut.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-04-22 09:13:50
Im Ernst, Leopard gab uns einen neuen Weg, Pfad hinzuzufügen. Erstellen Sie einfach eine Datei mit dem Pfadteil, den Sie hinzufügen möchten, und fügen Sie sie in /etc/paths ein.d -
Ein kurzes Beispiel dafür in einem Schritt ist:
echo "/some/path/to/add" >> /etc/paths.d/somefilename
Andernfalls können Sie einfach zu /etc/paths gehen.d und legen Sie die Datei direkt dort ab. In jedem Fall werden alle Pfadteile in den Dateien in diesem Verzeichnis an den Standardpfad angehängt.
Dies funktioniert auch für manpath.
Hier ist ein link zu mehr details:
Ars technica: Wie füge ich dem PFAD in Snow Leopard etwas hinzu?
Auf einer zweiten Anmerkung: MacPorts legt alles in das opt-Verzeichnis, gerade weil es nicht von Apples Sachen verwendet wird. Auf diese Weise wird es nicht in Konflikt geraten. Ihr Leitfaden (übrigens hervorragend geschrieben) erklärt, warum opt verwendet wird und wie Sie diesen Standard ändern können, wenn Sie möchten.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-03-25 18:07:37
Um Ihren Pfad anzuzeigen, echo $PATH.
echo $PATH
Um Ihren Pfad festzulegen, bearbeiten Sie ~/.bash_profile
, nicht ~/.bash_login
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-11-11 19:07:28
Es gibt auch den Pfad, der von ssh bestimmt wird.
Vergleiche echo $PATH
mit ssh localhost 'echo $PATH'
. Da ssh /etc / profile nicht liest, wird /usr/libexec/path_helper nicht ausgeführt und somit wird /etc/paths übersprungen. Versuchen Sie nun ssh localhost 'source /etc/profile; echo $PATH'
. Die Wege sollten näher sein. Die verbleibenden Unterschiede werden wahrscheinlich auf Pfadänderungen in Ihrem zurückzuführen sein .bash_profile (das auch von ssh übersprungen wird) und .bashrc (das von ssh gelesen wird).
Wenn Sie möchten, dass Ihr ssh-Pfad Ihrem normalen Terminalpfad ähnelt, können Sie Folgendes hinzufügen source /etc/profile
zu Ihrem .bashrc.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-02-07 19:36:18
Es könnte entweder definiert werden in:
- Systemvariablen -
/etc/paths
- Benutzervariablen-siehe @ Steve Folly ' s Erklärung
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-06-01 09:50:21
Tatsächlich wird es in Ihrer .profile
- Datei anstelle von .bash_login
gespeichert und es ist üblich, dass MacPorts dies anstelle der .bash_login
- Datei verwendet.
Auch das Verzeichnis /opt
wird normalerweise von MacPorts erstellt und speichert seine Dateien in diesem Ordner.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-11-11 19:13:39
In Bezug auf docs für das Dienstprogramm /usr/libexec/path_helper
wurden die Anfangskomponenten für $PATH aus /etc/paths
entnommen und sehen standardmäßig wie
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
Für OS-X-Snow-Leopard -
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-03-20 10:17:03