path howto
Fordítás: Alexander Ermolaev. SWsoft Pte Ltd.
Ez a dokumentum leírja a közös problémák változó Unix / Linux környezetben, különösen a PATH változót. A PATH változó egy jegyzéklistát amelyben keresni parancsokat. Alkalmazható Debian Linux 1.3 forgalmazás.
Ez a dokumentáció szabad dokumentációt; terjeszthető és / vagy módosíthatja a GNU General Public License által közzétett Free Software Foundation bármelyik változatát a licenc 2, akár (tetszőleges) későbbi változata szerint.
Ez a dokumentáció a reményben terjesztjük, hogy hasznos lesz, de GARANCIA NÉLKÜL; anélkül, hogy a vélelmezett szavatosságot vagy HASZNÁLHATÓ EGY ADOTT CÉLRA. Lásd a GNU General Public License további részletekért.
Ez a dokumentum része a Linux HOGYAN projekt.
Minden folyamat Unix tartalmazza a „környezet” (környezet). Ez a lista a változók, amelyek nevei és értékei, ezek húrok, és tartalmazza a legtöbb karakter. Minden folyamat a Unix a szülő folyamat - prosess készítette ezt a folyamatot nevezik a gyermeket. Gyermek folyamatok öröklik a környezet és a szülő folyamat. Ők lehet, hogy néhány változtatást a környezet, mielőtt a környezetbe van gyermekük folyamatokat.
Ebben a dolgozatban használja a „csapat”, amelyhez az attribútum a program, amely állítólag van egy rövid nevet, mechanizmusát használja módon.
A Linux, hogy elindítsa a folyamatot, az operációs rendszer beolvassa a könyvtárak változóban tárolt PATH: használhatja a mechanizmus a módját, ahol megpróbálja végrehajtani a parancsot. Ha az operációs rendszer megkapja a fájl nevét, kivásárlási nem tartalmazzák a „/”, akkor a telefonkönyvet a PATH környezeti változó. Még ha a környezet nincs PATH, a legalább könyvtárak / bin és a / usr / bin kell szemlélni.
Az sh használja export parancsot a környezetre, csh, használd a setenv. Például:
setenv PATH / usr / local / bin: / usr / bin: / bin: / usr / bin / X11 / usr / games:.
C-alkalmazások használhatják a könyvtár funkciója setenv () megváltoztatni a környezetet. Perl biztosítja a környezetet egy asszociatív tömbben% ENV beállíthatja PATH $ -os ENV = „/ bin”.env csapat - a legfőbb módja a megállapítás a környezeti változók. Azt is fel lehet használni, hogy megváltoztassa őket.
További információval a környezet a mechanizmus vehet az alapokat a man oldalak (férfi) „környe”, „execl”, „setenv” vagy info „env” és a dokumentációban a shell.
Ha Linux csizma, az első folyamat, amely elindítja az init. Ez - egy speciális eljárás, mert nincs szülő. Azonban ez az elsődleges, hogy minden folyamat. Beállítása init lesz körülvéve az összes folyamatot, ha nem kapcsolódik a környezet tisztán. A legtöbb folyamatok megváltoztatják a környezetet.
Init elindul egy folyamat-csoport. Az / etc / inittab elmondja milyen folyamatok a rendszer elindul. Ezek a folyamatok működnek a környezetben, öröklési jog init - pl program getty "írja„login:”vigasztalni. Ha fut a kapcsolat PPP, meg kell emlékezni, hogy dolgozik az init környezetben. Rendszer inicializáló - ez gyakran egy script, ami itt kezdődik. A Debian 1.3 /etc/init.d/rc inicializáló szkript, viszont más inicializáló szkript.
A rendszer tartalmaz egy csomó fut szerverek (démon) lehet, hogy nem használja olyan környezetben alapértelmezés szerint telepítve. A legtöbb szerver fut a inicializáló szkript, és így tovább, hogy init környezetben.
Amikor a felhasználó bejelentkezik, szerdán jár találkozókat, amelyek meg vannak írva a programba fordításkor a rendszer inicializáló szkript a felhasználó inicializáló szkript. Ez elég bonyolult, és a jelenlegi helyzet nem teljesen kielégítő. Az eljárás abban különbözik, ha a felhasználó jön a konzol, az XDM vagy a hálózatról.
Init - szülő folyamat minden más rendszer feldolgozza. Más eljárások öröklik init környezet és az útvonal előírt a init. Csak ritka esetekben más módon még nem állapították meg.
„Way init” rögzítik a forráskód a program, és úgy néznek ki, mint ez:
Megjegyzés: az init útvonal nem tartalmaz / usr / local / bin.
Minden elindított programok az / etc / inittab munka init környezet, különösen a rendszer inicializáló szkript /etc/init.d (Debian 1.3).
Minden, ami indult a rendszer inicializáló szkript már init környezet alapértelmezett környezetet. Például a syslog, kerneld pppd (amikor elindította az indításkor), GPM, LPD és inetd már init környezet, és nem változtatják meg.
Csoport programokat indul a boot szkript, és a PATH kifejezetten meghatározott paraméterekkel. Például: ATD, sendmail, az Apache és tintahal.
Vannak más programok, amelyek indulnak a startup script, de ezek helyettesítik az utat teljesen. Az egyik ilyen például - a cron.
Bejelentkezés programot állít útvonal meghatározott /usr/include/paths.h. „Path bejelentkezés” különbözik a root és más felhasználók számára.
normál felhasználók számára (_PATH_DEFPATH):
gyökér (_PATH_DEFPATH_ROOT):
Az út a hétköznapi felhasználóknak nem tartalmaznak útvonalakat, amelyek bármilyen sbin könyvtárak. Azonban azokban az aktuális könyvtárban, „”, mely még ma is veszélyes a root felhasználó számára. Még a / usr / local / bin nincs megadva gyökér.
Bejelentkezés útvonal gyakran felülírja script shell indításkor. Azonban lehetséges, hogy más programokat a / etc / passwd például egy felhasználó shell. Például, azt használják a következő sort kell kezdeni a PPP, amikor belépek a speciális felhasználói nevét. Ebben az esetben a pppd-nek pontosan belépés módja a rendszerbe.
ETU-ppp: viYabVlxPwzDl: 1000: 1000: Esa Turtiainen, PPP: /: / usr / sbin / pppd
Gyakran a felhasználói folyamatok - folyamatok héj leányvállalatok rögzítik a / etc / passwd a felhasználó számára. shell inicializáló fájlok gyakran megváltoztatják az utat.
A bejelentkezés, a neve a héj előzi „-”, például bash „-bash” van írva. Ez annak a jele, hogy a rendszer shell indul bejelentkezést. Ebben az esetben a héjat végrehajtja inicializáló fájlok, amikor belép a héj. Egyébként van egy könnyebb elindulni. Ezen kívül, a héj ellenőrzést -, hogy a parancs származó fájl vagy gépelt be a terminált. Ez módosítja a shell indítása, hogy egy nem interaktív shell inicializálja nagyon finoman, bash, ebben az esetben nem hajt végre elindulni.
Ennek normál shell, bash nézi az egész rendszerre kiterjedő / etc / profile, amely leírja a rendszer környezetre és az is, hogy be lehet állítani a bash felhasználóknak. Azonban ez nem teljesül, akkor a rendszer úgy értelmezi a héjat nem interaktív. A legfontosabb ügy az rsh, ahol a távoli parancs végrehajtása a következő autó. / Etc / profile nem fut, és az út örökölte rsh démon.
bash parancsot kap argumentum -login és -i, amelyeket fel lehet használni, hogy állítsa be a shell a shell jelentkezned vagy interaktív.
A felhasználó felülírhatja beállított értékek az / etc / profile fájl létrehozásával
/.profile. Felhívjuk figyelmét, hogy csak az elsőt történik - ez eltér az inicializálás logikája csh.
/.bash_login nem teljesült speciálisan login shell, és ha .bash_profile létezik, akkor nem kerül végrehajtásra egyáltalán.
Ha bash használják neve sh neve helyett bash, utánozza inicializálni bash: megkeresi a / etc / profile és
/.profile csak input kagyló.
A bejáratnál a héj tcsh végrehajtja a következő fájlokat ebben a sorrendben: