Alla riga di comando, le variabili ambientali sono definite per la shell corrente e vengono ereditate da qualsiasi comando o processo in esecuzione. Possono determinare qualsiasi cosa, dalla shell di default, il PATH, la home directory degli utenti, al tipo di emulazione terminale, alla directory di lavoro corrente, dove si trova un file di cronologia, le impostazioni di lingua e localizzazione e oltre, includendo le variabili di shell, che comprendono tutto dalle personalizzazioni al prompt di bash, all’output di colori ls e alle modifiche all’aspetto del terminale, agli alias e molto altro.
In questo articolo, vedremo come visualizzare le variabili di ambiente e di shell e come impostare e aggiungere nuove variabili di ambiente sulla riga di comando di Mac OS X.
Visualizzazione dell’ambiente corrente e variabili della shell in Mac OS X
Per ottenere rapidamente un elenco delle variabili ambientali, puoi utilizzare il seguente comando:
printenv
Se desideri vedere una lista completa delle variabili di shell, puoi emettere anche il comando:
set
L’output di questi comandi può essere lungo, quindi potresti voler canalizzare l’output attraverso un numero minore o maggiore di comandi.
Impostazione delle variabili ambientali nella riga di comando di Mac OS X
Poiché il Mac usa automaticamente la bash shell, puoi impostare le variabili ambientali nelle directory utente .bash_profile. Per un account utente attivo, il percorso di quel file si trova in:
~/.bash_profile
Se hai cambiato la shell o non sei sicuro di quale shell stai usando, puoi sempre controllare emettendo il comando echo $SHELL
, che mostrerà quale shell è in uso. Supponiamo che tu stia ancora utilizzando la shell bash predefinita di OS X; quindi aggiungeremo nuove variabili di ambiente modificando .bash_profile con nano – puoi utilizzare vi, emacs o un altro editor di testo se lo desideri, ma copriremo il nano per la sua semplicità.
Inizia aprendo .bash_profile all’interno dell’editor di testo nano:
nano ~/.bash_profile
Puoi aggiungere variabili ambientali e variabili di shell su nuove linee. Se ci sono già dati nel file .bash_profile, assicurati di aggiungere nuove variabili a una nuova riga vuota usando i tasti freccia e il tasto di ritorno secondo necessità.
Facciamo un esempio: supponiamo che imposterai le variabili ambientali JAVA_HOME e JRE_HOME all’interno di .bash_profile aggiungendo quanto segue alle nuove righe del file:
export JAVA_HOME=$(/usr/libexec/java_home)
export JRE_HOME=$(/usr/libexec/java_home)
Una volta che hai finito, salva le modifiche apportate a .bash_profile premendo Control + o (che è una o come in lontra), quindi esci da nano premendo Control + X.
Le modifiche e le aggiunte apportate alle variabili ambientali richiederanno il riavvio della shell o la generazione di una nuova shell.
Impostazione delle variabili ambientali temporanee in OS X
Vale la pena ricordare che è possibile anche impostare variabili ambientali temporanee in bash usando il comando ‘export’ da solo. Tuttavia, queste rimarranno attive solo fino a quando la shell bash corrente rimane attiva. Ad esempio, se desideri aggiungere un percorso temporaneo a ~/bin/, puoi utilizzare il seguente comando:
export PATH=$PATH:~/bin
Ancora, il comando ‘export’ eseguito da solo e non contenuto in .bash_profile sarà solo un’impostazione temporanea, e la variabile ambientale non verrà mantenuta a meno che non la aggiungi a .bash_profile.
Se stai cercando di aggiungere un nuovo PATH per l’utilizzo, dovresti quasi certamente aggiungerlo a .bash_profile, posizionando il comando di esportazione appropriato nel file.
Andando oltre alla shell bash, se hai cambiato la shell predefinita della tua app Terminal da bash a tcsh, zsh, sh, ksh, fish o qualsiasi altra shell alternativa, devi semplicemente modificare il profilo appropriato o il file rc per quella shell specifica (.cshrc, .profile, ecc.).
Novità nel 2024: tendenze e consigli per la gestione delle variabili d’ambiente
Nel 2024, la gestione delle variabili d’ambiente su Mac OS X sta diventando sempre più rilevante, soprattutto con l’aumento dell’uso di strumenti come Docker e ambienti di sviluppo virtuali. Gli sviluppatori si stanno orientando verso la creazione di script di avvio che automatizzano l’impostazione delle variabili, rendendo il processo più fluido e meno soggetto a errori.
Inoltre, molti utenti stanno scoprendo l’importanza di mantenere le variabili d’ambiente organizzate, utilizzando file .env e strumenti come direnv per gestire le variabili a livello di progetto. Questo approccio non solo migliora la produttività, ma riduce anche il rischio di conflitti tra diverse configurazioni ambientali.
Infine, con l’adozione crescente di Apple Silicon, è fondamentale tenere presente che alcune variabili d’ambiente potrebbero comportarsi in modo diverso. Gli sviluppatori dovrebbero testare le loro configurazioni sia su architetture Intel che Apple Silicon per garantire la massima compatibilità e prestazioni.