You can learn Arduino in 15 minutes.
Sommario:
- Variabili d'ambiente e variabili shell
- Elenco variabili di ambiente
- Impostazione delle variabili di ambiente
- Variabili di ambiente persistenti
- Conclusione
Nei sistemi basati su Linux e Unix le variabili d'ambiente sono un insieme di valori nominali dinamici, memorizzati nel sistema che vengono utilizzati dalle applicazioni lanciate in shell o subshells. In parole semplici, una variabile di ambiente è una variabile con un nome e un valore associato.
Le variabili di ambiente consentono di personalizzare il funzionamento del sistema e il comportamento delle applicazioni sul sistema. Ad esempio, la variabile di ambiente può archiviare informazioni sull'editor di testo o sul browser predefinito, il percorso dei file eseguibili o le impostazioni locali del sistema e il layout della tastiera.
In questa guida, spiegheremo come leggere e impostare le variabili di ambiente e shell.
Variabili d'ambiente e variabili shell
Le variabili hanno il seguente formato:
KEY=value KEY="Some other value" KEY=value1:value2
- I nomi delle variabili fanno distinzione tra maiuscole e minuscole. Per convenzione, le variabili di ambiente dovrebbero avere nomi MAIUSCOLI. Quando si assegnano più valori alla variabile, devono essere separati dai due punti
:
carattere. Non c'è spazio attorno al simbolo uguale a.
Le variabili possono essere classificate in due categorie principali, variabili di ambiente e variabili di shell.
Le variabili di ambiente sono variabili disponibili a livello di sistema e sono ereditate da tutti i processi e le shell figlio generati.
Le variabili di shell sono variabili che si applicano solo all'istanza di shell corrente. Ogni shell come
zsh
e
bash
, ha il proprio set di variabili shell interne.
Sono disponibili diversi comandi che consentono di elencare e impostare le variabili di ambiente in Linux:
-
env
- Il comando consente di eseguire un altro programma in un ambiente personalizzato senza modificare quello corrente. Se utilizzato senza un argomento, stamperà un elenco delle variabili di ambiente correnti.printenv
: il comando stampa tutte o le variabili di ambiente specificate.set
- Il comando imposta o annulla le variabili della shell. Se utilizzato senza un argomento, stamperà un elenco di tutte le variabili, comprese le variabili di ambiente e shell e le funzioni della shell.unset
: il comando elimina le variabili shell e ambiente.export
: il comando imposta le variabili di ambiente.
Elenco variabili di ambiente
Il comando più utilizzato per visualizzare le variabili di ambiente è
printenv
. Se il nome della variabile viene passato come argomento al comando, viene visualizzato solo il valore di quella variabile. Se non viene specificato alcun argomento,
printenv
stampa un elenco di tutte le variabili di ambiente, una variabile per riga.
Ad esempio, per visualizzare il valore della variabile d'ambiente
HOME
dovresti eseguire:
printenv HOME
L'output stamperà il percorso dell'utente attualmente connesso:
/home/linuxize
Puoi anche passare più di un argomento al comando
printenv
:
printenv LANG PWD
en_US /home/linuxize
printenv
L'output sarà simile al seguente:
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35;… LESSCLOSE=/usr/bin/lesspipe %s %s LANG=en_US S_COLORS=auto XDG_SESSION_ID=5 USER=linuxize PWD=/home/linuxize HOME=/home/linuxize SSH_CLIENT=192.168.121.1 34422 22 XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop SSH_TTY=/dev/pts/0 MAIL=/var/mail/linuxize TERM=xterm-256color SHELL=/bin/bash SHLVL=1 LANGUAGE=en_US: LOGNAME=linuxize XDG_RUNTIME_DIR=/run/user/1000 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin LESSOPEN=| /usr/bin/lesspipe %s _=/usr/bin/printenv
Di seguito sono riportate alcune delle variabili d'ambiente più comuni:
-
USER
: l'utente attualmente connesso.HOME
- La home directory dell'utente corrente.EDITOR
- L'editor di file predefinito da utilizzare. Questo è l'editor che verrà usato quando si digitaedit
nel proprio terminale.SHELL
- Il percorso della shell dell'utente corrente, come bash o zsh.LOGNAME
- Il nome dell'utente corrente.PATH
- Un elenco di directory da cercare durante l'esecuzione dei comandi. Quando si esegue un comando, il sistema cercherà quelle directory in questo ordine e utilizzerà il primo eseguibile trovato.LANG
- Le impostazioni locali correnti.TERM
- L'emulazione di terminale corrente.MAIL
- Posizione in cui è memorizzata la posta dell'utente corrente.
I comandi
printenv
ed
env
stampano solo le variabili di ambiente. Se si desidera ottenere un elenco di tutte le variabili, inclusi ambiente, shell e variabili e funzioni della shell, è possibile utilizzare il comando
set
:
set
BASH=/bin/bash BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=()
Il comando visualizzerà un ampio elenco di tutte le variabili, quindi probabilmente si desidera reindirizzare l'output al comando
less
.
set | less
Puoi anche usare il comando echo per stampare una variabile di shell. Ad esempio, per stampare il valore della variabile
BASH_VERSION
devi eseguire:
echo $BASH_VERSION
Impostazione delle variabili di ambiente
Per illustrare meglio la differenza tra le variabili Shell e Environment, inizieremo con l'impostazione delle variabili Shell e poi passeremo alle variabili Environment.
Per creare una nuova variabile shell con il nome
MY_VAR
e il valore
Linuxize
digita semplicemente:
MY_VAR='Linuxize'
Puoi verificare che la variabile sia impostata usando
echo $MY_VAR
per filtrare l'output del comando set con grep
set | grep MY_VAR
set | grep MY_VAR
:
echo $MY_VAR
Linuxize
Utilizzare il comando
printenv
per verificare se questa variabile è o meno una variabile di ambiente:
printenv MY_VAR
L'output sarà vuoto, il che ci dice che la variabile non è una variabile di ambiente.
Puoi anche provare a stampare la variabile in una sotto-shell e otterrai un output vuoto.
bash -c 'echo $MY_VAR'
Il comando
export
viene utilizzato per impostare le variabili di ambiente.
Per creare una variabile d'ambiente è sufficiente esportare la variabile shell come variabile d'ambiente:
export MY_VAR
Puoi verificarlo eseguendo:
printenv MY_VAR
Linuxize
bash -c 'echo $MY_VAR'
Linuxize
Puoi anche impostare le variabili di ambiente in una sola riga:
export MY_NEW_VAR="My New Var"
Le variabili d'ambiente create in questo modo sono disponibili solo nella sessione corrente. Se apri una nuova shell o se esci, tutte le variabili andranno perse.
Variabili di ambiente persistenti
Per rendere persistenti le variabili di ambiente è necessario definire tali variabili nei file di configurazione di bash. Nella maggior parte delle distribuzioni Linux quando si avvia una nuova sessione, le variabili di ambiente vengono lette dai seguenti file:
-
/etc/environment
: utilizzare questo file per impostare le variabili di ambiente a livello di sistema. Le variabili in questo file sono impostate nel seguente formato:FOO=bar
VAR_TEST="Test Var"
/etc/profile
- Le variabili impostate in questo file vengono caricate ogni volta che viene inserita una shell di login bash. Quando si dichiarano le variabili di ambiente in questo file è necessario utilizzare il comandoexport
:export JAVA_HOME="/path/to/java/home"
export PATH=$PATH:$JAVA_HOME/bin
File di configurazione specifici della shell per utente. Ad esempio, se si utilizza Bash, è possibile dichiarare le variabili in
~/.bashrc
:export PATH="$HOME/bin:$PATH"
Per caricare le nuove variabili di ambiente nella sessione della shell corrente utilizzare il comando
source
:
Conclusione
In questa guida, ti abbiamo mostrato come impostare ed elencare le variabili di ambiente e shell.
Sentiti libero di lasciare un commento in caso di domande.
terminaleEditor di ambiente rapido: un editor di variabili d`ambiente per Windows
Editor di ambiente rapido è un potente editor di valori di ambiente o variabili per Windows 10/8 / 7. Leggi la recensione, scarica Rapid EE gratis. Portatile disponibile.
Come elencare i gruppi in Linux
In Linux, un gruppo è una raccolta di utenti. Questo tutorial spiega come mostrare tutti i gruppi di cui un utente è membro. Spiegheremo anche come elencare tutti i membri di un gruppo.
Come elencare gli utenti in linux
Hai mai desiderato elencare tutti gli utenti nel tuo sistema Linux o contare il numero di utenti nel sistema? Esistono comandi per creare un utente, eliminare un utente, elencare gli utenti che hanno effettuato l'accesso, ma qual è il comando per elencare tutti gli utenti in Linux?