Come si imposta una variabile di ambiente in ZSH

Come si imposta una variabile di ambiente in ZSH

Se hai mai usato il terminale Linux, probabilmente sei a conoscenza delle variabili di ambiente. Le variabili di ambiente si riferiscono a un set di nomi di variabili dinamici che archiviano un valore che le applicazioni dalla shell Linux possono utilizzare.

Le variabili di ambiente arrivano come coppie di valore chiave in cui la chiave rappresenta il nome della variabile e un valore. È possibile personalizzare i valori delle variabili di ambiente, con le modifiche riflesse a livello globale su tutte le applicazioni lanciate dalla shell.

Questa guida discuterà di come interagire con le variabili di ambiente, la lettura e l'impostazione delle variabili di ambiente utilizzando la shell ZSH.

Come funzionano le variabili di ambiente

Prendiamo un momento per capire come funzionano le variabili di ambiente.

In Linux e in altri sistemi basati su Unix, ogni volta che lanciamo una nuova sessione di shell, inizializza un processo per raccogliere le informazioni che dovrebbero essere disponibili all'interno di quella sessione di shell e tutti i processi del figlio. Tali informazioni sono raccolte da file di configurazione come .zshrc, .Zlogin, ecc.

Lo scopo delle variabili di ambiente è fornire un mezzo semplice in cui la shell può recuperare o impostare le impostazioni relative al sistema.

Le variabili di ambiente prendono il seguente formato:

Tasto = valore
Tasto = value1: value2

Se la variabile di ambiente contiene più valori, ogni valore è separato da un colon (:). Un famoso esempio di tale variabile di ambiente è il percorso $.

Allo stesso modo, se il valore della variabile di ambiente contiene spazi, il valore è racchiuso in una coppia di virgolette come:

Key = "Valore con gli spazi"

Le variabili di ambiente sono sensibili al caso. Si consiglia di utilizzare i nomi maiuscoli per le variabili di ambiente per distinguerli in altri contesti.

Non dovresti includere spazi attorno al segno uguale (=).

Esistono due tipi principali di variabili:

  1. variabili ambientali
  2. Variabili di shell.

variabili ambientali

Le variabili di ambiente sono variabili globali ereditate da tutte le conchiglie e dai corrispondenti processi figlio.

Variabili di shell

D'altra parte, le variabili della shell sono disponibili all'interno della shell in cui sono definite o impostate. Sono comunemente usati per archiviare dati temporanei e vengono automaticamente distrutti una volta terminata la sessione di shell.

Ogni guscio come bash, zsh, pesce e altri contengono il proprio set di variabili di conchiglia.

Come stampare variabili di ambiente

Varie shell Linux tengono traccia delle loro variabili di shell e ambiente predefinite. Possiamo visualizzare queste variabili usando vari comandi.

Il comando più comune per visualizzare le variabili di ambiente è il comando printenv. Se si esegue questo comando senza argomenti, stampa tutte le variabili di ambiente come mostrato nell'esempio seguente:

Printenv

Il comando sopra dovrebbe stampare tutte le variabili di ambiente come mostrato:

Shell =/bin/zsh
Session_manager = local/debian10.Locale:@/tmp/.GHIACCIO-
Unix/964, Unix/Debian10.locale:/tmp/.Ice-Unix/964
Qt_accessibility = 1
Colorterm = TrueColor
Xdg_menu_prefix = gnome-
Gnome_desktop_session_id = this-is deprecated
Ssh_auth_sock =/run/utente/1000/keyring/ssh
Desktop_session = gnome
GTK_MODULES = GAIL: ATK-BRIDGE
XDG_SEAT = Seat0
PWD =/Home/Debian
Xdg_session_desktop = gnome
Logname = debian
XDG_SESSION_TYPE = Wayland
GJS_DEBUG_TOPICS = JS ERROR; JS LOG
Gdm_lang = en_us.UTF-8
Home =/Home/Debian
Nome utente = Debian
---------Output troncato-------------------------------------

Usando il comando PrintEnv, è possibile stampare una singola variabile passandola come argomento. Ad esempio, per mostrare il valore del percorso $, è possibile utilizzare il comando:

PATURAMENTO PRINTENV

Il comando dovrebbe restituire il valore della variabile del percorso come:

/USR/Local/Bin:/USR/Bin:/Bin:/USR/Local/Games:/USR/Games

È inoltre possibile passare più variabili al comando PrintEnv come:

$ printenv Path Home Nome utente
/USR/Local/Bin:/USR/Bin:/Bin:/USR/Local/Games:/USR/Games
/Home/Debian
Debian

Il comando deve stampare i valori delle variabili di ambiente passate ciascuna in una riga.

MANCIA: È inoltre possibile utilizzare il comando ENV per stampare o impostare i valori delle variabili di ambiente.

Variabili di ambiente popolari

Di seguito sono riportate alcune variabili di ambiente standard.

  • CASA - Rappresenta la directory home per l'utente attuale.
  • CONCHIGLIA - Mostra il percorso della shell dell'utente corrente.
  • UTENTE - Mostra l'utente attualmente loggato.
  • SENTIERO - Contiene un elenco di directory da cercare per file eseguibili quando viene eseguito un comando.
  • Lang - Mostra le impostazioni locali, inclusa la codifica dei caratteri
  • TERMINE - Si riferisce all'emulazione del terminale corrente.
  • _ - Mostra il comando precedentemente eseguito per quell'utente.

Come stampare le variabili di shell

Entrambi i comandi Printenv e Env mostreranno solo le variabili di ambiente. Utilizzare il comando SET per visualizzare tutte le variabili, tra cui shell e variabili locali, funzioni e variabili di ambiente.

Se si esegue il comando set senza parametri, stamperà tutte le variabili come:

impostato

Ecco un esempio di esempio:

'!'= 0
'#' = 0
'$' = 2801
'*' = ()
-= 569jnrxzghiklms
0 = zsh
'?'= 0
@= ()
Argc = 0
Bg
Cdpath = "
Colorterm = TrueColor
Colonne = 211
Cputype = x86_64
Dbus_session_bus_address = 'unix: path =/run/utente/1000/bus'
Desktop_session = gnome
Display =: 0
Egid = 1000
Epocrealtime
Epochesecondi
EUID = 1000
Fg
Fignore = "
Fpath =/home/debian/.OH-My-Zsh/Plugins/Git:/Home/Debian/.Oh mio-
ZSH/FUNZIONI:/Home/Debian/.oh-my-zsh/completamenti
---Output troncato----------------------------------------

I valori stampati dal comando set sono in genere un enorme elenco di elementi che è possibile filtrare con le vesche di output a comandi come GREP.

Variabili di shell popolari

Sebbene le variabili della shell varieranno a seconda della shell che si sta usando; I seguenti sono comuni nella shell ZSH.

  • ZSH_VERSION - La versione della shell Zsh viene eseguita.
  • RICHIESTA - Mostra i segnaposto per il formato di prompt ZSH corrente. Simile a $ PS1.
  • Istsize - Numero di comandi di cronologia memorizzati nella memoria.
  • Histfile - Percorso al file della cronologia dei comandi ZSH.
  • Zsh_name - Nome shell ZSH.
  • Uid - Uid dell'utente attuale.
  • Ifs - Memorizza il valore del separatore di campo interno.

Come impostare le variabili di ambiente in ZSH

Per impostare le variabili di ambiente, utilizziamo il comando di esportazione. La sintassi è:

tasto di esportazione = valore

Ad esempio, per creare una variabile HTTP_Proxy e impostarla su un URL, possiamo fare:

Esporta http_proxy = "http: // 127.0.0.1: 8080 "

Per verificare la creazione della variabile, possiamo usare il comando printenv come:

printenv http_proxy
http: // 127.0.0.1: 8080

Una volta impostata una variabile di ambiente, puoi accedervi da tutti i processi figlio. Per esempio:

ZSH -C 'echo $ http_proxy'

Tuttavia, le variabili di ambiente create nel metodo discusso sopra sono disponibili solo all'interno della sessione di shell corrente. Una volta chiusa, tutte le variabili di ambiente vengono distrutte.

Come creare variabili di ambiente permanente

Se si desidera creare una variabile di ambiente che possa persistere tra le sessioni di shell, è possibile utilizzare i file di configurazione della shell.

In ZSH, è possibile definire le variabili di ambiente in .File ZSHRC.

Allo stesso modo, è necessario utilizzare il comando di esportazione come:

vim ~/.zshrc
Esporta http_proxy- "http: // 127.0.0.1: 8080 "

Chiudi e salva il file.

Per caricare le variabili di ambiente nella sessione di shell corrente, utilizzare il comando di origine come:

Fonte ~/.zshrc

Conclusione

In questa guida, abbiamo discusso di come lavorare con le variabili ambientali e shell nei sistemi Linux. Abbiamo anche imparato come impostare le variabili di ambiente e applicare la persistenza attraverso le sessioni di shell.

Grazie per aver letto.