Ve výpočtu , prostředí proměnné jsou dynamické proměnné používají různé procesy operačního systému ( Windows , Unix, atd.). Používají se ke komunikaci informací mezi programy, které nejsou na stejné hierarchické linii, a které proto potřebují konvenci pro vzájemné sdělování svých možností.
Mluvíme také o proměnných prostředí CGI pro server HTTP .
Příkaz SET bez jakýchkoli parametrů umožňuje vypsat většinu proměnných prostředí.
Proměnné % ERRORLEVEL%,% DATE%,% TIME%,% CD%,% RANDOM% se příkazem SET nezobrazují (Poznámka: role těchto proměnných je vysvětlena v následujících odstavcích).
Chcete-li upravit proměnnou prostředí, musíte do příkazového řádku zadat tento příkaz :
SET PATH=%PATH%;c:\WINDOWS\System32\wbemBuďte opatrní, funguje to pouze u aktuálního procesu.
Trvalá změna proměnné prostředí:
Chcete-li upravit proměnnou prostředí, musíte zadat:
PATH=$PATH:./Buďte opatrní, toto funguje pouze u aktuálního procesu.
Chcete-li trvale změnit proměnné prostředí, můžete přidat řádek do svého pláště inicializačním souboru ( ~ / .bashrc pro Bash , ~ / .zshrc pro Zsh )) přiřadit a exportovat proměnnou. Zde je minimální příklad ~ / .bashrc :
# Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions export LANG=fr_CA.UTF8Zahajovací skript prostředí je pro uživatele osobní.
Spustí se pokaždé, když se připojíme (buď přímo, nebo pomocí ssh) a pokaždé, když otevřeme novou konzolu.
Aby přiřazení proměnné přineslo výhody všem uživatelům, lze ji přidat (za předpokladu, že máte práva) do globálního inicializačního souboru prostředí ( / etc / profile pro Bash).
Označuje adresář profilu společný všem uživatelům.
Příklad hodnot:
C:\ProgramData ou C:\Documents and Settings\All UsersNezaměňujte s výchozím profilem:
C:\Documents and Settings\Default User % DATA APLIKACÍ%Obsahuje aplikační data přihlášeného uživatele.
Příklad hodnot:
C:\Users\Wikipedia\AppData\Roaming ou C:\Documents and Settings\Wikipedia\Application Data % HOMEPATH%Příklad hodnot:
\Users\Wikipedia ou \Documents and Settings\Wikipedia % USERNAME%% USERNAME% obsahuje jméno přihlášeného uživatele (příklad: Wikipedia).
% UŽIVATELSKÝ PROFIL%% USERPROFILE% označuje cestu k adresáři obsahujícímu podregistr HKEY_CURRENT_USER přihlášeného uživatele (soubory NTUSER.DAT a NTUSER.INI).
Proměnná% CD% se příkazem SET nezobrazí ; dává přístupovou cestu aktuálního adresáře.
Obsahuje název počítače.
Zobrazit proměnné prostředí nastavené správcem relací (smss.exe) .
Proměnné% DATE% a% TIME% se příkazem SET nezobrazí ; udávají aktuální datum a čas počítače.
Proměnná% ERRORLEVEL% se příkazem SET nezobrazuje ; udává chybový kód posledního provedeného příkazu (0 nebo 1). Toto je ekvivalent proměnné $? Unixu.
Je nezbytným příkazem pro vytvoření sofistikovaného prostředí pod Windows (příkazové soubory: přípona .bat ).
Tady jsou dva příklady kódu:
IF ERRORLEVEL 2 GOTO no_such_file IF %ERRORLEVEL% EQU 2 SET CODE_ERREUR=2Zobrazit proměnné prostředí nastavené správcem relací (smss.exe) .
Výchozí hodnota :
C:Pokud je uživatel přihlášen k doméně ,% LOGONSERVER% označuje název řadiče domény použitého pro ověřování, před kterým je uvedeno „\\“. Příklad:
\\controle_domaine % USERDOMAIN% označuje název pracovní skupiny nebo domény Windows, do které aktuální uživatel patří.Pokud je uživatel přihlášen k pracovní skupině,% LOGONSERVER% označuje to samé jako% COMPUTERNAME%, před kterým je uvedeno „\\“. Příklad:
\\PC_WikipediaZobrazit proměnné prostředí nastavené správcem relací (smss.exe) .
Zobrazit proměnné prostředí nastavené správcem relací (smss.exe) .
Zobrazit proměnné prostředí nastavené správcem relací (smss.exe) .
Proměnné % PROCESSOR_ARCHITECTURE%,% PROCESSOR_IDENTIFIER%,% PROCESSOR_LEVEL% a% PROCESSOR_REVISION% viz proměnné prostředí nastavené správcem relací (smss.exe) .
Tato proměnná prostředí označuje cestu k adresáři nainstalovaných programů systému Windows (viz Program Files ).
Jeho výchozí hodnota je:
C:\Program FilesHodnotu této proměnné konfiguruje v registru proměnná ProgramFilesDir v klíči HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion.
Tato proměnná prostředí určuje cestu k 64bitovému adresáři programů nainstalovaných ve Windows x86 (viz Program Files ).
Jeho výchozí hodnota je:
C:\Program Files (x86)Tato proměnná prostředí umožňuje přizpůsobit výzvu zobrazenou před zadáním příkazu.
Jeho výchozí hodnota je:
$P$GMůže obsahovat text na displeji kombinovaný se speciálními hodnotami, jejichž kód začíná znakem dolaru „$“.
Kódováno | Popis |
---|---|
$ P | Aktuální cesta ( P ath ) |
$ N | Pouze aktuální čtečka |
$ G | Nadřazený znak ">" ( G reater ) |
$ L. | Dolní znak "<" ( L ESS ) |
$ D | Aktuální datum ( D jedl ) |
$ T | Aktuální čas ( T ime ) |
Proměnná% RANDOM% se příkazem SET nezobrazuje ; vygeneruje číslo pseudonáhodné mezi 0 a 15 th síla 2 (32768).
Tato proměnná označuje písmeno jednotky, na které je nainstalován Windows.
Jeho výchozí hodnota je:
C:Tato proměnná prostředí označuje umístění systémových souborů.
Je nakonfigurován hodnotou registru: SystemRoot v klíči HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion.
Výchozí hodnotyVýchozí hodnota je:
Z % SystemRoot% lze nastavit další proměnné prostředí. Pro% PATH % , % COMSPEC% , % TEMP% , % TMP% , % WINDIR% viz proměnné prostředí vytvořené správcem relací .
% TMP% a% TEMP%. Složka dočasných souborů je také umístěna v následujícím adresáři ( Windows XP ):
C: \ Documents and Settings \ session_name \ Local Settings \ Temp
Podobně jako% SystemRoot%
Příklad:
C:\WindowsV systému Unix (nebo GNU / Linux) používají skořápky dva typy proměnných se stejnou syntaxí:
K nim se přistupuje jako k lokálním proměnným a je třeba je exportovat pomocí příkazu export (pro bash ) nebo pomocí příkazu setenv (csh).
Příklad proměnných prostředí v systému Unix:
Viz CFLAGS
Infopath je proměnná prostředí používaná textovým editorem Emacs . Obsahuje seznam informačních adresářů.
Proměnnou $ LANG používají různé programy k určení jazyka zpráv, které se mají zobrazit. Například :
$ LANG=fr ls fff ls: fff: Aucun fichier ou répertoire de ce type $ LANG=en ls fff ls: fff: No such file or directoryTyto různé překlady najdete v souborech .mo v podadresářích / usr / share / locale .
Může být zajímavé upravit tuto proměnnou tak, aby se zobrazila chybová zpráva v angličtině (například spuštěním příkazu „ export LANG=C “), pak pro vyhledání této chybové zprávy pomocí vyhledávače je zajímavé mít seznam stránek větší než pro chybová zpráva ve francouzštině a doufám, že najdete přesnější diagnózu.
Zobrazení textového editoru vimProměnnou $ LANG používá vim také k určení použitého kódování. Předpokládejme, že soubor .txt obsahuje pouze „letní“ řádek zakódovaný v UTF-8 . Chcete-li tento soubor upravit pomocí vim v konzole, musíte nastavit „export LANG = fr.UTF8“ a ujistit se, že je kódování konzoly nastaveno na UTF-8 (Konfigurace → Kódování).
Pokud je kódování konzoly nastaveno na ISO / IEC 8859-1 , vim zobrazí „léto“. Pokud proměnná $ LANG neurčuje kódování UTF-8 , například $ LANG = fr, ale kódování konzoly je UTF-8, vim zobrazí „léto“, ale poloha kurzoru nebude dobře následovat. Přestože konzola zobrazuje tři znaky, vim má pět (přechod na konec řádku pomocí „$“ umístí kurzor příliš daleko).
Srovnání s WindowsVe Windows je jazyk nastaven pomocí registru, v HKEY_CURRENT_USER, přesněji v některých podklíčích ControlPanel \ international (nástroj k jeho nastavení je intl.cpl ).
Proměnná $ LD_LIBRARY_PATH obsahuje seznam adresářů oddělených:, kde jsou umístěny knihovny, které nejsou nainstalovány ve výchozích adresářích (/ usr / lib a / usr / local / lib nemusí být v $ LD_LIBRARY_PATH specifikovány).
Při spuštění aplikace dynamicky propojené s knihovnou se knihovna prohledává nejprve ve výchozích adresářích, poté v adresářích uvedených v proměnné $ LD_LIBRARY_PATH v pořadí, v jakém vypadají.
Pokud knihovna není nalezena, bude za běhu vyvolána chybová zpráva podobná následující:
le_nom_du_binaire: error while loading shared libraries: libXX.so.0: cannot open shared object file: No such file or directoryPříklad hodnoty:
:0.0Příklad hodnoty:
xtermPříklad hodnoty
terminál gnome $ DESKTOP_SESSIONPříklad hodnoty:
default $ DESKTOP_STARTUP_IDPříklad hodnoty v prostředí skriptu /home/demo/Bureau/getenv.sh spuštěného společností SpaceFM jako správce plochy v rámci LXDE :
DESKTOP_STARTUP_ID = spacefm / | home | demo | Desktop | getenv.sh/3459-2 debian7_TIME740137
GTK + používá tuto proměnnou prostředí v kontextu oznámení o spuštění aplikace. Podle oficiálních specifikací musí aplikace GTK + po přečtení tuto proměnnou prostředí zničit, aby ji nepředala svým podřízeným procesům.
Když se program /home/demo/Bureau/getenv.sh ve výše uvedeném příkladu automaticky spustí při přihlášení prostřednictvím souboru .desktop v adresáři $ HOME / .config / autostart , nebo když je spuštěn z grafického emulátoru terminálu, pak jeho prostředí tuto proměnnou neobsahuje.
$ GDM_XSERVER_LOCATION a $ GDMSESSIONViz GNOME Display Manager .
$ GNOME_DESKTOP_SESSIONPříklad hodnoty:
Default $ GNOME_KEYRING_SOCKETPříklad hodnoty:
/tmp/keyring-24TGGU/socketViz i18n .
Pokud je nastavena proměnná prostředí $ POSIXLY_CORRECT, příkazy GNU / Linux budou odpovídat standardu POSIX .
Například GNU grep bude odpovídat POSIX.2, pokud je nastavena tato proměnná.
Viz POSIX # POSIXLY CORRECT proměnná prostředí .
Obsahuje hodnotu uživatelského jména pro aktuální relaci.
$ SHELL označuje implicitně použitého interpretu prostředí. Obvyklá hodnota linuxu je / bin / bash (vzácněji / bin / sh ).
Seznam prostředí v Unixu naleznete v kategorii: Shell Unix .
Interní proměnné najdete v části (v) Interní proměnné .
Existují proměnné, které nejsou součástí proměnných prostředí. Může to být například:
Proměnná <PATH> obsahuje seznam adresářů, ve kterých budou prohledávány spustitelné soubory . Tato proměnná se nachází ve Windows (% PATH%) a v Unixu a Linuxu ($ PATH).
PříkladPřejdete do libovolného adresáře ve vašem systému (pomocí příkazu cd ).
Pokud se pokusíte zadat wikipedia.exe do konzoly (nebo terminálu), nebude proveden, protože / opt / wikipedia / bin není v PATH .
Na druhou stranu, pokud napíšete / opt / wikipedia / bin / exfile , bude to fungovat, ale psaní trvá poměrně dlouho.
Je proto nutné upravit proměnnou prostředí PATH.
V systému Unix / Linux: $ PATHV systémech Unix a Linux se tato proměnná používá pouze pro umístění spustitelných souborů (binární nebo shell skript). U softwarových knihoven se používají jiné proměnné (příklad: $ LD_LIBRARY_PATH).
Zobrazit $ PATH echo $PATHMůžete také použít příkaz:
printenv PATH Oddělovač $ PATH: ":"Oddělovač je dvojtečka (:).
Dočasně upravte $ PATHS bash pláštěm
export PATH=$PATH:/opt/toto/binTato úprava je pouze dočasná (pro aktuální relaci).
Trvale změňte $ PATHProto musíte provést PATH modifikaci trvalou vložením následujícího řádku do ~ /. bashrc .
export PATH=$PATH:/opt/toto/bin Aktuální trap adresářeV systému Unix je za účelem spuštění souboru, který je v aktuálním adresáři, obvykle předpona příkazu „./“, což vám umožní označit, že se soubor nachází v aktuálním adresáři.
Tato zvláštnost udivuje uživatele, kteří jsou zvyklí na Windows (nebo starý MS-DOS ), kde můžete přímo volat program, který je v aktuálním adresáři.
Toto je bezpečnostní opatření. Pokud se například škodlivému vetřelci podaří umístit škodlivý program s názvem ls do aktuálního adresáře, bude tento program spuštěn, jakmile budete chtít vypsat adresář (namísto příkazu ls, který se běžně nachází v adresáři / bin /). , který je v PATH, ale který může upravit pouze správce systému ).
Pokud si uživatel přesto přeje najít tuto „ergonomii“ Microsoftu, musí ve své PATH přidat cestu „./“:
PATH=$PATH;./Toto bezpečnostní opatření bylo znovu zavedeno v prostředí PowerShell obsaženém ve Windows od verze 7; Chcete-li spustit spustitelný soubor v aktuální složce, musí uživatel před ním uvést „. \“.
Základní $ PATH v profiluZákladní hodnota $ PATH pro všechna přihlášení je definována v profilu: Soubor Shell / etc / profile .
V systému Mac OS X Zobrazit $ PATH(Ve skořápce Bourne )
echo $PATH Oddělovač $ PATH: ":"Oddělovač je dvojtečka (:).
Dočasně upravte $ PATH export PATH="$PATH:/opt/toto/bin"Tato úprava je pouze dočasná (pro aktuální relaci).
Trvale změňte $ PATHÚpravy PATH musí být trvalé přidáním následujícího řádku do profilu uživatele (tj. Shell ~ / .profile nebo ~ / .bash_profile v závislosti na typu terminálu, který používáte).
export PATH="$PATH:/opt/toto/bin"Je také možné přímo upravit PATH souboru / etc / profile (musíte použít sudo nebo být root ).
V systému Windows:% PATH%Pokud ve Windows není spustitelný soubor ve výchozím umístění, proměnná% PATH% označuje, ve kterých adresářích jej hledat.
Tato proměnná se nastavuje pomocí registru , v konfiguraci Session Manager (Smss.exe) (přesné umístění je: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PATH)
Zobrazit% PATH%Na příkazovém řádku zadejte příkaz:
SET pathnebo
ECHO %PATH% Oddělovač% PATH%: středníkOddělovač je středník: "; ".
Dočasně upravit% PATH%Na příkazovém řádku zadejte příkaz:
SET PATH=%PATH%;c:\opt\wikipedia\binTato změna je pouze dočasná (pro aktuální příkazový řádek).
Trvale změnit% PATH%Jsou možné tři způsoby:
1- Proměnnou prostředí PATH musíte upravit v Ovládacích panelech> Systém> Upřesnit> Proměnné prostředí> Systémové proměnné: Cesta proměnné ⇒ Upravit. Příklad: add; C: \ Batch označuje, že Windows by měl hledat v adresáři C: \ Batch a najít aplikaci nebo soubor .bat.
2 - Použijte příkaz MS-DOS (který je vhodnější pro použití ve skriptu) založený na setx
Zde je příklad použití: Cílem je trvale přidat C: \ Wikipedia \ bin do proměnné prostředí PATH. SETX "%PATH%;C:\Wikipedia\bin"3 - Použijte příkaz MS-DOS (který je výhodnější pro použití ve skriptu), který upravuje registr.
Zde je příklad použití: Cílem je trvale přidat C: \ Lotus \ Notes do proměnné prostředí PATH. REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /d "%PATH%;C:\Lotus\Notes" /f Možnosti REG ADD: / f (síla): umožňuje vynutit přidání klíče registru bez zobrazení potvrzení; / v (hodnota): označuje název hodnoty; / d (data): označuje hodnotu klíče. Poznámka: Je nutné restartovat počítač, aby systém zohlednil dříve provedené úpravy.Tato proměnná prostředí je nastavena, pouze pokud je v příslušném počítači nainstalována Java .
JAVA_HOME označuje adresář obsahující stromovou strukturu souborů potřebných pro virtuální stroj Java ( třída , softwarové knihovny atd.). Viz zavaděč tříd Java .
V konkrétním případě systému Windows viz proměnné prostředí nastavené správcem relací (smss.exe) .