Introduzione
Le variabili d'ambiente sono un modo per memorizzare i valori sulla macchina locale (quella che esegue il programma). Ad esempio, è possibile memorizzare un ID utente che verrebbe utilizzato per accedere a un sistema. È inoltre possibile utilizzare le variabili di ambiente per archiviare le impostazioni di configurazione come il nome di una connessione al database.
Quando si impostano le variabili di ambiente, è importante considerare le implicazioni sulla sicurezza. Se un utente malintenzionato è in grado di accedere alle tue variabili di ambiente, potrebbe ottenere l'accesso a informazioni sensibili come nome utente e password. Pertanto, è importante proteggere i nomi delle variabili di ambiente.
Chi è nuovo su Mac può essere sopraffatto da come impostare e gestire queste variabili di ambiente. Questa guida fornisce modi semplici per farlo.
Visualizzare le variabili di ambiente correnti
Per visualizzare tutte le variabili di ambiente, apri un terminale su macOS e digita:
printenv
Possiamo anche utilizzare il comando echo per stampare i valori delle variabili di ambiente specifiche:
echo $JAVA_HOME
/usr/local/Cellar/openjdk@11/11.0.16.1/libexec/openjdk.jdk/Contents/Home
Per impostazione predefinita, la maggior parte delle distribuzioni Linux espongono le variabili d'ambiente come coppie key=value (ad esempio, chiave=”valore”). Queste coppie sono normalmente memorizzate in file come /etc/paths
o /etc/defaults/key1
o in altre posizioni. In alcuni casi, possono essere esposti inserendo voci speciali nel file .bashrc
o .profile
di una shell.
Impostare una variabile d'ambiente temporanea
Una variabile di ambiente temporanea è una variabile definita nel buffer del processo che esiste solo durante l'esecuzione del programma. Viene perso quando il programma termina o se il processo termina e non è disponibile per altri programmi.
Il valore della variabile di ambiente temporanea viene perso al termine del processo dell'applicazione o quando lo si interrompe. Il valore di una variabile di ambiente temporanea può essere recuperato con lo strumento Process Monitor.
export MY_VAR=value
Quindi stampa il valore if MY_VAR con il comando echo
:
export $MY_VAR
Vedrai il valore assegnato come output. Ma se apri un nuovo terminale e provi a stampare la stessa variabile.
Pertanto, l'ambito della variabile di ambiente esportata manualmente è solo la shell attiva.
Impostare una variabile d'ambiente permanente
Una variabile di ambiente permanente è definita nel file di configurazione di un'applicazione. Persiste anche dopo fork ed exec ed è disponibile per l'uso da parte di tutti i processi nello stesso contesto di esecuzione (ovvero tutti i processi su un singolo computer). Le variabili di ambiente permanenti non vengono perse al termine del processo dell'applicazione o quando lo si termina.
Poiché l'ultimo macOS utilizza la shell Zsh, quindi possiamo aggiungere le variabili di ambiente al file ~/.zshrc
o ~/.zshenv
per l'utente corrente. Ad esempio, per creare la variabile di ambiente JAVA_HOME
e aggiornare anche PATH
per includere JAVA_HOME
. Modifica ~/.zshenv
e aggiungi i seguenti valori:
export JAVA_HOME=$(/usr/libexec/java_home -v11)
export PATH="$JAVA_HOME/bin:$PATH"
La prima riga imposta la variabile d'ambiente JAVA_HOME e il secondo comando antepone la directory bin Java alla variabile d' ambiente PATH.
Conclusione
Più vecchio di macOS 10.15 utilizza la shell Bash come impostazione predefinita. La modifica di quell'utente ~/bash_profile
per l'aggiunta di variabili d'ambiente permanenti.