Quando digitate il nome di un programma sul vostro terminale per richiederne l’esecuzione, di fatto state imponendo alla shell di cercare, in alcune directory ben precise, un file eseguibile con il nome da voi indicato. Come fare però, nel caso in cui vogliate eseguire script o programmi personalizzati da directory non standard? In questi casi, si rende necessario aggiungere la loro directory di origine alla variabile PATH della shell, in modo che sappia dove cercarli. In questo articolo cerchiamo di approfondire l’uso della variabile d’ambiente PATH.
Linux: cos’è e come funziona la variabile PATH
PATH è una variabile ambientale che su distro GNU/Linux indica alla shell in quali directory cercare i file eseguibili. Contiene un elenco delle directory utilizzate per trovare i comandi immessi. Le directory più comuni che contengono programmi eseguibili sono /bin, /sbin, /usr/sbin, /usr/local/bin e /usr/local/sbin.
Per vedere com’è configurato il vostro PATH in questo momento, digitate questo comando: echo $PATH
.
L’ordine è importante: se avete due file eseguibili che condividono lo stesso nome situati in due directory diverse, la shell eseguirà il file che si trova nella directory che viene prima nel PATH. Vediamo come aggiungere una directory al $PATH su Linux.
Aggiungere una directory
Supponete di aver creato uno script personalizzato situato nella directory /srv/scripts
e di voler aggiungere questa directory alla variabile PATH. Per farlo dovete dare questo comando:
export PATH=$PATH:/srv/scripts
Questo comando fa sì che la directory indicata dopo i :
venga aggiunta a quelle pre-configurate. Ecco il PATH aggiornato:
Ora i file eseguibili che avete salvato nella directory /srv/scripts
possono essere eseguiti ovunque, senza indicare il percorso completo. Se addirittura volete che la vostra directory sia quella che viene acceduta per prima potete indicare la directory prima di $PATH
in questo modo:
export PATH=/srv/scripts:$PATH
Tuttavia, questa modifica è solo temporanea e valida solo nella sessione di shell corrente.
Modifica permanente
Per rendere queste modifiche permanenti è 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 o /etc/profile. Utilizzare questi file se si desidera aggiungere la nuova directory a tutti gli utenti del sistema
- 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.
Se intendete procedere aprite il file ~/.bashrc con un editor di testo e aggiungete la seguente riga in fondo:
nano ~/.bashrc
export PATH=$PATH:/srv/scripts
Salvate il file e caricate il nuovo $PATH nella sessione corrente usando il comando source:
source ~/.bashrc
Per verificare che la directory sia stata effettivamente aggiunta correttamente date di nuovo
echo $PATH
Questi passaggi valgono per qualsiasi distribuzione Linux (Ubuntu, CentOS, RHEL, Debian e Linux Mint).
Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.