Ricerca…


Sintassi

  • Aggiungi percorso: PATH = $ PATH: / new / path
  • Aggiungi percorso: PATH = / new / percorso: $ PATH

Parametri

Parametro Dettagli
SENTIERO Variabile d'ambiente del percorso

Osservazioni

File di configurazione di Bash:

Questo file viene acquisito ogni volta che viene avviata una nuova shell Bash interattiva.

Nei sistemi GNU / Linux è generalmente il file ~ / .bashrc; in Mac è ~ / .bash_profile o ~ / .profile

Esportare:

La variabile PATH deve essere esportata una volta (viene eseguita per impostazione predefinita). Una volta esportato, rimarrà esportato e tutte le modifiche apportate verranno applicate immediatamente.

Applica i cambiamenti:

Per applicare le modifiche a un file di configurazione Bash, è necessario ricaricare il file in un terminale ( source /path/to/bash_config_file )

Aggiungi un percorso alla variabile d'ambiente PATH

La variabile d'ambiente PATH è generalmente definita in ~ / .bashrc o ~ / .bash_profile o / etc / profile o ~ / .profile o /etc/bash.bashrc (file di configurazione Bash specifico della distro)

$ 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

Ora, se vogliamo aggiungere un percorso (ad esempio ~/bin ) alla variabile PATH:

PATH=~/bin:$PATH
# or
PATH=$PATH:~/bin

Ma questo modificherà il PERCORSO solo nella shell corrente (e nella sua sottoshell). Una volta che si esce dalla shell, questa modifica sparirà.

Per renderlo permanente, dobbiamo aggiungere quel bit di codice al file ~ / .bashrc (o qualsiasi altra cosa) e ricaricare il file.

Se si esegue il seguente codice (nel terminale), aggiungerà ~/bin al PATH in modo permanente:

echo 'PATH=~/bin:$PATH' >> ~/.bashrc && source ~/.bashrc

Spiegazione:

  • echo 'PATH=~/bin:$PATH' >> ~/.bashrc aggiunge la riga PATH=~/bin:$PATH alla fine del file ~ / .bashrc (puoi farlo con un editor di testo)
  • source ~/.bashrc ricarica il file ~ / .bashrc

Questo è un po 'di codice (eseguito nel terminale) che controllerà se un percorso è già incluso e aggiunge il percorso solo se non lo è:
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"

Rimuovere un percorso dalla variabile di ambiente PATH

Per rimuovere un PATH da una variabile di ambiente PATH, è necessario modificare ~ / .bashrc o ~ / .bash_profile o / etc / profile o ~ / .profile o /etc/bash.bashrc (distro specifico) e rimuovere il compito per quel particolare percorso.

Invece di trovare l'incarico esatto, puoi semplicemente fare un rimpiazzo nel $PATH nella sua fase finale.

Quanto segue rimuoverà in modo sicuro $path da $PATH :

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')"

Per renderlo permanente, dovrai aggiungerlo alla fine del tuo file di configurazione di bash.


Puoi farlo in modo funzionale:
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 ...

Ciò renderà più facile gestire più percorsi.

Gli appunti:

  • Dovrai aggiungere questi codici nel file di configurazione di Bash (~ / .bashrc o qualsiasi altra cosa).
  • Esegui source ~/.bashrc per ricaricare il file di configurazione Bash (~ / .bashrc).


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow