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
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.