it-swarm.com.de

Wie kann man $ PATH dauerhaft unter Linux/Unix einstellen?

Ich versuche, meinem Pfad ein Verzeichnis hinzuzufügen, damit es immer in meinem Linux-Pfad ist. Ich habe es versucht:

export PATH=$PATH:/path/to/dir

Dies funktioniert jedoch jedes Mal, wenn ich das Terminal verlasse und eine neue Terminalinstanz starte, dieser Pfad verloren geht und ich den Exportbefehl erneut ausführen muss.

Wie kann ich das machen, damit dies dauerhaft eingestellt wird?

700
Click Upvote

Sie müssen es Ihrer ~/.profile- oder ~/.bashrc-Datei hinzufügen.

export PATH="$PATH:/path/to/dir"

Je nachdem, was Sie tun, möchten Sie möglicherweise auch einen Link zu Binärdateien erstellen:

cd /usr/bin
Sudo ln -s /path/to/binary binary-name

Beachten Sie, dass dadurch der Pfad für den Rest der Sitzung nicht automatisch aktualisiert wird. Um dies zu tun, sollten Sie Folgendes ausführen:

source ~/.profile 
or
source ~/.bashrc
884
mpowered

Bearbeiten Sie in Ubuntu /etc/environment. Sein einziger Zweck ist das Speichern von Umgebungsvariablen. Ursprünglich ist die Variable $ PATH hier definiert .. _ Dies ist eine Einfügung aus meiner /etc/environment-Datei:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

Sie können diese Datei also einfach als root öffnen und hinzufügen, was Sie möchten.

Für sofortige Ergebnisse Ausführen (versuchen Sie es als normaler Benutzer und root):

source /etc/environment && export PATH

UPDATE:

Wenn Sie zsh (a.k.a Z Shell) verwenden, fügen Sie diese Zeile direkt nach den Kommentaren in /etc/zsh/zshenv ein:

source /etc/environment

Ich bin auf Ubuntu 15.10 auf diese kleine Masche gestoßen, aber wenn Ihr zsh nicht den richtigenPFADerhält, könnte dies der Grund dafür sein, dass

220
trve.fa7ad

Es gibt mehrere Möglichkeiten, dies zu tun. Die tatsächliche Lösung hängt vom Zweck ab.

Die Variablenwerte werden normalerweise in einer Liste von Zuweisungen oder einem Shell-Skript gespeichert, das zu Beginn der System- oder Benutzersitzung ausgeführt wird. Im Falle des Shell-Skripts müssen Sie eine bestimmte Shell-Syntax verwenden.

Systemweit

  1. /etc/environment Liste der eindeutigen Zuweisungen. Perfekt, um systemweite Verzeichnisse wie /usr/local/something/bin zur Variable PATH hinzuzufügen oder Java_HOME zu definieren.
  2. /etc/xprofile Shell-Skript, das ausgeführt wird, wenn die X Window System-Sitzung gestartet wird. Dies wird für jeden Benutzer ausgeführt, der sich beim X Window System anmeldet. Dies ist eine gute Wahl für PATH-Einträge, die für jeden Benutzer wie /usr/local/something/bin gültig sind. Die Datei ist in einem anderen Skript enthalten. Verwenden Sie daher die POSIX-Shell-Syntax und nicht die Syntax Ihrer Benutzer-Shell.
  3. /etc/profile und /etc/profile.d/* Shell-Skript. Dies ist eine gute Wahl für reine Shell-Systeme. Diese Dateien werden nur von Shells gelesen.
  4. /etc/<Shell>.<Shell>rc. Shell-Skript. Dies ist eine schlechte Wahl, da es nur für die Shell spezifisch ist.

Benutzersitzung

  1. ~/.pam_environment. Liste der eindeutigen Zuweisungen. Geladen von PAM zu Beginn jeder Benutzersitzung, irrelevant, wenn es sich um eine X Window System-Sitzung oder eine Shell handelt. Sie können nicht auf andere Variablen, einschließlich HOME oder PATH, verweisen, sodass sie nur begrenzt verwendet werden kann.
  2. ~/.xprofile Shell-Skript. Dies wird ausgeführt, wenn sich der Benutzer beim X Window System System anmeldet. Die hier definierten Variablen sind für jede X-Anwendung sichtbar. Die perfekte Wahl, um PATH mit Werten wie ~/bin oder ~/go/bin zu erweitern oder benutzerspezifische GOPATH oder NPM_HOME zu definieren. Die Datei ist in einem anderen Skript enthalten. Verwenden Sie daher die POSIX-Shell-Syntax und nicht die Syntax Ihrer Benutzer-Shell. Ihr grafischer Texteditor oder IDE, der durch eine Verknüpfung gestartet wird, sieht diese Werte.
  3. ~/.profile Shell-Skript. Sie ist nur für Programme sichtbar, die von Terminal oder Terminalemulator gestartet werden. Es ist eine gute Wahl für reine Shell-Systeme.
  4. ~/.<Shell>rc. Shell-Skript. Dies ist eine schlechte Wahl, da es nur für die Shell spezifisch ist.

Vertriebsspezifische Dokumentation

132
Grzegorz Żur

Setzen Sie die export-Deklaration in ~/.bashrc. Meine .bashrc enthält folgendes:

export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
68
Fraxtil

Sie können $PATH dauerhaft auf zwei Arten einstellen.

  1. So legen Sie den Pfad für einen bestimmten Benutzer fest: Möglicherweise müssen Sie den Eintrag in .bash_profile im Heimatverzeichnis des Benutzers vornehmen.

    z. B. werde ich in meinem Fall den Java-Pfad im Tomcat-Benutzerprofil festlegen

    [Tomcat]$ echo "export PATH=$PATH:/path/to/dir" >> /home/Tomcat/.bash_profile
    
  2. Um einen allgemeinen Pfad für ALLE Systembenutzer festzulegen, müssen Sie den Pfad möglicherweise wie folgt festlegen:

    [root~]# echo "export PATH=$PATH:/path/to/dir" >> /etc/profile
    
29
Mohit M

Sie können auf Centos oder RHEL für lokale Benutzer verwenden:

echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile

Dadurch wird das aktuelle Verzeichnis (oder Sie können ein anderes Verzeichnis verwenden) zum PATH hinzugefügt. Dies macht es dauerhaft, wird jedoch bei der nächsten Benutzeranmeldung wirksam.

Wenn Sie keine erneute Anmeldung wünschen, können Sie Folgendes verwenden:

source ~/.bash_profile

Dass der # User specific environment and startup programs neu geladen wird, ist dieser Kommentar in .bash_profile vorhanden.

Sie können diese Zeile zu Ihrer Konsolenkonfigurationsdatei hinzufügen (z. B. .bashrc) oder zu .profile

6
aqua

Ich denke, der eleganteste Weg ist:

1. fügen Sie diese Datei in die Datei ~/.bashrc Führen Sie diesen Befehl aus

gedit ~/.bashrc

füge deinen Weg hinzu 

export PATH = $ PATH:/opt/node/bin

2.source ~/.bashrc

(Ubuntu)

6
Himanshu sharma

Sie können auch dauerhaft eine der folgenden Dateien bearbeiten:

/etc/profile (für alle Benutzer)

~/.bash_profile (für aktuellen Benutzer)

~/.bash_login (für aktuellen Benutzer)

~/.profile (für aktuellen Benutzer)

Sie können auch /etc/environment verwenden, um eine permanente Umgebungsvariable PATH festzulegen, aber unterstützt keine Variablenerweiterung

Auszug aus: http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html

6
Delucaramos

Gestern bin ich über diese Frage gestolpert, als ich nach einem Weg gesucht habe, einen Ordner mit meinen eigenen Skripts zum PATH hinzuzufügen - und war überrascht zu erfahren, dass meine ~/.profile-Datei (unter Linux Mint 18.1) bereits Folgendes enthielt: 

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Also musste ich lediglich den Ordner ~/bin erstellen und meine Skripte dort ablegen.

5
RobertG

die Dateien, in denen Sie den Exportbefehl hinzufügen, hängen davon ab, ob Sie sich im Anmeldemodus oder im Nicht-Anmeldemodus befinden.

wenn Sie sich im Anmeldemodus befinden, sind die gesuchten Dateien entweder/etc/bash oder /etc/bash.bashrc

wenn Sie sich nicht im Anmeldemodus befinden, suchen Sie nach der Datei /.profile oder nach den Dateien im Verzeichnis /.profiles.d

die oben genannten Dateien, wenn sich die Systemvariablen befinden.

3
Dikinha

Zues77 hat die richtige Idee. Das OP hat nicht gesagt "wie kann ich mich hier durchschlagen". OP wollte wissen, wie man permanent an $ PATH hängt:

Sudo nano /etc/profile

Hier wird alles festgelegt und es ist der beste Ort, um alles für Dinge zu ändern, die $ PATH benötigen

3
Joe D

Meine Antwort bezieht sich auf das Einrichten von go-lang auf Ubuntu linux/AMD64. Ich hatte die gleiche Schwierigkeit, den Pfad der Umgebungsvariablen (GOPATH und GOBIN) festzulegen, ihn am Terminalausgang zu verlieren und ihn jedes Mal mit dem source <file_name> neu aufzubauen.Der Fehler musste den Pfad (GOPATH und GOBIN) im ~/.bash_profile-Ordner ablegen. Nachdem ich ein paar gute Stunden verschwendet hatte, stellte ich fest, dass die Lösung darin bestand, GOPATH und GOBIN in der ~/.bash_rc-Datei auf folgende Weise abzulegen:

export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOPATH:$GOBIN

die Installation von go funktionierte einwandfrei und es gab keine Pfadverluste. 

BEARBEITEN 1: .__ Der Grund für das Problem ist, dass Einstellungen für Nicht-Login-Shells wie Ihr Ubuntu-Terminal oder das Gnome-Terminal, auf dem der Go-Code ausgeführt wird, aus der ~./bash_rc-Datei übernommen werden und die Einstellungen für Login-Shells übernommen werden von ~/.bash_profile-Datei und von ~/.profile-Datei, falls ~/.bash_profile-Datei nicht erreichbar ist. 

3
Abhiroj Panwar

Fügen Sie dem /etc/profile.d-Ordner-Skript [name_of_script].sh folgende Zeile hinzu: export PATH=$PATH:/dir. Jedes Skript im /etc/profile.d-Ordner wird beim Anmelden automatisch von /etc/profile ausgeführt.

2
Iurii

PATH-Variable dauerhaft hinzufügen

Global:

echo "export PATH=$PATH:/new/path/variable" >> /etc/profile

Lokal (nur für Benutzer):

echo "export PATH=$PATH:/new/path/variable" >> ~/.profile

Für Global Neustart. Für local relogin.

Beispiel

Vor:

$ cat /etc/profile 

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin

Nach dem:

$ cat /etc/profile 

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable

Alternativ kannst du einfach das Profil bearbeiten:

$ cat /etc/profile 

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable

Ein anderer Weg (danke gniourf_gniourf):

echo 'PATH=$PATH:/new/path/variable' >> /etc/profile

Sie sollten hier keine doppelten Anführungszeichen verwenden! echo 'exportieren PATH = $ PATH:/new/path/variable '... Und übrigens das Exportschlüsselwort ist höchstwahrscheinlich nutzlos, da die Variable PATH sehr wahrscheinlich __ ist. als exportiert gekennzeichnet. - gniourf_gniourf

2
user3439968

Ich denke, der eleganteste Weg ist:

1.addiere dies in ~./Bashrc file

if [ -d "new-path" ]; then
  PATH=$PATH:new-path
fi

2.source ~/.bashrc

(Ubuntu)

1
Gimcuan Hui

der einfachste Weg ist die folgende Zeile:
PATH="<directory you want to include>:$PATH"
in Ihrer .bashrc-Datei im Ausgangsverzeichnis.
Es wird nicht zurückgesetzt, auch wenn Sie das Terminal schließen oder Ihren PC neu starten. Es ist dauerhaft

1
Edward Torvalds

Für die Debian-Distribution müssen Sie:

    - edit ~/.bashrc  e.g: vim ~/.bashrc 
    - add export PATH=$PATH:/path/to/dir
    - then restart your computer. Be aware that if you edit ~/.bashrc  as root, your environment variable you added will work only for root
0
onlyme

eine Möglichkeit, einen permanenten Pfad hinzuzufügen, der für mich funktioniert hat, ist: cd /etc/profile.d berühren Sie custom.sh vi custom.sh Exportieren Sie PATH = $ PATH:/path entsprechend Ihrer Einstellung / Starten Sie Ihren Computer neu und hier gehen wir den Pfad dauerhaft dort hin.

0
user6393373

Schnelle Installation mit Homebrew

überprüfen Sie diese Video

oder

schritte unten

Step 1:

Öffnen Sie https://brew.sh/

enter image description here

Copy die [~ # ~] url [~ # ~] die im Screenshot oben gezeigt wurde

/usr/bin/Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Einfügen kopiert [~ # ~] url [~ # ~] im Terminal und drücken Sie die Eingabetaste

Sobald Sie getan haben mit Homebrew-Installation folgen Schritt 2:

Step 2: Terraform herunterladen von https://www.terraform.io/downloads.html

extrahieren herunterladen Terraform-Datei komprimieren

Jetzt haben Sie einen Dateinamen terraform im heruntergeladenen Ordner

Zum Beispiel

/Users/username/downloads/terraform

Step 3:

Öffne ein terminal

cd: Verzeichnis wechseln zu /Users/username/downloads/terraform

Step 4:

runbrew install terraform im terminal

0
Munish Kapoor

Angenommen, Sie betreiben MacOS und haben eine Binärdatei, der Sie vertrauen und die Sie gerne systemweit zur Verfügung stellen möchten. Sie möchten jedoch nicht unbedingt das Verzeichnis, in das die Binärdatei zu Ihrem PATH hinzugefügt werden soll, sondern können sich für das Kopieren/Verschieben entscheiden die Binärdatei zu /usr/local/bin, die sich bereits in Ihrem PATH befinden sollte. Dadurch wird die Binärdatei wie jede andere Binärdatei ausführbar, auf die Sie möglicherweise bereits in Ihrem Terminal Zugriff haben.

0
Leo

1. Ändern Sie die Datei "/ etc/profile".

#vi /etc/profile

Drücken Sie die Taste "i", um den Bearbeitungsstatus aufzurufen, und bewegen Sie den Cursor an das Ende der Datei. Weitere Einträge:

export PATH=$PATH:/path/to/dir;

Drücken Sie die "Esc" -Taste, um den Bearbeitungsstatus zu verlassen, ': wq', um die Datei zu speichern.

2. Machen Sie die Konfiguration wirksam

source /etc/profile

Erklären: Profildatei funktioniert für alle Benutzer. Wenn Sie nur für den aktiven Benutzer gültig sein möchten, legen Sie die Datei ".bashrc" fest

0
Jia