GNU/Linux >> Znalost Linux >  >> Linux

Tipy a triky pro proměnné prostředí Linuxu

Proměnné prostředí existují pro vylepšení a standardizaci vašeho prostředí shellu na systémech Linux. Existují standardní proměnné prostředí, které za vás systém nastaví, ale můžete také nastavit své vlastní proměnné prostředí nebo volitelně změnit výchozí, aby vyhovovaly vašim potřebám.

[ Bezplatné stažení:cheat pro pokročilé příkazy systému Linux. ]

Počínaje env příkaz

Pokud chcete vidět proměnné prostředí, použijte env příkaz a hledejte slova velkými písmeny na výstupu zcela vlevo. Toto jsou vaše proměnné prostředí a jejich hodnoty jsou vpravo:

 $ env
LS_COLORS=(long output)
LANG=en_US.UTF-8
HISTCONTROL=ignoredups
HOSTNAME=rhel8t
XDG_SESSION_ID=5
USER=khess
SELINUX_ROLE_REQUESTED=
PWD=/home/khess
HOME=/home/khess
SSH_CLIENT=192.168.1.94 53911 22
SELINUX_LEVEL_REQUESTED= XDG_DATA_DIRS=/home/khess/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
SSH_TTY=/dev/pts/1
MAIL=/var/spool/mail/khess
TERM=xterm-256color
SHELL=/bin/bash SELINUX_USE_CURRENT_RANGE=
SHLVL=1
LOGNAME=khess
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR=/run/user/1000 PATH=/home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/bin
HISTSIZE=1000
LESSOPEN=||/usr/bin/lesspipe.sh %s _=/usr/bin/env 

Vynechal jsem výstup LS_COLORS variabilní, protože je tak dlouhý. Vyzkoušejte tento příkaz ve svém systému, abyste viděli, jak vypadá úplný výstup.

Mnoho proměnných prostředí je nastaveno a poté exportováno z /etc/profile a soubor /etc/bashrc soubor. V /etc/profile je řádek to zní:

 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

Chcete-li provést trvalé změny proměnných prostředí pro všechny nové účty, přejděte do /etc/skel soubory, jako je .bashrc a změňte ty, které již existují, nebo zadejte nové. Když vytváříte nové uživatele, tyto /etc/skel soubory budou zkopírovány do domovského adresáře nového uživatele.

Zkoumání úrovní shellu (SHLVL )

Chcete-li volat hodnotu jedné proměnné prostředí, zadejte následující příkaz pomocí SHLVL (Shell Level) jako příklad:

 $ echo $SHLVL 1

Tato proměnná se mění v závislosti na tom, kolik podsložek máte otevřených. Zadejte například bash dvakrát a poté zadejte příkaz znovu:

 $ bash 
$ bash echo $SHLVL 3

Úroveň shellu tři znamená, že jste hluboko ve dvou podslupkách, takže napište exit dvakrát, abyste se vrátili do běžného prostředí.

[Chcete vyzkoušet Red Hat Enterprise Linux? Stáhněte si ji nyní zdarma.] 

Manipulace s PATH proměnná

PATH obsahuje vyhledávací cestu pro provádění příkazů a skriptů. Chcete-li zobrazit vaši PATH , zadejte:

 $ echo $PATH /home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

Dočasně změňte PATH zadáním následujícího příkazu přidejte /opt/bin :

 $ PATH=$PATH:/opt/bin
$ echo $PATH /home/khess/.local/bin:/home/khess/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/bin

Změna je pro aktuální relaci dočasná. Není trvalé, protože není zadáno do .bashrc soubor. Aby byla změna trvalá, zadejte příkaz PATH=$PATH:/opt/bin do vašeho domovského adresáře .bashrc soubor.

Když to uděláte, vytvoříte novou PATH proměnnou připojením adresáře k aktuální PATH proměnná $PATH . Dvojtečka (: ) odděluje PATH záznamy.

Rozluštění $USER , $PWD a $LOGNAME

Měl jsem teorii, o které si myslím, že byla rozptýlena mým vlastním dobrým já. Moje teorie byla, že příkazy pwd a whoami pravděpodobně jen přečetl a zopakoval obsah proměnných shellu $PWD a $USER nebo $LOGNAME , resp. K mému překvapení po nahlédnutí do zdrojového kódu ne. Možná bych je měl přepsat, abych to udělal. Není důvod přidávat více knihoven a téměř 400 řádků kódu C pro zobrazení pracovního adresáře. Stačí si přečíst $PWD a odešlete to na obrazovku (stdout). Totéž platí pro whoami buď s $USER nebo $LOGNAME .

Pokud se chcete na zdrojový kód podívat sami, najdete jej na GitHubu a dalších místech. Pokud zjistíte, že tyto programy (nebo jiné) používají proměnné shellu, rád bych o tom věděl. Přiznávám, že nejsem tak dobrý ve čtení zdrojového kódu C, takže by mohli velmi dobře používat proměnné shellu a nikdy bych to nevěděl. Z toho, co jsem četl, to prostě nevypadalo a bylo jim rozumět.

Hraní $SHELL hra

V tomto posledním přehledu proměnných prostředí vám chci ukázat, jak funguje $SHELL variabilní přijde vhod. Nemusíte zůstat ve svém výchozím prostředí, což je pravděpodobně Bash. Můžete vstoupit a pracovat v jakémkoli prostředí, které je nainstalované v systému. Chcete-li zjistit, které shelly jsou nainstalovány ve vašem systému, použijte následující příkaz:

 $ cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash

Všichni tito jsou ve skutečnosti Bash, takže se nevzrušujte. Pokud budete mít štěstí, můžete také vidět položky pro /bin/tcsh , /bin/csh , /bin/mksh , /bin/ksh a /bin/rksh .

Můžete použít kteroukoli z těchto skořápek a mít v každé jiné věci, pokud jste tak nakloněni. Ale řekněme, že jste správce Solaris a chcete používat shell Korn. Výchozí shell můžete změnit na /bin/ksh pomocí chsh příkaz:

 $ chsh Changing shell for khess. New shell [/bin/bash]: /bin/ksh Password: Shell changed.

Nyní, když zadáte echo $SHELL , odpověď bude /bin/bash , takže se musíte odhlásit a znovu přihlásit, abyste viděli změnu. Jakmile se odhlásíte a přihlásíte, obdržíte jinou odpověď na echo $SHELL .

Můžete zadat další shelly a echo $SHELL měl by nahlaste svůj aktuální shell a $SHLVL , což vám umožní orientovat se v tom, kolik granátů jste hluboko.

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

Můžete nastavit své vlastní proměnné na příkazovém řádku pro každou relaci, nebo je nastavit jako trvalé umístěním do ~/.bashrc soubor, ~/.profile , nebo jakýkoli spouštěcí soubor, který používáte pro svůj výchozí shell. Na příkazovém řádku zadejte proměnnou prostředí a její hodnotu jako dříve při změně PATH proměnná.

Koneckonců

Proměnné prostředí nebo prostředí jsou užitečné pro uživatele, správce systému i programátory. Jsou užitečné na příkazovém řádku a ve skriptech. V průběhu let jsem je používal k mnoha různým účelům, a i když jsou některé z nich pravděpodobně trochu netradiční, fungovaly a fungují. Vytvořte si vlastní nebo použijte ty, které vám poskytne systém a nainstalované aplikace. Skutečně mohou obohatit vaši uživatelskou zkušenost s Linuxem.

Jako vedlejší poznámku k proměnným a shellům, myslí si někdo, že ti, kdo programují v JSON, by měli mít povoleno používat pouze Bourne Shell? Diskutujte.


Linux
  1. 10 zajímavých triků a tipů pro příkazový řádek Linuxu, které stojí za to vědět

  2. Tipy/triky pro navigaci na příkazovém řádku Linuxu 3 - proměnná prostředí CDPATH

  3. Oblíbené rsync tipy a triky

  1. Tipy a triky pro použití CUPS pro tisk s Linuxem

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

  3. Tipy a triky pro curl a wget

  1. Top 8 tipů a triků příkazového řádku MySQL

  2. Linux .htaccess tipy a triky

  3. variabilní dostupnost prostředí v Linuxu