Come aggiungere una directory al percorso di sistema in Linux

In Linux, la variabile d'ambiente PATH memorizza i nomi dei percorsi che verranno ricercati per i file eseguibili di qualsiasi comando digitato nella riga di comando. Il valore della variabile di ambiente PATH è una stringa contenente una serie di nomi di percorso, ciascuno delimitato da due punti. Ad esempio, il PATH predefinito su un sistema tipico potrebbe assomigliare a questo:

 / Usr / local / bin: / usr / bin: / bin: / usr / local / games: / usr / games 

Quando digiti un comando come cat al prompt dei comandi, la tua shell cercherà in ognuna di queste directory un file eseguibile chiamato cat . Il primo che trova è quello che esegue.

Per visualizzare il valore corrente della variabile di ambiente PATH, è possibile utilizzare il comando echo . Come con tutte le variabili nella shell, quando si fa riferimento al valore è necessario inserire un segno di dollaro prima del nome della variabile:

 echo $ PATH 

Nell'esempio sopra, il valore corrente del percorso ti riporta al prompt dei comandi.

Impostazione del PERCORSO per la tua sessione di shell corrente

Puoi impostare il valore di PATH come faresti con qualsiasi altra variabile di shell, con il modulo NAME = VALUE, in questo modo:

 PATH = / mia / prima / percorso: il mio / secondo / percorso 

Il problema con questo comando è che sovrascriverà completamente i valori che avevi prima, che probabilmente non vuoi. Se si desidera aggiungere un nuovo valore oltre a quelli precedenti. È possibile farlo riferendosi a PATH nella nuova definizione, in questo modo:

 PATH = $ PATH: / il mio / new / percorso 

Utilizzando il comando precedente, aggiungi il tuo nuovo percorso al valore corrente di PATH . Poiché i nomi dei percorsi sono cercati in ordine, probabilmente vorrai aggiungere il tuo nuovo percorso alla fine della variabile come abbiamo fatto qui. Invece, se hai digitato:

 PATH = / mio / new / path: $ PATH 

Il tuo nuovo percorso sarà cercato prima, non dopo, i percorsi di sistema predefiniti.

Utilizzo dell'esportazione per passare la variabile di ambiente PATH ai processi figli

Questo tipo di definizione PATH imposterà la variabile di ambiente per la tua sessione di shell corrente, ma eventuali nuovi programmi in esecuzione potrebbero non vedere il nuovo percorso che hai aggiunto. Questo perché la tua shell ti consente di controllare l'ambiente richiedendoti di dichiarare manualmente quali variabili di ambiente vengono passate ad altri programmi e processi. Puoi farlo con il comando export . Se corri:

 esporta PERCORSO 

Qualsiasi processo eseguito fino alla disconnessione utilizzerà il valore corrente di PATH .

Se preferisci, puoi combinare questi due comandi in un'unica riga, per comodità. Basta mettere un punto e virgola tra di loro in modo che la shell sappia che sono comandi separati:

 PERCORSO = $ PERCORSO: / mio / nuovo / percorso: / mio / altro / nuovo / percorso; PERCORSO di esportazione 

Suggerimento: se uno qualsiasi dei tuoi percorsi ha degli spazi al loro interno, devi racchiudere la definizione della variabile tra virgolette, per sicurezza:

 PATH = "$ PATH: / putting / spaces in pathnames: / makes / life very / inconvenient"; export PATH 

Impostazione della variabile PATH per ogni nuova sessione shell

I metodi che abbiamo usato finora imposta solo la variabile di ambiente per la tua sessione di shell corrente; quando esci o chiudi la finestra del terminale, le modifiche verranno dimenticate. Se si desidera impostare PATH su un determinato valore ogni volta che si accede o si avvia una nuova sessione shell, è necessario aggiungerla allo script di avvio bash. Ogni volta che si avvia una sessione di shell interattiva, bash legge i seguenti file in ordine (se esistono) ed esegue i comandi all'interno di essi:

/ etc / profile ~ / .bash_profile ~ / .bash_login

~ / .Profile

Il primo file, / etc / profile, è lo script di avvio predefinito per ogni utente sul sistema. Uno o più dei restanti tre file si trovano nella home directory di ogni utente. È possibile utilizzare uno di questi tre, ma è importante sapere che verranno cercati in questo ordine.

È possibile modificare questi file e modificare manualmente qualsiasi riga contenente PATH = definizioni. Basta fare attenzione se lo fai, perché queste sono le directory utilizzate per individuare i file importanti del sistema operativo.

Se tutto ciò che si vuole fare è aggiungere un percorso per il proprio utente corrente, è possibile lasciare intatti gli altri percorsi PATH = e aggiungere semplicemente una riga come questa alla fine del file:

 PATH = "$ PATH: / new / path"; esporta PATH 

Se lo aggiungi alla fine del file .bash_profile nella tua home directory, ha effetto ogni volta che l'utente avvia una nuova sessione shell. Se lo aggiungi a / etc / profile, ha effetto per ogni utente sul sistema. Nota che hai bisogno dei privilegi di amministratore se vuoi modificare / etc / profile, così puoi usare sudo (o essere loggato come root) per farlo.