Android

Cum se setează și se listează variabilele de mediu în linux

GARDA DE MEDIU CAUTA VOLUNTARI ACTIVI 1602

GARDA DE MEDIU CAUTA VOLUNTARI ACTIVI 1602

Cuprins:

Anonim

În sistemele bazate pe Linux și Unix, variabilele de mediu sunt un set de valori numite dinamice, stocate în sistem care sunt utilizate de aplicațiile lansate în shell-uri sau subshells. În cuvinte simple, o variabilă de mediu este o variabilă cu un nume și o valoare asociată.

Variabilele de mediu vă permit să personalizați modul în care funcționează sistemul și comportamentul aplicațiilor pe sistem. De exemplu, variabila de mediu poate stoca informații despre editorul de text sau browserul implicit, calea către fișierele executabile sau setările locale și ale sistemului de configurare a tastaturii.

În acest ghid, vă vom explica să citiți și să setați variabilele de mediu și shell.

Variabile de mediu și variabile de coajă

Variabilele au următorul format:

KEY=value KEY="Some other value" KEY=value1:value2

  • Numele variabilelor sunt sensibile cu majuscule. Prin convenție, variabilele de mediu ar trebui să aibă nume CASE SUPERIOR. Când se atribuie mai multe valori variabilei, acestea trebuie separate prin punct : caractere.Nu există spațiu în jurul simbolului egal = .

Variabilele pot fi clasificate în două categorii principale, variabile de mediu și variabile shell.

Variabilele de mediu sunt variabile disponibile la nivelul întregului sistem și sunt moștenite de toate procesele și shell-urile copiilor.

Variabilele Shell sunt variabile care se aplică numai la instanța actuală de shell. Fiecare coajă, cum ar fi zsh și bash , are propriul său set de variabile interne.

Există mai multe comenzi disponibile care vă permit să enumerați și să setați variabile de mediu în Linux:

  • env - Comanda vă permite să rulați un alt program într-un mediu personalizat fără a-l modifica pe cel actual. Când este folosit fără argument, acesta va imprima o listă a variabilelor de mediu actuale. printenv - Comanda tipărește toate sau variabilele de mediu specificate. set - Comanda setează sau deselectează variabilele shell. Când este folosit fără un argument, acesta va imprima o listă cu toate variabilele, inclusiv variabilele de mediu și shell și funcțiile shell. unset - Comanda șterge variabilele shell și de mediu. export - Comanda setează variabile de mediu.

Listă variabile de mediu

Cea mai utilizată comandă pentru afișarea variabilelor de mediu este printenv . Dacă numele variabilei este transmis ca argument la comandă, se afișează numai valoarea acelei variabile. Dacă nu este specificat niciun argument, printenv tipărește o listă cu toate variabilele de mediu, o variabilă pe fiecare linie.

De exemplu, pentru a afișa valoarea variabilei de mediu HOME , ați rula:

printenv HOME

Ieșirea va imprima calea utilizatorului conectat în prezent:

/home/linuxize

De asemenea, puteți transmite mai multe argumente comenzii printenv :

printenv LANG PWD

en_US /home/linuxize

printenv

Rezultatul va arăta astfel:

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

Mai jos sunt câteva dintre cele mai comune variabile de mediu:

  • USER - Utilizatorul conectat curent. HOME - Directorul principal al utilizatorului curent. EDITOR - Editorul de fișiere implicit care va fi utilizat. Acesta este editorul care va fi utilizat când introduceți edit în terminal. SHELL - Calea shell-ului utilizatorului curent, cum ar fi bash sau zsh. LOGNAME - Numele utilizatorului curent. PATH - O listă de directoare care trebuie căutate la executarea comenzilor. Când executați o comandă, sistemul va căuta directoarele respective în această ordine și va folosi primul executabil găsit. LANG - Setările locale locale. TERM - Emulația curentă a terminalului. MAIL - Locația în care e-mailul utilizatorului curent este stocat.

Comenzile printenv și env tipăresc doar variabilele de mediu. Dacă doriți să obțineți o listă cu toate variabilele, inclusiv mediul, shell-ul și variabilele și funcțiile shell, puteți utiliza comanda 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=()

Comanda va afișa o listă mare de variabile, astfel încât probabil doriți să conectați ieșirea la comanda less .

set | less

De asemenea, puteți utiliza comanda ecou pentru a imprima o variabilă shell. De exemplu, pentru a imprima valoarea variabilei BASH_VERSION , ați rula:

echo $BASH_VERSION

4.4.19(1)-release

Setarea variabilelor de mediu

Pentru a ilustra mai bine diferența dintre variabilele Shell și Environment vom începe cu setarea Shell Variables și apoi vom trece la variabilele Environment.

Pentru a crea o nouă variabilă shell cu numele MY_VAR și valoarea Linuxize introduceți pur și simplu:

MY_VAR='Linuxize'

Puteți verifica dacă variabila este setată folosind echo $MY_VAR de filtrare a ieșirii comenzii set cu grep set | grep MY_VAR set | grep MY_VAR :

echo $MY_VAR

Linuxize

Utilizați comanda printenv pentru a verifica dacă această variabilă este o variabilă de mediu sau nu:

printenv MY_VAR

Rezultatul va fi gol, ceea ce ne spune că variabila nu este o variabilă de mediu.

Puteți încerca, de asemenea, să imprimați variabila într-o sub-shell și veți obține o ieșire goală.

bash -c 'echo $MY_VAR'

Comanda export este utilizată pentru a seta variabile de mediu.

Pentru a crea o variabilă de mediu, pur și simplu exportați variabila shell ca o variabilă de mediu:

export MY_VAR

Puteți verifica acest lucru rulând:

printenv MY_VAR

Linuxize

bash -c 'echo $MY_VAR'

Linuxize

Puteți seta, de asemenea, variabile de mediu într-o singură linie:

export MY_NEW_VAR="My New Var"

Mediu Variabilele create în acest fel sunt disponibile numai în sesiunea curentă. Dacă deschideți un shell nou sau dacă vă deconectați, toate variabilele vor fi pierdute.

Variabile persistente de mediu

Pentru a face persistente variabilele de mediu, trebuie să definiți acele variabile în fișierele de configurare bash. În majoritatea distribuțiilor Linux când începeți o nouă sesiune, variabilele de mediu sunt citite din următoarele fișiere:

  • /etc/environment - Utilizați acest fișier pentru a configura variabile de mediu la nivelul întregului sistem. Variabilele din acest fișier sunt setate în următorul format:

    FOO=bar VAR_TEST="Test Var"

    /etc/profile - Variabilele setate în acest fișier sunt încărcate de fiecare dată când este introdusă o casetă de conectare bash. Când declarați variabile de mediu din acest fișier, trebuie să utilizați comanda export :

    export JAVA_HOME="/path/to/java/home" export PATH=$PATH:$JAVA_HOME/bin

    Fișiere de configurare specifice pentru shell-user De exemplu, dacă utilizați Bash, puteți declara variabilele din ~/.bashrc :

    export PATH="$HOME/bin:$PATH"

Pentru a încărca noile variabile de mediu în sesiunea shell actuală, utilizați comanda source :

source ~/.bashrc

Concluzie

În acest ghid, v-am arătat cum puteți seta și enumera variabilele de mediu și shell.

Simțiți-vă liber să lăsați un comentariu dacă aveți întrebări.

Terminal