GNU/Linux >> Linux Esercitazione >  >> Linux

Come impostare e annullare l'impostazione di variabili di ambiente locali, utente e a livello di sistema in Linux

Variabili d'ambiente sono alcune variabili speciali che sono definite nella shell e sono necessarie ai programmi durante l'esecuzione. Possono essere definiti dal sistema o definiti dall'utente. Le variabili definite dal sistema sono quelle impostate dal sistema e utilizzate dai programmi a livello di sistema.

Per es. Il comando PWD è una variabile di sistema molto comune che viene utilizzata per memorizzare la directory di lavoro attuale. Le variabili definite dall'utente sono in genere impostate dall'utente, temporaneamente per la shell corrente o in modo permanente. L'intero concetto di impostazione e disimpostazione delle variabili di ambiente ruota attorno a un insieme di file e pochi comandi e shell diverse.

In termini più ampi, una variabile di ambiente può essere di tre tipi:

1. Variabile di ambiente locale

Uno definito per la sessione corrente. Queste variabili di ambiente durano solo fino alla sessione corrente, che si tratti di una sessione di accesso remoto o di una sessione del terminale locale. Queste variabili non sono specificate in nessun file di configurazione e vengono create e rimosse utilizzando un insieme speciale di comandi.

2. Variabile d'ambiente utente

Queste sono le variabili che sono definite per un particolare utente e vengono caricate ogni volta che un utente effettua l'accesso utilizzando una sessione di terminale locale o quell'utente effettua l'accesso utilizzando una sessione di accesso remoto. Queste variabili sono generalmente impostate e caricate dai seguenti file di configurazione:.bashrc , .bash_profile , .bash_login , .profile file presenti nella home directory dell'utente.

3. Variabili d'ambiente a livello di sistema

Queste sono le variabili di ambiente che sono disponibili a livello di sistema, ovvero per tutti gli utenti presenti su quel sistema. Queste variabili sono presenti nei file di configurazione a livello di sistema presenti nelle seguenti directory e file:/etc/environment , /etc/profile , /etc/profile.d/ , /etc/bash.bashrc . Queste variabili vengono caricate ogni volta che il sistema viene acceso e connesso in locale o in remoto da qualsiasi utente.

Comprensione dei file di configurazione a livello di utente e di sistema

Qui, descriviamo brevemente vari file di configurazione sopra elencati che contengono variabili d'ambiente, a livello di sistema o specifiche dell'utente.

.bashrc

Questo file è un file specifico dell'utente che viene caricato ogni volta che l'utente crea una nuova sessione locale, ovvero, in parole semplici, apre un nuovo terminale. Tutte le variabili di ambiente create in questo file avranno effetto ogni volta che viene avviata una nuova sessione locale.

.bash_profile

Questo file è un file di accesso remoto specifico dell'utente. Le variabili di ambiente elencate in questo file vengono richiamate ogni volta che l'utente esegue l'accesso in remoto, ovvero utilizzando la sessione ssh. Se questo file non è presente, il sistema cerca .bash_login o .profile file.

/etc/ambiente

Questo file è un file a livello di sistema per creare, modificare o rimuovere qualsiasi variabile di ambiente. Le variabili di ambiente create in questo file sono accessibili in tutto il sistema, da ogni singolo utente, sia in locale che in remoto.

/etc/bash.bashrc

bashrc a livello di sistema file. Questo file viene caricato una volta per ogni utente, ogni volta che l'utente apre una sessione del terminale locale. Le variabili di ambiente create in questo file sono accessibili a tutti gli utenti ma solo tramite la sessione del terminale locale. Quando si accede in remoto a qualsiasi utente su quella macchina tramite una sessione di accesso remoto, queste variabili non sarebbero visibili.

/etc/profilo

File di profilo a livello di sistema. Tutte le variabili create in questo file sono accessibili da ogni utente del sistema, ma solo se la sessione di quell'utente viene richiamata in remoto, cioè tramite login remoto. Qualsiasi variabile in questo file non sarà accessibile per la sessione di accesso locale, ad esempio quando l'utente apre un nuovo terminale sul suo sistema locale.

Nota :variabili di ambiente create utilizzando a livello di sistema o a livello di utente i file di configurazione possono essere rimossi rimuovendoli solo da questi file. Solo che dopo ogni modifica in questi file, disconnettiti e accedi di nuovo o digita semplicemente il seguente comando sul terminale per rendere effettive le modifiche:

$ source <file-name>

Imposta o annulla l'impostazione di variabili di ambiente locali o a livello di sessione in Linux

Variabili di ambiente locale può essere creato utilizzando i seguenti comandi:

$ var=value 
OR
$ export var=value

Queste variabili sono a livello di sessione e sono valide solo per la sessione del terminale corrente. Per cancellare queste variabili di ambiente a livello di sessione possono essere utilizzati i seguenti comandi:

1. Utilizzo dell'ambiente

Per impostazione predefinita, "env" comando elenca tutte le variabili di ambiente correnti. Ma, se usato con '-i' switch, cancella temporaneamente tutte le variabili di ambiente e consente all'utente di eseguire un comando nella sessione corrente in assenza di tutte le variabili di ambiente.

$ env –i [Var=Value]… command args…

Qui, var=value corrisponde a qualsiasi variabile di ambiente locale che desideri utilizzare solo con questo comando.

$ env –i bash

Fornirà una shell bash che temporaneamente non avrebbe nessuna delle variabili di ambiente. Ma, uscendo dalla shell, tutte le variabili verrebbero ripristinate.

2. Utilizzo di disinserimento

Un altro modo per cancellare la variabile di ambiente locale consiste nell'usare il comando unset. Per annullare temporaneamente l'impostazione di qualsiasi variabile di ambiente locale,

$ unset <var-name>

Dove, var-name è il nome della variabile locale che vuoi de-impostare o cancellare.

3. Imposta il nome della variabile su ”

Un altro modo meno comune sarebbe impostare il nome della variabile che vuoi cancellare su '' (Vuoto). Ciò cancellerebbe il valore della variabile locale per la sessione corrente per la quale è attiva.

NOTA – PUOI ANCHE GIOCARE E CAMBIARE I VALORI DI VARIABILI DI SISTEMA O AMBIENTE UTENTE, MA I CAMBIAMENTI SI RIFLETTEREBBERO SOLO NELLA SESSIONE TERMINALE ATTUALE E NON SARANNO PERMANENTI.

Scopri come creare variabili di ambiente a livello di utente e di sistema in Linux

Nella sezione, impareremo come impostare o annullare l'impostazione di variabili di ambiente locali, utente e di sistema in Linux con gli esempi seguenti:

1. Imposta e annulla l'impostazione di variabili locali in Linux

a.) Qui creiamo una variabile locale VAR1 e impostalo su qualsiasi valore. Quindi, utilizziamo unset per rimuovere quella variabile locale e alla fine quella variabile viene rimossa.

$ VAR1='TecMint is best Site for Linux Articles'
$ echo $VAR1
$ unset VAR1
$ echo $VAR1

b.) Un altro modo per creare una variabile locale è usare export comando. La variabile locale creata sarà disponibile per la sessione corrente. Per annullare l'impostazione della variabile è sufficiente impostare il valore della variabile su '' .

$ export VAR='TecMint is best Site for Linux Articles'
$ echo $VAR
$ VAR=
$ echo $VAR

c.) Qui, abbiamo creato una variabile locale VAR2 e impostalo su un valore. Quindi, per eseguire un comando che cancella temporaneamente tutte le variabili locali e di altro ambiente, abbiamo eseguito 'env –i' comando. Questo comando qui esegue la shell bash cancellando tutte le altre variabili di ambiente. Dopo aver inserito 'exit' sulla shell bash richiamata, tutte le variabili verrebbero ripristinate.

$ VAR2='TecMint is best Site for Linux Articles'
$ echo $VAR2
$ env -i bash
$ echo $VAR2   

2. Imposta e disimposta variabili di ambiente a livello di utente in Linux

a.) Modifica .bashrc nella tua home directory per esportare o impostare la variabile di ambiente che devi aggiungere. Dopo quella fonte il file, per rendere effettive le modifiche. Quindi vedresti la variabile ('CD' nel mio caso), con effetto. Questa variabile sarà disponibile ogni volta che aprirai un nuovo terminale per questo utente, ma non per le sessioni di accesso remoto.

$ vi .bashrc

Aggiungi la seguente riga a .bashrc file in fondo.

export CD='This is TecMint Home'

Ora esegui il comando seguente per prendere nuove modifiche e testarlo.

$ source .bashrc 
$ echo $CD

Per rimuovere questa variabile, rimuovi semplicemente la riga seguente in .bashrc file e re-source it:

b.) Per aggiungere una variabile che sarà disponibile per le sessioni di accesso remoto (cioè quando ssh all'utente dal sistema remoto), modificare .bash_profile file.

$ vi .bash_profile

Aggiungi la seguente riga a .bash_profile file in fondo.

export VAR2='This is TecMint Home'

Quando si cerca questo file, la variabile sarà disponibile quando si invia un ssh a questo utente, ma non all'apertura di un nuovo terminale locale.

$ source .bash_profile 
$ echo $VAR2

Qui, VAR2 inizialmente non è disponibile ma, eseguendo ssh per l'utente su localhost, la variabile diventa disponibile.

$ ssh [email protected]
$ echo $VAR2

Per rimuovere questa variabile, rimuovi semplicemente la riga in .bash_profile file che hai aggiunto e re-source il file.

NOTA :queste variabili saranno disponibili ogni volta che accedi all'utente corrente ma non per altri utenti.

3. Imposta e annulla l'impostazione di variabili d'ambiente a livello di sistema in Linux

a.) Per aggiungere una variabile no-login a livello di sistema (cioè una che è disponibile per tutti gli utenti quando uno di loro apre un nuovo terminale ma non quando qualsiasi utente della macchina ha accesso remoto) aggiungi la variabile a /etc/bash.bashrc file.

export VAR='This is system-wide variable'

Successivamente, crea il file.

$ source /etc/bash.bashrc 

Ora questa variabile sarà disponibile per ogni utente quando aprirà un nuovo terminale.

$ echo $VAR
$ sudo su
$ echo $VAR
$ su -
$ echo $VAR

Qui, la stessa variabile è disponibile per root utente così come utente normale. Puoi verificarlo accedendo a un altro utente.

b.) Se vuoi che qualsiasi variabile di ambiente sia disponibile quando uno qualsiasi degli utenti sulla tua macchina è connesso in remoto, ma non all'apertura di un nuovo terminale sulla macchina locale, devi modificare il file – '/etc/profile' .

export VAR1='This is system-wide variable for only remote sessions'

Dopo aver aggiunto la variabile, è sufficiente re-source il file. Quindi la variabile sarebbe disponibile.

$ source /etc/profile
$ echo $VAR1

Per rimuovere questa variabile, rimuovi la riga da /etc/profile file e re-source it.

c.) Tuttavia, se si desidera aggiungere qualsiasi ambiente che si desidera sia disponibile in tutto il sistema, sia nelle sessioni di accesso remoto che nelle sessioni locali (cioè l'apertura di una nuova finestra di terminale) per tutti gli utenti, è sufficiente esportare la variabile in /etc/ambiente file.

export VAR12='I am available everywhere'

Dopodiché, solo l'origine del file e le modifiche avranno effetto.

$ source /etc/environment
$ echo $VAR12
$ sudo su
$ echo $VAR12
$ exit
$ ssh localhost
$ echo $VAR12

Qui, come vediamo, la variabile d'ambiente è disponibile per l'utente normale, l'utente root, così come per la sessione di accesso remoto (qui, a localhost ).

Per cancellare questa variabile, rimuovi semplicemente la voce in /etc/environment file e re-source it o accedi di nuovo.

NOTA :le modifiche hanno effetto quando si crea il file. In caso contrario, potrebbe essere necessario disconnettersi e accedere nuovamente.

Conclusione

Pertanto, questi sono alcuni modi in cui possiamo modificare le variabili di ambiente. Se trovi nuovi e interessanti trucchi per lo stesso, menzionalo nei tuoi commenti.


Linux
  1. Come impostare o modificare il nome host del sistema in Linux

  2. Come impostare/creare variabili di ambiente e shell in Linux

  3. Esempi di comandi di esportazione Linux (come impostare le variabili di ambiente)

  4. Variabili d'ambiente utente con "su" e "sudo" in Linux

  5. Come impostare le variabili di ambiente Linux con Ansible

Come impostare ed elencare le variabili di ambiente in Linux

Come impostare o modificare il nome host in Linux

Come impostare ed elencare variabili ambientali in Linux

Come impostare/disimpostare le variabili d'ambiente in Linux

Come modificare o impostare la password utente in Linux

Come impostare e annullare l'impostazione delle variabili di ambiente su Linux