zapisej na lente. Po umolchaniyu on raven 1, maksimal'noe znachenie ravno 127. |tot klyuch 171 APK.00210-01 33 01-5 sleduet ispol'zovat' tol'ko dlya arhivov na magnitnoj lente tipa /dev/mt?; i prodolzhat' rabotu pri oshibkah chteniya lenty ili kontrol'noj summy zagolovka, chto pozvolyaet, v chastnosti, nachinat' chtenie s serediny arhiva na lente. Tar pri oshibke ishchet sleduyushchij zago- lovok fajla i prodolzhaet rabotu; l Provociruet vydachu soobshchenij pri nevozmozhnosti razreshit' vse svyazi vosstanavlivaemyh fajlov. Esli etot klyuch ne zadan, soobshcheniya ob oshibkah ne pechatayutsya. Arhiv na lente sostoit iz logicheskih blokov po 512 bajt (vozmozhno, sblokirovannyh v bolee dlinnye fizi- cheskie zapisi). Fajly zanimayut celoe chislo zapisej, kazhdomu fajlu predshestvuet logicheskij blok-zagolovok. Ves' arhiv zapisyvaetsya odnim fizicheskim fajlom na lente. Dozapis' v sblokirovannyj arhiv vozmozhna pri ispol'zovanii drajvera "mt" dlya raboty s lentami. FAJLY: /dev/mt* /tmp/tar* DIAGNOSTIKA: Soobshcheniya o nepravil'nyh klyuchevyh simvolah i ob oshib- kah chteniya/zapisi. Soobshcheniya o nedostatke pamyati dlya hraneniya tablic svya- 172 APK.00210-01 33 01-5 zi. ZAMECHANIYA: Otsutstvuet vozmozhnost' zaprosa n-ogo poyavleniya fajla. Operaciya u mozhet vypolnyat'sya medlenno. Pri dozapisi, esli ispol'zuetsya "buferizovannyj" dostup k lente, a imya ustrojstva peredaetsya cherez peremennuyu "TAPE" ili s pomoshch'yu flaga "f", neobhodimo yavno ukazyvat' koefficient blokirovki 1. V nastoyashchee vremya ogranichenie na dlinu imeni fajla sostavlyaet 100 simvolov. 173 APK.00210-01 33 01-5 IMYA: tbl - formatirovanie tablic. FORMAT: tbl [fajly] ... OPISANIE: Komanda tbl yavlyaetsya preprocessorom dlya sistemy podgo- tovki dokumentacii pif i sluzhit dlya formatirovaniya tablic. Vvodimye stroki kopiruyutsya v standartnyj vyvod, isklyuchaya stroki, nahodyashchiesya mezhdu komandnymi strokami .TS i .TE (t.e. krome opisatelej tablic), v sootvetstvii s opisatelyami formiruyutsya tablicy. Esli ne zadan ni odin argument, komanda tbl schityvaet standartnyj fajl vvoda, poetomu ona mozhet ispol'zo- vat'sya kak fil'tr. V sluchae, kogda tbl ispol'zuetsya sovmestno s eqn ili neqn, ona dolzhna byt' pervoj dlya togo, chtoby minimizirovat' ob'em dannyh, prohodyashchih cherez programmnyj kanal. DOPOLNITELXNYE SSYLKI: pif, eqn ZAMECHANIYA: Poskol'ku v redaktore tekstov re s cel'yu "ekonomii" obpashchenie c kodami tabylyacii doctatochno ppoizvol'no, ppi rabote s tbl neobhodimo zamenyat' razdelitel'. PRIMERY: Pust' v fajle txt zapisan sleduyushchij tekst: 174 APK.00210-01 33 01-5 .TS center tab(&); c s s c s s c c c l n n. |KSPRESS-INFORMACIYA VINITI Periodichnost' 48 nomerov v god. &Indeks&Cena Aviastroenie&56767&12-00 Vychislitel'naya tehnika&56769&8-16 Gorodskoj transport&56770&7-68 Informatika&56772&5-28 Tehnicheskaya kibernetika&56796&8-16 |lektronika&56797&8-16 .TE V rezul'tate vypolneniya komandy tbl txt | pif budet poluchen sleduyushchij tekst: |KSPRESS-INFORMACIYA VINITI 175 APK.00210-01 33 01-5 Periodichnost' 48 nomerov v god. Indeks Cena Aviastroenie 56767 12-00 Vychislitel'naya tehnika 56769 8-16 Gorodskoj transport 56770 7-68 Informatika 56772 5-28 Tehnicheskaya kibernetika 56796 8-16 |lektronika 56797 8-16 176 APK.00210-01 33 01-5 IMYA: tee - kopirovanie informacii. FORMAT: tee [-i] [-a] [fajl] ... OPISANIE: Komanda tee perepisyvaet informaciyu iz standartnogo fajla vvoda v standartnyj fajl vyvoda i kopiruet ee v ukazannye fajly. Vozmozhno ispol'zovanie klyuchej: -i ustanavlivaet rezhim ignorirovaniya preryvanij; -a privodit k tomu, chto informaciya dopisyvaetsya v fajly. 177 APK.00210-01 33 01-5 IMYA: test - proverka usloviya. FORMAT: test vyr OPISANIE: Komanda test ocenivaet vyrazhenie "vyr" i, esli ono is- tinno, vozvrashchaet nulevoj kod otveta; inache vozvrashcha- etsya nenulevoj kod otveta. Esli argumenty ne zadany, vozvrashchaetsya nenulevoj kod otveta. Dlya postroeniya "vyr" ispol'zuyutsya sleduyushchie primitivy: -r fajl istinno, esli fajl sushchestvuet i dostupen dlya chteniya; -w fajl istinno, esli fajl sushchestvuet i dostupen dlya za- pisi; -f fajl istinno, esli fajl sushchestvuet i ne yavlyaetsya spravochnikom; -d fajl istinno, esli fajl sushchestvuet i yavlyaetsya spra- vochnikom; -s fajl istinno, esli fajl sushchestvuet i imeet razmer 178 APK.00210-01 33 01-5 bol'shij, chem nul'; -t [fildes] istinno, esli otkrytyj fajl, imeyushchij nomer deskriptora fajla ravnyj fildes (po umolchaniyu 1), svyazan s terminalom; -z s1 istinno, esli stroka s1 imeet nulevuyu dlinu; -n s1 istinno, esli stroka s1 imeet nenulevuyu dlinu; s1 = s2 istinno, esti stroki s1 i s2 ravny; s1 != s2 istinno, esli stroki s1 i s2 ne ravny; s1 istinno, esli s1 ne yavlyaetsya pustoj strokoj; n1 -eq n2 istinno, esli celye chisla n1 i n2 algebraicheski ravny. Vmesto -eq mogut ispol'zovat'sya lyubye operacii sravneniya: -ne, -qt, -ge -lt ili -le. |ti elementarnye operacii mogut kombinirovat'sya s po- moshch'yu sleduyushchih operatorov: ! unarnyj operator otricaniya; -a binarnyj operator i; -o binarnyj operator ili; ( vyr ) 179 APK.00210-01 33 01-5 kruglye skobki dlya gruppirovki; Operaciya -a imeet bolee vysokij uroven' starshinstva, chem -o. Vse operatory i flagi yavlyayutsya otdel'nymi ar- gumentami komandy test. Poskol'ku kruglye skobki yavlya- yutsya special'nymi simvolami komandnogo yazyka oni dolzhny byt' vzyaty v kavychki. DOPOLNITELXNYE SSYLKI : sh, find 180 APK.00210-01 33 01-5 IMYA: time - poluchenie vremeni raboty komandy. FORMAT: time komanda OPISANIE: Zadannaya komanda vypolnyaetsya, posle ee zaversheniya time pechataet astronomicheskoe vremya, v techenie kotorogo vy- polnyalas' komanda, vremya, zatrachennoe sistemoj, i vre- mya, zatrachennoe pri vypolnenii komandy. Vremya vydaetsya v sekundah v standartnyj fajl vyvoda diagosticheskih soobshchenij. ZAMECHANIYA: Ispol'zovannoe vremya vydaetsya s tochnost'yu do sekundy, hotya vremya central'nogo processora izmeryaetsya s toch- nost'yu do 1/50 sekundy. Takim obrazom, summa vremen CP mozhet byt' na sekundu bol'she, chem ispol'zovannoe vre- mya. 181 APK.00210-01 33 01-5 IMYA: touch - izmenenie daty modifikacii fajla. FORMAT: touch [-c] fajl ... OPISANIE: Komanda touch pytaetsya izmenit' datu modifikacii kazh- dogo fajla, imena kotoryh zadayutsya argumentami "fajl". |to delaetsya putem chteniya simvola iz fajla i zapisi ego obratno. Esli fajl ne sushchestvuet, budet sdelana popytka sozdat' ego, krome teh sluchaev, kogda zadan klyuch -c. 182 APK.00210-01 33 01-5 IMYA: tr - transliteraciya simvolov. FORMAT: tr [-cds] [str1 [str2]] OPISANIE: Komanda tr perepisyvaet standartnyj fajl vvoda v stan- dartnyj fajl vyvoda s zameshcheniem ili udaleniem vybran- nyh simvolov. Vhodnye simvoly, sootvetstvuyushchie simvo- lam, zadannym v "str1", otobrazhayutsya v sootvetstvuyushchie simvoly iz "str2". Esli stroka str2 koroche, ona zapol- nyaetsya do dliny stroki str1 povtoreniem svoego posled- nego simvola. Mogut byt' ispol'zovany lyubye kombinacii klyuchej -cds: -c dopolnyaet nabor simvolov v "str1" do nabora sim- volov, v kotorom vos'merichnye kody KOI-8 izmenya- yutsya ot 01 do 0377; -d udalyaet vse vhodnye simvoly, sootvetsvuyushchie sim- volam v stroke "str1"; -s szhimaet vse stroki povtoryayushchihsya vyvodnyh simvo- lov, kotorye est' "str2", do odinochnyh simvolov. Zapis' vida A-Z v lyuboj iz strok oznachaet diapazon simvolov ot A do Z v vozrastayushchem poryadke KOI-8. Simvol '/, za kotorym sleduyut 1, 2 ili 3 vos'merichnye cifry, oznachaet simvol, kod KOI-8 kotorogo sostavlyayut eti cifry. Esli za simvolom '/ sleduet kakoj-libo 183 APK.00210-01 33 01-5 drugoj simvol, eto ravnosil'no etomu simvolu. V sleduyushchem primere sozdaetsya spisok vseh slov v file1 odno na stroku v file2, gde slovom schitaetsya maksi- mal'naya stroka bukv. Vtoraya stroka zaklyuchaetsya v ka- vychki dlya togo, chtoby "zashchitit'" simvol '/ ot obra- botki komandnym yazykom. CHislo "012" predstavlyaet soboj kod KOI-8 dlya simvola perehoda na novuyu stroku. tr -cs A-Za-z ' 12' <file1 >file2 DOPOLNITELXNYE SSYLKI : ed ZAMECHANIYA: Esli vy ne zhelaete obrabatyvat' simvol KOI-8 nul v "str1" ili "str2", vsegda udalyajte nul iz vvoda. 184 APK.00210-01 33 01-5 IMYA: true, false - poluchenie znacheniya "istinno" ("lozhno"). FORMAT: true false OPISANIE: Komanda true nichego ne delaet, a tol'ko vydaet kod vozvrata ravnyj nulyu. Komanda false vydaet nenulevoj kod vozvrata. |ti komandy obychno ispol'zuyutsya v ko- mandnyh fajlah sh, naprimer: while true do komanda done DOPOLNITELXNYE SSYLKI : sh 185 APK.00210-01 33 01-5 IMYA: tsort - topologicheskaya sortirovka. FORMAT: tsort [fajl] OPISANIE: Komanda tsort vydaet v standartnyj fajl vyvoda pol- nost'yu uporyadochennyj spisok elementov, soglasuyushchijsya s chastichnym uporyadocheniem elementov, nahodyashchihsya vo vvodnom fajle "fajl". Esli argument "fajl" ne zadan, ispol'zuetsya standartnyj fajl vvoda. Vvodnaya informaciya soderzhit pary elementov (nepustye stroki), razdelyaemye probelami. Pary raznyh elementov ukazyvayut poryadok. Pary odinakovyh elementov ukazyvayut prisutstvie, no ne poryadok. DOPOLNITELXNYE SSYLKI : lorder DIAGNOSTIKA: odd data: nechetnoe chislo polej vo vvodnom fajle. 186 APK.00210-01 33 01-5 IMYA: tty - poluchenie imeni terminala. FORMAT: tty OPISANIE: Komanda tty pechataet polnoe imya terminala pol'zovate- lya. DIAGNOSTIKA: Esli standartnyj fajl vvoda ne yavlyaetsya terminalom, to pechataetsya soobshchenie "not a tty". 187 APK.00210-01 33 01-5 IMYA: uncompact - raspakovat' skompressirovannyj fajl. FORMAT: uncompact [imya...] OPISANIE: Komanda uncompact raspakovyvaet fajl, skompressirovan- nyj ranee s pomoshch'yu komandy compact. Imya ishodnogo fajla dolzhno imet' okonchanie ".C". V rezul'tate raboty obrazuetsya raspakovannyj fajl s tem zhe imenem, no bez okonchaniya ".C". Sootvetstvuyushchij kompressirovannyj fajl unichtozhaetsya. Esli ni odnogo imeni fajla ne zadano, to raspakovyvaetsya informaciya postupayushchaya iz standartnogo fajla vvoda, a rezul'tat zapisyvaetsya v standartnyj fajl vyvoda. DIAGNOSTIKA: Soobshcheniya o neotkryvayushchihsya fajlah i t.p. DOPOLNITELXNYE SSYLKI : compact, ccat 188 APK.00210-01 33 01-5 IMYA: uniq - soobshchit' o povtoryayushchihsya strokah v fajle. FORMAT: uniq [-udc [+n] [-n]] [filein [fileout]] OPISANIE: Komanda uniq sravnivaet sosednie stroki fajla "filein". Vtoraya i posleduyushchie povtoryayushchiesya stroki udalyayutsya; ostavshayasya chast' zapisyvaetsya v vyvodnoj fajl. Esli ispol'zuetsya klyuch "-u", vyvodyatsya tol'ko nepovtoryayushchiesya stroki. Klyuch "-d" ukazyvaet, chto budet vydavat'sya tol'ko odna iz povtoryayushchihsya strok. CHasto klyuchi "-u" i "-d" ispol'zuyutsya sovmestno. Klyuch "-c" otmenyaet dejstvie klyuchej "-u" i "-d" i zada- et rezhim, pri kotorom povtoryayushchiesya stroki ne vydayutsya i pered kazhdoj strokoj pechataetsya skol'ko raz dannaya stroka vstretilas' v ishodnom fajle. Argument "n" ukazyvaet, kakuyu nachal'nuyu chast' kazhdoj stroki nuzhno propustit' pri sravnenii: -n Ignoriruyutsya pervye "n" polej i lyuboe chislo pro- belov pered kazhdym polem. Pole opredelyaetsya kak stroka simvolov (ne probelov i ne simvolov tabu- lyacii), otdelyaemaya ot svoih sosedej simvolami tabulyacii ili probelami. +n Ignoriruyutsya pervye "n" simvolov. Polya propuska- yutsya pered simvolami. 189 APK.00210-01 33 01-5 DOPOLNITELXNYE SSYLKI : sort, comm 190 APK.00210-01 33 01-5 IMYA: units - preobrazovanie edinic izmerenij. FORMAT: units OPISANIE: Komanda units preobrazuet velichiny iz odnoj sistemy edinic v druguyu, Rabota vedetsya interaktivno sleduyushchim obrazom: you have: inch you want: cm * 2.54000e+00 / 3.93701e-01 Velichina zadaetsya kak mul'tiplikativnaya kombinaciya edinic, neobyazatel'no soprovozhdaemaya chislovym mnozhite- lem. Stepeni ukazyvayutsya v vide suffiksa, sostoyashchego iz polozhitel'nyh celyh chisel: delenie - obychnym zna- kom: you want: 15 pounds forse/in2 you want: atm * 1.02059+00 / 9.79730e-01 Komanda units vypolnyaet tol'ko mul'tiplikativnye izme- neniya shkaly. Takim obrazom, ona mozhet perevesti gradu- sy Kel'vina v Renkina, no ne mozhet perevesti gradusy Cel'siya v gradusy Farengejta. Raspoznayutsya naibolee znakomye edinicy, abreviatury i metricheskie pristavki, 191 APK.00210-01 33 01-5 a takzhe neskol'ko konstant: pi otnoshenie dliny okruzhnosti k diametru; c skorost' sveta; e zaryad elektrona; g uskorenie sily tyazhesti; force to zhe, chto g; mole chislo Avogadro; water davlenie edinicy vodyanogo stolba; au astronomicheskaya edinica; Pound edinica massy. Sostavnye nazvaniya pishutsya slitno. Tipichno anglijskie edinicy, otlichayushchiesya ot odnoimennyh edinic ispol'zu- emyh v SSHA, snabzhayutsya pristavkoj br (naprimer, brgallon). Nazvaniya denezhnyh edinic sostavlyaetsya iz nazvaniya strany i sobstvenno edinicy (naprimer, britanpound). Polnyj spisok edinic mozhno poluchit', raspechatav fajl /usr/lib/units. ZAMECHANIYA: Dlya togo, chtoby preobrazovanie valyut rabotalo verno, neobhodimo postoyanno korrektirovat' fajl /usr/lib/units. 192 APK.00210-01 33 01-5 IMYA: vmid - raspechatat' identifikator VM FORMAT: vmid OPISANIE: komanda raspechatyvaet identifikator virtual'noj mashiny ,v kotopoj pabotaet pol'zovatel' DEMOS. DOPOLNITELXNYE SSYLKI: vmid 193 APK.00210-01 33 01-5 IMYA: vmmsg - poslat' soobshcheniya pol'zovatelyu VM FORMAT: vmmsg idvm [tekst ...] OPISANIE: komanda pozvolyaet pol'zovatelyu DEMOS poslat' soobshcheniya dlya pol'zovatelya VM. Registracionnyj identifikator pol'zovatelya avtomaticheski vklyuchaetsya v soobshchenie. Esli komandnaya stroka ne codepzhit coobshchenie ,to dlya dannogo soobshcheniya ispol'zuetsya standartnyj vvod. Mak- simal'naya dlina soobshcheniya- 100 simvolov. 194 APK.00210-01 33 01-5 IMYA: vmpunch - perforirovat' fajl DEMOS. FORMAT: vmpunch [-rhdsqo] [-v idvm] [-i imya] [-t teg] [-c klass] [-f teg_fajl] [-u imya] [-x koman- da[:argument]] [fajl] OPISANIE: Komanda vmpunch zapisyvaet dannyj fajl (ili ispol'zu- etsya ctandaptnyj vvod, ecli nikakogo fajla ne dano) dlya perforacii v VM. VM budet peredavat' otperforiro- vannyj fajl dlya virtual'nogo schityvayushchego ustrojstva virtual'noj mashiny ukazannogo identifikatora ili, ecli on ne ykazan, on beretsya iz fajla /etc/passwd. -r podavlyaet ppeobpazovanie dannyh iz KOI-8 v DKOI; -h posylaet fajl s zagolovkom; -d udalit' vvodnoj fajl posle ego perforacii; -s perforirovat' v rezhime "stream". Dannye perfori- ruyutsya v formate "TWO BYTE <LENGTH> <DATA>..."; -q prinimayushchaya sistema DEMOS ne izveshchaet vladel'ca o pribytii fajla; -o rezhim perepisyvaniya. Soobshchaet prinimayushchej siste- me DEMOS o neobhodimosti perepisat' zapisannyj fajl; 195 APK.00210-01 33 01-5 -v idvm identifikatop BM, kotopaya poluchaet zadanie. Esli parametr imeet formu COMPLEX.VMID, togda fajl peredaetsya v PDP dlya napravleniya ego v sistemu, ukazannuyu s pomoshch'yu COMPLEX. Esli -v ne ispol'- zuesya, to komanda budet ispol'zovat' vvod iz /etc/passwd; -i ispol'zuetsya ukazannyj identifikator pol'zovate- lya DEMOS dlya naznacheniya ppava obladaniya fajlom, ecli dannye perforiruyutsya dlya sistemy DEMOS; -f ispol'zujte "teg_fajl" v kachectve imeni, kotopoe daetsya fajlu. Ecli ne icpol'zyetcya, to komanda budet ispol'zovat' imya vvodnogo fajla, ecli eto ne ctandaptnyj vvod, v etom sluchae ispol'zuetsya "from.punch"; -c klass dlya perforacii. Obychno v; -t ispol'zovanie ukazannoj informacii. Osobenno po- lezno eto pri perforirovanii dlya PDP; -u ispol'zovat' ukazannyj identifikator pol'zovate- lya kak identifikator mashiny DEMOC, pabotayushchej kak VM. V etom sluchae generiruetsya karta userid dlya prinimayushchej mashiny; -H vypolnit' komandu iz /usr/spool/bin s argumenta- mi Perforiruemyj fajl stanovitsya standartnym vvodom dlya komandy v prinimayushchej sisteme DEMOS. 196 APK.00210-01 33 01-5 Dannaya komanda ne dolzhna ispol'zovat'sya dlya perforacii zadanij dlya sistemy OS ES. Dlya etogo neobhodimo is- pol'zovat' komandu send. Perforiruemye fajly mezhdu sistemami DEMOS ispol'zuyut zagolovok dlya pepedachi informacii ob identifikatore pol'zovatelya i mestonahozhdenii fajla. Dlya peremeshchenij mezhdu sistemami DEMOS ispol'zuyutsya flagi -i i -x. DOPOLNITELXNYE SSYLKI: send, vmread, spooler 197 APK.00210-01 33 01-5 IMYA: wc - podschet slov. FORMAT: wc [-lwcpt] [-bbod] [-srazm_str] [-u] [-v] [fajl...] OPISANIE: Komanda wc podschityvaet chislo strok, slov, simvolov i (esli zakazano) chislo listov i vremya peredachi po linii svyazi ukazannyh fajlov. Esli otsutstvuyut argumenty "fajl", ves' podschet delaetsya dlya informacii iz stan- dartnogo fajla vvoda. Slovom schitaetsya maksimal'naya stroka simvolov, ogranichennaya probelami, simvolami ta- bulyacii ili simvolami novoj stroki. Klyuch, esli on zadaetsya, mozhet soderzhat' simvoly "l", "w", "c", "p", i "t" chto sootvetstvuet podschetu strok (l), slov (w), simvolov (c), chisla listov (p) i vreme- ni peredachi (t). -bbod Ukazyvaet, chto skorost' peredachi ("bod") otlichna ot prinyatoj po umolchaniyu (300 bod). -srazm_str Zadaet razmer lista (po umolchaniyu 66 strok). -u Ukazyvaet, chto pri opredelenii vremeni pechat' sleduet uchityvat' vremya peredachi po seti. -v Zadaet rezhim pechati zagolovkov. 198 APK.00210-01 33 01-5 PRIMERY: Podschet chisla slov, strok, listov v fajle wc.1 i vyda- cha dannoj informacii s zagolovkom: wc -lwcpt -v wc.1 v rezul'tate vypolneniya etoj komandy budet vydano sle- duyushchee soobshchenie: lines words chars pages time@300 42 86 1312 1 43.0 se wc.1 ZAMECHANIYA: Pri podschete vremeni pechati ne uchityvayutsya takie fak- tory kak stepen' zagruzki mashiny, i t.p. 199 APK.00210-01 33 01-5 IMYA: whatis - vydat' kratkuyu spravku o komponente. FORMAT: whatis name ... OPISANIE: Komanda whatis vydaet kratkuyu spravku o naznachenii kazhdoj iz perechislennyh komponent sistemy ("name"). Polnye dokumenty po zadannym komponentam mozhno polu- chit' s pomoshch'yu komandy man. FAJLY: /usr/lib/whatis kratkij spravochnik DOPOLNITELXNYE SSYLKI : man, catman, apropos 200 APK.00210-01 33 01-5 IMYA: whereis - poisk komponenty FORMAT: whereis [-sbm] [-u] [-sbm spravonik ... -f] name OPISANIE: Komanda whereis proizvodit poisk vseh vhozhdenij uka- zannogo imeni ("name") v imena fajlov standartnyh spravochnikov. Pri sravnenii zadannogo imeni s bazovym imenem fajla, okonchaniya tipa ".c", ".bak" ".etc" i t.p., ne rassmatrivayutsya. Vydayutsya polnye imena naj- dennyh fajlov. Pri vyzove komandy mogut zadavat'sya sleduyushchie klyuchi: -s proizvodit' poisk v spravochnikah, soderzhashchih is- hodnye teksty komand (po umolchaniyu, prosmatriva- yutsya spravochniki s ishodnymi tekstami komand OS DEMOS); -b proizvodit' poisk v spravochnikah, soderzhashchih go- tovye k vypolneniyu komandy (po umolchaniyu, pros- matrivayutsya spravochniki s komandami OS DEMOS); -m proizvodit' poisk v spravochnikah, soderzhashchih do- kumentaciyu. (po umolchaniyu, prosmatrivayutsya spra- vochniki s operativnoj dokumentaciej po OS DEMOS); -u vydavat' soobshcheniya tol'ko o teh fajlah, imena 201 APK.00210-01 33 01-5 kotoryh ne soderzhat vhozhdenij ni odnogo iz ele- mentov spiska "name". -f priznak konca spiska spravochnikov. Klyuchi "-b", "-m", i "-s" mogut ispol'zovat'sya dlya za- daniya oblasti prosmotra komandy whereis. V etom slu- chae, posle sootvetstvuyushchego klyucha pomeshchaetsya spisok spravochnikov, soderzhashchih fajly ukazannogo tipa. PRIMERY: Poisk vseh fajlov v spravochnike osnovnyh komand siste- my, kotorye ne imeyut sootvetstvuyushchih opisanij v spra- vochnike s operativnoj dokumentaciej: whereis -u -m /bin FAJLY: /bin/* /usr/bin/* /usr/lib/* /etc/* Poskol'ku ispol'zuetsya sistemnyj vyzov chdir, imena spravochnikov, v kotoryh osushchestvlyaetsya poisk, dolzhny privoditsya polnost'yu. 202 APK.00210-01 33 01-5 IMYA: who - kto rabotaet v sisteme. FORMAT: who [who-fajl] [am i] OPISANIE: Komanda who bez argumenta vydaet dlya kazhdogo aktivnogo pol'zovatelya sistemy DEMOS registracionnoe imya, imya terminala i vremya registracii. Esli zadan argument, pechataetsya analogichnaya stroka o vyhode iz sistemy bez imeni pol'zovatelya. Dlya povtornyh zagruzok pechataetsya stroka s "x" na meste imeni ustrojstva i vremya okoncha- niya raboty sistemy. Esli zadany dva argumenta, naprimer, "who am I" (a takzhe "who are you"), who pechataet imya pod kotorym vy zaregistrirovalis' v sisteme. FAJLY: /etc/utmp DOPOLNITELXNYE SSYLKI : getuid, utmp 203 APK.00210-01 33 01-5 IMYA: write - peredacha soobshcheniya drugomu pol'zovatelyu. FORMAT: write imya_pol'zovatelya [imya_tty] OPISANIE: Komanda write ispol'zuetsya dlya peredachi soobshchenij na terminal drugogo pol'zovatelya. Kogda komanda vyzyvaet- sya, ona posylaet soobshchenie: Message from "username" "ttyname".. Peredacha prodolzhaetsya do teh por poka ne schityvaetsya konec fajla na terminale ili ne posylaetsya preryvanie. Po koncu peredachi, write pechataet na drugom terminale "EOF" i zavershaet rabotu. Esli vy hotite poslat' soobshchenie pol'zovatelyu, kotoryj bolee chem odin raz zaregistrirovalsya v sisteme, mozhno ispol'zovat' argument "imya_tty" dlya togo, chtoby uka- zat' sootvetstvuyushchee imya terminala. S pomoshch'yu komandy mesg mozhno zakryt' svoj terminal na priem soobshchenij ot drugih pol'zovatelej. Vnachale zapis' razreshaetsya. Nekotorye komandy, v chastnosti re, i pr, na vremya svoej raboty zakryvayut terminal na pri- em soobshchenij, chtoby predotvratit' besporyadochnyj vyvod. Esli stroka nachinaetsyaya simvolom "!", write vyzyvaet interpretator komand dlya togo, chtoby vypolnit' ostatok 204 APK.00210-01 33 01-5 stroki kak komandu. Pri ispol'zovanii write rekomenduetsya priderzhivat'sya sleduyushchego protokola: pri pervom obrashchenii k drugomu pol'zovatelyu, pered tem, kak nachinat' svoyu posylku, dozhdites' ego otveta. Kazhdaya storona dolzhna zakanchi- vat' kazhdoe soobshchenie vydelyayushchim signalom "o". Kod "oo" ispol'zuetsya, kogda dialog blizok k zaversheniyu. DOPOLNITELXNYE SSYLKI : mesg, who, mail 205 APK.00210-01 33 01-5 IMYA: xstr - vydelenie tekstovyh konstant iz programm na yazyke Si. FORMAT: xstr [-c] [-x] [-] [fajl] OPISANIE: Komanda xstr prednaznachena dlya vynosa tekstovyh strok iz programm na Si i sbora ih libo v otdel'nyj modul', libo vo vneshnij fajl. V pervom rezhime komanda xstr vedet fajl "strings", v kotorom sobrany tekstovye konstanty raznyh chastej bol'shoj programmy. |ti konstanty zamenyayutsya v programme ssylkami na soot- vetstvuyushchuyu stroku v etom fajle vida "&xstr[nomer]". Vo vtorom rezhime sozdaetsya fajl "Messages", v kotoryj sobirayutsya dostatochno dlinnye (bol'she 12 bajtov) tekstovye stroki. Obrashcheniya k etim strokam zamenyayutsya na obrashcheniya k programme "Xsline(adres)", kotoraya chi- taet stroku po ukazannomu adresu v bufer i vozvrashchaet adres schitannoj stroki. Ne vsegda takaya zamena strok korrektna. Komanda "xstr" pri obrabotke teksta programmy vosprinimaet special'- nye kommentarii, kotorye vyklyuchayut ili vklyuchayut raz- lichnye rezhimy obrabotki programmy. Komanda xstr -c imya 206 APK.00210-01 33 01-5 vydelyaet iz fajla "imya", v kotorom nahoditsya ishodnyj tekst programmy na yazyke Si, stroki i zamenyaet ih ssylkami vida &xstr[chislo]. K fajlu dobavlyaetsya soot- vetstvuyushchee ob'yavlenie massiva xstr. Rezul'tiruyushchij tekst na Si pomeshchaetsya v fajl x.c i dolzhen zatem byt' skompilirovan. Vydelennye stroki razmeshchyayutsya v fajle strings, esli ih tam do etogo ne bylo. Povtoryayushchiesya stroki i stroki, predstavlyayushchie soboj chasti sushchestvu- yushchih strok, ne privodyat k izmeneniyam v fajle strings. Posle togo, kak vse komponenty bol'shoj programmy skom- pilirovany, dolzhen byt' sozdan fajl xs.c, inicializi- ruyushchij massiv xstr, s pomoshch'yu komandy vida: xstr |tot fajl xs.c dolzhen byt' skompilirovan i zagruzhen vmeste s ostal'noj programmoj. Massiv xstr mozhno pere- vesti iz segmenta "data" v segment "text", (naprimer, ottranslirovav ego na yazyk assemblera i pomenyav slovo ".data" na ".text" v poluchennom fajle). Xstr mozhet takzhe rabotat' s odnim fajlom. Komanda: xstr imya sozdaet, kak i prezhde, fajly h.c i xs.c, ne pol'zuyas' pri etom nikakim fajlom strings v tom zhe kataloge. Vypolnenie xstr naibolee effektivno posle raboty prep- rocessora Si, esli kakie-libo makroopredeleniya sozdayut stroki ili esli imeetsya uslovno transliruemye chasti 207 APK.00210-01 33 01-5 programmy, soderzhashchie stroki, kotorye fakticheski mogut ne ponadobit'sya. Esli zadan argument "-", xstr schityvaet standartnyj fajl vvoda. Dlya vypolneniya xstr posle preprocessora Si mozhet ispol'zovat'sya sleduyushchaya posledovatel'nost' komand: cc -C -P imya.c xstr -c imya.i cc -c h.c mv h.o imya.o rm imya.i Esli ne dobavlyayutsya novye elementy, xstr ne izmenyaet fajl strings; takim obrazom, mozhno izbezhat' povtornogo sozdaniya xs.o, za isklyucheniem sluchaev, kogda eto dej- stvitel'no neobhodimo. Komanda: xstr -x -c imya sobiraet stroki v fajl "Mesages", i perepisyvaet prog- rammu v fajl "x.c", zamenyaya stroki na obrashcheniya k funkcii "Xsline(adres)", gde "adres" - adres stroki v fajle "Messages". V programmu vstavlyaetsya opisanie funkcii Xsline. Komanda: xstr -x sozdaet fajl "xs.c", soderzhashchij tekst funkcii Xsline. Pri translyacii etot fajl nastraivaetsya na imya fajla s 208 APK.00210-01 33 01-5 tekstami diagnostik s pomoshch'yu makroperemennoj "XSFILE": cc -O -c -DXSFILE= Dlya upravleniya obrabotkoj v programme na Si sluzhat psevdokommentarii: /*NOXSTR*/ blokirovka vynosa strok v rezhime "xstr -c" v tekste za kommentariem; /*NOXXSTR*/ to zhe samoe, no v rezhime "xstr -c -x"; /*YESXSTR*/ ili /*YESXXSTR*/ razreshenie vynosa strok v oboih rezhimah. Estestvenno, chto, esli xstr ispol'zuetsya posle prepro- cessora, dolzhen ispol'zovat'sya flag komandy cc "-C" dlya togo, chtoby preprocessor ne unichtozhal kommentarii. Pri ispol'zovanii "xstr -c" vynos strok dolzhen bloki- rovat'sya v konstrukciyah inicializacii tipa: char x[]="stroka"; Pri vynose stroki v fajl (rezhim "xstr -c -x") obrabot- ka dolzhna blokirovat'sya vo vseh inicializaciyah dannyh, a takzhe vezde, gde stroka budet ispol'zovat'sya skol' nibud' prodolzhitel'no. |to svyazano s tem, chto pri zap- rose u funkcii Xsline sleduyushchej stroki predydushchaya sti- raetsya. 209 APK.00210-01 33 01-5 Pri ispol'zovanii "xstr -x -c" v programmah, kotorye sobirayutsya s pomoshch'yu komandy "ldover", fajl "Messages" mozhno dozapisat' v biblioteku razdelov zagruzki "V.out.a"; v etom sluchae funkciyu Xsline (fajl xs.c) translirovat' ne nuzhno. ZAMECHANIYA: Esli stroka yavlyaetsya suffiksom drugoj stroki, no bolee korotkaya stroka pervoj prosmatrivaetsya xstr, v fajl "strings" pomeshchayutsya obe stroki, hotya dostatochno bylo by pomestit' tol'ko bolee dlinnuyu stroku. 210 APK.00210-01 33 01-5 IMYA: yacc - kompilyator kompilyatorov. FORMAT: yacc [-vd][-f parser] grammatika OPISANIE: Yacc preobrazovyvaet bezkontekstnuyu grammatiku v nabor tablic dlya prostogo avtomata, kotoryj vypolnyaet algo- ritm grammaticheskogo razbora. Grammatika mozhet byt' neodnoznachnoj, dlya ustraneniya neodnoznachnosti ispol'- zuyutsya pravila starshinstva, zadavaemye pol'zovatelem. Vyhodnoj fajl dolzhen byt' skompilirovan kompilyatorom Si, v rezul'tate chego poluchaetsya programma yyparse. |ta programma dolzhna byt' zagruzhena sovmestno s prog- rammoj leksicheskogo analiza yylex, a takzhe programmoj main i programmoj obrabotki oshibok yyerror. |ti prog- rammy pishutsya pol'zovatelem. Dlya sozdaniya leksicheskih analizatorov, kotorye mogut rabotat' s yacc, mozhno is- pol'zovat' lex. Esli zadan flag -v, yacc sostavlyaet fajl y.output, so- derzhashchij opisanie tablic grammaticheskogo razbora i ot- chet o konfliktah, svyazannyh s neodnoznachnostyami gram- matiki. Esli zadaetsya flag -d, generiruetsya fajl s operatorami #define, v kotoryh ustanavlivaetsya svyaz' mezhdu "kodami znakov", prisvaivaemyh yacc, i imenami znakov, ob'yav- 211 APK.00210-01 33 01-5 lyaemyh pol'zovatelem. |tim samym sozdaetsya vozmozhnost' dostupa k kodam znakov iz drugih ishodnyh fajlov. Esli zadan flag -f, ispol'zuetsya nestandartnyj gramma- ticheskij analizator iz fajla, imya kotorogo zadaetsya sleduyushchim za flagom argumentom, "parser". Po umolchaniyu ispol'zuetsya "/usr/lib/yaccpar". DOPOLNITELXNYE SSYLKI : lex DIAGNOSTIKA: V standartnyj fajl vyvoda vydaetsya chislo konfliktov reduce-reduce i shift-reduce. Soobshchaetsya takzhe, esli nekotorye pravila ne dostizhimy so startovogo simvola. ZAMECHANIYA: Poskol'ku imena fajlov postoyanny, v odin i tot zhe moment v zadannom kataloge mozhet byt' aktivnym tol'ko odin process yacc. 2 APK.00210-01 33 01-5 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. V dokumente dlya udobstva pol'zovaniya opisanie komand nachinaetsya s novogo lista. 3 APK.00210-01 33 01-5 SODERZHANIE 1. KOMANDY OBSHCHEGO NAZNACHENIYA......................... 4 PRILOZHENIE............................................ 5