Proměnné prostředí

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (Zařazení Příkladu do samostatné kapitoly.)
(Přidán odkaz na související stránky.)
 
(Není zobrazeno 9 mezilehlých verzí od 1 uživatele.)
Řádka 1: Řádka 1:
[[Category:VSE]][[Category:Informatika]][[Category:OSY]][[Category:Linux]]
+
[[Category:VSE]][[Category:Informatika]][[Category:OSY]][[Category:Linux]][[Category:Příkazový řádek]]
  
 
== Proměnné prostředí ==
 
== Proměnné prostředí ==
Řádka 67: Řádka 67:
  
 
== Významné proměnné Unixu/Linuxu ==
 
== Významné proměnné Unixu/Linuxu ==
 +
Dále uvádíme proměnné, které jsou v unixových systémech často nastaveny.
 +
<div class="Poznamka">V&nbsp;závislosti na konkrétním nastavení počítače a zvolené distribuci ale některé z těchto proměnných nemusí být nastaveny.</div>
 
*http_proxy
 
*http_proxy
     http_proxy=http://172.16.1.1:3128
+
     http_proxy=ht<tt></tt>tp://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,
Řádka 86: Řádka 88:
 
     LANGUAGE=en_US nano
 
     LANGUAGE=en_US nano
 
     LANGUAGE=cs_CZ nano
 
     LANGUAGE=cs_CZ nano
 
+
*LANG
 +
** nastavení národního prostředí (<tt>cs_CZ.UTF-8</tt>, <tt>en_US.UTF-8</tt>)
 +
    LANG=en_US.UTF-8 nano
  
 
== Nastavení hodnoty trvale ==
 
== Nastavení hodnoty trvale ==
Řádka 100: Řádka 104:
 
; Pro daného uživatele
 
; Pro daného uživatele
 
* <tt>~/.profile</tt>
 
* <tt>~/.profile</tt>
** Spouští login shell, tedy se načítá jen po přihlášení počítače
+
** Spouští se při spuštění ''login shell-u'', tedy se načítá po přihlášení uživatele.
* Další možnosti: <tt>~/.bash_profile</tt>, ~./bash_login
+
** Pro zajímavost: v tomto skriptu se nastavuje hodnota proměnné <tt>PATH</tt> (Debian 6).
** pokud existují, bash je použije místo ~/.profile
+
* Další možnosti: <tt>~/.bash_profile</tt>, <tt>~./bash_login</tt>
 +
** pokud existují, <tt>bash</tt> je použije místo <tt>~/.profile</tt>
 
* <tt>~/.bashrc</tt>
 
* <tt>~/.bashrc</tt>
** Spouští se v non-login shellu, tedy pokud pustím z běžícího shellu druhý shell
+
** Spouští se v ''non-login shellu'', tedy pokud jsem již přihlášen a spouštím další shell (například z grafického prostředí, nebo příkazem <code>bash</code>)
 
; Pro všechny uživatele  
 
; Pro všechny uživatele  
 
* <tt>/etc/profile</tt>
 
* <tt>/etc/profile</tt>
Řádka 113: Řádka 118:
  
 
Více viz také: [https://wiki.debian.org/EnvironmentVariables Wiki.Debian.org &gt; EnvironmentVariables].
 
Více viz také: [https://wiki.debian.org/EnvironmentVariables Wiki.Debian.org &gt; EnvironmentVariables].
 
  
 
== Příklady ==
 
== Příklady ==
Řádka 133: Řádka 137:
 
<div class="Poznamka">Poznámka:<br />
 
<div class="Poznamka">Poznámka:<br />
 
Pokud v Ubuntu existuje složka <tt>bin</tt> ve Vaší domovské složce, automaticky se přidá do proměnné <tt>PATH</tt>.  
 
Pokud v Ubuntu existuje složka <tt>bin</tt> ve Vaší domovské složce, automaticky se přidá do proměnné <tt>PATH</tt>.  
Tato akce se provede ve skriptu </tt>/.profile</tt>.
+
Tato akce se provede ve skriptu <tt>/.profile</tt>.
 
</div>
 
</div>
  
Řádka 139: Řádka 143:
 
; Jednoduché úkoly:
 
; Jednoduché úkoly:
 
# Vypište všechny proměnné
 
# Vypište všechny proměnné
# Vypište hodnotu proměnné $PATH.
+
# Vypište hodnotu proměnné <tt>PATH</tt>.
# Nastavte proměnnou <code>$MyBinDir</code> na hodnotu <code>~/bin</code>
+
# Nastavte proměnnou <tt>MyBinDir</tt> na hodnotu <tt>~/bin</tt>
#Přidejte cestu <code>~/bin</code> do proměnné <code>$PATH</code>. Ověřte, že proběhlo správně.
+
#Přidejte cestu <tt>~/bin</tt> do proměnné <tt>PATH</tt>. Ověřte, že proběhlo správně.
# Kdybyste smazali proměnnou $PATH. Půjdou spustit příkazy??? Jak to vyřešíte? Vyzkoušejte!
+
# Kdybyste smazali proměnnou <tt>PATH</tt>. Půjdou spustit příkazy??? Jak to vyřešíte? Vyzkoušejte!
  
; Úkol: login skript
+
 
*Zařidte, aby byla kdykoli po spuštění shellu dostupná proměnná <code>$LOGIN_TIME</code>, ve které bude uložen čas přihlášení.
+
; Úkol &mdash; login skript
 +
*Zařidte, aby byla kdykoli po spuštění shellu dostupná proměnná <tt>LOGIN_TIME</tt>, ve které bude uložen čas přihlášení.
 
*Použijte příkaz <code>date</code>
 
*Použijte příkaz <code>date</code>
*Vytvořte soubor <tt>.logintimes</tt>, ve kterém budou data spuštění bash-e pro každé přihlášení.
+
*Vytvořte soubor <tt>.logintimes</tt>, ve kterém budou data spuštění Bash-e pro každé přihlášení.
 
**Jak často se do souboru bude psát?
 
**Jak často se do souboru bude psát?
  
Řádka 154: Řádka 159:
 
Řešení úkolů (Linux):
 
Řešení úkolů (Linux):
 
# <code>set</code>
 
# <code>set</code>
# <code>echo $PATH</code> nebo <code>set | grep PATH</code>
+
# <code>echo $PATH</code> nebo <code>set | grep ^PATH=</code>
# MyBinDir=~/bin
+
# <code>MyBinDir=~/bin</code>
 
# <code>PATH=$PATH:$HOME/bin</code><br /><code>echo $PATH</code>
 
# <code>PATH=$PATH:$HOME/bin</code><br /><code>echo $PATH</code>
# PATH=
+
# <code>PATH=</code>
 
</div>
 
</div>
  
== Vyhodnocování příkazové řádky ==
+
== Související stránky ==
*Pořadí
+
* [[Vyhodnocení příkazů]]
**nahrazení proměnných
+
**nahrazení *, ?
+
**v uvozovnách se nenahrazuje
+
 
+
  
 
== Zdroje ==
 
== Zdroje ==
 
*[https://help.ubuntu.com/community/EnvironmentVariables Ubuntu.com -> Environment Variables]
 
*[https://help.ubuntu.com/community/EnvironmentVariables Ubuntu.com -> Environment Variables]
 
*[http://wiki.ubuntu.cz/V%C3%ADcejazy%C4%8Dn%C3%BD%20syst%C3%A9m Wiki.Ubuntu.cz -> Vícejazyčný systém]
 
*[http://wiki.ubuntu.cz/V%C3%ADcejazy%C4%8Dn%C3%BD%20syst%C3%A9m Wiki.Ubuntu.cz -> Vícejazyčný systém]

Aktuální verze z 12. 1. 2023, 00:35


Obsah

Proměnné prostředí

Příklad použití
Kde se používají proměnné
Příklady použití
  1. Typografický systém LaTeX používá proměnné pro uložení informací o umístění složek s fonty, spustitelnými soubory apod.
  2. Pokud chceme spouštět balíčky .JAR v Javě, musíme mít k prostředí Javy nastavenu cestu (viz Java: Export balíčku JAR).

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

Práce s proměnnými: bash

Vytvoření proměnné/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é Unixu/Linuxu

Dále uvádíme proměnné, které jsou v unixových systémech často nastaveny.

V závislosti na konkrétním nastavení počítače a zvolené distribuci ale některé z těchto proměnných nemusí být nastaveny.
   http_proxy=http://172.16.1.1:3128
Proměnná PATH funguje i ve Windows, jen jsou cesty oddělené středníkem.
   echo $USER
   EDITOR=nano
   LANGUAGE=en_US nano
   LANGUAGE=cs_CZ nano
   LANG=en_US.UTF-8 nano

Nastavení hodnoty trvale

Windows

GNU/Linux (shell bash)

Pro daného uživatele
Pro všechny uživatele

Více viz také: Wiki.Debian.org > EnvironmentVariables.

Příklady

Příklad — tvorba a spouštění skriptu
echo "Ahoj"
chmod 764 pozdrav
$ pozdrav
-bash: pozdrav: příkaz nenalezen
$ ./pozdrav
Ahoj
Poznámka:

Pokud v Ubuntu existuje složka bin ve Vaší domovské složce, automaticky se přidá do proměnné PATH. Tato akce se provede ve skriptu /.profile.

Úkoly

Jednoduché úkoly
  1. Vypište všechny proměnné
  2. Vypište hodnotu proměnné PATH.
  3. Nastavte proměnnou MyBinDir na hodnotu ~/bin
  4. Přidejte cestu ~/bin do proměnné PATH. Ověřte, že proběhlo správně.
  5. Kdybyste smazali proměnnou PATH. Půjdou spustit příkazy??? Jak to vyřešíte? Vyzkoušejte!


Úkol — login skript


Řešení úkolů (Linux):

  1. set
  2. echo $PATH nebo set | grep ^PATH=
  3. MyBinDir=~/bin
  4. PATH=$PATH:$HOME/bin
    echo $PATH
  5. PATH=

Související stránky

Zdroje

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