I databehandling , miljøvariabler er dynamiske variabler som brukes av de forskjellige fremgangsmåter til et operativsystem ( Windows , Unix, etc). De brukes til å kommunisere informasjon mellom programmer som ikke er på samme hierarkiske linje, og som derfor trenger en konvensjon for å kommunisere sine valg til hverandre.
Vi snakker også om CGI-miljøvariabler for en HTTP-server .
SET- kommandoen uten parametere lar deg liste opp de fleste miljøvariablene.
Variablene% ERRORLEVEL%,% DATE%,% TIME%,% CD%,% RANDOM% vises ikke av SET- kommandoen (Merk: Rollen til disse variablene er forklart i de følgende avsnittene).
For å endre en miljøvariabel, må du skrive inn denne kommandoen i ledeteksten :
SET PATH=%PATH%;c:\WINDOWS\System32\wbemVær forsiktig, dette fungerer bare på den nåværende prosessen.
Slik endrer du en miljøvariabel permanent:
For å endre en miljøvariabel, må du oppgi:
PATH=$PATH:./Vær forsiktig, dette fungerer bare på den nåværende prosessen.
For å endre en miljøvariabel permanent, kan du legge til en linje i shell- initialiseringsfilen din ( ~ / .bashrc for Bash , ~ / .zshrc for Zsh )) for å tilordne og eksportere variabelen. Her er et minimalt eksempel på ~ / .bashrc :
# Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions export LANG=fr_CA.UTF8Den skall oppstart script er personlig for brukeren.
Den utføres hver gang vi kobler til (enten direkte eller med ssh), og hver gang vi åpner en ny konsoll.
Slik at tildelingen av variabelen kommer alle brukere til gode, kan den legges til (forutsatt at du har rettighetene) i den globale initialiseringsfilen til skallet ( / etc / profile for Bash).
Indikerer katalogen til profilen som er felles for alle brukere.
Eksempelverdier:
C:\ProgramData ou C:\Documents and Settings\All UsersVær forsiktig så du ikke forveksler med standardprofilen:
C:\Documents and Settings\Default User % APPDATA%Inneholder applikasjonsdataene til den påloggede brukeren.
Eksempelverdier:
C:\Users\Wikipedia\AppData\Roaming ou C:\Documents and Settings\Wikipedia\Application Data % HOMEPATH%Eksempelverdier:
\Users\Wikipedia ou \Documents and Settings\Wikipedia % USERNAME%% USERNAME% inneholder navnet på den påloggede brukeren (eksempel: Wikipedia).
% BRUKERPROFIL%% USERPROFILE% indikerer banen til katalogen som inneholder HKEY_CURRENT_USER bikupen til den påloggede brukeren (NTUSER.DAT og NTUSER.INI filer).
Variabelen% CD% vises ikke av SET- kommandoen ; den gir tilgang til den nåværende katalogen.
Inneholder navnet på datamaskinen.
Se miljøvariabler som er satt av øktbehandleren (smss.exe) .
Variablene% DATE% og% TIME% vises ikke av SET- kommandoen ; de gir gjeldende dato og klokkeslett for datamaskinen.
% ERRORLEVEL% -variabelen vises ikke av SET- kommandoen ; det gir feilkoden til den siste kommandoen (0 eller 1). Dette tilsvarer variabelen $? av Unix.
Det er en viktig kommando å lage sofistikert skall under Windows (kommandofiler: utvidelse .bat ).
Her er to kodeeksempler:
IF ERRORLEVEL 2 GOTO no_such_file IF %ERRORLEVEL% EQU 2 SET CODE_ERREUR=2Se miljøvariabler som er satt av øktbehandleren (smss.exe) .
Standardverdi :
C:Hvis brukeren er logget på for et domene , angir% LOGONSERVER% navnet på domenekontrolleren som brukes for autentisering, foran "\\". Eksempel:
\\controle_domaine % USERDOMAIN% angir navnet på arbeidsgruppen eller Windows-domenet som den nåværende brukeren tilhører.Hvis brukeren er logget på for en arbeidsgruppe, indikerer% LOGONSERVER% det samme som% COMPUTERNAME%, foran "\\". Eksempel:
\\PC_WikipediaSe miljøvariabler som er satt av øktbehandleren (smss.exe) .
Se miljøvariabler som er satt av øktbehandleren (smss.exe) .
Se miljøvariabler som er satt av øktbehandleren (smss.exe) .
For variablene % PROCESSOR_ARCHITECTURE%,% PROCESSOR_IDENTIFIER%,% PROCESSOR_LEVEL% og% PROCESSOR_REVISION%, se miljøvariabler som er angitt av øktadministratoren (smss.exe) .
Denne miljøvariabelen indikerer banen til katalogen over installerte programmer i Windows (se Programfiler ).
Standardverdien er:
C:\Program FilesVerdien til denne variabelen er konfigurert i registeret av ProgramFilesDir- variabelen i nøkkelen HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion.
Denne miljøvariabelen spesifiserer banen til 64-biters Windows-installert x86-programkatalog (se Programfiler ).
Standardverdien er:
C:\Program Files (x86)Denne miljøvariabelen brukes til å tilpasse ledeteksten som vises før du skriver inn en kommando.
Standardverdien er:
$P$GDen kan inneholde visningstekst kombinert med spesielle verdier hvis kode begynner med dollartegnet "$".
Kodet | Beskrivelse |
---|---|
$ P | Nåværende vei ( P ath ) |
$ N | Bare nåværende leser |
$ G | Overlegen karakter ">" ( G reater ) |
$ L. | Lavere tegnet "<" ( L ess ) |
$ D | Nåværende dato ( D ate ) |
$ T | (Nåværende tidspunkt T ime ) |
Variabelen% RANDOM% vises ikke av SET- kommandoen ; den genererer en rekke pseudo-tilfeldig mellom 0 og 15 th potens av 2 (32768).
Denne variabelen indikerer stasjonen der Windows er installert.
Standardverdien er:
C:Denne miljøvariabelen angir plasseringen til systemfilene.
Den er konfigurert av registeret: SystemRoot- verdi i nøkkelen HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion.
StandardverdierStandard er:
Fra % SystemRoot% kan andre miljøvariabler angis. For% PATH % , % COMSPEC% , % TEMP% , % TMP% , % WINDIR% , se Miljøvariabler opprettet av øktadministratoren .
% TMP% og% TEMP%. En midlertidig filmappe ligger også i følgende katalog ( Windows XP ):
C: \ Documents and Settings \ session_name \ Local Settings \ Temp
Ligner på% SystemRoot%
Eksempel:
C:\WindowsUnder Unix (eller GNU / Linux) bruker skall to typer variabler, med samme syntaks:
Disse er tilgjengelige som lokale variabler og må eksporteres med eksportkommandoen (for bash ), eller bruk setenv (csh) -kommandoen .
Eksempel på miljøvariabler under Unix:
Se CFLAGS
Infopath er en miljøvariabel som brukes av Emacs Text Editor . Den inneholder listen over infokataloger.
$ LANG-variabelen brukes av de forskjellige programmene til å bestemme språket til meldingene som skal vises. For eksempel :
$ LANG=fr ls fff ls: fff: Aucun fichier ou répertoire de ce type $ LANG=en ls fff ls: fff: No such file or directoryDisse forskjellige oversettelsene finner du i .mo- filene i underkatalogene / usr / share / locale .
Det kan være interessant å modifisere denne variabelen for å få en feilmelding på engelsk (for eksempel ved å utføre kommandoen " export LANG=C "), og deretter søke etter denne feilmeldingen med en søkemotor. Interessen er å ha en liste over sider større enn for feilmeldingen på fransk og å håpe å finne en mer presis diagnose.
Viser vim teksteditor$ LANG-variabelen brukes også av vim for å bestemme kodingen som skal brukes. Anta at .txt- filen inneholder som bare "sommer" -linje kodet i UTF-8 . For å redigere denne filen med vim i konsollen, må du sette “eksport LANG = fr.UTF8” og sørge for at kodingen av konsollen er satt til UTF-8 (Konfigurasjon → Koding).
Hvis konsollkodingen er satt til ISO / IEC 8859-1 , vil vim vise "sommer". Hvis $ LANG-variabelen ikke spesifiserer UTF-8- kodingen , for eksempel $ LANG = fr, men konsollkodingen er UTF-8, vil vim vise "sommer", men markørposisjonen vil ikke følge bra. Faktisk, selv om konsollen viser tre tegn, teller vim fem (å gå til slutten av linjen med "$" vil plassere markøren for langt).
Sammenligning med WindowsI Windows er språket angitt med registeret, i HKEY_CURRENT_USER, mer nøyaktig i noen av undernøklene til ControlPanel \ international (verktøyet for å stille det er intl.cpl ).
Variabelen $ LD_LIBRARY_PATH inneholder en liste over kataloger, atskilt med :, hvor bibliotekene er plassert som ikke er installert i standardkatalogene (/ usr / lib og / usr / local / lib trenger ikke å være spesifisert i $ LD_LIBRARY_PATH).
Når du kjører et program som er dynamisk knyttet til et bibliotek, blir det først søkt i biblioteket i standardkatalogene, deretter i katalogene som er oppført i variabelen $ LD_LIBRARY_PATH i rekkefølge etter utseende.
Hvis biblioteket ikke blir funnet, blir en feilmelding som ligner på følgende kastet ved kjøretid:
le_nom_du_binaire: error while loading shared libraries: libXX.so.0: cannot open shared object file: No such file or directoryEksempelverdi:
:0.0Eksempelverdi:
xtermEksempelverdi
gnome-terminal $ DESKTOP_SESSIONEksempelverdi:
default $ DESKTOP_STARTUP_IDEksempel på verdi i miljøet til et /home/demo/Bureau/getenv.sh skript lansert av SpaceFM som desktop manager under LXDE :
DESKTOP_STARTUP_ID = spacefm / | home | demo | Desktop | getenv.sh/3459- 2-debian7_TIME740137
GTK + bruker denne miljøvariabelen i sammenheng med applikasjonsstartvarselet. I henhold til de offisielle spesifikasjonene, må GTK + -applikasjonen ødelegge denne miljøvariabelen etter å ha lest den, for ikke å overføre den til sine underordnede prosesser.
Når /home/demo/Bureau/getenv.sh-programmet i eksemplet som er sitert ovenfor startes automatisk ved pålogging via en .desktop-fil i katalogen $ HOME / .config / autostart , eller når den kjøres fra en grafisk terminalemulator, da inneholder miljøet ikke denne variabelen.
$ GDM_XSERVER_LOCATION og $ GDMSESSION $ GNOME_DESKTOP_SESSIONEksempelverdi:
Default $ GNOME_KEYRING_SOCKETEksempelverdi:
/tmp/keyring-24TGGU/socketSe i18n .
Hvis miljøvariabelen $ POSIXLY_CORRECT er satt, vil GNU / Linux- kommandoer være i samsvar med POSIX- standarden .
For eksempel vil GNU grep være i samsvar med POSIX.2 hvis denne variabelen er satt.
Se POSIX # Miljøvariabel POSIXLY CORRECT .
Inneholder verdien av brukernavnet for den gjeldende økten.
$ SHELL indikerer skallet tolk brukes som standard. Den vanlige linuxverdien er / bin / bash (mer sjelden / bin / sh ).
For listen over skall under Unix, se kategori: Shell Unix .
For interne variabler, se (i) Interne variabler .
Det er variabler som ikke er en del av miljøvariablene. For eksempel kan det være:
<PATH> -variabelen inneholder listen over kataloger der det skal søkes i de kjørbare filene . Denne variabelen finnes på Windows (% PATH%) og på Unix og Linux ($ PATH).
EksempelDu går til hvilken som helst katalog på systemet ditt (via cd- kommandoen ).
Hvis du prøver å skrive wikipedia.exe i konsollen (eller terminalen), blir den ikke utført fordi / opt / wikipedia / bin ikke er i PATH .
På den annen side, hvis du skriver / opt / wikipedia / bin / exfile , vil det fungere, men det tar ganske lang tid å skrive.
Det er derfor nødvendig å justere PATH-miljøvariabelen.
Under Unix / Linux: $ PATHUnder Unix og Linux brukes denne variabelen bare for plasseringen av kjørbare filer (binært eller skallskript). For programvarebiblioteker brukes andre variabler (eksempel: $ LD_LIBRARY_PATH).
Se $ PATH echo $PATHDu kan også bruke kommandoen:
printenv PATH Separator av $ PATH: ":"Separatoren er kolon (:).
Endre $ PATH midlertidigMed bash skallet
export PATH=$PATH:/opt/toto/binDenne modifikasjonen er bare midlertidig (for den gjeldende økten).
Endre $ PATH permanentDu må derfor gjøre PATH-modifikasjonen permanent ved å sette følgende linje i ~ /. bashrc .
export PATH=$PATH:/opt/toto/bin Den nåværende katalogfellenUnder Unix , for å kjøre en fil som er i den gjeldende katalogen, er du generelt forpliktet til å prefiks kommandoen med "./", som gjør at du kan angi at filen er i gjeldende katalog.
Denne særegenheten forbløffer brukere som er vant til Windows (eller den gamle MS-DOS ) hvor du direkte kan ringe et program som er i den gjeldende katalogen.
Dette er et sikkerhetstiltak. For eksempel, hvis en ondsinnet inntrenger klarer å plassere et ondsinnet program som heter ls i den gjeldende katalogen, vil dette programmet kjøres så snart du vil liste katalogen (i stedet for ls- kommandoen som vanligvis finnes i / bin / katalogen). , som er i PATH, men som bare kan endres av systemadministratoren ).
Hvis til tross for alt brukeren ønsker å finne denne "ergonomien" til Microsoft, må han legge til stien "./" i sin PATH:
PATH=$PATH;./Dette sikkerhetstiltaket er introdusert på nytt i PowerShell som følger med Windows fra versjon 7; for å kjøre en kjørbar fil i gjeldende mappe, må brukeren gå foran ". \".
Den grunnleggende $ PATH i profilenBasisverdien på $ PATH, for alle pålogginger, er definert i profilen: Shell- fil / etc / profile .
Under Mac OS X Se $ PATH(I Bourne-skall )
echo $PATH Separator av $ PATH: ":"Separatoren er kolon (:).
Endre $ PATH midlertidig export PATH="$PATH:/opt/toto/bin"Denne modifikasjonen er bare midlertidig (for den gjeldende økten).
Endre $ PATH permanentPATH-modifikasjonen må gjøres permanent ved å legge til følgende linje i brukerprofilen (det vil si skallet ~ / .profile eller ~ / .bash_profile, avhengig av hvilken type terminal du bruker).
export PATH="$PATH:/opt/toto/bin"Det er også mulig å direkte endre stien til / etc / profilfilen (du må bruke sudo eller være root ).
På Windows:% PATH%På Windows, hvis en kjørbar fil ikke er på standardplasseringen, indikerer% PATH% variabelen i hvilke kataloger du skal se etter den.
Denne variabelen er satt via registeret , i konfigurasjonen av Session Manager (Smss.exe) (den nøyaktige plasseringen er: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PATH)
Se% PATH%Skriv inn kommandoen i ledeteksten:
SET patheller
ECHO %PATH% % PATH% separator: semikolonSeparatoren er semikolontegnet: "; ".
Endre midlertidig% PATH%Skriv inn kommandoen i ledeteksten:
SET PATH=%PATH%;c:\opt\wikipedia\binDenne endringen er bare midlertidig (for gjeldende ledetekst).
Endre% PATH% permanentTre måter er mulige:
1- Du må endre PATH-miljøvariabelen fra Kontrollpanel> System> Avansert> Miljøvariabler> Systemvariabler: Variabel bane ⇒ Endre. Eksempel: legg til; C: \ Batch for å indikere at Windows skal se i C: \ Batch-katalogen for å finne et program eller en .bat-fil.
2- Bruk en MS-DOS-kommando (som er mer praktisk å bruke i et skript), basert på setx
Her er et eksempel på bruk: Målet er å legge C: \ Wikipedia \ bin permanent til PATH-miljøvariabelen. SETX "%PATH%;C:\Wikipedia\bin"3- Bruk en MS-DOS-kommando (som er mer praktisk å bruke i et skript), som endrer registret.
Her er et eksempel på bruk: Målet er å legge til C: \ Lotus \ Notes til PATH-miljøvariabelen permanent. REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /d "%PATH%;C:\Lotus\Notes" /f REG ADD-alternativer: / f (kraft): tillater å tvinge til tillegg av registernøkkelen, uten å vise bekreftelse; / v (verdi): angir navnet på verdien; / d (data): angir verdien på nøkkelen. Merk: Det er nødvendig å starte maskinen på nytt for at systemet skal ta hensyn til tidligere endringer.Denne miljøvariabelen angis bare hvis Java er installert på den tilsvarende datamaskinen.
JAVA_HOME indikerer katalogen som inneholder trestrukturen til filene som er nødvendige for den virtuelle Java-maskinen ( klasse , programvarebiblioteker osv.). Se Java-klasselaster .
For det spesielle tilfellet med Windows, se miljøvariabler som er satt av øktbehandleren (smss.exe) .