Wie ändere ich die PATH-Umgebungsvariablen in Catalina?

Wie ändere ich die PATH-Umgebungsvariablen in Catalina?

Einige Anwendungen weisen mich an, den Umgebungsvariablen PATH etwas hinzuzufügen. Ich weiß, dass dies unter anderem durch das Erstellen einer Datei unter möglich ist ~/.zshrc, aber ich möchte wissen, wo die Datei ist, in der die Variable PATH=...gespeichert ist.

Als ich es eintippte, echo $PATHerhielt ich:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Applications/Xamarin Workbooks.app/Contents/SharedSupport/path-bin

Aus der Datei /etc/pathshabe ich Folgendes erhalten:

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

Welche Datei hat also die zusätzlichen Pfade angehängt?


Antwort auf den Kommentar:

Ich habe: (verzeihen Sie mir, dass ich meinen Benutzernamen in geändert habe alice)

grep: /Users/alice/.profile: No such file or directory
grep: /etc/environment: No such file or directory
grep: /etc/zsh/zprofile: No such file or directory
grep: /Users/alice/.zshrc: No such file or directory
grep: /Users/alice/.profile: No such file or directory

Antwort1

Wie Sie sagten inIhre eigene Antwortmüssen Sie nicht wissen, wo die PATHVariable ursprünglich aufgefüllt wurde.

PATHSie können am Anfang oder Ende problemlos neue Pfade hinzufügen und zshDuplikate bequem entfernen.

Sie können die PATHVariable und das zugehörige pathArray zunächst eindeutig machen, indem Sie

typeset -U -g PATH path

Die Variablen werden dannbleibenaufgrund dieses Befehls einzigartig.

So stellen Sie ein paar Pfade voran:

path=( /new/path1 /new/path2 $path )

So fügen Sie einige Pfade an:

path=( $path /new/path1 /new/path2 )

oder,

path+=( /new/path1 /new/path2 )

Der PATHWert der Variablen wird entsprechend aktualisiert.

Sie können dies in Ihrer Datei tun $ZDOTDIR/.zprofile, die automatisch von jeder zshLogin-Shell als Quelle verwendet wird. Dies in Ihrer $ZDOTDIR/.zshenvDatei zu tun wäre unnötig, da diese Datei vonjeder Typder zshAufruf (und sollte daher, wenn überhaupt nötig, wirklich kurz gehalten werden; ich habe es ZDOTDIR=$HOME/.zshbeispielsweise einfach dort eingefügt).

Beachten Sie, dass PATHes sich bereits um eine Umgebungsvariable handelt. Ein erneuter Export hat daher keinen Zweck.

Antwort2

Die Datei /etc/zprofiledient /usr/libexec/path_helperzum Festlegen der Standardeinstellung PATHund wir verfügen nicht über den Quellcode davon.

Im Folgenden wird gezeigt, wie Sie benutzerspezifische Änderungen vornehmen PATH:

Erstellen/bearbeiten ~/.zprofileund fügen Sie den folgenden Inhalt hinzu:

# append to PATH
export PATH="$PATH:.../to/target/bin"

# prepend to PATH
export PATH=".../to/target/bin:$PATH"

# remove duplicate in PATH
typeset -U PATH

Antwort3

Die folgenden Schritte zeigen Ihnen, wie Sie systemweite Änderungen vornehmen PATH:

  1. Erstellen Sie eine Datei mit der Namenskonvention: Prioritäts-Anwendungsname (z. B. „20200418-vscode“, ich verwende einfach das Datum, um die Priorität eindeutig zu machen). Speichern Sie PATHdarin dann den Pfad, den Sie hinzufügen möchten.

  2. Verschieben Sie die Datei nach /etc/paths.d/, fertig.

Hinweis 1:Denken Sie daran, eine neue Terminalsitzung zu erstellen, um die Änderung anzuzeigen echo $PATH.

Hinweis 2: Diese Methode nurfügt hinzuIhr Weg zu PATH.

verwandte Informationen