Introduzione

Quando si digita un comando sulla riga di comando, in pratica si dice alla shell di eseguire un file eseguibile con il nome specificato. In Linux questi programmi eseguibili come ls, find, file e altri, di solito si trovano all'interno di diverse cartelle differenti sul vostro sistema. Qualsiasi file con autorizzazioni eseguibili archiviate in queste directory può essere eseguito da qualsiasi posizione. Le directory più comuni che contengono programmi eseguibili sono /bin, /sbin, /usr/sbin, /usr/local/bin e /usr/local/sbin.

Quando si digita un comando, la shell cerca in tutte le directory specificate nella variabile user   per un file eseguibile con quel nome.

Questo articolo mostra come aggiungere directory al $PATH su Linux.

Cosa c'è $PATH in Linux

La variabile ambientale $PATH è un elenco di directory delimitato da due punti che indica alla shell in quali directory cercare i file eseguibili.

Per verificare quali directory sono presenti nella tua $PATH, puoi usare il comando printenv o echo:

echo $PATH

L'output sarà simile al seguente:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Se hai due file eseguibili che condividono lo stesso nome situati in due directory diverse, la shell eseguirà il file che risiede nella directory che viene prima nella cartella $PATH.

Aggiunta di una directory al tuo $PATH

Ci sono situazioni in cui potresti voler aggiungere altre directory alla variabile $PATH. Ad esempio, alcuni programmi potrebbero essere installati in posizioni diverse o potresti voler avere una directory dedicata per i tuoi script personali, ma essere in grado di eseguirli senza specificare il percorso assoluto dei file eseguibili. Per fare ciò devi semplicemente aggiungere la directory alla tua $PATH.

Supponiamo che tu abbia una directory chiamata bin situata nella tua directory Home in cui conservi i tuoi script di shell. Per aggiungere la directory al tuo $PATH in:

export PATH="$HOME/bin:$PATH"

Il comando export esporterà la variabile modificata negli ambienti figlio della shell.

Ora puoi eseguire i tuoi script semplicemente digitando il nome dello script eseguibile senza dover specificare il percorso completo eseguibile.

Tuttavia, questa modifica è solo temporanea e valida solo nella sessione di shell corrente.

Per rendere permanente la modifica, è necessario definire la variabile $PATH nei file di configurazione della shell. Nella maggior parte delle distribuzioni Linux quando si avvia una nuova sessione, le variabili di ambiente vengono lette dai seguenti file:

  • File di configurazione specifici della shell globale come /etc/environment e /etc/profile. Utilizzare questi file se si desidera aggiungere la nuova directory a tutti gli utenti del sistema $PATH.
  • File di configurazione specifici della shell per utente. Ad esempio, se si utilizza Bash, è possibile impostare la variabile $PATH nel file ~/.bashrc e se si utilizza Zsh il nome del file è ~/.zshrc.

In questo esempio, imposteremo la variabile nel file ~/.bashrc. Apri il file con il tuo editor di testo e aggiungi la seguente riga alla fine:

nano ~/.bashrc
export PATH="$HOME/bin:$PATH"

Salvare il file e caricare il nuovo $PATH nella sessione di shell corrente usando il comando source:

source ~/.bashrc

Per confermare che la directory è stata aggiunta correttamente, stampa il valore del tuo $PATH digitando:

echo $PATH

Conclusione

L'aggiunta di nuove directory all'utente o alla variabile globale $PATH è piuttosto semplice. Ciò consente di eseguire comandi e script memorizzati in posizioni non standard senza la necessità di digitare il percorso completo dell'eseguibile.

Le stesse istruzioni valgono per qualsiasi distribuzione Linux, inclusi Ubuntu, CentOS, RHEL, Debian e Linux Mint.