Come aggiungere una directory alla variabile $PATH in Linux
Le variabili d’ambiente controllano il comportamento della shell. Le variabili d’ambiente sono le variabili che impostano l’ambiente di lavoro della shell. Alcune delle variabili di ambiente sono USER, HOME, SHELL, PWD, SHELL, PS1, PS2 ecc.
La variabile HOME contiene il percorso della home directory dell’utente. Allo stesso modo, le altre variabili contengono altri valori necessari per il funzionamento della shell. Questo tutorial discute un’importante variabile d’ambiente della shell chiamata PATH e come puoi aggiungere valori a questa variabile.
In questo tutorial, ti mostrerò come aggiungere una directory alla variabile PATH in Linux. La variabile $PATH visualizza un elenco di tutte le directory in cui si trovano i comandi o gli eseguibili di Linux.
Visualizza il valore della variabile
La shell interpreta il valore di una variabile con il segno “$”. Per visualizzare il valore di una variabile, anteporre alla variabile il segno “$”. Il comando “echo” viene utilizzato per visualizzare il valore della variabile. Visualizziamo il valore della variabile HOME:
$ echo $HOME
/home/raghu
Qual è la variabile PATH
I comandi in Unix/Linux sono file binari eseguibili. Quando immetti un comando al prompt della shell, viene eseguito il file binario con quel nome. Quindi, quando viene immesso un comando al prompt, la shell cerca quel binario in alcune directory. Queste directory sono elencate nella variabile PATH. Senza la variabile PATH, nessun comando può essere eseguito.
Ora mostriamo il valore corrente della variabile PATH.
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Le directory in questa variabile sono separate da: (due punti). La shell attualmente cerca nelle seguenti directory gli eseguibili binari:
• /usr/local/sbin
• /usr/local/bin
• /usr/sbin
• /usr/bin
• /sbin and
• /bin
Anche l’ordine del percorso di ricerca è importante. Supponiamo di inserire il comando ls nella riga di comando. Ora, all’avvio, la shell cerca la directory /usr/local/sbin. Se non trova un eseguibile con quel nome in questa directory, cerca in /usr/local/bin e poi in /usr/sbin, seguito da /usr/bin e così via. Se nessuna delle directory specificate nella variabile PATH contiene quel file, sul terminale viene visualizzato l’errore “comando non trovato”.
Il comando which viene utilizzato per scoprire la directory che contiene un particolare comando. Questo comando utilizza anche la variabile PATH per cercare la posizione del comando. Per esempio,
$ which ls
/bin/ls
Significa che quando digiti ls al prompt ed esegui il comando ls, viene eseguito il file “/bin/ls”. In altre parole, la posizione del comando ls è “/bin/ls”. Puoi anche trovare il percorso di altri comandi con il comando “quale”.
Aggiungi directory a PATH
Supponiamo ora di creare i tuoi script di shell nella directory bin che si trova nella tua home directory, cioè nella directory “~/bin” (~ sta per la tua home directory); e ora vuoi aggiungere questa directory anche alla tua variabile PATH in modo da non dover specificare il percorso del tuo script ogni volta che esegui lo script.
Il valore di una variabile viene modificato con la sintassi “variabile=valore”. Ma qui vogliamo aggiungere una directory alla variabile PATH. Non possiamo semplicemente scrivere “PATH=~/bin” perché sovrascriverà tutti i valori precedenti. Vogliamo mantenere i valori esistenti contenuti nella variabile. Quindi usiamo il valore della variabile, ad esempio $ PATH per assegnare un nuovo valore. Se sembra confuso, non preoccuparti, sarà chiaro con il seguente comando:
$ export PATH=$PATH:~/bin
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/bin
La directory “/root/bin” (/root è la home directory dell’utente root) è stata aggiunta alla variabile path. Ora puoi eseguire lo script come comando senza specificare il percorso completo dello script. Il comando export garantisce che le variabili vengano passate ai processi figlio senza influire sulle variabili di ambiente esistenti.
Facciamo un altro esempio in cui vuoi aggiungere una directory (/home/tom/scripts) per un utente chiamato “tom” che può contenere i suoi script o binari. È possibile posizionare il percorso dello script personalizzato all’inizio di PATH se il sistema desidera trovarlo per primo.
$ export PATH=$HOME/scripts:$PATH
o
$ export PATH=$/home/tom/scripts:$PATH
Per rimuovere un percorso dalla variabile $PATH della sessione corrente, non esiste un semplice comando. Basta ottenere i valori correnti della variabile $PATH utilizzando “echo $PATH” ed esportare nuovamente dopo aver rimosso i percorsi indesiderati. O semplicemente avvia una nuova shell.
Come impostare PATH in modo permanente
Per configurare la variabile $PATH permanente, è necessario aggiungere il comando precedente al rispettivo file di configurazione che avvia la shell. Il file più comune è ~/.bashrc se stai usando Bash. Per zsh, aggiungilo al tuo file ~/.zshrc.
È possibile utilizzare in modo appropriato /etc/environment e /etc/profile che definisce le variabili d’ambiente globali.
Apri il file ~/.bashrc nel tuo editor di testo preferito ed esegui il seguente comando:
~/.bashrc
export PATH=$/home/tom/scripts:$PATH
E, per caricare una variabile nell’attuale comando shell runtime source, digitare:
$ source ~/.bashrc
Conclusione
In questo tutorial, abbiamo imparato come aggiungere una directory alla variabile d’ambiente PATH in Linux. Spero ti sia piaciuto leggere questo e per favore lascia il tuo suggerimento nella sezione commenti qui sotto.