Bash
PATH-Umgebungsvariable verwalten
Suche…
Syntax
- Pfad hinzufügen: PATH = $ PATH: / new / path
- Fügen Sie folgenden Pfad hinzu: PATH = / new / path: $ PATH
Parameter
Parameter | Einzelheiten |
---|---|
PFAD | Pfadumgebungsvariable |
Bemerkungen
Bash-Konfigurationsdatei:
Diese Datei wird beim Start einer neuen interaktiven Bash-Shell abgerufen.
In GNU / Linux-Systemen handelt es sich im Allgemeinen um die Datei ~ / .bashrc. Bei Mac ist es ~ / .bash_profile oder ~ / .profile
Export:
Die PATH-Variable muss einmal exportiert werden (standardmäßig). Sobald es exportiert ist, bleibt es exportiert und alle an ihm vorgenommenen Änderungen werden sofort übernommen.
Änderungen übernehmen:
Um Änderungen an einer Bash-Konfigurationsdatei zu übernehmen, müssen Sie diese Datei in ein Terminal laden ( source /path/to/bash_config_file
).
Fügen Sie der Umgebungsvariable PATH einen Pfad hinzu
Die PATH-Umgebungsvariable ist im Allgemeinen in ~ / .bashrc oder ~ / .bash_profile oder / etc / profile oder ~ / .profile oder /etc/bash.bashrc (entfernungsspezifische Bash-Konfigurationsdatei) definiert.
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/jdk1.8.0_92/bin:/usr/lib/jvm/jdk1.8.0_92/db/bin:/usr/lib/jvm/jdk1.8.0_92/jre/bin
Wenn wir nun einen Pfad (zB ~/bin
) zur PATH-Variable hinzufügen wollen:
PATH=~/bin:$PATH
# or
PATH=$PATH:~/bin
Dies ändert jedoch den PATH nur in der aktuellen Shell (und ihrer Subshell). Sobald Sie die Shell verlassen haben, ist diese Änderung weg.
Um es dauerhaft zu machen, müssen wir dieses Bit in die Datei ~ / .bashrc (oder was auch immer) einfügen und die Datei neu laden.
Wenn Sie den folgenden Code (im Terminal) ausführen, wird ~/bin
dauerhaft zum PATH hinzugefügt:
echo 'PATH=~/bin:$PATH' >> ~/.bashrc && source ~/.bashrc
Erläuterung:
-
echo 'PATH=~/bin:$PATH' >> ~/.bashrc
fügt am Ende der Dateiecho 'PATH=~/bin:$PATH' >> ~/.bashrc
die ZeilePATH=~/bin:$PATH
hinzu (Sie können dies auch mit einem Texteditor machen) -
source ~/.bashrc
lädt die Datei ~ / .bashrc neu
Dies ist ein bisschen Code (in Terminal ausgeführt), der überprüft, ob ein Pfad bereits enthalten ist, und den Pfad nur hinzufügen, wenn nicht:
path=~/bin # path to be included
bashrc=~/.bashrc # bash file to be written and reloaded
# run the following code unmodified
echo $PATH | grep -q "\(^\|:\)$path\(:\|/\{0,1\}$\)" || echo "PATH=\$PATH:$path" >> "$bashrc"; source "$bashrc"
Entfernen Sie einen Pfad aus der Umgebungsvariable PATH
Um einen PATH aus einer PATH-Umgebungsvariablen zu entfernen, müssen Sie die Datei ~ / .bashrc oder ~ / .bash_profile oder / etc / profile oder ~ / .profile oder /etc/bash.bashrc (distro-spezifisch) bearbeiten und die Zuweisung entfernen dieser bestimmte Weg.
Anstatt die genaue Zuweisung zu finden, können Sie im letzten Schritt einfach den $PATH
ersetzen.
Folgendes wird $path
sicher aus $PATH
entfernen:
path=~/bin
PATH="$(echo "$PATH" |sed -e "s#\(^\|:\)$(echo "$path" |sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g')\(:\|/\{0,1\}$\)#\1\2#" -e 's#:\+#:#g' -e 's#^:\|:$##g')"
Um es dauerhaft zu machen, müssen Sie es am Ende Ihrer bash-Konfigurationsdatei hinzufügen.
Sie können es auf funktionelle Weise tun:
rpath(){
for path in "$@";do
PATH="$(echo "$PATH" |sed -e "s#\(^\|:\)$(echo "$path" |sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g')\(:\|/\{0,1\}$\)#\1\2#" -e 's#:\+#:#g' -e 's#^:\|:$##g')"
done
echo "$PATH"
}
PATH="$(rpath ~/bin /usr/local/sbin /usr/local/bin)"
PATH="$(rpath /usr/games)"
# etc ...
Dies erleichtert die Handhabung mehrerer Pfade.
Anmerkungen:
- Sie müssen diese Codes in die Bash-Konfigurationsdatei einfügen (~ / .bashrc oder was auch immer).
- Führen Sie
source ~/.bashrc
, um die Bash-Konfigurationsdatei (~ / .bashrc)source ~/.bashrc
zu laden.