Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Televizoare (Smart TV)
  • Variabile de mediu Linux, variabile shell. Citirea și setarea variabilelor de mediu și Shell pe un server Linux Aflați cum să creați variabile de mediu pentru utilizator și sistem în Linux

Variabile de mediu Linux, variabile shell. Citirea și setarea variabilelor de mediu și Shell pe un server Linux Aflați cum să creați variabile de mediu pentru utilizator și sistem în Linux

Conceptul de parametru în shell bash similar conceptului de variabilă din limbajele de programare convenționale. Numele (sau identificatorul) parametrului poate fi un cuvânt format din caractere alfabetice, numere și litere de subliniere (numai primul caracter al cuvântului nu poate fi un număr), un număr sau unul dintre următoarele caractere speciale: * , @ , # , ? , - (cratimă), $ , ! , 0 , _ (subliniere).

Se spune că un parametru este setat sau setat dacă îi este atribuită o valoare. Valoarea poate fi, de asemenea, un șir gol. Pentru a afișa valoarea unui parametru, utilizați simbolul $ înaintea numelui său. Da, echipa

$ ecou nume

va afișa cuvântul pe ecran Nume, și echipa

$echo $nume

va returna valoarea variabilei nume (dacă este setată una, desigur).

5.6.1 Varietăți de parametri

Parametrii sunt împărțiți în trei clase: parametri de poziție, parametri speciali(ale căror nume sunt caracterele speciale doar enumerate) și variabile shell.

Nume (identificatori) parametrii poziționali constau din una sau mai multe cifre (nu un singur zero). Valorile parametrului pozițional sunt argumentele care au fost date la pornirea shell-ului (primul argument este valoarea parametrului pozițional 1 etc.). Puteți modifica valoarea unui parametru de poziție folosind comanda încorporată a stabilit. Valorile acestor parametri se modifică, de asemenea, în timp ce shell-ul execută una dintre funcții (acest lucru va fi discutat mai jos, în secțiune 5.8).

Parametri speciali sunt modele, a căror înlocuire (înlocuire) se efectuează după cum urmează.

Tabelul 5.2. Parametri speciali.

Parametru

Reguli de înlocuire

Înlocuit cu parametri de poziție, începând de la primul. Dacă înlocuirea se face între ghilimele duble, atunci acest parametru este înlocuit cu un singur cuvânt format din toți parametrii de poziție, despărțiți de primul caracter al variabilei speciale IFS (discutat mai jos). Adică, ``$*"" este echivalent cu ``$1c$2c...", unde c este primul caracter din valoarea variabilei IFS. Dacă IFS este setat la gol sau nu are setată nicio valoare, parametrii sunt separați prin spații

Înlocuit cu parametri de poziție, începând de la primul. Dacă înlocuirea se face între ghilimele duble, atunci fiecare parametru este înlocuit cu un cuvânt separat. Astfel, `` $@"" este echivalent cu ""$1"" ""$2""... Dacă nu există parametri de poziție, atunci nu este atribuită nicio valoare (parametrul @ este pur și simplu eliminat)

Înlocuit cu valoarea zecimală a numărului de parametri de poziție

Înlocuit cu starea de ieșire a ultimului canal de program din prim-plan care rulează

(cratimă)

Înlocuit cu setul curent de valori ale steagurilor setate folosind comanda încorporată a stabilit sau la pornirea carcasei în sine

Înlocuit cu identificatorul de proces (P ID) al shell-ului

Înlocuit cu identificatorul de proces (P ID) al celei mai recente comenzi de fundal executată (execută asincron)

Înlocuit cu numele shell-ului sau al scriptului de rulat. Dacă bash rulează pentru a executa un fișier batch, $0 este numele fișierului. În caz contrar, această valoare este egală cu calea completă către shell

(subliniat)

Înlocuit cu ultimul argument al comenzii precedente executate (dacă acesta este un parametru sau o variabilă, atunci valoarea acestuia este înlocuită)

Parametrii speciali enumerați în tabelul de mai sus diferă prin faptul că pot fi doar referiți; Nu le puteți atribui valori.

Variabil din punctul de vedere al cochiliei, este un parametru notat printr-un nume. Valorile sunt atribuite variabilelor folosind următorul operator:

$nume=valoare

Unde Nume este numele variabilei și valoare— valoarea care i se atribuie (poate fi un șir gol). Numele variabilei poate consta doar din cifre și litere și nu poate începe cu un număr. Valoarea poate fi orice text. Dacă o valoare conține caractere speciale, aceasta trebuie inclusă între ghilimele. Valoarea atribuită nu conține aceste ghilimele, desigur. Dacă variabila este setată, aceasta poate fi eliminată folosind comanda încorporată shell dezinstalat.

Setul tuturor variabilelor shell setate cu valorile lor atribuite se numește mediu sau mediu shell. Îl puteți vizualiza folosind comanda a stabilit fără parametri (doar poate ar trebui să organizați o conductă "setează | mai puțin"). Ieșirea acestei comenzi listează toate variabilele de mediu în ordine alfabetică. Pentru a vedea valoarea unei anumite variabile, puteți în locul comenzii a stabilit(în ieșirea căreia încă mai puteți căuta și căuta variabila dorită) puteți utiliza comanda

$echo $nume

(totuși, în acest caz trebuie să cunoașteți numele variabilei care vă interesează).

Printre variabilele pe care le veți vedea în rezultatul comenzii se numără a stabilit, există câteva variabile foarte interesante. De exemplu, acordați atenție variabilei RANDOM. Dacă executați comanda de mai multe ori la rând

$ echo $RANDOM

veți obține o nouă valoare de fiecare dată. Faptul este că această variabilă returnează un număr întreg aleatoriu din intervalul 0 - 32.768.

5.6.2 Solicitări Shell

Una dintre variabilele foarte importante are un nume PS1. Această variabilă specifică tipul de invitație care bash Afișează când așteaptă următoarea comandă să fie introdusă de către utilizator. În mod implicit, această variabilă este setată la „\s-\v\$”. De fapt în bash Există patru invitații care sunt folosite în situații diferite. Variabil PS1 specifică tipul de prompt care este emis atunci când shell-ul așteaptă să fie introdusă o comandă. Prompt secundar specificat de variabilă PS2, apare atunci când shell-ul așteaptă ca utilizatorul să introducă mai multe date necesare pentru continuarea comenzii sau programului care rulează. Variabilă implicită PS2 are sensul " >" . Este posibil să fi văzut deja această solicitare când ați executat comanda pisică pentru a introduce date de la tastatură într-un fișier. Un alt exemplu este comanda ftp, după lansare căreia invitația ia și această formă.

Prompt variabil PS3, folosit la comandă Selectați. Prompt variabil PS4, este tipărit înainte de fiecare comandă la momentul respectiv bash monitorizează progresul execuției. Valoarea implicită este " + ".

Dacă doriți, puteți schimba tipul de variabile PS1Și PS2. În acest caz, puteți utiliza orice simboluri introduse de la tastatură, precum și un anumit număr de caractere speciale, care, la generarea șirului de prompt, sunt decodificate în conformitate cu Tabelul. 5.3 (enumerăm doar câteva dintre ele, de exemplu; pentru o listă completă, consultați pagina de manual pentru utilitar bash) .

Tabelul 5.3. Caractere speciale pentru generarea unei invitații

Simbol

Intelesul sau

Bip (cod ASCII 07)

Data în formatul „Zi, lună, zi”, de exemplu, miercuri, octombrie, 17.

Nume gazdă până la primul punct

Nume complet de gazdă

Ora curentă în format de 24 de ore: HH:MM:SS (ore:minute:secunde)

Ora curentă în format de 12 ore: HH:MM:SS

Ora curentă în format de 12 ore am/pm

Numele utilizatorului care a pornit shell-ul

Numele complet al directorului de lucru curent (începând de la rădăcină)

Director de lucru curent (nu este specificată o cale)

Simbolul # dacă shell-ul rulează ca superutilizator și simbolul $ , dacă shell-ul este pornit de un utilizator normal.

\nnn

Caracterul având codul octal nnn

Linie nouă (line feed)

Numele cochiliei

Numărul actual al echipei

O bară oblică inversă

Începutul unei secvențe de caractere care nu se imprimă (acest caracter poate fi folosit pentru a include o secvență de caractere de control terminal în textul descrierii)

Sfârșitul secvenței de caractere neprintabile

Numărul de serie al acestei comenzi în istoricul comenzilor

Numărul comenzii curente (numărul de serie al comenzii care se execută în cadrul sesiunii curente) poate diferi de numărul acestei comenzi din lista istoricului comenzilor, deoarece aceasta din urmă include comenzile care au fost salvate în fișierul istoric al comenzilor.

Odată ce valoarea unei variabile care definește un indiciu a fost citită de shell, pot fi făcute substituții conform regulilor de extindere a parametrilor, substituții în numele comenzilor și expresii aritmetice și împărțirea cuvintelor. Aceste reguli vor fi discutate mai jos, în secțiune. 5.7.

De exemplu, după executarea comenzii (deoarece există un spațiu în șir, sunt necesare ghilimele)

# PS1="[\u@\h \W]\$"

promptul standard va afișa o paranteză pătrată, nume de utilizator, simbol @ , numele computerului, spațiul, numele directorului curent (fără cale), paranteza pătrată de închidere și simbol $ (dacă un utilizator simplu rulează în shell) sau # (dacă shell-ul rulează ca root).

5.6.3 Variabilă CALE

O altă variabilă foarte importantă are un nume CALE. Specifică o listă de căi către directoare în care bash caută fișiere (în special fișiere cu comenzi) în cazurile în care calea completă către fișier nu este specificată pe linia de comandă. Directoarele individuale din această listă sunt separate prin două puncte. Variabilă implicită CALE include directoare /usr/local/bin, /bin, /usr/bin, /usr/X11R6/bin, adică arată așa:

/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:

Pentru a adăuga un director la această listă, trebuie să rulați următoarea comandă:

# PATH=$PATH:nouă_cale.

Când se efectuează o căutare, shell-ul caută directoarele în ordinea în care sunt listate în variabila PATH.

Rețineți că puteți include directorul curent în această listă adăugând un punct la variabila PATH. Totuși, acest lucru nu este recomandat din motive de securitate: un atacator ar putea pune o comandă într-un director public al cărui nume se potrivește cu una dintre comenzile executate frecvent de superutilizator, dar efectuează acțiuni complet diferite (mai ales dacă directorul curent se află la începutul lista de căi de căutare).

5.6.4 Variabilă IFS

Această variabilă specifică Separatorul de câmp intern care este utilizat în operația de împărțire a cuvintelor a conversiilor în linia de comandă efectuate de shell înainte de a rula linia de comandă pentru execuție. Valoarea implicită a acestei variabile este "<Пробел><Символ_ новой_ строки>".

5.6.5 Directoare curente și de acasă

Numele directorului curent este stocat într-o variabilă de mediu (numită PWD), iar valoarea acestei variabile se modifică de fiecare dată când programul este pornit CD(și, de asemenea, atunci când schimbați directorul curent în orice alt mod, de exemplu, prin Midnight Commander).

În mod similar, numele complet (și calea) directorului principal al utilizatorului care a lansat procesul este stocat în variabila HOME.

5.6.6 Echipa export

Când shell-ul rulează un program sau o comandă, le transmite unele variabile de mediu. Pentru ca o variabilă de mediu să fie transmisă unui proces lansat din shell, aceasta trebuie setată folosind o comandă specială export, adică în schimb

$nume=valoare

trebuie să-l notezi

$nume export=valoare

În acest caz, toate programele lansate din shell (inclusiv instanțele secundare ale shell-ului în sine) vor avea acces la variabilele definite în acest fel, adică își pot apela valorile după nume.

V. Kostromin (kos la rus-linux dot net) - 5.6. Parametri și variabile. Mediul Shell

Variabile de mediu ( variabilă de mediu) sunt folosite pentru a stoca valori variabile comune în diferite scripturi și programe. Astfel de variabile pot fi setate pentru un timp, de exemplu, pentru perioada de funcționare a unui shell de terminal specific, sau pentru perioada unei sesiuni de utilizator, sau puteți seta o variabilă de mediu la nivel global - pentru întregul sistem.

variabile de mediu

$HOME
Variabila conține calea către directorul principal al utilizatorului curent. $USER
Nume de utilizator curent $PATH
Listă de directoare pentru shell pentru a căuta programe executabile. $PWD
Calea către directorul de lucru curent (sau pwd). Exemplu: dir_path=$(pwd) . $SHELL
Interpret implicit $RANDOM
Generează un număr aleator 0..32767 de fiecare dată când este accesată o variabilă. $SECOND
Timp în sec. din momentul în care porniți shell-ul de comandă. $? Rezultatul comenzii anterioare. $HOSTNAME
Numele computerului $HISTFILE
Calea către fișierul istoric al interpretului $IFS
Lista de caractere separatoare de comenzi, parametri, elemente de matrice (implicit: spațiu, tab, linie nouă) $PS1
Șablon șir prompt pentru interpret.

Setarea temporară a unei variabile de mediu

Setarea unei variabile de mediu pentru perioada de sesiune:

# Pentru un nou proces env varname=valoare [comandă] # Pentru shell-ul curent și toate subprocesele sale export varname=valoare [comandă]

Valoarea variabilei este reținută până când sistemul este repornit.

Setarea unei valori constante

Variabilele de mediu la nivel de sistem sunt setate prin fișierul /etc/environment:

ENVIRONMENT="dev"

Setarea unei variabile de mediu specifice utilizatorului prin fișierul ~/.bashrc sau ~/.bash_profile:

PATH="$(PATH):/home/user/bin:"

Atenţie!

Fișierul ~/.bash_profile va fi executat când interpretul este pornit cu comutatorul -l. Acest fișier nu poate fi citit când sunteți autentificat local!

De asemenea, trebuie să rețineți că modificările vor intra în vigoare numai după repornirea sesiunii!

Vizualizarea valorii unei variabile de mediu

Pentru a vizualiza valoarea unei variabile de mediu, există comanda printenv:

Printenv<имя_переменной>

#shell, #bash, #mediu

Variabilele de mediu Linux, împreună cu variabilele shell, sunt cele care determină setările într-o sesiune de utilizator.

Ele sunt încărcate automat, dar pot fi suprascrise. Mediul este creat de fiecare dată când vă conectați la sistem.

Variabile de mediu Linux, variabile Shell

variabile de mediu sunt utilizate pentru procesul shell-ului utilizatorului și toate procesele copil generate în el.

Variabile Shell conţin date care determină starea sesiunii curente. De exemplu, directorul curent.

Fiecare sesiune folosește atât variabile de mediu, cât și variabile shell.

Lista variabilelor de mediu poate fi vizualizată rulând printenv sau înv

……
LC_MEASUREMENT=ru_RU.UTF-8
LESSCLOSE=/usr/bin/lesspipe %s %s
LC_PAPER=ru_RU.UTF-8
LC_MONETARY=ru_RU.UTF-8
LANG=en_US.UTF-8
……

Diferența este că printenv vă permite să afișați date pentru o anumită variabilă - de exemplu:

Avantajul lui env este că face posibilă trecerea unei variabile la o anumită comandă

De exemplu:

env SHELL=»/bin/bash» ls -la /opt

Vedeți variabilele de mediu

BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
……

Ieșirea poate fi redirecționată către Mai puțin pentru a facilita navigarea

Pentru a scăpa de informațiile inutile din ieșire fără a schimba mediul curent, puteți face acest lucru:

În modul POSIX, funcțiile definite de bash nu vor fi tipărite

Cele mai frecvent utilizate variabile:
  • COAJĂ- un shell care interpretează comenzile
  • UTILIZATOR- utilizator
  • P.W.D.- directorul curent
  • TERMEN— tipul de terminal care este emulat

Comenzile Shell vă permit să schimbați valoarea variabilelor. Deci pwd afișează directorul curent pe consolă

/home/admin

Aceasta este o variabilă shell PWD

admin@desktop:~$ set | grep PWD

OLDPWD=/tmp
PWD=/home/admin

Să mergem la /tmp și să vedem cum se schimbă valoarea

admin@desktop:~$ cd /tmp/

admin@desktop:/tmp$ set | grep PWD

OLDPWD=/home/admin
PWD=/tmp

Puteți vedea că atunci când schimbați directorul, valoarea variabilei shell PWD se schimbă pur și simplu și OLDPWD

Cum să setați o variabilă de mediu sau shell

Variabila shell este adăugată astfel

SOMEVAR="Bună ziua"

Nu va fi în ieșirea env, deoarece este o variabilă shell, nu o variabilă de mediu.

Puteți vizualiza conținutul prin ecou adăugând un semn $ înainte de nume

Bună

Pentru a adăuga o variabilă în mediu, trebuie să o exportați

export SOMEVAR=”Bună ziua”

SOMEVAR=Bună ziua

După aceasta, valoarea va fi moștenită de procesele copil.

Puteți șterge o variabilă de mediu folosind aceeași comandă de export cu cheia -n

Valoarea este eliminată din shell unset

Încărcarea automată a variabilelor la conectare

Sistemele Linux folosesc fișiere ~/.bashrc, ~/.bash_profile, ~/.bash_login sau ~/.profil pentru a defini variabile. Fișierele sunt citite în timpul autentificării, care este folosit depinde de distribuție.

Pe Ubuntu/Debain, acesta este ~/.bashrc. Se adaugă atât variabile de mediu, cât și variabile shell.

Chiar primul este citit /etc/profile. Specifică și poate fi suprascris ce fișiere să folosească în continuare și în ce ordine.

Pentru o sesiune fără autentificare, variabilele sunt setate în /etc/bash.bashrc. Această sesiune este tipică pentru scripturile care rulează în fundal.

Pentru majoritatea sarcinilor este suficient să editați ~/.bashrc.

Variabilele de mediu sunt variabile speciale care sunt definite în shell și sunt necesare programelor sau scripturilor în timpul execuției. Ele pot fi definite de sistem sau de utilizator. Variabilele definite de sistem sunt cele care sunt stabilite de sistem.

De exemplu comanda P.W.D. este o variabilă de sistem foarte comună care este folosită pentru a stoca directorul de lucru curent. Variabilele utilizator sunt de obicei setate fie temporar pentru shell-ul curent, fie permanent. Întregul concept de configurare și modificare a setărilor de mediu se învârte în jurul unui set de fișiere și câteva comenzi și shell-uri diferite.

Mai precis, o variabilă de mediu poate fi de trei tipuri:

1. Variabila de mediu local

Este definit pentru sesiunea curentă. Aceste variabile de mediu sunt utilizate pe durata sesiunii curente, fie că este o sesiune de conectare la distanță sau o sesiune de terminal local. Aceste variabile nu sunt specificate în niciun fișier de configurare și sunt create și șterse folosind un set special de comenzi.

2. Variabila de mediu utilizator

Acestea sunt variabile care sunt definite pentru un anumit utilizator și sunt încărcate ori de câte ori utilizatorul se conectează folosind o sesiune de terminal local sau dacă acel utilizator se conectează folosind o sesiune de conectare la distanță. Aceste variabile sunt de obicei setate și încărcate din următoarele fișiere de configurare: .bashrc,.bash_profile,.bash_login,.profil, care sunt prezente în directorul principal al utilizatorului.

3. Variabile de mediu ale sistemului

Acestea sunt variabile de mediu care sunt disponibile la nivelul întregului sistem, adică pentru toți utilizatorii prezenți pe acel sistem. Aceste variabile sunt prezente în fișierele de configurare la nivel de sistem, prezente în următoarele directoare și fișiere: /etc/environment,/etc/profile, /etc/profile.d/, /etc/bash.bashrc. Aceste variabile sunt încărcate de fiecare dată când sistemul este pornit și utilizatorii se conectează, fie local, fie de la distanță.

Înțelegerea fișierelor de configurare generale și la nivel de sistem

Aici vom descrie pe scurt diferitele fișiere de configurare enumerate mai sus care conțin variabile de mediu, atât de sistem, cât și de utilizator.

.bashrc

Acest fișier este un fișier utilizator care este încărcat de fiecare dată când utilizatorul creează o nouă sesiune locală, de exemplu. cu cuvinte simple, deschide un nou terminal. Toate variabilele de mediu create în acest fișier au efect de fiecare dată când este pornită o nouă sesiune locală.

.bash_profile

Variabilele de mediu enumerate în acest fișier sunt apelate de fiecare dată când utilizatorul se conectează de la distanță, adică folosind comanda ssh. Dacă acest fișier nu există, sistemul caută fișiere .bash_login sau .profil.

/etc/environment

Acest fișier este fișierul de sistem pentru crearea, editarea sau ștergerea oricăror variabile de mediu. Variabilele de mediu create în acest fișier sunt disponibile în întregul sistem, pentru fiecare utilizator la nivel global, atât local, cât și de la distanță.

/etc/bash.bashrc

Fișier de sistem bashrc. Acest fișier este descărcat o dată pe utilizator, de fiecare dată când utilizatorul deschide o sesiune de terminal local. Variabilele de mediu create în acest fișier sunt disponibile pentru toți utilizatorii, dar numai printr-o sesiune de terminal local. Când orice utilizator de pe acest computer este eliminat printr-o sesiune de conectare la distanță, aceste variabile nu vor fi vizibile.

/etc/profile

Toate variabilele create în acest fișier sunt disponibile pentru fiecare utilizator din sistem, dar numai dacă acea sesiune de utilizator este invocată de la distanță, adică prin autentificare de la distanță. Orice variabilă din acest fișier nu va fi disponibilă pentru sesiunea locală de conectare, de exemplu. când utilizatorul deschide un nou terminal pe sistemul său local.

Notă. Variabilele de mediu create folosind fișiere de configurare la nivel de sistem sau utilizator pot fi eliminate, dar pot fi eliminate numai din acele fișiere. Imediat după fiecare modificare a acestor fișiere, fie deconectați-vă, fie conectați-vă din nou sau pur și simplu tastați următoarea comandă pe terminal pentru ca modificările să aibă efect:

$sursa

Setarea sau eliminarea variabilelor de mediu locale sau de sesiune în Linux

Variabilele de mediu locale pot fi create folosind următoarele comenzi:

$ var=valoare SAU $ export var=valoare

Aceste variabile sunt variabile de sesiune și sunt valabile numai pentru sesiunea curentă a terminalului. Pentru a șterge aceste variabile de mediu, puteți utiliza următoarele comenzi:

1.Utilizare înv

Implicit comanda " înv» listează toate variabilele de mediu curente. Dar, dacă este folosit cu cheia " -i" apoi șterge temporar toate variabilele de mediu și permite utilizatorului să execute comanda în sesiunea curentă în absența tuturor variabilelor de mediu.

$ env –i ... comanda args ...

Aici var = valoare se potrivește cu orice variabilă de mediu locală pe care doriți să o utilizați numai cu această comandă.

$ env -i bash

Lansăm un shell bash, care va șterge temporar toate variabilele de mediu. Dar când ieși din shell, toate variabilele vor fi restaurate.

2. Folosind Anulare

O altă modalitate de a șterge o variabilă de mediu locală este utilizarea comenzii dezinstalat. Pentru a dezactiva temporar orice variabilă de mediu locală,

$unset

Unde, var-nume este numele variabilei locale pe care doriți să o eliminați sau să ștergeți.

3. Setați numele variabilei folosind valoare goală

O altă modalitate mai puțin populară este să setați numele variabilei pe care doriți să o ștergeți la o valoare goală, de exemplu. VAR=(după equals nu există nimic - apăsați enter). Aceasta va șterge valoarea variabilei locale pentru sesiunea curentă pentru care este activă.

NOTĂ: PUTEȚI SCHIMBA VARIABILELE DE SISTEM, DAR SCHIMBĂRILE SE VOR REFLECTA NUMAI ÎN SESIUNEA CURENTA ȘI NU VOR FI PERMANENTE.

Aflați cum să creați variabile de mediu pentru utilizator și sistem în Linux

În această secțiune, vom analiza cum să setăm sau să dezactivați variabilele de mediu locale, de utilizator și de sistem în Linux cu exemplele de mai jos:

1. Setarea și eliminarea variabilelor locale în Linux.

a) Aici creăm o variabilă locală VAR1și setați-o la orice valoare. Apoi folosim dezinstalat iar la final ștergem această variabilă.

$ VAR1="TecMint este cel mai bun site pentru articole Linux" $ echo $VAR1 $ dezactivat VAR1 $ echo $VAR1

b) O altă modalitate de a crea o variabilă locală este utilizarea comenzii export. Variabila locală creată va fi disponibilă pentru sesiunea curentă. Pentru a dezactiva o variabilă, pur și simplu setați variabila la gol.

$ export VAR="TecMint este cel mai bun site pentru articole Linux" $ echo $VAR $ VAR= $ echo $VAR

c) Aici am creat o variabilă locală VAR2și setați-i valoarea. Apoi, pentru a rula comanda, ștergând temporar toate variabilele locale și alte variabile de mediu, am rulat comanda " înv -i" Această comandă de aici a pornit shell-ul bash, ștergând toate celelalte variabile de mediu. După ce intră în „ Ieșire" în cochilia numită bash toate variabilele vor fi restaurate.

$ VAR2="TecMint este cel mai bun site pentru articole Linux" $ echo $VAR2 $ env -i bash $ echo $VAR2

2. Setarea și eliminarea variabilelor de mediu ale utilizatorului în Linux.

a) Schimbați fișierul .bashrcîn directorul dvs. de domiciliu pentru a exporta sau a seta variabila de mediu pentru a fi adăugată. După aceea, rulați fișierul pentru ca modificările să aibă efect. Apoi veți vedea variabila („CD” în cazul meu) care a intrat în vigoare. Această variabilă va fi disponibilă de fiecare dată când deschideți un nou terminal pentru acel utilizator, dar nu și pentru sesiunile de conectare la distanță.

$vi.bashrc

.bashrc.

Export CD="Acesta este TecMint Home"

Acum rulați următoarea comandă pentru a face ca noile modificări să intre în vigoare și pentru a testa variabila.

$source.bashrc $echo $CD

Pentru a elimina această variabilă, ștergeți pur și simplu linia din fișier. bashrcși reintră în coajă.

b) Pentru a adăuga o variabilă care va fi disponibilă pentru sesiunile de conectare la distanță, modificați fișierul .bash_profile.

$vi.bash_profile

Adăugați următoarea linie la fișier .bash_profile.

Export VAR2="Acesta este TecMint Home"

Variabila va fi disponibilă atunci când executați utilizarea de la distanță ssh conectați-vă pentru acel utilizator, dar nu în timp ce deschideți un nou terminal local.

$source.bash_profile $echo $VAR2

Aici VAR2 inițial nu este disponibil, dar atunci când efectuați o conectare de la distanță folosind ssh utilizator pornit gazdă locală variabila devine disponibilă.

$ssh$echo$VAR2

Pentru a elimina această variabilă, ștergeți pur și simplu linia din fișier .bash_profile pe care ați adăugat și recitit fișierul.

NOTĂ: Aceste variabile vor fi disponibile la fiecare conectare pentru utilizatorul actual, dar nu și pentru alți utilizatori.

3. Setarea și eliminarea variabilelor de mediu de sistem în Linux.

a) Pentru a adăuga o variabilă de sistem non-login (adică una care este disponibilă pentru toți utilizatorii atunci când oricare dintre ei deschide un nou terminal, dar nu atunci când există acces de la distanță pentru orice utilizator la mașină), adăugați această variabilă la fişier /etc/bash.bashrc.

Export VAR="Aceasta este variabilă la nivel de sistem"

După aceea, recitiți fișierul.

$ sursă /etc/bash.bashrc

Acum această variabilă va fi disponibilă fiecărui utilizator atunci când deschide un nou terminal.

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

Aici variabila este disponibilă atât pentru utilizatorul root, cât și pentru utilizatorul normal. Puteți verifica acest lucru conectându-vă ca alt utilizator.

b) Dacă doriți ca orice variabilă de mediu să fie disponibilă atunci când oricare dintre utilizatorii de pe computerul dvs. sa conectat de la distanță, dar nu a deschis niciun terminal nou pe computerul local, trebuie să editați fișierul - /etc/profile .

Export VAR1="Aceasta este variabilă la nivelul întregului sistem numai pentru sesiunile de la distanță"

După adăugarea variabilei, pur și simplu recitiți fișierul. Apoi variabila va fi disponibilă.

$source/etc/profile $echo $VAR1

Pentru a elimina această variabilă, ștergeți linia din fișier /etc/profileși recitiți-l.

c) Cu toate acestea, dacă doriți să adăugați o variabilă în orice mediu în care doriți să fie disponibil la nivel de sistem, atât pentru sesiunile de conectare la distanță, cât și pentru sesiunile locale pentru toți utilizatorii, pur și simplu exportați variabila în /etc/environment.

Export VAR12="Sunt disponibil oriunde"

După aceea, doar recitiți fișierul și modificările vor intra în vigoare.

$ sursă /etc/environment $ echo $VAR12 $ sudo su $ echo $VAR12 $ ieșire $ ssh localhost $ echo $VAR12

Aici, vedem că variabila de mediu este disponibilă pentru utilizatorul normal, utilizatorul root și, de asemenea, pentru sesiunea de conectare la distanță.

Pentru a șterge această variabilă, pur și simplu ștergeți intrarea din fișier /etc/environmentși recitiți fișierul.

NOTĂ: Modificările intră în vigoare atunci când fișierul este recitit /etc/environment. Dar, dacă nu, poate fi necesar să vă deconectați și să vă conectați din nou.

Pune întrebări despre articol în comentariile de mai jos.

Vă mulțumim pentru timpul acordat citirii articolului!

Dacă aveți întrebări, adresați-le în comentarii.

Abonează-te la actualizările blogului nostru și fii la curent cu știrile din lumea infocomunicațiilor!

Pentru a afla mai multe și a ieși în evidență printre mulțimea IT cu cunoștințe, înscrieți-vă la cursurile Cisco de la Cisco Academy, la cursurile Linux de la Linux Professional Institute

  • Vă vom întreba despre un moment convenabil pentru exersare și adaptare: înțelegem că există puțin timp pentru a studia.
  • Dacă doriți un program individual, îl vom discuta și îl vom implementa.
  • Vom stabili termene clare pentru autoorganizare. Un supervizor personal va contacta pentru a răspunde la întrebări, pentru a vă sfătui și pentru a vă motiva să respectați termenele limită pentru examen.
  • De asemenea, vă vom ajuta:

    2.2. variabile de mediu

    Sistemul de operare acceptă un tip special de resursă numită variabile de mediu (variabile de mediu). Aceste variabile sunt o pereche NUME - VALOARE . Numele poate începe cu o literă și poate consta din litere, cifre și liniuțe de subliniere.

    Pentru a înlocui valoarea unei variabile pe linia de comandă, precedați numele variabilei cu semnul $:

    $ echo $USER invitat

    Dacă variabila nu este setată, este returnat un șir gol.

    Pentru a seta valoarea unei variabile, utilizați operatorul de atribuire (în cazul shell-urilor asemănătoare Bourne):

    $TEST=test

    sau operatorul de set încorporat (în cazul celor asemănătoare C):

    $ set TEST=test

    Comanda set, fără argumente, listează valorile tuturor variabilelor setate în mediu:

    $ set COLUMNS=197 CVS_RSH=ssh DIRSTACK=() EUID=1000 GROUPS=() G_BROKEN_FILENAMES=1 HISTFILE=/home/guest/.bash_history HISTFILESIZE=1000 HISTSIZE=1000 HOME=/home=myhost HOSTTY86FS =$" \t\n" INPUTRC=/etc/inputrc KDEDIR=/usr KDEDIRS=/home/guest/.local/ KDE_IS_PRELINKED=1 KDE_NO_IPV6=1 LANG=ru_RU.UTF-8 LESSOPEN="|/usr/bin/ lesspipe.sh %s" LINES=65 LOGNAME=oaspete ....

    Variabilele pot fi locale pentru un proces dat sau globale pentru o sesiune. Puteți seta valori locale pentru variabile precedându-le apelând comenzile:

    $ TEST=test1 sh -c "echo $TEST" test1

    Puteți evalua conținutul unui set de variabile pentru o sesiune apelând comanda încorporată a interpretului env în cazul interpreților de tip Bourne (sh, ksh, bash, zsh, pdksh...) și printenv în cazul a interpreților clonelor C-Shell (csh, tcsh. ..):

    $ env HOSTNAME=myhost TERM=xterm SHELL=/bin/bash HISTSIZE=1000 KDE_NO_IPV6=1 SSH_CLIENT=172.16.0.9 50487 22 QTDIR=/usr/lib/qt-3.3 QTINC=/usr/lib3/qtty-3.3. =/dev/pts/6 USER=guest MOZILLA_CERTIFICATE_FOLDER=/home/guest/.evolution/ KDEDIR=/usr MAIL=/var/spool/mail/guest PATH=/usr/games:/usr/local/bin:/bin :/usr/bin:/home/guest/bin INPUTRC=/etc/inputrc PWD=/home/guest KDE_IS_PRELINKED=1 LANG=ru_RU.UTF-8 KDEDIRS=/home/guest/.local/ SSH_ASKPASS=/usr/libexec /openssh/gnome-ssh-askpass SHLVL=1 HOME=/home/guest LOGNAME=guest QTLIB=/usr/lib/qt-3.3/lib CVS_RSH=ssh SSH_CONNECTION=172.16.0.9 50487 172.16.2.9=22/usrSOPEN=| /bin/lesspipe.sh %s G_BROKEN_FILENAMES=1 _=/bin/env

    Seturi de comenzi Coajă poate fi compilat în fișiere de comandă numite scripturi, unde prima linie dintr-un tip special de comentariu specifică interpretul de comandă pentru executarea acestui set. De exemplu, să creăm un fișier într-un editor de text numit test cu următorul conținut:

    #!/bin/sh variabila echo TEST: echo $TEST

    Acest program va imprima la ieșirea standard mesajul text „TEST variable:” și valoarea variabilei TEST, dacă este specificată. Îl puteți rula din linia de comandă pasând-l ca parametru interpretului de comandă:

    Variabila de test $sh TEST:

    Puteți face o variabilă globală folosind instrucțiunea export (Bourne) sau setenv (C-SHell):

    $ export TEST=test1 $ sh test variabila TEST: test1

    Puteți seta valorile locale ale variabilelor pentru executarea unui program dat precedându-le apelând comenzile:

    $ TEST=test2 sh test Variabila TEST: test2

    Eliminarea variabilelor de mediu se face folosind instrucțiunea unset.

    Cele mai bune articole pe această temă