Az olvasás és a környezeti változók és shell egy Linux szerveren

Miután szerver biztonságos adatközpontok Európában. Nyílt felhő VPS / VDS szerver egy gyors SSD 1 perc alatt!

A legjobb Web Hosting:
- megvédi az illetéktelen hozzáférés egy biztonságos európai adatközpont
- fizet legalább Bitcoin.
- Akkor tegye meg a disztribúciós

- védelmet DDOS támadások
- ingyenes biztonsági mentés
- Üzemidő 99,9999%
- DPC - TIER III
- ISP - TIER I

Támogatás az orosz 24/7/365 dolgozni a jogi és fizikai személyek. Most kell 24 mag és 72 Gb RAM. Kérlek!

A versenyképes áron bizonyítani, hogy a legolcsóbb hosting, ha nem tudja!

A percek alatt, válassza ki a konfiguráció, a fizetés és a CMS egy VPS kész.
Pénzvisszafizetési - 30 nap alatt!

Bankkártyák, elektronikus valuta révén Qiwi terminálok, WebMoney, PayPal, Novoplat és mások.

Tegye fel kérdését támogatás 24/7/365

Megtalálja a választ az adatbázisunkban, és megfelel az ajánlásokat a

Ajánlatot 8host.com

Az olvasás és a környezeti változók és shell egy Linux szerveren

Munka közben a shell szervert állít össze a nagy mennyiségű információ határozza meg a működését, és a forrásokhoz való hozzáférés. Néhány ilyen paraméterek egy héj konfigurációban, és egyéb felhasználó által meghatározott bemenet.

Az egyik módja annak, hogy nyomon követheti a borítékot az adatoknak - a használata környezetet. Szerda - az a terület, amely a meghatározó tulajdonságait rendszer változó, mely épít a héj minden alkalommal elindul.

Hogyan működik a környezet és a változó

Minden alkalommal, amikor egy shell ülés be van kapcsolva, akkor a folyamat a gyűjtése és összeállítása információt hozzáférhetővé kell tenni a héj és a gyermek folyamatokat. Shell megkapja ezeket az adatokat a különböző fájlok és beállítások a rendszerben.

Az egész környezet biztosítja átviteli eszköz, amely összegyűjti és beállítja a megfelelő konfigurációs folyamat héj, ami viszont át őket a gyermek folyamatokat.

Közepes a formája egy karakterlánc, amely egy pár formájában „kulcs-érték”. Több érték általában elválasztva kettősponttal (:). Minden pár, általában így néz ki:

Ha az érték szóközöket tartalmaz, dupla idézőjelek:

KEY = „érték terek”

Itt a legfontosabb változók értjük a két meglévő fajok: a környezeti változók vagy shell.

A környezeti változók - a változók, amelyeket már meghatároztak az aktuális shell, és öröklődik minden gyermek kagyló vagy folyamatokat. Környezeti változók továbbítására használt információs folyamatok, futás a héj.

Változó shell - változók, amelyek szerepelnek kizárólag a shell, amelyben létrehozták azokat vagy meghatározva. Gyakran használják nyomon követheti az aktuális adatok (például a jelenlegi munka könyvtárba).

Általában ezeket a változókat jelöli nagybetűkkel. Ez segít a felhasználóknak, hogy különbséget a környezeti változók más kontextusban.

Következtetés shell változók és a környezet

Minden ülés követi a shell változók és a környezet. Hozd őket több szempontból is.

printenv
SHELL = / bin / bash
TERM = xterm
USER = demouser
LS_COLORS = rs = 0: di = 01; 34: ln = 01: 36: MH = 00: pi = 40: 33: így = 01: 35: Do = 01: 35: bd = 40; 33; 01: cd = 40; 33; 01: vagy = 40; 31; 01: su = 37; 41: SG = 30: 43: ca.
MAIL = / var / mail / demouser
PATH = / usr / local / bin: / usr / bin: / bin: / usr / local / games: / usr / games
PWD = / home / demouser
LANG = en_US.UTF-8
SHLVL = 1
HOME = / home / demouser
LOGNAME = demouser
LESSOPEN = | / Usr / bin / lesspipe% s
LESSCLOSE = / usr / bin / lesspipe% s% s
_ = / Usr / bin / printenv

Ez egy tipikus példája az extrahált parancsok printenv env és eredményt. Ezek a parancsok csak annyiban különbözik néhány egyedi funkciót. Például printenv tudja kérdezni az értékek az egyes változók:

printenv SHELL
/ Bin / bash

env parancs lehetővé teszi, hogy módosítsa a környezet, amelyben a programok futnak, átadva egy sor változók meghatározásában a parancsot, mint ez:

env VAR1 = "blahblah" command_to_run command_options

Mint már említettük, a gyermek folyamatok általában öröklik a környezeti változók a szülő folyamat, amely lehetővé teszi, hogy módosítsa az értéket, vagy hogy további változókat a gyermekek folyamatokat.

Mint látható, a termelés a parancsok printenv, sok környezeti változók létrehozott rendszer fájlokat és folyamatokat a felhasználó beavatkozása nélkül.

Ehhez használja a set paranccsal. Használt anélkül, hogy további paraméterek felsorolja az összes változó shell, környezeti változók, lokális változók és a shell funkciók:

Jellemzően a lista elég hosszú. Hogy megjelenjen egy kényelmesebb formátumban, nyissa ki egy programot lapozó:

Ez a lista tartalmazza a hatalmas mennyiségű további információt, hogy jelenleg nincs szükség (például egyes funkciók bash).

„Megtisztítása” következtetési eredményeképpen meg kell futtatni a set parancsot POSIX módban, amely továbbítja a shell funkcióval. Ezt kell tenni egy alburok úgy, hogy nem változik a jelenlegi környezetben:

(A -o posix; set)

Ez a művelet megjeleníti az összes változó a környezet és a héj.

Azt is összehasonlítani ezt az eredményt azzal az eredménnyel env / printenv parancsot, és próbálja felsorolni csak a shell változókat, de ez a lista nem teljes, mivel ezek a parancsok információ megjelenítésére különböző módon:

comm -23 <(set -o posix; set | sort) <(env | sort)

A legvalószínűbb, akkor a lista tartalmazhat több környezeti változók, mert a set parancs megjeleníti az értékeket idézőjelek és printenv parancsot, és env - nincs.

Ezek a változók használják mindenféle célra. Ezek olyan alternatív módszer beállítása az állandó értékeket a munkamenet a folyamatokat, így nincs szükség, hogy módosítsa a fájlt.

Major változók a környezet és a burkolat

Néhány különösen hasznos környezeti változók és héjat gyakran használjuk.

Az alábbi lista a főbb környezeti változókat:

  • SHELL. Leírja a héj, amely értelmezi a parancsokat beírni. A legtöbb esetben az alapértelmezett bash, de ez megváltoztatható, ha szükséges.
  • TERM. Ez azt jelzi, hogy milyen típusú a terminál emulált amikor a shell elindul. Mint tudod emulálni különböző hardver terminálok, attól függően, hogy a működési követelményeknek. Általános szabály, akkor nem kell aggódni.
  • USER. Az aktuális felhasználó.
  • PWD. Az aktuális könyvtárat.
  • OLDPWD. előző munkanapon könyvtárban. A héj tartja az esetben, ha a futási parancs cd -.
  • LS_COLORS. meghatározza a színkódok, hogy a használt színes nyomatokat eredményez az ls parancs. Ez a következtetés segíti a felhasználót, hogy gyorsan olvasni az eredmény a parancs (például gyorsan meg tud különböztetni fájltípusok).
  • MAIL. útvonal az aktuális felhasználó postafiókját.
  • PATH. könyvtárak listájának hogy érje el a rendszer, amikor parancsokat hajt végre. Amikor a felhasználó lefuttatja a parancsot, a rendszer ellenőrzi ezeket a könyvtárakat a megadott sorrendben a keresést a futtatható fájlt.
  • LANG. Az aktuális beállítások a nyelv és a lokalizáció, beleértve a karakterkódolást.
  • HOME. home könyvtár az aktuális felhasználó.
  • _. utolsóként kiadott parancs.

Kérjük, tekintse meg a környezeti változók, vizsgálja meg a shell változók:

  • BASHOPTS. opciók listája használható, ha a bash. Ezt fel lehet használni annak érdekében, hogy ellenőrizze, hogy a megfelelő környezet megfelelően működik.
  • BASH_VERSION. indított változata bash olvasható formában.
  • BASH_VERSINFO. változata a bash a géppel olvasható formátumban.
  • Oszlopokat. határozza meg a kimenet szélessége oszlopokban.
  • DIRSTACK. köteg katalógusok álló parancsok pushd és popd.
  • HISTFILESIZE. sorok maximális száma szereplő parancs történelem fájlt.
  • HISTSIZE. A parancsok számát kell tárolni a történelem listán.
  • HOSTNAME. A jelenlegi host nevét.
  • IFS: belső elválasztó beviteli mezők a parancssorban. Az alapértelmezett üres.
  • PS1. meghatározza az elsődleges prompt húr - parancssori shell néző indítási ülésén. Változó készlet PS2 másodlagos prompt húr, ha a csapat vesz egy pár sort.
  • SHELLOPTS. shell paraméterek állíthatók be a készüléket.
  • UID. Az egyedi azonosítója az aktuális felhasználó.

Beállítás shell változók és a környezet

Az alábbiakban néhány példát bemutatni a különbséget a változók és a héj és közepes magyarázza szintaktikai beállítás ezeket a változókat.

Létrehozása shell változók

Először be kell állítania a változókat a héj az aktuális munkamenet. Ez úgy történik, nagyon egyszerű, erre van szüksége a csupán egy nevet és egy értéket. Ahogy már mondtam, hogy írni a nevét olyan változókat nagybetűk.

Ebben a példában idézőjelben használják, mert az érték szóközt tartalmaz. Továbbá szükség van, hogy az egyszeres idézőjelbe, mint egy felkiáltójel egy speciális karakter a bash-héj, arra utal, hogy a parancsot a történelem, ha nem kerülik el, vagy nem zárt aposztrófok.

Így az ebből eredő shell változó érvényes az aktuális munkamenet, de nem terjedt a gyermek folyamatokat.

Ennek ellenőrzéséhez használja a grep paranccsal a következtében a csapat:

készlet | grep TEST_VAR
TEST_VAR = 'Hello World!'

Ügyeljen arra, hogy a változó nem egy környezeti változó, akkor is futtatásával grep eredménye printenv parancsot:

printenv | grep TEST_VAR

Ez a művelet nem jár semmilyen hatással.

Ezt fel lehet használni, hogy megjelenjen az értéke változó vagy shell környezetben.

echo $ TEST_VAR
Hello World!

Amint látható, hogy olvassa el a változó értékét, akkor a $ jelet.

Ismét a kapott változó nem adható semmilyen gyermek folyamat. Ennek tesztelésére a jelenlegi shell bővítése egy új bash-héj:

bash
echo $ TEST_VAR

Telepítéskor leányvállalata héj, megpróbálja megnyitni a változó tartalmát, semmi nem fog megjelenni. Ez azt jelenti, hogy minden megfelelően működik.

Ahhoz, hogy visszatérjen az eredeti shell, írja be az exit:

Létrehozása a környezeti változók

Most próbálja állítani a shell változó környezeti változót. Ez úgy történik, hogy az exportáló változó. A csapat, amely végrehajtja a kiviteli rendelkezik a megfelelő nevet.

printenv | grep TEST_VAR
TEST_VAR = Hello World!

Nos, ez a változó jelenik meg a listában. Azt is telepíteni leányvállalata héj újra:

bash
echo $ TEST_VAR
Hello World!

Kiváló! A leányvállalat megkapta az eredeti shell shell változót. Próbálja exportálni egy másik változó elhagyása előtt leányvállalata héj.

export NEW_VAR = "Tesztelés export"

Ellenőrizze, hogy a változó exportálták:

printenv | grep NEW_VAR
NEW_VAR = Testing export

Most menj vissza az eredeti shell:

Ellenőrizze, hogy meg tudja nyitni a változót:

Az eredmény nem térítendő

Ez azért van, mert a környezeti változók küldeni csak gyermeke folyamatokat. Beágyazott eljárás, a környezeti változók szülő héj nélkül. A legtöbb esetben ez megakadályozza, hogy a hatás a programok működési környezet, ahonnan indultak.

Részben NEW_VAR ben alakult, mint leányvállalata a shell változó környezetben. Ez a változó érvényes egy adott héj és gyermek kagyló vagy folyamatokat. Miután visszatért a felhasználó az eredeti shell, ebben a környezetben már elpusztult.

Mozgó és reset változók

Részben TEST_VAR még egy környezeti változó. Hogy újra, hogy ez egy shell változót, írja be:

export -n TEST_VAR

Nos, ez a változó már nem egy környezeti változót:

printenv | grep TEST_VAR

Ez a változó egy shell újra:

készlet | grep TEST_VAR
TEST_VAR = 'Hello World!'

Ahhoz, hogy visszaállítsa a változó, hogy a környezeti változó vagy shell, használja a hatástalanított:

Ügyeljen arra, hogy a változó nem létezik többé:

Az eredmény nem volt kiterjeszteni, mivel a változó elvetették.

Automatikus beállítása a környezeti változók

Mint már említettük, sok program használja a magyarázó változók a környezet határozza meg, hogyan működnek. Telepítse a szükséges változókat, amikor egy új shell, elég kellemetlen. Ezen kívül sok változó van beállítva azonnal a bejáratnál. Hogyan lehet automatikusan beállítja a változókat?

Ez egy kicsit bonyolultabb, mint amilyennek látszik első, mert a bash-héj olvas sok konfigurációs fájlokat.

A fajta kagyló ülés

A bash shell beolvassa a különböző konfigurációs fájlok, attól függően, hogy a munkamenet indult. Az első két fajta ülés, amelyek meghatározzák a bőr - kezdődik és leányvállalata.

Szintén shell ülések interaktív és nem interaktív.

Interaktív shell ülés (interaktív shell) - Ez az ülés, kivenni a terminál. A nem interaktív shell ülés (nem interaktív shell) - ezen az ülésen nem kötődik a terminál.

Így, a héj munkamenet besorolni ilyen szempontból: a kiindulási-leányvállalata, interaktív, nem interaktív.

Rendes ülésén, nyitott SSH-n keresztül, mint általában, egy interaktív munkamenet kezdetén. A szkript indul a parancssorból, általában dolgozik egy nem interaktív munkamenet leányvállalata. Terminal Session - különböző kombinációi E két tulajdonság.

Tehát első rajt ülésén fogadja a konfigurációt a / etc / profile. Ezután keresi a konfigurációs fájlban héjat a felhasználó saját könyvtárát, hogy egy bizonyos konfigurációban, a felhasználó által.

Ez az ülés olvasás fájlokat

/.profile és nem olvassa a többi fájlokat.

Leányvállalat ülésen viszont olvas /etc/baash.bashrc, majd a felhasználói fájl

/.bash.rc a telepítési környezet.

Nem interaktív shell beolvassa a környezeti változó BASH_ENV és a megadott fájlt hozzon létre egy új környezetben.

Hogyan kell beállítani a környezeti változók

Mint látható, szétszórva különböző konfigurációs fájlokat.

Ez teszi a rendszert nagyon rugalmas, ami hasznos lehet bizonyos esetekben, mikor kezdődjön és leányvállalata nyersbőr kell állítani a különböző paramétereket. Mégis, ezek a membránok hajlamosak ugyanazokat a beállításokat használja.

Szerencsére a legtöbb Linux disztribúció jelzi a konfigurációs fájl leányvállalata héj forrás konfigurációkat kiindulási héj. Ez azt jelenti, hogy a környezeti változók meghatározásához két ülés lehet a konfigurációs fájlok leányvállalata héj.

Általában, a környezeti változók a felhasználó által beállított egyaránt felhasználja membránok. Ez azt jelenti, hogy ezeket a változókat lehet állítani a fájl

Megnyitni ezt a fájlt:

Valószínűleg ő már egy kicsit az adatok. A legtöbb itt megadottaktól - olyan paraméterek bash, nem kapcsolódik a környezeti változókat. A változók ebben a fájlban vannak beállítva ugyanúgy, mint a parancssorba:

Annak beállításához, az egész rendszerre kiterjedő változók, töltse ki őket a / etc / profile, /etc/bash.bashrc vagy / etc / environment.

Shell változók és a környezet mindig jelen van minden ülés a héj, ezért a munkaképesség különösen hasznos számukra. Ezek segítségével, akkor küldjön egy gyermek konfigurálása során a szülő folyamat, valamint beállítani a külső fájlokat.

Bizonyos helyzetekben ez ad számos előnye van. Például egyes telepítési mechanizmuson támaszkodnak a környezeti változókat beállítani hitelesítési adatokat. Ez kényelmes, mert az ilyen fontos adat nem kerül tárolásra, bármilyen fájl, ezért - meg kell védeni a kívülállók.

Sok más, a közös helyzetek, amikor szükség lehet olvasni, vagy környezeti változókat a rendszer. A kézikönyvben leírt eszközök és módszerek - kiváló alapot a készségek fejlesztését dolgozni változók, és használja őket helyesen.

Kapcsolódó cikkek