Proměnné prostředí

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (Grafická úprava)
(Oprava práce s proměnnými)
Řádka 5: Řádka 5:
 
== Proměnné prostředí ==
 
== Proměnné prostředí ==
 
* Anglicky: environment variables
 
* Anglicky: environment variables
*Vlastně se jedná o způsob komunikace mezi [[Proces | procesy]].
+
* Vlastně se jedná o způsob komunikace mezi [[Proces | procesy]].
  
== Typické použití (příklad) ==
+
=== Příklad použití: LaTeX ===
*LaTeX
+
*při instalaci nastaví do proměnných cesty ke svým adresářům
**při instalaci nastaví do proměnných cesty ke svým adresářům
+
*pokud adresář přesunu, stačí přenastavit proměnnou
**pokud adresář přesunu, stačí přenastavit proměnnou
+
** může provést uživatel (z vlastních důvodů)
***buď já jako klient
+
** nebo autor programu, například v příští verzi, když zjistí, že by bylo jiné umístění lepší
***nebo programátor, pokud se rozhodne v další verzi.
+
* při spuštění
**při spuštění
+
**program načte aktuální cestu z proměnné
***program načte cestu z proměnné
+
***dále s nimi pracuje
+
  
== Kde se používají ==
+
=== Kde se používají ===
 
*V shellu
 
*V shellu
 
**Jejich hodnoty nahrazuje shell
 
**Jejich hodnoty nahrazuje shell
Řádka 23: Řádka 21:
 
*Ve [[Skript | skriptech]]
 
*Ve [[Skript | skriptech]]
 
*V programech
 
*V programech
**Pro zajímavost: práce s proměnnými v Javě <../java/java.mm>
+
**Pro zajímavost: [http://download.oracle.com/javase/tutorial/essential/environment/env.html práce s proměnnými v Javě]
 +
 
 +
== Proměnné shellu × proměnné prostředí ==
 +
*Anglicky: ''shell variables'' × ''environment variables''
 +
*Proměnné shellu platí pouze pro aktuální shell. (Spuštěné procesy je nezdědí.)
 +
*Proměnné prostředí zdědí od aktuálního procesu všechny dceřinné procesy.
 +
** Například příkazy spuštěné z shellu.
  
 
== Práce s proměnnými: bash ==
 
== Práce s proměnnými: bash ==
;nastavení
+
;Nastavení hodnoty proměnné
*promenna=hodnota
+
* proměnnou shellu
**vytvoří proměnnou shellu
+
promenna=hodnota
;výpis hodnoty
+
* Kopírování proměnné shellu do prostředí:
*echo $PATH
+
export promenna
*nebo také
+
* Zkráceně lze psát naráz:
**printenv $PATH
+
export promenna=hodnota
;výpis všech proměnných
+
* Dočasné nastavení jen pro spouštěnou aplikaci
*set
+
    LANGUAGE=cs nano
;smazání proměnné
+
 
*~ nastavení prázdné hodnoty
+
;Výpis hodnoty proměnné
**promenna=
+
*proměnná shellu nebo prostředí
**ale nemusí pomoci vždy (např. proměnná POSIXLY_CORRECT)
+
echo $promenna
*unset $promenna
+
*proměnné prostředí
**odstraní proměnnou z prostředí
+
printenv promenna
*export -n LC_ALL
+
 
**ponechá proměnnou shellu s původní hodnotou
+
;Výpis všech proměnných
 +
* všechny proměnné (i shellu)
 +
set
 +
* proměnné prostředí
 +
printenv
 +
 
 +
;Smazání proměnné
 +
* nastavení prázdné hodnoty
 +
** ale proměnná zůstane, byť s prázdnou hodnotou
 +
promenna=
 +
* uvolnění proměnné prostředí i shellu
 +
unset promenna
 +
* odstranění hodnoty z prostředí, ale ponechání aktuální hodnoty proměnné shellu
 +
export -n promenna
 +
 
 
== Významné proměnné ==
 
== Významné proměnné ==
*http_proxy=http://172.16.1.1:3128
+
*http_proxy
**Dříve: http_proxy=http://172.16.1.4:8080
+
http_proxy=http://172.16.1.1:3128
 
*PATH
 
*PATH
 
**složky, odkud se mohou spouštět soubory,
 
**složky, odkud se mohou spouštět soubory,
**oddělené dvojtečkou (na Windows středníkem)
+
**oddělené dvojtečkou (ve Windows středníkem)
 
*USER
 
*USER
**už tedy víte, proč echo $USER vypíše aktivního uživatele.
+
echo $USER
 
*SHELL
 
*SHELL
 
*HOME
 
*HOME
Řádka 57: Řádka 75:
 
**aktuální cesta
 
**aktuální cesta
 
*EDITOR
 
*EDITOR
**EDITOR=nano
+
EDITOR=nano
 
*LANG
 
*LANG
**en_US.UTF-8
+
** jazykové prostředí shellu (přepnutí klávesnice)
 
+
LANG=en_US.UTF-8
== Proměnné shellu × proměnné prostředí ==
+
*shell variables × environment variables
+
*Proměnné shellu platí pouze pro aktuální shell. (Nedědí se.)
+
*Prostředí (všechny proměnné prostředí) dědí od aktuálního procesu všechny dceřinné procesy.
+
*Pokud chceme nastavit platnost proměnné do všech procesů, použijeme:
+
*export promenna
+
**kopie proměnné shellu do prostředí
+
**zkráceně lze:
+
***export $http_proxy=h...
+
  
 
== Nastavení hodnoty trvale ==
 
== Nastavení hodnoty trvale ==

Verze z 11. 1. 2011, 21:30


Obsah

Proměnné prostředí

Příklad použití: LaTeX

Kde se používají

Proměnné shellu × proměnné prostředí

Práce s proměnnými: bash

Nastavení hodnoty proměnné
promenna=hodnota
export promenna
export promenna=hodnota
   LANGUAGE=cs nano
Výpis hodnoty proměnné
echo $promenna
printenv promenna
Výpis všech proměnných
set
printenv
Smazání proměnné
promenna=
unset promenna
export -n promenna

Významné proměnné

http_proxy=http://172.16.1.1:3128
echo $USER
EDITOR=nano
LANG=en_US.UTF-8

Nastavení hodnoty trvale

Úkoly

Příklad: login skript

Vyhodnocování příkazové řádky

Zdroje

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje