GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit a vypsat proměnné prostředí v Linuxu

V systémech založených na Linuxu a Unixu jsou proměnné prostředí sadou dynamických pojmenovaných hodnot uložených v systému, které používají aplikace spouštěné v prostředí shell nebo podshell. Jednoduše řečeno, proměnná prostředí je proměnná s názvem a přidruženou hodnotou.

Proměnné prostředí vám umožňují přizpůsobit fungování systému a chování aplikací v systému. Proměnná prostředí může například ukládat informace o výchozím textovém editoru nebo prohlížeči, cestě ke spustitelným souborům nebo národním prostředí systému a nastavení rozložení klávesnice.

V této příručce vysvětlíme čtení a nastavení proměnných prostředí a prostředí.

Proměnné prostředí a proměnné prostředí #

Proměnné mají následující formát:

KEY=value
KEY="Some other value"
KEY=value1:value2
  • V názvech proměnných se rozlišují velká a malá písmena. Podle konvence by proměnné prostředí měly mít názvy VELKÁ PÍSMENA.
  • Při přiřazování více hodnot proměnné musí být odděleny dvojtečkou : postava.
  • Kolem rovná se = není žádná mezera symbol.

Proměnné lze rozdělit do dvou hlavních kategorií, proměnné prostředí a proměnné prostředí.

Proměnné prostředí jsou proměnné, které jsou dostupné v celém systému a jsou zděděny všemi vytvořenými podřízenými procesy a shelly.

Proměnné prostředí jsou proměnné, které se vztahují pouze na aktuální instanci shellu. Každý shell, jako je zsh a bash , má vlastní sadu interních proměnných shellu.

Existuje několik dostupných příkazů, které vám umožňují vypsat a nastavit proměnné prostředí v Linuxu:

  • env – Příkaz vám umožňuje spustit jiný program ve vlastním prostředí, aniž byste změnili ten aktuální. Při použití bez argumentu vypíše seznam aktuálních proměnných prostředí.
  • printenv – Příkaz vytiskne všechny nebo zadané proměnné prostředí.
  • set – Příkaz nastaví nebo zruší nastavení proměnných shellu. Při použití bez argumentu vypíše seznam všech proměnných včetně proměnných prostředí a shellu a funkcí shellu.
  • unset – Příkaz odstraní proměnné prostředí a prostředí.
  • export – Příkaz nastavuje proměnné prostředí.

Seznam proměnných prostředí #

Nejpoužívanějším příkazem pro zobrazení proměnných prostředí je printenv . Pokud je název proměnné předán jako argument příkazu, zobrazí se pouze hodnota této proměnné. Pokud není zadán žádný argument, printenv vypíše seznam všech proměnných prostředí, jednu proměnnou na řádek.

Například pro zobrazení hodnoty HOME proměnná prostředí, kterou byste spustili:

printenv HOME

Výstup vypíše cestu aktuálně přihlášeného uživatele:

/home/linuxize

Do printenv můžete také předat více než jeden argument příkaz:

printenv LANG PWD
en_US
/home/linuxize

Pokud spustíte printenv nebo env příkaz bez jakýchkoli argumentů zobrazí seznam všech proměnných prostředí:

printenv

Výstup bude vypadat nějak takto:

LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35;...
LESSCLOSE=/usr/bin/lesspipe %s %s
LANG=en_US
S_COLORS=auto
XDG_SESSION_ID=5
USER=linuxize
PWD=/home/linuxize
HOME=/home/linuxize
SSH_CLIENT=192.168.121.1 34422 22
XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop
SSH_TTY=/dev/pts/0
MAIL=/var/mail/linuxize
TERM=xterm-256color
SHELL=/bin/bash
SHLVL=1
LANGUAGE=en_US:
LOGNAME=linuxize
XDG_RUNTIME_DIR=/run/user/1000
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
LESSOPEN=| /usr/bin/lesspipe %s
_=/usr/bin/printenv

Níže jsou uvedeny některé z nejběžnějších proměnných prostředí:

  • USER - Aktuální přihlášený uživatel.
  • HOME - Domovský adresář aktuálního uživatele.
  • EDITOR - Výchozí editor souborů, který se má použít. Toto je editor, který se použije, když napíšete edit ve vašem terminálu.
  • SHELL – Cesta k shellu aktuálního uživatele, jako je bash nebo zsh.
  • LOGNAME – Jméno aktuálního uživatele.
  • PATH - Seznam adresářů, které se mají prohledávat při provádění příkazů. Když spustíte příkaz, systém prohledá tyto adresáře v tomto pořadí a použije první nalezený spustitelný soubor.
  • LANG – Aktuální nastavení národního prostředí.
  • TERM - Aktuální emulace terminálu.
  • MAIL – Umístění, kde je uložena pošta aktuálního uživatele.

printenv a env příkazy tisknou pouze proměnné prostředí. Pokud chcete získat seznam všech proměnných, včetně prostředí, shellu a proměnných a funkcí shellu, můžete použít set příkaz:

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

Příkaz zobrazí velký seznam všech proměnných, takže pravděpodobně budete chtít přesměrovat výstup do less příkaz.

set | less

Můžete také použít příkaz echo k vytištění proměnné shellu. Chcete-li například vytisknout hodnotu BASH_VERSION proměnnou, kterou byste spustili:

echo $BASH_VERSION
4.4.19(1)-release

Nastavení proměnných prostředí #

Abychom lépe ilustrovali rozdíl mezi proměnnými prostředí a prostředí, začneme nastavením proměnných prostředí a poté přejdeme k proměnným prostředí.

Chcete-li vytvořit novou proměnnou prostředí s názvem MY_VAR a hodnotu Linuxize jednoduše napište:

MY_VAR='Linuxize'

Nastavení proměnné můžete ověřit buď pomocí echo $MY_VAR filtrování výstupu příkazu set pomocí grepset | grep MY_VAR :

echo $MY_VAR
Linuxize

Použijte printenv příkaz ke kontrole, zda je tato proměnná proměnnou prostředí či nikoli:

printenv MY_VAR

Výstup bude prázdný, což nám říká, že proměnná není proměnná prostředí.

Můžete také zkusit vytisknout proměnnou v novém shellu a dostanete prázdný výstup.

bash -c 'echo $MY_VAR'

export příkaz se používá k nastavení proměnných prostředí.

Chcete-li vytvořit proměnnou prostředí, jednoduše exportujte proměnnou prostředí jako proměnnou prostředí:

export MY_VAR

Můžete to zkontrolovat spuštěním:

printenv MY_VAR
Linuxize

Pokud se tentokrát pokusíte vytisknout proměnnou v novém shellu, dostanete název proměnné vytištěný na vašem terminálu:

bash -c 'echo $MY_VAR'
Linuxize

Můžete také nastavit proměnné prostředí na jednom řádku:

export MY_NEW_VAR="My New Var"

Proměnné prostředí vytvořené tímto způsobem jsou dostupné pouze v aktuální relaci. Pokud otevřete nový shell nebo se odhlásíte, všechny proměnné budou ztraceny.

Trvalé proměnné prostředí #

Aby proměnné prostředí byly trvalé, musíte tyto proměnné definovat v konfiguračních souborech bash. Ve většině distribucí Linuxu se při zahájení nové relace čtou proměnné prostředí z následujících souborů:

  • /etc/environment - Tento soubor použijte k nastavení systémových proměnných prostředí. Proměnné v tomto souboru jsou nastaveny v následujícím formátu:

    FOO=barVAR_TEST="Test Var"
  • /etc/profile - Proměnné nastavené v tomto souboru se načtou při každém zadání přihlašovacího shellu bash. Při deklaraci proměnných prostředí v tomto souboru musíte použít export příkaz:

    export JAVA_HOME="/path/to/java/home"export PATH=$PATH:$JAVA_HOME/bin
  • Konfigurační soubory specifické pro jednotlivé uživatele. Pokud například používáte Bash, můžete deklarovat proměnné v ~/.bashrc :

    export PATH="$HOME/bin:$PATH"

Chcete-li načíst nové proměnné prostředí do aktuální relace shellu, použijte source příkaz:

source ~/.bashrc

Závěr č.

V této příručce jsme vám ukázali, jak nastavit a vypsat proměnné prostředí a shellu.

Pokud máte nějaké dotazy, neváhejte zanechat komentář.


Linux
  1. Proměnné prostředí Linux:Jak číst a nastavovat na Linux VPS

  2. Příklady exportních příkazů pro Linux (jak nastavit proměnné prostředí)

  3. Proměnné uživatelského prostředí S „su“ a „sudo“ v Linuxu

  1. Jak nastavit a zrušit místní, uživatelské a systémové proměnné prostředí v Linuxu

  2. Jak spravovat a vypisovat služby v Linuxu

  3. Jak nastavit proměnné prostředí Linuxu pomocí Ansible

  1. Jak nastavit/vytvořit proměnné prostředí a prostředí v Linuxu

  2. Jak nastavit, vypsat a odebrat proměnné prostředí v Linuxu

  3. Jak vytisknout zjevně skryté proměnné prostředí?