Rassel Sejdzh. Priemy professional'noj raboty v UNIX Perevod "Tricks of the UNIX Masters" by Russel G. Sage --------------------------------------------------------------- From: Vladimir Kazennov ---------------------------------------------------------------  * VVEDENIE *  Nepreryvnoe snizhenie cen, rost proizvoditel'nosti v nashe vremya i ozhidaemoe poyavlenie novyh mikro- i super-mikrokomp'yuterov delayut moshch' sistemy UNIX dostupnoj dlya vse bol'shego kruga pol'zovatelej. Sistemy UNIX ili tipa UNIX rabotayut na lyubyh mashinah, ot urovnya PC-XT do AT i vyshe. Dostupnost' bol'shih ob容mov operativnoj pamyati i moshchnyh mikrop- rocessorov privela k vozrastaniyu interesa k mnogozadachnosti, sistemam mul'tiprocessirovaniya - sfere, v kotoroj UNIX imeet solidnuyu reputa- ciyu. Odnako primenenie UNIX s maksimal'noj otdachej - delo nelegkoe. Lyudi godami vyskazyvali neudovletvorenie tem, chto ona ne yavlyaetsya "druzhestvennoj" po otnosheniyu k pol'zovatelyu - i eto razumnaya kritika, hotya na samom dele UNIX soderzhit sredstva dlya postroeniya interfejsov lyubogo trebuemogo urovnya slozhnosti. Naibolee vazhnaya prichina trudoem- kosti effektivnogo ispol'zovaniya UNIX sostoit v tom, chto v sisteme ispol'zuyutsya ochen' plodotvornye idei, ne znakomye mnogim lyudyam, rabo- tavshim s bolee prostymi operacionnymi sistemami. UNIX predostavlyaet takzhe gorazdo bol'she instrumental'nyh sredstv, bolee gibkih i s su- shchestvenno bol'shimi vozmozhnostyami, chem, naprimer, populyarnaya MS-DOS (v chem mozhno ubedit'sya beglym sravneniem sootvetstvuyushchih rukovodstv). Veroyatno, Vy, chitatel', nachinali s izucheniya UNIX v ob容me, dosta- tochnom dlya resheniya konkretnyh zadach v vashej sisteme, bud' to tekstovaya obrabotka i formatirovanie tekstov, programmirovanie ili zapusk sta- tisticheskih paketov. CHerez nekotoroe vremya vy, vidimo, nakopili (ot drugih lyudej ili v rezul'tate sobstvennoj raboty) nebol'shoj nabor pri- emov, vklyuchayushchij, vozmozhno, nekotoryj opyt prostogo programmirovaniya dlya interpretatora komandnogo processora. Hotya eto estestvennyj put' razvitiya, prinimaya vo vnimanie, chto v UNIX bolee 200 komand, vy mozhete ne zametit' ili propustit' mnogie moshchnye i poleznye idei. Bolee vazhno to, chto vy mozhete lishit'sya perspektivnogo vzglyada, kotoryj prihodit s polnym ponimaniem togo, kak rabotayut razlichnye chasti UNIX, i koncepcij, kotorye lezhat v ih osnove. V knige pokazany mnogie poleznye instrumental'nye sredstva i pri- emy, kotorye vy mozhete srazu primenyat' v rabote, chtoby znachitel'no po- vysit' proizvoditel'nost' UNIX. V otlichie ot nekotoryh knig, kotorye prosto predstavlyayut nabor komandnyh fajlov ili drugih sredstv, zdes' opisyvayutsya podrobnosti togo, kak rabotaet kazhdaya programma, i ukazy- vayutsya nekotorye napravleniya adaptacii programm dlya vashih konkretnyh nuzhd. Sochetanie instrumental'nyh sredstv, koncepcij i tehniki resheniya zadach pomozhet vam stat' masterom UNIX. CHTO VY DOLZHNY UZHE ZNATX Dlya togo, chtoby izvlech' pol'zu iz dannoj knigi, vy dolzhny obla- dat' nekotorym bazovym opytom raboty v sisteme UNIX. Vy dolzhny znat' obshchie aspekty fajlovoj sistemy, takie, kak katalogi, vlozhennost' i marshrutnye imena. Vy dolzhny znat', kak ispol'zovat' odin iz redaktorov UNIX, chtoby vvodit' komandnye fajly interpretatora komandnogo pro- cessora i, po krajnej mere, slegka znat' programmirovanie s ispol'zo- vaniem komandnogo processora. My sdelali malo dopushchenij, kasayushchihsya togo, chto vy dolzhny znat' o dannoj komande ili osobennostyah UNIX. Kazh- daya komanda ili ponyatie ob座asnyaetsya, kogda ono vvoditsya, a periodi- cheskie ekskursy v vashi rukovodstva po UNIX mogut proyasnit' vse temnye mesta. Zapomnite odno: imeetsya tak mnogo komand s takim bol'shim koli- chestvom opcij, chto dazhe my, professionaly, dolzhny vremya ot vremeni ob- rashchat'sya k knige. Esli vy tol'ko nachinaete ispol'zovat' UNIX, to kniga "UNIX Primer Plus" ("Rasshirennyj bukvar' po UNIX") Mitchela Uejta (Mitchell Waite), Donal'da Martina (Donald Martin) i Stefena Prata (Stephen Prata) (SAMS, 1983) dast vam ischerpyvayushchee vvedenie v predmet. Esli vy uzhe ne novichok, no vse eshche ne imeete chetkogo predstavleniya o vnutrennej rabo- te komandnogo processora i programmirovanii dlya nego, to vam dast fun- damental'nye osnovy drugaya kniga - "Advanced UNIX - A Programmer's Guide" ("Rukovodstvo programmista po rasshirennomu UNIX") Stefena Prata (SAMS, 1985). Fakticheski eta kniga yavlyaetsya ideal'nym sputnikom i spravochnikom dlya dopolnitel'nyh issledovanij, kotorye sostavlyayut nashu knigu. O KAKOJ SISTEME UNIX IDET RECHX Imeetsya, konechno, mnogo variantov UNIX. Pomimo osnovnyh semejstv realizacij UNIX (AT&T System V, Microsoft XENIX i Berkeley [BSD]), rasprostraneno neskol'ko razlichnyh komandnyh processorov, sredi koto- ryh naibolee shiroko ispol'zuyutsya dva - komandnyj processor Bourne ko- mandnyj processor Si. Vse komandnye fajly v dannoj knige byli provere- ny i v System V, i v XENIX s ispol'zovaniem komandnogo processora Bourne, za isklyucheniem teh sluchaev, kotorye special'no otmecheny. BOLX- SHINSTVO nashih komandnyh fajlov rabotaet takzhe pod upravleniem komand- nyj processor Bourne v BSD, hotya neskol'kih komand System V net v sisteme BSD i naoborot. My pytalis' ukazat' te mesta, v kotoryh eti dve sistemy sushchestvenno otlichayutsya, i dat' nekotorye al'ternativnye podhody dlya pol'zovatelej BSD. Bol'shinstvo nashih komandnyh fajlov bylo takzhe perepisano dlya za- puska pod upravleniem programmnogo processora Si posle ucheta sin- taksicheskih otlichij. Esli vy pol'zuetes' komandnym processorom Bourne i hoteli by poeksperimentirovat' s programmnym processorom Si, to ho- roshim vvedeniem yavlyaetsya ukazannaya ranee kniga "Advanced UNIX - A Programmer's Guide". Esli odin iz nashih komandnyh fajlov ne rabotaet v vashej sisteme, ne vpadajte v paniku. Prover'te, pozhalujsta, sleduyushchee: - Kakaya u vas versiya UNIX? Otmechali li my chto-nibud' otnositel'no etoj versii? - Kakoj komandnyj processor vy ispol'zuete (Bourne, Si ili dru- goj)? - Dolzhny li vy pomenyat' marshrutnoe imya v silu togo, chto v vashej sisteme chto-to nahoditsya v drugoj chasti? - Ne utratili li vy prav dostupa k opredelennomu fajlu? Ne nuzhno li vam primenit' komandu su, chtoby poluchit' drugoj identifika- tor pol'zovatelya ili stat' v koren'? - Ispol'zuet li dannyj komandnyj fajl predvaritel'no pod- gotovlennyj komandnyj fajl, kotoryj vy eshche ne vveli v vashu sistemu? Bol'shinstvo iz etih sovetov dovol'no ochevidny, no nikogda ne me- shaet sdelat' glubokij vdoh i vnimatel'no podumat', prezhde chem nyryat' v otladochnye seansy. OBZOR GLAV Davajte brosim beglyj vzglyad na to, chto opisyvaetsya v dannoj kni- ge, chtoby vy poluchili predstavlenie o predmete knigi i znali, gde naj- ti nuzhnuyu temu. Glava 1 - vvedenie v sredu vypolneniya sistemy UNIX v celom, sposoby obrashcheniya pol'zovatelej k ee razlichnym chastyam. Vy uvidite, ka- kim obrazom vash rost kak mastera UNIX pozvolit vam maksimal'no uspeshno primenyat' vse aspekty i osobennosti sredy. V glave 2 rassmatrivaetsya naibolee vazhnaya osobennost' sredy UNIX - fajlovaya sistema - i vvodyatsya instrumental'nye sredstva dlya izucheniya fajlovyh struktur i soderzhimogo fajlov. Glava 3 predostavlyaet sredstva dlya prakticheskih kazhdodnevnyh za- dach po soprovozhdeniyu fajlov - dlya kopirovaniya i sohraneniya fajlov i dlya udaleniya nenuzhnyh fajlov. V glave 4 opisyvayutsya vidy fajlov, kotorye vazhny dlya programmnoj dokumentacii, i predostavlyayutsya instrumental'nye sredstva, kotorye ob- legchayut vam soprovozhdenie vashej rastushchej kollekcii programmnyh sredstv. V glave 5 obrashcheno vnimanie na vashu sobstvennuyu sredu (home-sre- du) i lichnoe administrirovanie. Syuda otnositsya upravlenie vashim plani- rovaniem i zadachami. Predstavleno neskol'ko poleznyh sredstv, pomogayu- shchih vam. Glava 6 predostavlyaet sposoby polucheniya svedenij o drugih pol'zo- vatelyah i sredstva dlya obespecheniya bezopasnosti vashego rabochego prost- ranstva v sisteme. V glave 7 rassmatrivayutsya nekotorye apparatnye chasti ustrojstv UNIX, osobenno, terminaly i diski s nekotorymi primerami instrumen- tal'nyh programmnyh sredstv. Vklyucheny takzhe instrumenty dlya raboty s fajlovymi sistemami. Glava 8 posvyashchena kommunikaciyam v UNIX - sfere, znachimost' koto- roj bystro vozrastaet. |tot material pomozhet vam rabotat' s nesoglaso- vannymi modemami, a takzhe s problemami bezopasnosti i upravleniya, ko- torye voznikayut pri rabote s komandami cu i uucp. Predlagaemye sredstva pomogut vam v rabote kak s kommunikaciyami ot UNIX k drugoj operacionnoj sisteme, tak i ot UNIX k UNIX. Privedeny takzhe prakti- cheskie primery apparatnyh konfiguracij. Glava 9 vvodit chitatelya v sistemnoe administrirovanie i bezo- pasnost'. Vy mozhete najti zdes' informaciyu, kotoruyu vy mogli by polu- chat' samostoyatel'no tol'ko posredstvom mnogoletnego chteniya i eksperi- mentirovaniya. Poskol'ku UNIX stanovitsya bolee rasprostranennym v "re- al'nom mire", bezopasnost' stanovitsya ochen' vazhnym voprosom. My predstavlyaem koncepcii, daem informaciyu o tom, za chem neobhodimo sle- dit', i instrumental'nye sredstva, pomogayushchie sledit'. Glava 10 zavershaet knigu podborkoj special'nyh priemov UNIX, vklyuchayushchih odnu-dve komandnye stroki, kotorye dejstvuyut neozhidanno ef- fektivno. Nabor prilozhenij predostavlyaet informaciyu, poleznuyu pri program- mirovanii s pomoshch'yu komandnogo processora i pri otladke. Poskol'ku nekotorye iz instrumental'nyh sredstv ispol'zuyut ko- mandnye fajly, vvedennye ranee v dannoj knige, vy dolzhny rabotat' nad knigoj v sootvetstvii s posledovatel'nost'yu glav, kogda vnedryaete ko- mandnye fajly v vashu sistemu. Odnako vam ne pomeshaet snachala pere- listat' vsyu knigu.  * GLAVA 1. Sreda sistemy UNIX *  Vvedenie Mnogoobrazie sred sistemy UNIX Vash registracionnyj katalog: kak sdelat' ego komfortnym Teorii otnositel'nosti a la UNIX ZHizn' sistemy UNIX: nekotorye metafory SREDA SISTEMY UNIX VVEDENIE V dannoj glave rassmatrivaetsya sreda, kotoraya sushchestvuet v siste- me UNIX i vokrug nee. Osveshchenie vseh aspektov sredy UNIX bylo by slish- kom gromozdkoj zadachej i vyhodit za predely dannoj knigi. Dazhe otdel'- nym utilitam, takim kak fsdb i sdb, nuzhny svoi sobstvennye knigi, chto- by otdat' im dolzhnoe. My pytaemsya dat' chitatelyu nachal'nye svedeniya, filosofiyu i oshchushchenie sistemy UNIX, chto lezhit v osnove issledovanij i instrumentov, predstavlennyh v etoj knige. CHitaya etu glavu, vy, vozmozhno, zahotite prochitat' (ili perechi- tat') komandy profile(4), environ(5), term(5), termcap(5) i termio(7) v rukovodstvah po UNIX, chtoby oznakomit'sya s mehanizmami, kotorye pre- dostavlyaet UNIX dlya ustanovki rabochej sredy. Vnutri sistemy UNIX sushchestvuet mnozhestvo razlichnyh podsred. Vse vmeste oni obrazuyut obshchuyu kartinu, v vide kotoroj my predstavlyaem sebe UNIX. |ta kniga posvyashchena naibolee vazhnym aspektam sredy UNIX s cel'yu zakladyvaniya fundamenta, neobhodimogo dlya ponimaniya vsej sistemy. |to dast vam kontekst, v kotorom mozhno posmotret' na sobstvennuyu rabotu v sisteme, nezavisimo ot togo, yavlyaetes' vy pol'zovatelem, programmistom ili administratorom sistemy. V dannoj glave rassmatrivayutsya razlichnye sredy v komp'yuterah s teoreticheskoj tochki zreniya, opisyvaetsya "domashnyaya" sreda i metody ee ustanovki, sposoby ispol'zovaniya uslovnyh oboznachenij i global'naya sreda. "MNOGOOBRAZIE SRED" Kazhdaya komp'yuternaya sistema podderzhivaet mnogo razlichnyh sred. |ti sredy ispol'zuyutsya kak stroitel'nye bloki dlya sozdaniya funkcio- nal'nyh rabochih sistem. Razlichnye urovni neobhodimy kak dlya sokrashcheniya ob容ma raboty po upravleniyu mashinoj, tak i dlya postroeniya takogo in- terfejsa, chtoby my mogli ispol'zovat' komp'yuter na otnositel'no vyso- kom, udobnom dlya cheloveka urovne. My rassmatrivaem etu model', tak kak ona pomogaet vystroit' v ryad urovni, na kotoryh my mozhem rabotat'. Imeya bol'she znanij o tom, gde my nahodimsya v sisteme, i o tom, kak ona funkcioniruet vokrug nas, my mo- zhem legche stroit' rastushchie abstraktnye modeli na vershine teh modelej, kotorye uzhe imeyutsya. Komp'yutery - eto fakticheski rabochie modeli abstrakcij, tak chto chem bol'she my ponimaem modeli, tem luchshe my mozhem ispol'zovat' ih dlya uproshcheniya i uskoreniya nashej raboty. Mnogoobrazie modelej na ris.1-1 . demonstriruet razlichnye urovni, funkcioniruyushchie vnutri komp'yutera. Nizhnij sloj - eto startovaya tochka, ot kotoroj mnogoobrazie rastet vverh. Kazhdyj uroven' stroitsya na pre- dydushchem i ispol'zuetsya dlya podderzhki urovnya, raspolozhennogo nad nim. Dlya kazhdogo bolee vysokogo urovnya sreda bolee ob容mna i bolee "virtu- al'na" v tom smysle, chto imeet mesto men'she uslovnyh ogranichenij. Verhnie urovni ispol'zuyut dlya svoej raboty nizhnie i, takim obrazom, skryvayut podrobnosti, neobhodimye dlya raboty etih nizhnih urovnej. My mozhem sozdat' modeli vysokogo urovnya, kotorye rabotayut na mashine bolee nizkogo urovnya, ne znaya nichego o nizhnih urovnyah. Davajte brosim beglyj vzglyad na urovni modeli i pogovorim o tom, kakimi iz nih operiruet dannaya kniga. Ris. 1-1 Mnogoobrazie komp'yuternyh sred ------------------------------------------------------------ \ L7 / Komandnye fajly (scripts) \________________________________/ \ L6 / Prikladnye programmy, \____________________________/ interpretator komand, yazykovye generatory \ L5 / Kompilyator \________________________/ \ L4 / Operacionnaya sistema \____________________/ \ L3 / YAdro \________________/ \ L2 / Uslovnaya mashina, assembler \____________/ \ L1 / Mikroprogrammy \________/ \ L0 / Logicheskie shemy, apparatnye sredstva \____/ ------------------------------------------------------------ UROVENX 0 - APPARATNYE SREDSTVA Na samom nizhnem urovne nahodyatsya apparatnye sredstva i logicheskie cepi. |tot uroven' opredelyaet sposob hraneniya i obrabotki dannyh vo vseh apparatnyh sredstvah. Poskol'ku tehnologiya izgotovleniya kremnie- vyh mikroshem prodolzhaet razvivat'sya, etot uroven' stanovitsya fizi- cheski men'she i proshche, togda kak skorosti zapominaniya i obrabotki pro- dolzhayut rasti. Na etom urovne komponentami yavlyayutsya central'nyj pro- cessor (CP), pamyat', mikroshemy podderzhki i sistemnaya shina. Otmetim, chto hotya progress na etom urovne prodolzhaetsya, eto vyzy- vaet ochen' malye izmeneniya na verhnem sloe piramidy. Filosofiya sistemy UNIX sostoit v tom, chtoby izolirovat' nizkourovnevyj apparatnyj sloj i obespechit' edinoobraznye interfejsy k nemu, kotorye ne nuzhdayutsya v iz- meneniyah "naverhu". Verhnij sloj dazhe ne dolzhen znat' o nizhnem sloe. |to ne znachit, chto sobytiya v mire apparatury ne vazhny v real'nom mire, ved' protivorechiya real'nogo mira vliyayut na skorost' i emkost' resursov, ne govorya uzhe ob ih stoimosti. UROVENX 1 - MIKROKOMANDY |tot uroven' vo mnogom pohozh na yazyk programmirovaniya. On yavlya- etsya instrumentom, kotoryj ispol'zuet arhitektor sistemy dlya sozdaniya "rodnogo" mashinnogo yazyka. Mashinnyj yazyk soobshchaet apparature, kakuyu konkretnuyu komandu sleduet vypolnit'. V nachale evolyucii CP bol'shinstvo naborov komand byli apparatno kodirovannymi. |to znachit, chto kogda CP poluchal komandu, dekodirovanie i vypolnenie proizvodilos' neposredstvenno cepyami v kremnievoj mik- rosheme. Blagodarya progressu v tehnologii CP, nekotorye mikroshemy mo- gut byt' programmiruemymi na urovne ispolneniya komand, chto pozvolyaet konstruktoram sozdavat' i realizovyvat' novye nabory komand s mini- mal'nymi usiliyami. UROVENX 2 - USLOVNAYA MASHINA Dannyj uroven' obespechivaet translyaciyu iz mnemonik yazyka assemb- lera v kody operacij i dannye mashinnogo yazyka. YAzyk assemblera - eto nekotoraya anglo-podobnaya notaciya, kotoraya oblegchaet cheloveku ponimanie i upravlenie rabotoj komp'yuterov. Uslovnaya mashina podderzhivaetsya assemblerom. Assembler mozhet prev- rashchat' idei bolee vysokogo urovnya v cepochki chisel, kotorye mogut byt' zatem vypolneny. Naryadu s assemblerom, primenyayutsya modeli, pomogayushchie ispol'zovat' apparaturu komp'yutera. Zdes' my mozhem opredelit' takie veshchi, kak steki, vektora preryvanij i periferijnyj vvod-vyvod. UROVENX 3 - YADRO YAdro yavlyaetsya sleduyushchim logicheskim prodvizheniem vverh i koncepci- ej, kotoruyu mozhno teper' realizovat' programmno na uslovnoj mashine. YAdro predostavlyaet sredu, podderzhivayushchuyu eshche bol'shie abstrakcii, chem te, chto rassmatrivalis' do sih por. Dvumya naibolee vazhnymi abstrakciya- mi na urovne yadra yavlyayutsya upravlenie processami dlya mul'tiprogrammi- rovaniya i mnogozadachnosti, i fajlovaya sistema, kotoraya upravlyaet hra- neniem, formatom, poiskom fajlov i t.p. Kogda eti dve oblasti pereple- tayutsya, my imeem bazovuyu funkciyu mnogopol'zovatel'skoj mashiny i yadro operacionnoj sistemy. Odnoj iz naibolee vazhnyh oblastej, kotorymi upravlyaet yadro, yavlya- etsya bezopasnost'. Proverki identifikacii pol'zovatelya vypolnyayutsya v sistemnyh vyzovah vnutri yadra. Opredelennye mehanizmy ispol'zuyutsya yad- rom dlya upravleniya bezopasnost'yu fajlov, ustrojstv, pamyati i pro- cessov. Edinstvennyj sposob otklyuchit' mehanizmy bezopasnosti sostoit v izmenenii ishodnogo koda yadra i perekompilyacii vsej sistemy, chto krajne nezhelatel'no. UROVENX 4 - OPERACIONNAYA SISTEMA Dannyj uroven' stroitsya na yadre, chtoby sozdat' polnuyu operacion- nuyu sredu. Potrebnost' v dopolnitel'nyh funkciyah sistemy mozhno udov- letvorit' sozdaniem avtonomnyh programm, imeyushchih konkretnoe naznache- nie. Takim obrazom, sovokupnost' vseh specificheskih funkcij opredelyaet operacionnuyu sistemu. UROVENX 5 - KOMPILYATORY Kompilyator - eto instrument (ili programma), postroennyj na ope- racionnoj sisteme dlya dal'nejshej razrabotki bolee sovershennyh i bolee moshchnyh sred. Novye sredy mogut predpolagat' eshche bol'shie abstrakcii, chem na nizhnem urovne, i delat' bol'she dopushchenij o tom, chto uzhe sushchest- vuet. |to delaet vozmozhnym simvolicheskie konstrukcii bolee vysokogo urovnya, takie kak struktury dannyh i upravlyayushchie struktury. Rezul'ta- tom yavlyaetsya prikladnaya programma. S pomoshch'yu kompilyatora my mozhem opredelit' sovershenno novyj yazyk i sdelat' ego rabochim na komp'yutere, napisav kompiliruyushchuyu programmu, kotoraya chitaet etot novyj yazyk. |to otkryvaet celye novye oblasti vo vzaimodejstvii cheloveka s mashinoj. Vysokourovnevye yazyki mogut voplo- shchat' razlichnye podhody k resheniyu zadach, naprimer, procedurnuyu model' ili ob容ktno-orientirovannuyu model', i v konce koncov, ochevidno, mogut dostich' vyrazitel'noj moshchi razgovornogo yazyka tipa anglijskogo. UROVENX 6 - PRIKLADNYE PROGRAMMY V nashe vremya prikladnye programmy mogut oznachat' massu raznoob- raznyh veshchej. My mozhem predpolozhit', chto lyubaya programma, kotoraya sde- lana s pomoshch'yu kompilyatora, yavlyaetsya prikladnoj programmoj. Primerami vozmozhnyh prikladnyh programm yavlyayutsya sleduyushchee pokolenie yazykov, in- terpretatorov i generatorov prikladnyh programm. Interpretator - eto programma, napisannaya na rasprostranennom yazyke vysokogo urovnya, koto- raya mozhet dekodirovat' i ispolnyat' drugoj sintaksis (ili yazyk). Prime- rom, kotoryj interesuet nas v sisteme UNIX, yavlyaetsya komandnyj pro- cessor shell. |to programma na yazyke Si, sozdannaya dlya chteniya i ispol- neniya komand, zapisannyh po pravilam sintaksisa, opredelennyh komand- nym processorom shell. Generator prikladnyh programm - eto programma, napisannaya na yazy- ke vysokogo urovnya. Ona prednaznachena dlya polucheniya dostatochnoj infor- macii ot pol'zovatelya o ego prilozhenii i mozhet ispol'zovat' kompilya- tornyj yazyk, naprimer Si, dlya napisaniya prikladnoj programmy, realizu- yushchej to, chto trebuetsya. Pol'zovatel' nichego ne programmiruet. Vyhodom generatora yavlyaetsya rabochaya programma. UNIX ne delaet osobyh razlichij mezhdu urovnyami. Nekotorye osoben- nosti sistemy, naprimer, konvejery, yavlyayutsya chast'yu yadra na nizhnem urovne. Komanda tipa cat vypolnyaet dovol'no prostuyu funkciyu na urovne operacionnoj sistemy. Nechto podobnoe ls napominaet prostuyu prikladnuyu programmu s otnositel'no malym naborom opcij. Bol'shie programmy, po- dobnye semejstvu roff, opredelenno yavlyayutsya polnovesnymi prilozheniyami, a sredstva tipa sed i awk yavlyayutsya fakticheski interpretatorami nebol'- shih yazykov programmirovaniya. Zamechatel'noj osobennost'yu sistemy UNIX yavlyaetsya edinoobrazie, kotoroe ona vnosit v etot shirokij diapazon funkcij. UROVENX 7 - KOMANDNYE FAJLY |tot verhnij uroven' yavlyaetsya yazykom, kotoryj interpretiruet programma /bin/sh (v sluchae komandnogo processora Bourne shell). Ee sintaksis podderzhivaet polnyj yazyk programmirovaniya. Hotya etot yazyk lishen ryada vstroennyh struktur i funkcij sovremennogo yazyka vysokogo urovnya, on imeet vse neobhodimoe dlya napisaniya poleznyh programm. Bol'shim plyusom yavlyaetsya to, chto yazyku komandnogo processora dostupny v kachestve vneshnih funkcij lyubye sredstva, utility i programmy, kotorye imeyutsya v sisteme UNIX. |to znachit, chto algoritmy, kotorye mogut pot- rebovat' sto ili bolee strok na yazyke nizkogo urovnya tipa Si, yazyk ko- mandnogo processora mozhet vyrazit' v dvadcat' strok. Za schet poteri proizvoditel'nosti, razumeetsya. VASH "REGISTRACIONNYJ KATALOG" Poskol'ku UNIX sozdavalas' kak mnogopol'zovatel'skaya sistema, mnogoe sdelano dlya togo, chtoby sistema byla bezopasnoj i udobnoj dlya kazhdogo pol'zovatelya. Vam vydelyaetsya opredelennaya chast' fajlovoj sistemy (t.e. oblast' na diske), kotoraya yavlyaetsya polnost'yu vashej i bol'she nichej. Vy mozhete zablokirovat' vashu oblast' tak, chtoby nikto ne mog zaglyanut' vovnutr', ili zhe mozhete ostavit' ee otkrytoj, chtoby dru- gie lyudi mogli chitat' etu oblast' ili pisat' v nee. Pomimo opredeleniya vashego mesta v sisteme, mozhno privyazat' "do- mashnij" katalog (home-catalog) k vashim tochnym specifikaciyam. "Regist- racionnyj katalog" - eto ne tol'ko oblast' fajlovoj pamyati, no i vsya vasha sreda. Mozhno ustanovit' peremennye komandnogo yazyka dlya opredele- niya putej po sisteme. Mozhno sozdat' instrumentarij, chtoby pomoch' vam v rabote. CHTO TAKOE SOSEDSTVO? Vo mnogih bolee staryh mini- i mikrokomp'yuterah sreda imeet "ploskuyu" fajlovuyu sistemu. |to znachit, chto vse fajly razmeshchayutsya v odnoj ogromnoj oblasti hraneniya i net logicheskih razdelov dlya ih razg- ranicheniya. Otsutstvie razdelov porozhdaet massu fajlov, cherez kotorye nuzhno probrat'sya, kogda vy hotite najti opredelennyj element. Nekoto- rye sistemy imeli v svoih fajlovyh sistemah gruppovye razdely, no obychno takie razdely byli razlichnymi ploskimi fajlovymi sistemami. Vremya pokazalo, chto takoj tip sredy (ili modeli) - ne luchshee reshenie. Reshenie, kotoroe ispol'zuet UNIX,- perevernutaya model' dereva. Koren' sistemy nahoditsya naverhu, a vetvi rastut v storony i vniz. Imeetsya odin i tol'ko odin koren' naverhu. Vetvi mogut ishodit' v lyu- bom napravlenii i prostirat'sya vniz na lyubuyu glubinu. Krome togo, vy mozhete imet' prisoedinyaemye vetvi, kotorye mozhno iz座at' iz sistemy, a zatem vernut' obratno. Oni montiruyutsya na sushchestvuyushchuyu v sisteme dre- vovidnuyu strukturu. Kogda vy registriruetes' v sisteme, vy mozhete popast' v lyuboe mesto drevovidnoj struktury. Registracionnyj katalog opredelyaetsya v fajle parolej. K nej mozhno obratit'sya po imeni $HOME, kotoraya yavlyaetsya odnoj iz predopredelennyh peremennyh komandnogo yazyka dlya vashego ispol'zovaniya. Teper' u vas est' personal'naya drevovidnaya struktura pod etim imenem kataloga. Ona polnost'yu vasha i mozhet byt' sdelana ne- dostupnoj dlya kogo ugodno, krome kornya. Vy mozhete organizovat' vash re- gistracionnyj katalog ($HOME) lyubym priemlemym dlya vas sposobom. PLANIROVKA REGISTRACIONNOGO KATALOGA Kak tol'ko vash registracionnyj katalog prisoedinen k opredelenno- mu mestu dereva, vy poluchaete polnoe upravlenie strukturoj, kotoraya sushchestvuet nizhe etogo mesta. Vy mozhete ostavit' ee ploskoj ili sdelat' podobnoj derevu. |ta struktura zavisit fakticheski ot vashih potreb- nostej i entuziazma v ekspluatacii vashej sobstvennoj oblasti. Naibol'- shaya vygoda dlya nas sostoit v tom, chtoby ispol'zovat' vashu "domashnyuyu" sredu dlya podderzhki vashih rabot i maksimal'no umen'shit' ob容m ruchnoj raboty. V sleduyushchih dvuh glavah opisano mnozhestvo sredstv, kotorye mo- gut rabotat' s vashej lichnoj fajlovoj sistemoj. Na ris.1-2 pokazana drevovidnaya struktura vashego registracionno- go kataloga. |ta planirovka predstavlyaet karkas sredy, kotoryj vy mo- zhete zapolnit' sootvetstvuyushchej informaciej. Po mere togo, kak rastet vashe masterstvo ispol'zovaniya sistemy, vam mogut ponadobit'sya eti tipy oblastej dlya razmeshcheniya v nih informa- cii. Vy obnaruzhite takzhe, chto nash scenarij hraneniya informacii predpo- lagaet dvizhenie po derev'yam, ili ih obhod, tak chto vam garantiruetsya vygoda ot ispol'zovaniya ierarhicheskoj konstrukcii. Davajte projdemsya po etoj primernoj strukture i opredelim, kakovy ee chasti. Dannaya struktura vklyuchaet mnogo fajlov i katalogov, no vse oni imeyut opredelennoe naznachenie. Vozmozhno, vy ne zahotite ispol'zo- vat' v tochnosti eti imena, no vy poluchaete sovet, kakie tipy kategorij mogut vstretit'sya i kak ispol'zovat' sistemu dlya podderzhki etoj struk- tury. Kornem etogo dereva yavlyaetsya registracionnyj katalog, kotoryj op- redelen v pyatom pole fajla /ets/passwd. Ispol'zovanie fajla parolej opisano v passwd(4). Vot primer parol'nogo vhoda avtora: russ:.pDIPADYfIXBY:103:101:Russ Sage:/usr/russ:/bin/sh Sleva napravo vy vidite imya pol'zovatelya (russ), parol' (.pDI...), identifikator pol'zovatelya (103), identifikator gruppy (101), lichnyj kommentarij, imya registracionnogo kataloga (/usr/russ) i komandnyj processor shell, poluchaemyj pri vhode v sistemu (/bin/ sh). FAJLY V REGISTRACIONNOM KATALOGE Fajly, opisyvaemye nizhe, razdelyayutsya na tri kategorii: fajly, ko- torye obychno prisutstvuyut v vashej sisteme, esli vy rabotaete v System V, fajly, kotorye imeyutsya obychno v Berkeley 4.2, i fajly, kotorye soz- dayutsya pri ispol'zovanii programm iz nastoyashchej knigi. FAJLY System V Pervyj fajl - eto .news_time. Data etogo fajla sootvetstvuet to- mu, kogda vy poslednij raz chitali novosti v kataloge /usr/news. Dlya chteniya novostej pol'zujtes' komandoj news(1). |ta komanda vydaet no- vosti, poyavivshiesya pozzhe daty sozdaniya fajla .news_time. Sleduyushchij fajl - .profile. |tot fajl vypolnyaetsya pri kazhdoj re- gistracii v interpretatore shell i mozhet byt' ispol'zovan dlya privyazki vashej sobstvennoj sredy. V dal'nejshem my rassmotrim etot fajl bolee podrobno. Sleduyushchij fajl - calendar (kalendar'). |tot fajl soderzhit daty i soobshcheniya. Komanda calendar(1) chitaet v etom fajle daty, ochen' blizkie k tekushchej date. Zatem pechatayutsya ili posylayutsya vam po pochte soobshche- niya. Poslednij fajl - mbox, vash sistemnyj pochtovyj yashchik. Kogda vy s pomoshch'yu komandy mail(1) sohranyaete pochtu, ona napravlyaetsya po umolcha- niyu v mbox. FAJLY 4.2 BSD Pervym fajlom zdes' yavlyaetsya .cshrc. |to pervaya stadiya nastrojki sistemy na pol'zovatelya, vypolnyaemoj interpretatorom cshell. V sisteme UNIX prisutstvie "rc" v imeni fajla oznachaet "komandy zapuska" ("run commands") ili "zapusk pri zagruzke" ("run on boot up"). Fajl .login yavlyaetsya sinonimom fajla .profile interpretatora sh. |tot fajl soderzhit komandy nastrojki na sredu pol'zovatelya, kotoraya vam nuzhna pri registracii v sisteme. Sleduyushchij fajl - .logout. On vypolnyaetsya, kogda vy vyhodite iz sistemy. Naprimer, vy mozhete primenit' ego dlya pechati uchetnoj informa- cii, takoj kak vremya, v techenie kotorogo vy rabotali v sisteme, ispol'zuemyj vami razmer diskovogo prostranstva i t.d. System V ne imeet podobnogo fajla. Sleduyushchij fajl - .msgsrc, prednaznachennyj dlya komandy msgs(1) sistemy Berkeley. Fajl .msgsrc soderzhit poslednij, prochitannyj vami fajl soobshchenij. Fajly soobshchenij hranyatsya v vide posledovatel'no pronu- merovannyh fajlov v kataloge /usr/msgs. TRYUKI S GLAVNYMI FAJLAMI Vot programmy i fajly, kotorye vy mozhete razrabotat' vo vremya ispol'zovaniya dannoj knigi. Fajl .lastlog soderzhit daty kazhdogo vhozh- deniya v sistemu s vashimi uchetnymi dannymi. Programma, kotoraya upravlya- et etim fajlom, nazyvaetsya lastlog i predstavlena v glave 5. Sleduyushchij fajl - .trashcan. |to katalog, kotoryj vremenno hranit fajly, udalennye vami. Esli vy uvereny, chto oni vam ne nuzhny, to ih mozhno udalit' navsegda. |ta osobennost' rassmotrena v glave 3. Poslednij fajl - .phone.list. |to vasha lichnaya baza dannyh so spiskom telefonov. Ona obsluzhivaetsya komandoj phone (sm. glavu 5). KATALOGI Pervym katalogom yavlyaetsya adm. On soderzhit administrativnye faj- ly, kotorye vy mozhete imet', naprimer raspisaniya, informaciyu o sotrud- nikah, vstrechah i t.d. V kataloge bbs imeyutsya podkatalogi dlya kazhdoj "doski ob座avlenij", kotoruyu vy vyzyvaete. Kogda vy obrashchaetes' k etim sistemam, vy imeete mesto dlya razmeshcheniya vseh sootvetstvuyushchih fajlov i dannyh. Neobhodimaya vam informaciya - eto menyu dlya sistemy, vspomogatel'nyj tekst, zagruzki programm i obshchaya informaciya, kotoraya vas interesuet. Katalog bin soderzhit vse instrumental'nye sredstva, kotorye u vas est'. |to mogut byt' komandnye fajly ili ob容ktnye moduli otkompiliro- vannyh programm. Podkatalog src ne obyazatelen. V nem hranitsya ishodnyj kod na yazyke Si dlya ob容ktnyh modulej, imeyushchihsya v bin, tak chto ishod- nyj tekst dlya bystroj fiksacii oshibok i izmeneniya vsegda pod rukoj. Katalog doc - eto koren' vseh vidov dokumentacii. Podkatalogami zdes' mogut byt' formy, pis'ma, zapiski, raznoobraznaya informaciya i otchety. Kazhdyj podkatalog soderzhit opredelennye fajly v etih oblastyah. Katalog etc soderzhit lyubye sistemnye ili administrativnye komandy i fajly, kotorymi vy pol'zuetes'. Esli vy imeete administrativnye obya- zannosti, tipichnym soderzhimym etogo kataloga mozhet byt' rezervnaya ko- piya tekushchih konfiguracionnyh fajlov, ispol'zuemyh sistemoj. Vy mozhete sdelat' rezervnuyu kopiyu fajlov /.profile /etc/bcheckrc brc checklist gettydefs group inittab motd mountable unmountable passwd profile rc /usr/lib/crontab /usr/lib/uucp/L.sys USERFILE uudemon.day uudemon.hr uudemon.wk ili lyuboj drugoj informacii o sisteme. Katalog proj prednaznachen dlya special'nyh proektov, kotorye u vas est'. Skoree vsego, vy nazovete etot katalog ne proj, a po imeni pro- ekta, naprimer, dev dlya razrabotki (development) ili qa dlya chistovoj shlifovki (quality assurance). Vse dannye, korrespondenciya, dokumenta- ciya i ishodnyj kod dlya kazhdoj raboty napravlyayutsya v glavnyj katalog proekta. Konechno, u vas mozhet byt' bolee odnogo kataloga proekta. Sleduyushchij katalog - mail. |to horoshee mesto dlya razmeshcheniya vashej pochtovoj korrespondencii ot drugih lyudej, ispol'zuyushchih sistemu. Imena fajlov v etom kataloge yavlyayutsya pol'zovatel'skimi. Naprimer, esli by ya poluchil pochtu ot Boba, to ona nahodilas' by v fajle s imenem bob. Katalog src - dlya vsego ishodnogo koda. Logicheski sgruppirujte vash ishodnyj kod po podkatalogam, chtoby oblegchit' ego poisk v budushchem. Vozmozhnymi podkatalogami yavlyayutsya asm dlya assemblernogo koda, c dlya ishodnogo koda na Si, games (igry), misc (raznoe), script dlya komand- nyh fajlov i sys dlya lyubogo ishodnogo koda, otnosyashchegosya k sisteme. (Esli vy derzhite ishodnye teksty vashih lichnyh instrumentov v kataloge /bin/src, to zdes' vy, vozmozhno, produbliruete ih.) Katalog sys - eto sklad informacii, imeyushchej otnoshenie k sisteme. Zdes' mogut byt' rezervnye kopii kriticheskih sistemnyh fajlov, doku- mentaciya po oblastyam sistemy, kuski vyvodimoj informacii komand who, ps, uucp, registracionnyh fajlov ili chto-libo inoe. Poslednij katalog - tmp, kotoryj yavlyaetsya rabochej oblast'yu dlya razmeshcheniya vremennyh fajlov. V osnovnom vse, chto nahoditsya v tmp, vy mozhete v lyuboe vremya udalit', i sredstvo can, opisannoe v glave 3, po- mogaet vam v etom. Otmetim, chto registracionnyj katalog imeet minimal'noe kolichestvo obychnyh fajlov. |to umen'shaet putanicu, kotoraya mozhet proishodit' s ploskimi fajlovymi sistemami. Kazhdyj fajl dolzhen byt' na svoem meste, no mozhet byt' razmeshchen ne tol'ko zdes'. Esli voznikaet kakoj-libo rod zadach, kogda fajly, svyazannye s etoj zadachej, mogut byt' pereputany s drugimi fajlami, sozdajte otdel'nyj katalog. ANALIZ PRIMERA FAJLA NASTROJKI SISTEMY Fajl .profile, kak sleduet iz ego nazvaniya (profilirovanie - for- mirovanie kontura, ochertanij), funkcioniruet dlya ustanovki i iniciali- zacii parametrov sistemy, kotorye vam nuzhny. Syuda vhodit ustanovka terminalov, opredelenie peremennyh, zapusk programm i konfigurirovanie ispolnyayushchej sistemy. Primer fajla nastrojki mozhno najti v opisanii ko- mandy profile(4). Rassmotrim .profile, ispol'zuemyj avtorom. My vklyu- chili ego na stol' rannej stadii, chtoby predlozhit' vam kosnut'sya ponya- tij, kotorye bolee podrobno raskryvayutsya dalee v etoj knige. Ne za- bot'tes' o ponimanii raboty kazhdoj chasti primera. Poka chto prosto sde- lajte myslennuyu otmetku vozmozhnostej. Vash .profile mozhet byt' proshche i pochti navernyaka budet drugim. 1 # @(#).profile v1.0 Defines "home" on the system Author: Russ Sage 3 CHOICE="ushort" 4 case $CHOICE in 5 ufull) PS1="`uuname -l`> ";; 6 ushort) PS1="`uuname -l|cut -c1-3`> ";; 7 graphic) PS1="^[[12mj^[[10m ";; 8 esac 10 LOGNAME=`logname` 11 HOME=`grep "^$LOGNAME:" /etc/passwd | cut -d: -f6` 12 MAIL=/usr/spool/mail/$LOGNAME 13 export LOGNAME HOME MAIL 15 HA=$HOME/adm 16 HBB=$HOME/bbs 17 HB=$HOME/bin 18 HD=$HOME/doc 19 HE=$HOME/etc 20 HM=$HOME/mail 21 HP=$HOME/proj 22 HSR=$HOME/src 23 HSY=$HOME/sys 24 HT=$HOME/tmp 25 HDIRS="HA HBB HB HD HE HM HP HSR HSY HT" 26 export $HDIRS HDIRS 28 P=/usr/spool/uucppublic/$LOGNAME; export P 30 CDPATH=.:..:$HOME:$HDIRS 31 PATH=.:/bin/:/usr/bin:/etc:$HOME/bin 32 SHELL=`grep "^$LOGNAME:" /etc/passwd|cut -d: -f7` 33 export CDPATH PATH SHELL 35 case "`basename \`tty\``" in 36 console) eval `tset -m ansi:ansi -m :\?ansi -r -s -Q`;; 37 tty00) eval `tset -m ansi:ansi -m :\?ansi -r -s -Q`;; 38 tty01) eval `tset -m ansi:ansi -m :\?ansi -r -s -Q`;; 38 esac 41 echo TERM = $TERM 42 TERMCAP=/etc/termcap 43 export TERM TERMCAP 45 HZ=20 46 TZ=PST8PDT 47 export HZ TZ 49 umask 0022 51 echo "\nTime of this login : `date`" 52 lastlog -l 54 RED="^[[31m" 55 GREEN="^[[32m" 56 YELLOW="^[[33m" 57 BLUE="^[[34m" 58 CYAN="^[[35m" 60 case "`date|cut -d' ' -f1`" in 61 Mon) echo "$RED";; 62 Tue) echo "$GREEN";; 63 Wed) echo "$YELLOW";; 64 Thu) echo "$BLUE";; 65 Fri) echo "$CYAN";; 66 esac KAK RABOTAET .profile Kogda vy vhodite v sistemu, registracionnaya programma vypolnyaet interpretator shell s parametrom '-' (naprimer, -sh). |to signaliziru- et interpretatoru shell, chto sejchas moment registracii i chto dolzhen byt' vypolnen fajl nastrojki. Snachala vypolnyaetsya /etc/profile - obshchij fajl nastrojki, ustanovlennyj sistemnym administratorom dlya vseh pol'- zovatelej, a zatem fajl .profile pol'zovatelya. Kazhdyj interpretator shell posle etogo bol'she ne zapuskaet eti ustanovochnye programmy. V fajle /etc/ profile interesno proverit' mashinno-zavisimuyu informaciyu i posmotret', kakie umolchaniya byli dlya vas ustanovleny. Esli vy hotite vypolnit' vash .profile v lyuboj moment posle vhoda v sistemu, naberite ". .profile" (mozhno pisat' i ".profile", provereno, chto obe formy ra- botayut - Prim. perevodchika). Dlya podderzhki vashego registracionnogo kataloga, ispol'zujte pere- mennye komandnogo processora (peremennye shell), chtoby oblegchit' pe- redvizhenie i sokratit' kolichestvo nazhatij klavish pri rabote s marshrut- nymi imenami. Peremennye shell vsegda yavlyayutsya strokami i, buduchi odin raz opredelennymi, ne ischezayut, poka vy ne vyjdete iz sistemy. Pri ispol'zovanii peremennye shell yavlyayutsya lokal'nymi dlya rabo- tayushchego v dannyj moment interpretatora shell. Ih mozhno peredat' in- terpretatoram shell bolee glubokogo urovnya putem ih "eksportirovaniya". Sledovatel'no, esli vy sozdaete novyj komandnyj processor, vse vashi eksportirovannye peremennye budut po-prezhnemu opredeleny dlya etogo in- terpretatora shell. Ischerpyvayushchij spisok peremennyh shell, ustanovlen- nyh po umolchaniyu i ispol'zuemyh sistemoj, sm. v prilozhenii 1. Otmetim, chto v nashem primere fajla nastrojki dlya kazhdogo podkata- loga pervogo urovnya, kotoryj est' v nashem registracionnom kataloge, my takzhe imeem peremennye shell, svyazannye s imenem etogo podkataloga. Takim obrazom, my mozhem legko obrashchat'sya k razlichnym oblastyam nashego registracionnogo kataloga. POSTROCHNYJ RAZBOR PRIMERA FAJLA NASTROJKI Stroki 3-8 delayut hitruyu ustanovku glavnoj podskazki - peremennoj PS1. V stroke 3 inicializiruetsya peremennaya, kotoraya vybiraet podskaz- ku. Znachenie ushort zhestko zakodirovano v fajle, no vy vsegda mozhete zaprosit' ego ili ustanovit' ego v zavisimosti ot fajla. Pervoj al'ternativoj yavlyaetsya ufull, ispol'zuemaya dlya ustanovki podskazki v vide polnogo imeni uzla uucp v lokal'noj sisteme. Vy vybi- raete takuyu podskazku, esli ispol'zuete neskol'ko mashin i dlya dostupa k odnoj mashine primenyaete druguyu. Otlichitel'naya podskazka napominaet vam, kakoj mashinoj vy pol'zuetes'. Otmetim, chto podskazka imeet odina- kovoe chislo simvolov i dlya korotkoj stroki, i dlya dlinnoj. Esli zhe vam nuzhno imya uzla uucp, no ne nuzhna dlinnaya stroka dlya podskazki, vy mo- zhete vybrat' ushort, chto daet pervye tri simvola imeni uzla. Kak poka- zano v stroke 6, imya poluchaetsya primeneniem komandy uuname dlya poluche- niya lokal'nogo imeni uzla (opciya -l). Zatem eto imya propuskaetsya cherez komandu cut, kotoraya vyrezaet simvoly s pervogo po tretij. Rezul'tat prisvaivaetsya peremennoj podskazki. Poslednyaya al'ternativa dlya teh iz vas, kto imeet graficheskie sim- voly. Naznachenie v stroke 7 est' grecheskij simvol. Ego mozhno poluchit' primeneniem special'nyh upravlyayushchih posledovatel'nostej, kotorye uka- zyvayut terminalam otobrazhenie special'nyh simvolov. Simvoly ^[ yavlya- yutsya vizual'nym predstavleniem upravlyayushchego simvola v programme vi. Vy mozhete poluchit' etot simvol v programme vi, nabrav control-v, a zatem ESC. Posledovatel'nost' ESC[12m oznachaet, chto sleduyushchij simvol budet napechatan kak graficheskij. Simvol j yavlyaetsya vashej podskazkoj i prev- rashchaetsya v graficheskij simvol, kotoryj vydaetsya na vash ekran. Ispol'- zuya razlichnye simvoly alfavita, vy mozhete imet' v vide vashej podskazki pochti lyuboj graficheskij simvol. ESC[10m vozvrashchaet vash terminal v re- zhim obychnogo teksta, tak chto vse simvoly, pechataemye posle togo, kak vy nabrali ESC[10m, yavlyayutsya normal'nymi. Esli vy hotite sohranit' vashu pol'zovatel'skuyu podskazku dlya vseh podchinennyh interpretatorov shell, eksportirujte ee. Inache vy poluchite $ dlya vseh interpretatorov shell nizhnego urovnya. Stroka 10 prisvaivaet peremennoj LOGNAME vyhod komandy logname(1). Komanda logname - eto obychnaya komanda sistemy UNIX, koto- raya pechataet vashe registracionnoe imya iz fajla /etc/passwd. Obychno eta peremennaya ustanovlena dlya vas sistemoj, no dannyj primer pokazyvaet, kak vy mozhete ustanovit' ee vruchnuyu. Stroka 11 inicializiruet peremennuyu HOME. Ona tozhe ustanavliva- etsya dlya vas sistemoj, no my hotim pokazat', kak delat' eti veshchi osoz- nanno, a ne po umolchaniyu. Snachala my ishchem v fajle parolej zapis', sootvetstvuyushchuyu peremennoj LOGNAME. My ishchem ot nachala stroki imya, ko- toroe zavershaetsya simvolom :, chtoby ubedit'sya, chto najdeno tol'ko kor- rektnoe sootvetstvie imeni pol'zovatelya. Zatem vsya zapis' posylaetsya komande cut, kotoraya vyrezaet shestoe pole - registracionnyj katalog. Preimushchestvo takoj strategii v tom, chto registracionnyj katalog avto- maticheski menyaetsya, esli menyaetsya zapis' v fajle /etc/passwd. Stroka 12 inicializiruet peremennuyu MAIL. Opredelyaya MAIL, vy uka- zyvaete, chto vy dolzhny byt' uvedomleny o posylke vam novoj pochty, esli vy nahodites' v rezhime on line. Stroka 13 eksportiruet eti peremennye, tak chto oni dostupny nam v porozhdennyh interpretatorah shell. Stroki 15-24 opredelyayut vse katalogi pervogo urovnya v nashem re- gistracionnom kataloge. Bol'shinstvo imen sostoyat iz dvuh bukv, nekoto- rye iz treh. Teper' my mozhem primenyat' komandy takogo vida: $ cd $HD $ ls -R $HSR $ cu -ltty00 dir