rabotke fajlov ".e"; -rx Pri obrabotke fajlov s suffiksom ".r" ispol'zo- vat' stroku "x" kak klyuch dlya preprocessora RATFOR. Prochie parametry schitayutsya libo klyuchami zagruzchika, libo ob'ektnymi programmami, sovmestimymi s f77, libo bibliotekami programm. |ti programmy vmeste s rezul'- tatami ukazannyh kompilyacij zagruzhayutsya (v zadannom poryadke) dlya polucheniya vypolnyaemoj programmy s imenem "a.out". Kompilyator realizuet polnyj Fortran-77 s nekotorymi rasshireniyami, sdelannymi kak dlya bolee effektivnogo ispol'zovaniya |VM, tak i dlya luchshej sovmestimosti s drugimi dialektami Fortrana. V versii kompilyatora dlya |VM bez razdel'nyh adresnyh prostranstv komand i dannyh (a k nim otnosyatsya pochti vse otechestvennye |VM, za isklyucheniem |lektroniki-79) sushchestvuyut nekotorye ogranicheniya: 157 APK 00210-01 33 01-4 - Ne realizovany rezhimy "-Is" i "-C"; - V konstantnyh vyrazheniyah (razmernosti massivov i t.d.) mozhno ispol'zovat' tol'ko celye chisla i vyrazheniya celogo tipa (no ne real'nye ili kompleksnye); - V spiskah vvoda/vyvoda i parametrah ciklov "do" zapreshcheno ispol'zovanie vstroennyh arifmetiches- kih funkcij i vyrazhenij, soderzhashchih operacii s kompleksnymi chislami. |to trebovanie rasprostra- nyaetsya ne na vse sluchai, no ego narushenie mozhet privodit' k sboyu kompilyatora s diagnostikoj "ne najden segment ...". - Kompilyator rabotaet dovol'no medlenno, i ispol'- zuet bol'shie rabochie fajly v spravochnike "/tmp". - Pri rabote na |VM bez processora plavayushchej tochki usilivayutsya kolichestvennye ogranicheniya na koli- chestvo identifikatorov, plavayushchih konstant, ko- lichestvo razmernostej massivov v programmah na Fortrane, prichem prevyshenie etih ogranichenij mozhet privodit' k diagnostike "out of memory" na etape translyacii. Pri rabote na |VM s processorom plavayushchej tochki eti ograniche- niya umen'shayutsya. YAzyk rasshiren po sravneniyu s Fortranom-77 sleduyushchim obrazom: 158 APK 00210-01 33 01-4 - Vvedeny novye opisateli razmeshcheniya lokal'nyh pe- remennyh: "static", "automatic", "undefined" (dlya operatora "implicit"); - V kachestve ogranichitelya strok mozhno ispol'zovat' kak odinochnye, tak i dvojnye kavychki.Pri etom zakryvayushchaya kavychka dolzhna byt' takoj zhe, kak i otkryvayushchaya; - V strokah mozhno ispol'zovat' oboznacheniya uprav- lyayushchih simvolov, prinyatye v yazyke Si: 0 , - Vveden operator vstavki teksta include 'imya- fajla'; - Vvedeny bitovye, vos'merichnye i shestnadcaterich- nye konstanty, naprimer: b'001' - bitovye; o'725' - vos'merichnye; x'af5' - shestnadcaterichnye; - Vvedeny operatory "accept" - ekvivalentno "read", "type" - ekvivalentno "print", "byte" - ekvivalentno "character", dlya sovmestimosti s nekotorymi dialektami yazyka Fortran-4; - Vvedeny funkcii "or", "and", "xor", "not" dlya raboty s celymi chislami, funkcii "getarg" i "iargc" dlya svyazi s sistemoj; 159 APK 00210-01 33 01-4 - Po umolchaniyu kanaly vvoda/vyvoda nastroeny sle- duyushchim obrazom: 0 - stderr (kanal diagnostik); 5 - stdin (standartnyj vvod); 6 - stdout (standartnyj vyvod). Ostal'nye kanaly svyazany s fajlami "fort.n", gde "n" - nomer kanala. Mogut ispol'zovat'sya kanaly s nomerami 0 - 9. Sushchestvuet dva formata vhodnogo teksta. Esli v kolon- kah 1-6 stoit simvol tabulyacii ili v kachestve priznaka prodolzheniya ispol'zuetsya "&" v pervoj pozicii, dlina vhodnoj stroki mozhet byt' proizvol'noj. Inache ispol'- zuyutsya tol'ko pervye 72 simvola vhodnoj stroki. Simvol "!" yavlyaetsya priznakom vnutristrochnogo kommentariya, tekst mezhdu "!" i koncom stroki propuskaetsya. Odnako "!" ne mozhet byt' edinstvennym simvolom v stroke. Programmy na Fortrane-77 mogut ispol'zovat'sya sov- mestno s programmami na Si. Operator Fortrana-77 call x(a,b,c) ekvivalenten (esli a,b,c - prostye peremen- nye) operatoru yazyka Si: x_(&a,&b,&c), to est' vneshnie imena dopolnyayutsya simvolom podcherkivaniya v konce, a parametry peredayutsya po adresu (esli eto ne simvol'nye peremennye i ne funkcii). Podrobnee sm.opisanie yazyka (86.24247-01 35 01). DOPOLNITELXNYE SSYLKI: 160 APK 00210-01 33 01-4 prof, cc, ld, adb, cdeb. DIAGNOSTIKA: Diagnosticheskie soobshcheniya, vydavaemye neposredstvenno kompilyatorom f77, ne trebuyut poyasnenij. Inogda mogut vydavat'sya soobshcheniya zagruzchika. Nekotorye soobshcheniya ob oshibke kompilyatora mogut vyzyvat'sya oshibkami v programmah ili prevysheniem kolichestvennyh ogranichenij. ZAMECHANIYA: Pri rabote na |VM s malym ob'emom adresuemoj pamyati voznikayut nekotorye ogranicheniya na dopustimyj razmer programmy. Krome togo, neobhodimost' deleniya kompilyatora na dinamicheski zagruzhaemye segmenty privo- dit k uvelicheniyu vremeni ego raboty. Otsutstvie na ustanovke komand plavayushchej arifmetiki ne yavlyaetsya prepyatstviem dlya ispol'zovaniya kompilyatora, no ne sleduet udivlyat'sya, esli vremya raboty programmy rezko vozrastet (kak i v programmah na Si). Bol'shie programmy (soderzhashie bol'shoe kolichestvo metok) mogut ne projti cherez optimizator ob'ektnogo koda (predupreditel'noe soobshchenie "optimizer out of space"). Sistema vvoda/vyvoda yazyka Fortran dovol'no velika i zanimaet okolo 050000(8) bajtov operativnoj pamyati. Dlya umen'sheniya razmera programm i uskoreniya ih raboty rekomenduetsya ispol'zovat' flagi "-O1 -I2" vsegda, kogda eto vozmozhno. 161 APK 00210-01 33 01-4 Dlya otladki programm na Fortrane mogut ispol'zovat'sya te zhe sredstva, chto i dlya programm na Si : otladchiki "adb" i "cdeb". Otladchik "cdeb" ponimaet tipy peremen- nyh v Fortrane-77. FAJLY: /usr/f77lib/f77pass0 - prohod 0; /usr/f77lib/f77p1 - prohod 1; /usr/f77lib/f77p1f - prohod 1 dlya mashin bez proces- sora plavayushchej tochki; /usr/f77lib/lib?77.a - biblioteki Fortran-77 na schete; /tmp/f???.? - rabochie fajly. 162 APK 00210-01 33 01-4 IMYA: fc - kompilyator FORTRAN. FORMAT: fc [ -c ] sfile1.f ... ofile1 ... OPISANIE: Pri vyzove kompilyatora mozhno zadavat' parametry treh tipov: - imena fajlov s suffiksom ` .f' yavlyayutsya ishodny- mi tekstami na FORTRANE. Ob'ektnye fajly vyvo- dyatsya (ili chitayutsya) v fajl s suffiksom ` .o'; - Drugie parametry (krome klyucha -c) rassmatrivayut- sya libo kak klyuchi redaktora svyazej, libo kak ob'ektnye programmy, obychno sozdavaemye na pred- shestvuyushchih prohodah fc, libo kak sovmestimye s FORTRANOM programmy. |ti programmy, vmeste so skompilirovannymi programmami, obrabatyvayutsya posle chego poluchaetsya ispolnyaemyj fajl s imenem a.out; - Zadanie klyucha -c i lyubaya sintaksicheskaya oshibka pri translyacii privodit k tomu, chto sborka ne vypolnyaetsya. Privodim spisok razlichij mezhdu fc i standartnym FORTRANOM-4: 1) V vyrazheniyah dopustimo proizvol'noe smeshenie 163 APK 00210-01 33 01-4 tipov. No v nastoyashchee vremya vozmozhny ne vse kombi- nacii tipov. Dopustimy vse obychnye preobrazovaniya, vklyuchayushchie celyj, dejstvitel'nyj, dvojnoj tochnosti i kompleksnyj tipy; 2) Vozmozhny dva varianta operatora implicit: implicit integer /i-n/, libo implicit integer (i-n); 3) Vozmozhny tipy doublecomplex, logcal*1, integer*2, i real*8; 4) Simvol "&" v pervoj pozicii ukazyvaet na to, chto za nim sleduet prodolzhenie operatora; 5) Simvol "c" v pervoj pozicii ukazyvaet na to, chto za nim sleduet kommentarij; 6) Vse operatory pishutsya strochnymi bukvami; 7) Ponyatie "sed'maya kolonka" ne ispol'zuetsya; 8) Pri ispol'zovanii specifikacii formata "g", vvod proizvoditsya v "svobodnom" formate.Predshestvuyushchie probely propuskayutsya, pervyj probel posle chisla zakanchivaet pole; 9) Pri vvode, zapyataya yavlyaetsya razdelitelem cifrovyh ili logicheskih polej; 10) Upravlenie perevodom stroki pri vyvode otsutstvu- et; 164 APK 00210-01 33 01-4 11) Posledovatel'nost' iz N simvolov, zaklyuchennaya v dvojnye kavychki ` " ', ekvivalentna Nh, za kotory- mi sleduyut eti simvoly; 12) V operatore data simvol'naya stroka mozhet iniciali- zirovat' massiv elementov ili posledovatel'nost' elementov massiva; 13) CHislo blokov pamyati, zaprashivaemyh besformatnym operatorom read, dolzhno sovpadat' s chislom, soder- zhashchimsya v chitaemoj zapisi. Dlya operatorov vvoda/vyvoda dostupny nomera ustrojstv s 0 po 19. Ustrojstvo nomer N ukazyvaet na fajl fortNN. (naprimer, ustrojstvu nomer 9 sootvetstvuet fajl `fort09'). CHitaemye fajly dolzhny sushchestvovat'- .Esli vyvod proizvoditsya v otsutstvuyushchij fajl, fajl sozdaetsya. Ustrojstvo nomer 5 postoyanno zakrepleno za standartnym fajlom vvoda. Ustrojstvo nomer 6 postoyanno zakrepleno za standartnym fajlom vyvoda. FAJLY: a.out rezul'tat raboty; f.tmp[123] vremennye fajly; /usr/fort/fc1 sobstvenno kompilyator; /lib/fr0.o start progona; /usr/fort/filib.a biblioteka interpretatora ; /usr/fort/libf.a vstroennye funkcii; /usr/fort/liba.a sistemnaya biblioteka 165 APK 00210-01 33 01-4 DOPOLNITELXNYE SSYLKI: ld, ierror, getarg, setfil DIAGNOSTIKA: Pri kompilyacii, diagnostika vydaetsya po-anglijski. Vozmozhno ukazanie nomera oshibochnoj stroki i nomera stroki ishodnoj programmy, v kotoroj imeetsya oshibka. Pri vypolnenii programmy vydaetsya nomer oshibki: 1 neverno zadan argument funkcii log; 2 nesootvetstvie kolichestva argumentov v funkcii amod; 3 nesootvetstvie kolichestva argumentov v funkcii atan2; 4 lishnij argument pri cabs; 5 zadan slishkom bol'shoj eksponent v cexp; 6 nesootvetstvie kolichestva argumentov v funkcii cmplx; 7 nesootvetstvie kolichestva argumentov v funkcii dim; 8 lishnij argument pri exp ; 9 nesootvetstvie kolichestva argumentov v funkcii idim; 10 nesootvetstvie kolichestva argumentov v funkcii 166 APK 00210-01 33 01-4 isign; 11 nesootvetstvie kolichestva argumentov v funkcii mod; 12 nesootvetstvie kolichestva argumentov v funkcii sign; 13 nedopustimyj argument pri sqrt; 14 nepravil'nyj perehod po vychislyaemomu goto; 15 subscript out of range; 16 perepolnenie pri vychislenii real**real; 17 (otricatel'nyj real)**real; 100 neverno zadan nomer ustrojstva vvoda/vyvoda; 101 nepravil'noe ispol'zovanie ustrojstva vvoda/vyvo- da; 102 ne mozhem sozdat' fajl vyvoda; 103 ne mozhem otkryt' fajl vvoda; 104 konec fajla vvoda; 105 nevernyj simvol v operatore format; 106 operator format ne mozhet nachinat'sya s simvola `(' ; 107 ne pustoj spisok vvoda/vyvoda pri otsutstvii spe- 167 APK 00210-01 33 01-4 cifikacij preobrazovaniya v formate; 108 lishnie skobki v formate ; 109 nepravil'noe opredelenie formata; 110 zapreshchennyj simvol v pole vvoda; 111 konec operatora format v h-specifikacii; 112 nevernyj argument pri setfil; 120 nevernyj argument pri ierror ; 999 zapreshchennoe preobrazovanie vvoda. ZAMECHANIYA: V dannoj versii kompilyatora ne realizovany sleduyushchie vozmozhnosti: operator-funkciya; masshtabnyj mnozhitel' v specifikcii formata ope- ratora vvoda; operator backspace. 168 APK 00210-01 33 01-4 IMYA: file - opredelit' tip fajla. FORMAT: file fajl ... OPISANIE: Komanda file vypolnyaet seriyu proverok dlya kazhdogo pa- rametra i pytaetsya klassificirovat' ego. Esli okazyva- etsya, chto fajl sostoit iz simvolov koda KOI-8, komanda file issleduet pervye 512 bajtov i pytaetsya ugadat' yazyk. ZAMECHANIYA: Dannaya komanda chasto sovershaet oshibki. V chastnosti, ona chasto predpolagaet, chto komandnye fajly yavlyayutsya programmami, napisannymi na yazyke Si. 169 APK 00210-01 33 01-4 IMYA: find - poisk fajlov. FORMAT: find spisok_polnyh_imen vyrazhenie OPISANIE: Komanda find rekursivno ponizhaet ierarhiyu katalogov dlya kazhdogo imeni puti v "spiske_polnyh_imen" (t.e. odno ili neskol'ko polnyh imen) i ishchet fajly, kotorye sootvetstvuyut bulevu "vyrazheniyu", zapisannomu s po- moshch'yu elementov. V etih opisaniyah parametr n ispol'zu- etsya kak desyatichnoe celoe, prichem +n oznachaet bolee chem n, -n oznachaet menee chem n, a n oznachaet tochno n. -name imya_fajla Istina, esli parametr "imya-fajla" sootvetstvuet tekushchemu imeni fajla. Mozhet ispol'zovat'sya obych- nyj sintaksis parametrov interpretatora komand, esli on skryt (bud'te ostorozhny s simvolami "[, "?" i "*"); -perm vchis Istina, esli status fajla tochno sootvetstvuyut vos'merichnomu chislu "vchis" (sm. chmod). Esli "vchis" imeet pered soboj znak minus, stanovyatsya znachimymi bol'shee kolichestvo bitov statusa (017777, sm. stat); -type X 170 APK 00210-01 33 01-4 Istina, esli fajl imeet tip "X", gde "X" predstavlyaet soboj odin iz simvolov b, c, d ili f - dlya special'nogo blochnogo fajla; special'no- go siMvol'nogo fajla; kataloga ili prostogo fajla sootvetstvenno; -links n Istina, esli fajl imeet n svyazej; -user imyap Istina, esli fajl prinadlezhit pol'zovatelyu "imyap" (registracionnoe imya ili chislovoj identi- fikator pol'zovatelya); -group imyag Istina, esli fajl prinadlezhit gruppe "imyag" (imya gruppy ili chislovoj identifikator gruppy); -size n Istina, esli dlina fajla sostavlyaet n blokov; -inum n Istina, esli nomer i-uzla fajla raven n; -atime n Istina, esli dostup k fajlu proizvodilsya v teche- nie poslednih n dnej; -mtime n Istina, esli fajl modificirovalsya v techenie pos- lednih n dnej; 171 APK 00210-01 33 01-4 -exec komanda Istina, esli vypolnennaya "komanda" vozvrashchaet kod vozvrata nul'. Konec komandy dolzhen byt' oboznachen skrytoj tochkoj s zapyatoj ";". Para- metr komandy "()" zamenyaetsya tekushchim imenem; -ok komanda Analogichno "-exec", za isklyucheniem togo, chto sgenerirovannaya komanda zapisyvaetsya v stan- dartnyj vyvod, zatem schityvaetsya standartnyj vvod i komanda Vypolnyaetsya tol'ko v sluchae otve- ta "y"; -print Vsegda istina. Vyzyvaet pechat' tekushchego polnogo imeni; -newer fajl Istina, esli tekushchij fajl byl modificirovan pozdnee, chem ukazannyj "fajl". |ti elementy mogut ob'edinyat'sya s pomoshch'yu sleduyushchih operacij (operacii perechisleny v poryadke umen'sheniya starshinstva): 1) Zaklyuchenie gruppy elementov i operacij v skobki (skobki sluzhat special'nymi simvolami dlya in- terpretatora komand i dolzhny byt' skryty); 2) Otricanie elementa ("!" predstavlyaet soboj unar- nuyu operaciyu "net"); 172 APK 00210-01 33 01-4 3) Konkatenaciya elementov (operaciya "-a" podrazume- vaetsya neposredstvennym sosedstvom dvuh elemen- tov); 4) Al'ternativnost' elementov ("-o" predstavlyaet soboj operaciyu "ili"). PRIMER: Sleduyushchaya komanda prednaznachaetsya dlya udaleniya vseh fajlov s imenami "a.out", dostup k kotorym ne proizvo- dilsya v techenie nedeli: find / -name a.out -atime +7 -ok rm() ; FAJLY: /etc/passwd /etc/group DOPOLNITELXNYE SSYLKI: sh, test ZAMECHANIYA: Sintaksis dannoj komandy slishkom slozhen. 173 APK 00210-01 33 01-4 IMYA fls - polnoekrannaya (full screen) funkciya ls FORMAT fls [rezhim][fajl...] OPISANIE fls rasshiryaet funkcii komandy ls dlya ukazannyh koman- doj file fajlov i vyvodit rezul'taty na polnyj ekran 7920. Tipichnye rezhimy ls (naprimer, -l, -t i t.d.) takzhe mogut byt' ispol'zovany. Dlya etoj komandy ispol'zuyutsya funkcional'nye klavishi: pf1 vyvoditsya vspomogatel'nyj (help) ekran. pf2 kursorom otmechaetsya fajl dlya stiraniya. Stroka ***DELETED*** podvoditsya k imeni sleduyushchego fajla. Fajl ne budet unichtozhen bez nazhatiya kla- vish pf3, pf9 ili pf12. pf3 unichtozhaet fajly, otmechennye dlya stiraniya i za- kanchivaet komandu (fls). pf5 perenosit funkcii komandy ned na fajl, ukazannyj kursorom. pf6 isklyuchaet iz obrabotki fajl, otmechennyj kurso- rom, t. e. protivopolozhno pf2. pf7 sdvig vverh na 1/2 ekrana. pf8 sdvig vniz na 1/2 ekrana. 174 APK 00210-01 33 01-4 pf9 izmenyaet oglavlenie i snova vypolnyaet komandu ls. pf11 vypolnyaet komandu file i vyvodit rezul'tat na ekran. pf12 menyaet oglavlenie na oglavlenie, ukazannoe kur- sorom i vypolnyaet ls. vyzov testa nemedlenno zakanchivaet vypolnenie fls bez unich- tozheniya fajlov. Pol'zovatel' takzhe mozhet vvodit' komandy s pravoj chasti ekrana; imya fajla, vysvechennoe s levoj storony ekrana svyazyvaetsya s vvodimoj komandoj i peredaetsya programme shell dlya vypolneniya komandy. Tol'ko klavishi pf9 i pf12 mogut sluzhit' prichinoj povtornogo vypolne- niya komandy ls. DOPOLNITELXNYE SSYLKI Dred - opisanie komandy. 175 APK 00210-01 33 01-4 IMYA: from - posmotr poluchennoj pochty. FORMAT: from [ -s otpravitel'] [pol'zovatel'] OPISANIE: Komanda from vydaet stroki zagolovkov pochty v vashem pochtovom yashchike, chtoby pokazat', ot kogo ona poluchena. Esli zadan klyuch -s, to vydaetsya informaciya tol'ko o pochte, postupivshej ot pol'zovatelya, imya kotorogo opre- deleno parametrom "otpravitel'". Esli zadan parametr "pol'zovatel'", to komanda from prosmatrivaet pochtovyj yashchik ukazannogo pol'zovatelya i soobshchaet ot kogo postupila dlya nego pochta. FAJLY: /usr/spool/mail/* DOPOLNITELXNYE SSYLKI: mail 176 APK 00210-01 33 01-4 IMYA: grep, egrep, fgrep - poisk v fajle po shablonu. FORMAT: grep [klyuch ... ] Vyrazhenie [fajl] ... egrep [klyuch ... ] [vyrazhenie] [fajl] ... fgrep [klyuch ... ] [stroki] [fajl] OPISANIE: Komandy semejstva grep osushchestvlyayut poisk strok vo vhodnyh fajlah (po umolchaniyu - standartnyj vvod), so- otvetstvuyushchih shablonu. Obychno kazhdaya obnaruzhennaya stroka kopiruetsya v standartnyj vyvod. SHablony komandy grep predstavlyayut soboj ogranichennye regulyarnye vyra- zheniya po tipu ispol'zuemyh v komade ed. Ispol'zuetsya kompaktnyj nedeterminirovannyj algoritm. SHablony ko- mandy egrep yavlyayutsya polnymi regulyarnymi vyrazheniyami. |ta komanda ispol'zuet bystryj determinirovannyj algo- ritm i inogda trebuet eksponencial'nogo prostranstva. SHablonami komandy fgrep yavlyayutsya fiksirovannye stro- ki.Ona yavlyaetsya bystroj i kompaktnoj. Raspoznayutsya sleduyushchie klyuchi: -v Pechatayutsya vse stroki, krome sootvetstvuyushchih shablonu; -x Pechatayutsya tol'ko stroki, (tochno) sootvetstvu- yushchie celikom (tol'ko fgrep); -c Pechataetsya tol'ko schetchik sootvetstvuyushchih strok; 177 APK 00210-01 33 01-4 -l Pechatayutsya imena fajlov (po odnomu razu), v ko- toryh imeyutsya sootvetstvuyushchie stroki, razdelen- nye simvolami novoj stroki; -n Kazhdoj stroke predshestvuet ee otnositel'nyj nomer v fajle; -b Kazhdoj stroke predshestvuet nomer bloka, v koto- rom ona byla najdena. |to inogda polezno dlya na- hozhdeniya nomerov diskovyh blokov po ih soderzha- niyu; -i Pri sravnenii ignoriruetsya registr simvolov (drugimi slovami, verhnij i nizhnij registry schi- tayutsya odinakovymi). (tol'ko grep); -s Nemoj rezhim. Nichego ne pechataetsya (za isklyucheni- em soobshchenij ob oshibkah). |to polezno dlya pro- verki oshibochnogo sostoyaniya; -w Vyrazhenie ishchetsya kak slovo (tol'ko grep); -e vyrazhenie To zhe, chto i prosto parametr "vyrazhenie", odnako ispol'zuetsya teh sluchayah, kogda "vyrazhenie" na- chinaetsya s "-"; -f fajl Regulyarnoe vyrazhenie (egrep) ili spisok strok (fgrep) berutsya iz fajla "fajl". Vo vseh sluchayah imya fajla izobrazhaetsya tak, kak budto 178 APK 00210-01 33 01-4 imeetsya bolee odnogo vhodnogo fajla. Trebuetsya osto- rozhnost' pri ispol'zovanii v "vyrazhenii" simvolov $, *, [, ^, ! , (, ) i , tak kak oni yavlyayutsya znachimymi i dlya yazyka upravleniya zadaniyami sh. Samym nadezhnym spo- sobom yavlyaetsya zaklyuchenie vsego "vyrazheniya" v apostro- fy '...'. Komanda fgrep ishchet stroki, kotorye soderzhat odnu iz posledovatel'nostej simvolov "stroki" (razdelennyh simvolami novoj stroki). Komanda egrep rabotaet s rasshirennymi regulyarnymi vy- razheniyami. V sleduyushchem opisanii "simvol" ne vklyuchaet v sebya simvol novoj stroki: Simvol " otlichayushchijsya ot simvola novoj stroki, sootvetstvuet etomu simvolu. Simvol ^ ($) soot- vetstvuet nachalu (koncu) stroki. Simvol "." so- otvetstvuet lyubomu simvolu. Odinochnyj simvol, ne imeyushchij special'nogo znacheniya, sootvetstvuet etomu simvolu; Stroka simvolov, zaklyuchennaya v kvadratnye skobki [ ], sootvetstvuet lyubomu odinochnomu simvolu iz etoj stroki. Gruppy simvolov koda KOI-8 mogut byt' sokrashchenno oboznacheny v vide "a-z0-9". Simvol "]" mozhet vstrechat'sya tol'ko v kachestve pervogo simvola stroki. Literal "-" mozhet raspolagat'sya tol'ko v teh 179 APK 00210-01 33 01-4 mestah, gde on ne mozhet byt' sputan s ukazatelem diapazona simvolov. Regulyarnoe vyrazhenie, za ko- torym stoit simvol "*" ("+", "?"),opredelyayaet posledovatel'nost' iz 0 ili bolee (1 ili bolee, 0 ili 1) sootvetstvij dlya etogo regulyarnogo vy- razheniya. Dva ob'edinennyh regulyarnyh vyrazheniya opredelyayut sootvetstvie dlya pervogo, za kotorym sleduet sootvetstvie dlya vtorogo. Dva regulyarnyh vyrazheniya, razdelennye simvolom "!" ili simvolom novoj stroki, opredelyaet libo sootvetstvie dlya pervogo, libo sootvetstviyu dlya vtorogo. Regulyar- noe vyrazhenie, zaklyuchennoe v skobki, soot- vetstvuet sootvetstviyu dlya etogo regulyarnogo vy- razheniya..lin Poryadok starshinstva operacij na od- nom i tom zhe urovne skobok sleduyushchij: [ ], zatem *, + i ?, zatem konkatenaciya, zatem ! I simvol novoj stroki. DOPOLNITELXNYE SSYLKI: ed, sed, sh DIAGNOSTIKA: Kod vozvrata raven: 0 - esli sootvetstviya byli najdeny, 1 - esli sootvetstviya ne byli obnaruzheny, 2 - esli imeetsya sintaksicheskaya oshibka ili fajly ne- dostupny. 180 APK 00210-01 33 01-4 ZAMECHANIYA: V ideal'nom sluchae dolzhna byla byt' tol'ko odna koman- da grep, odnako neizvesten edinstvennyj algoritm, ko- toryj harakterizuetsya dostatochno horoshim otnosheniem pamyat'/vremya. Dlina strok ogranichena 256 simvolami, bolee dlinnye stroki usekayutsya. 181 APK 00210-01 33 01-4 IMYA: head - vydacha pervyh strok fajlov FORMAT: head [-chislo] [fajl ...] OPISANIE: Komanda vydaet ukazannoe "chislo" pervyh strok kazhdogo iz perechislennyh fajlov, ili (esli fajly ne zadany) standartnogo fajla vvoda. Esli znachenie "chislo" opushche- no, vydayutsya pervye desyat' strok. DOPOLNITELXNYE SSYLKI: tail 182 APK 00210-01 33 01-4 IMYA: hed - shestnadcaterichnyj tekstovyj redaktor. FORMAT: hed [-e][-r][-t] fajl OPISANIE: hed - polnoekrannyj tekstovyj redaktor dlya ispol'zova- niya na terminalah tipa 7920. Operand "fajl" ukazyvaet imya redaktiruemogo fajla dannyh. -e ispol'zuetsya dlya vyvoda v kode DKOI; -r tol'ko dlya chteniya; -t dlya ispol'zovaniya /tmp/hed xxxxx v kachestve bu- fernogo fajla (dlya bol'shinstva fajlov). hed operiruet s kopiej fajla v pamyati, esli ne zadan rezhim "-t". V etom sluchae v kachestve bufernogo fajla ispol'zuetsya /temp/hed xxxxx fajl. Dannye, izmenyaemye na ekrane displeya, menyayutsya i v pamyati (ili v /tmp/hed xxxxx fajle). Osnovnye komandy q(quit) ili e(edit) ne menyayut fajl-original. Kogda menyayutsya shestnadcaterichnye dannye, stiraemye metki konca fajla(eof) zapolnyayutsya nulyami. Mozhno izmenyat' lyubye tekstovye dannye, pri etom neizmenennye dannye sohranyayutsya. Stiranie eof v tekste zapolnyaetsya nulyami. OSNOVNYE KOMANDY: Osnovnye komandy hed vvodyatsya s komandnoj stroki v 183 APK 00210-01 33 01-4 konce ekrana. Komanda t pereklyuchaet sostoyanie displeya. Takih sostoyanij mozhet byt' dva: DKOI i KOI-8. hhhhhhhh - izmenit' smeshchenie displeya na hhhhhhhh. Zna- chenie dolzhno byt' dopolneno sleva nulyami do 8-mi zna- kov; i vy ne smozhete rabotat' dalee poka ne budet dos- tignut konec fajla. Znacheniem hhhhhhhh d.b. pravil'nye shestnadcaterichnye dannye. (+/-)hhhhhhhh - izmenit' smeshchenie displeya po otnosheniyu k tekushchemu smeshcheniyu "+" ili "-" hhhhhhhh. Znachenie hhhhhhhh dolzhno byt' sleva dopolneno nulyami. Rabota ne mozhet byt' vozobnovlena tol'ko po koncu fajla do nacha- la obrabotki sleduyushchego fajla. /xxxxxxxx/c - razmestit' stroku shestnadcaterichnyh sim- volov (do 28 shestnadcaterichnyh cifr). Esli stroka uka- zana neverno, dannye budut preobrazovany v simvol'nyj format i vyvedeny na ekran. Ostal'nye shestnadcaterich- nye cifry zapolnyayutsya nulyami do konca stroki. d - granica dvojnogo slova. f - granica polnogo slova. h - granica poluslova. c - obrabotka dannyh kak simvol'nyh. (null) - granica, vyrovnennaya na 1 bajt. ?hhhhhhhh?s - razmestit' stroku shestnadcaterichnyh sim- volov (do 28 shestnadcaterichnyh cifr), dvigayas' v ob- 184 APK 00210-01 33 01-4 ratnom napravlenii. Esli stroka hhhhhhhh ukazana ne- verno, dannye budut preobrazovany v simvol'nyj format i vyvedeny na ekran kak stroka simvolov. Ostal'nye shestnadcaterichnye cifry zapolnyayutsya nulyami do konca stroki. d - granica dvojnogo slova; f - granica polnogo slova; h - granica poluslova; c - obrabotka dannyh kak simvol'nyh; (null) - granica, vyravnennaya na 1 bajt; e (-e) (-r) imya fajla (tol'ko chtenie) w[fajl] - zapis' fajla; q - vyhod iz redaktora bez zapisi izmenenij; t - perekodirovka v DKOI ili KOI-8; nodup - otmena vysvechivaniya povtoryayushchihsya strok; dup - vysvechivanie vseh strok; f[fajl] - vysvechivanie ili smena imeni fajla; $ - perehod na konechnyj blok fajla; 185 APK 00210-01 33 01-4 ! - vypolnenie komand intertretatora; xd, dx, od, do, xo, ox - preobrazovaniya: vos'merichnye, desyatichnye, shestnadcaterichnye; insert/delete<poziciya> <chislo bajt> - vstavka/udalenie. FUNKCIONALXNYE KLAVISHI PF. PF1 - spravka; PF2 - peremeshchenie teksta s tekushchej stroki v pervuyu; PF3 - zapis' rezul'tatov redaktirovaniya; PF4,PF5 - povtor poiska; PF9 - kopirovanie ekrana (dobavlenie) v fajl hed.out; PF10, PF11, (PF7, PF8) - peremeshchenie na polnyj ekran (na polekrana) vniz i vverh; PF12 - ustanovit' kursor v nachalo; vyzov testa - vyhod iz redaktora. DOPOLNITELXNYE SSYLKI: xd 186 APK 00210-01 33 01-4 2 APK 00210-01 33 01-4 ANNOTACIYA Dannyj dokument soderzhit komandy obshchego naznacheniya sistemy demos, prednaznachennye dlya neposredstvennogo vyzo- va pol'zovatelem. Privodimye v prilozhenii komandy otrazhayut tekushchee sostoyanie standartnoj operativnoj spravochnoj doku- mentacii sistemy. Vse komandy v dokumente uporyadocheny v alfavitnom poryadke. Dlya udobstva raboty opisanie kazhdoj komandy nachinaetsya s nobogo lista. 3 APK 00210-01 33 01-4 SODERZHANIE 1. KOMANDY OBSHCHEGO NAZNACHENIYA......................... 4 PRILOZHENIE............................................ 5 4 APK.00210-01 33 01-5 1. KOMANDY OBSHCHEGO NAZNACHENIYA Struktura opisaniya kazhdoj komandy imeet sleduyushchij format: imya: privodyatsya imena komand i kratkaya informaciya o ih naznachenii; format: privoditsya format komandy. Parametry, vzyatye v kvadratnye skobki, mogut byt' opushcheny; mnogotochie posle parametra ukazyvaet na to, chto dannyj parametr mozhet byt' mnogokratno povtoren. opisanie: soderzhit podrobnoe opisanie komandy; fajly: perechislyayutsya imena fajlov, kotorye ispol'- zuyutsya dannoj komandoj; diagnostika: perechislyayutsya diagnosticheskie soobshcheniya, ko- torye mogut vydavat'sya v processe vypolneniya dannoj komandy; zamechaniya: privodyatsya ogranicheniya na oblast' primeneniya komand; dopolnitel'nye ssylki: delayutsya ssylki na sopryazhennye komandy. V skobkah privoditsya nomer razdela operativnogo rukovodstva. Opisanie komand obshchego naznacheniya privedeno v prilozhenii. 5 APK.00210-01 33 01-5 PRILOZHENIE 6 APK.00210-01 33 01-5 IMYA: join - operaciya dlya relyacionnyh baz dannyh. FORMAT: join [klyuchi] fajl1 fajl2 OPISANIE: Komanda join formiruet v standartnom fajle vyvoda so- edinenie dvuh otnoshenij, zadannyh strokami fajlov "fajl1" i "fajl2". Esli vmesto fajla "fajl2" ukazano "-", ispol'zuetsya standartnyj fajl vvoda. "Fajl1" i "fajl2" dolzhny byt' otsortirovany v vozras- tayushchej posledovatel'nosti v sootvetstvii s kodom KOI-8 po polyam, po kotorym oni dolzhny slivat'sya. (Obychno po pervym polyam v kazhdoj stroke). Dlya kazhdoj pary strok v fajlah "fajl1" i "fajl2", ko- torye imeyut identichnye polya sliyaniya, sozdaetsya odna vyhodnaya stroka. Vyhodnaya stroka obychno sostoit iz ob- shchego polya, posle kotorogo sleduet ostal'naya chast' ctpoki iz fajla "fajl1", a zatem - iz fajla "fajl2". Polya obychno razdelyayutsya probelami, simvolami tabulyacii i novoj stroki. V dannom sluchae neskol'ko razdelitelej rassmatrivayutsya kak odin, a perednie razdeliteli otbrasyvayutsya. Raspoznayutsya sleduyushchie opcii: -aN v dopolnenie k obychnomu vyvodu generiruetsya 7 APK.00210-01 33 01-5 stroka dlya kazhdoj neparnoj stroki v fajle N, gde N ravno 1 ili 2; -e S zamenyaet pustye vyhodnye polya strokoj "S"; -jN M sliyanie proizvoditsya po M-omu polyu fajla N. Esli N otsutstvuet, v kazhdom fajle ispol'zuetsya M-oe pole; -o cpicok kazhdaya vyxodnaya ctpoka coctoit iz polej, ukazan- nyh v "spiske", kazhdyj element kotorogo imeet vid N.M, gde N - eto nomer fajla, a M - nomer polya; -t C ispol'zovat' simvol "C" v kachestve razdelitelya (simvola tabulyacii). Kazhdoe poyavlenie "C" v stroke yavlyaetsya znachimym; DOPOLNITELXNYE SSYLKI : sort, comm, awk ZAMECHANIYA: Pri standartnom razdelitele polej sortiruyushchaya posledo- vatel'nost' takaya zhe, kak v komande "sort -b"; s klyu- chem -t posledovatel'nost' takaya zhe, kak pri prostoj sortirovke. Soglasheniya, prinyatye v komandah join, sort, comm, i awk, nesovmestimy. 8 APK.00210-01 33 01-5 IMYA: kill - zavershit' process. FORMAT: kill [-signom] identifikator-processa ... OPISANIE: Komanda kill posylaet signal zaversheniya (SIGTERM-15) zadannym processam. Esli zadan parametr "signom", dannyj signal posylaetsya vmesto signala zaversheniya. |to svojstvo komandy kill mozhno ispol'zovat' dlya inte- raktivnogo upravleniya hodom vypolneniya fonovyh proces- sov ili dlya unichtozheniya processov ignoriruyushchih signal zaversheniya. V lyubom sluchae komanda "kill -9" garanti- ruet zavershenie processa. V sootvetstvii s prinyatym soglasheniem, esli zadan nomer processa 0, signal budet poslan vsem chlenam, vhodyashchim v dannuyu gruppu processov. Zavershaemye pro- cessy dolzhny prinadlezhat' tekushchemu pol'zovatelyu, esli on ne yavlyaetsya super-pol'zovatelem. Interpretator komand soobshchaet nomera asinhronnyh pro- cessov, zapushchennyh posredstvom "&". DOPOLNITELXNYE SSYLKI : ps, kill, signal 9 APK.00210-01 33 01-5 IMYA: label - obrabotka metok na ml. FORMAT: label [-w] [-i metka] imya OPISANIE: Komandoj label mozhno prochitat' i zapisat' metku mag- nitnoj lenty, adresuemoj spec-fajlom v parametre "imya". Komanda raspoznaet metki ML v formate OS ES, gde metka dolzhna raspolagat'sya v 6-ti bajtovom pole pervoj 80-ti bajtovoj zapisi. |ta zapis' nachinaetsya simvolami VOL1, za kotorymi sleduet metka ML i probely v ostavshejsya chasti. Operaciya chteniya-zapis' metki soprovozhdaetsya pe- rekodirovkoj iz koda DKOI v KOI-8 ili naoborot soot- vetstvenno. Komanda label bez opcionnyh parametrov privodit k otobrazheniyu metki ML na terminale. Opcii takovy: -w zapisat' metku ML. V vide metki ispol'zuetsya imya spec-fajla; -i zapisat' metku ML. Metkoj lenty stanovitsya uni- kal'noe imya iz polya "metka". DOPOLNITELXNYE SSYLKI: tape, tm 10 APK.00210-01 33 01-5 IMYA: ld - redaktor svyazej FORMAT: ld [klyuch] fajl ... OPISANIE: Komanda ld ob'edinyaet neskol'ko ob'ektnyh programm v odnu, razreshaet vneshnie ssylki i proizvodit poisk v bibliotekah. V prostejshem sluchae zadayutsya neskol'ko ob'ektnyh fajlov, i ld ob'edinyaet ih, sozdavaya ob'ektnyj modul', kotoryj mozhet libo vypolnyat'sya, libo yavlyat'sya vhodnym dlya posleduyushchih zapuskov ld (v pos- lednem sluchae dolzhen zadavat'sya klyuch "-r" dlya sohrane- niya razryadov peremeshcheniya). Rezul'tat raboty ld pomeshcha- etsya v fajl s imenem a.out. |tot fajl delaetsya vypol- nyaemym, esli v processe zagruzki ne bylo oshibok. Ukazannye parametrami programmy ob'edinyayutsya v zadan- noj posledovatel'nosti. Tochkoj vhoda dlya vyhodnogo mo- dulya yavlyaetsya nachalo pervoj programmy (esli ne ispol'- zuetsya opciya "-e"). Esli kakoj-libo iz parametrov predstavlyaet soboj bib- lioteku, eta biblioteka prosmatrivaetsya tol'ko odin raz v tot moment, kogda ona vstrechaetsya v spiske para- metrov. Zagruzhayutsya tol'ko te programmy, kotorye opre- deleny kak nerazreshennye vneshnie ssylki. Esli podprog- ramma iz biblioteki ssylaetsya na druguyu podprogrammu iz toj zhe biblioteki, to poslednyaya dolzhna nahoditsya v 11 APK.00210-01 33 01-5 biblioteke posle podprogrammy, kotoraya na nee ssylaet- sya. Esli pervyj chlen biblioteki imeet imya __.SYMDEF, to schitaetsya, chto on soderzhit katalog biblioteki, po- luchennyj s pomoshch'yu komandy ranlib. V etom sluchae, vse ssylki budut uspeshno razresheny. Simvoly "_etext", "_edata" i "_end" ("etext", "edata" i "end" v yazyke Si) zarezervirovany i, esli na nih imeyutsya ssylki, ustanavlivayutsya na pervuyu yachejku nad programmoj, pervuyu yachejku nad inicializirovannymi dan- nymi i pervuyu yachejku nad vsemi dannymi sootvetstvenno. Popytka pereopredelit' eti simvoly privodit k oshibke. Komanda ld raspoznaet neskol'ko klyuchej. Za isklyucheniem klyucha "-l", vse oni dolzhny nahoditsya pered imenami fajlov: -d Vyzyvaet opredelenie obshchej pamyati, dazhe esli us- tanovlen flag "-r"; -a Sleduyushchij parametr rassmatrivaetsya kak imya tochki vhoda zagpyzhaemoj ppogpammy; po ymolchaniyu icpol'zyetcya yachejka 0; -l |tot klyuch yavlyaetcya cokpashcheniem imeni biblioteki /lib/libX.a, gde "X" - stroka. Esli ona ne su- shchestvuet, komanda ld pytaetsya otyskat' bibliote- ku /usr/lib/libX.a. Poskol'ku osushchestvlyaetsya poick, mectonaxozhdenie "-l" yavlyaetcya cyshchectvennym; 12 APK.00210-01 33 01-5 -n Privodit k tomu, chto pri vypolnenii vyhodnogo fajla tekctovaya chact' bydet doctypnoj tol'ko dlya chteniya i pazdelyat'cya mezhdy vcemi pol'zovatelyami, vypolnyayushchimi etot fajl. Segmen