Ocenite etot tekst:

                            4

                   APK 00210-01 33 01-4



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

     raboty v skobkah privoditsya  nomer  chasti  rukovodstva

     programmista gde  opisany sopryazhennye komandy

   Opisanie komand obshchego naznacheniya privedeno v  prilozhe-

   nii.




                            5

                   APK 00210-01 33 01-4



                                             PRILOZHENIE





























                            6

                   APK 00210-01 33 01-4

IMYA:

      apropos - poisk komponentov v spravochnike po sisteme.


FORMAT:

      apropos klyuch ...


OPISANIE:

      Komanda apropos prosmatrivaet  kratkij  spravochnik  po

      sisteme i vydaet vse zapisi, soderzhashie vhozhdeniya ele-

      menta, ukazannogo v spiske ("klyuch"). Poskol'ku  kazhdaya

      zapis' kratkogo kataloga soderzhit nomer razdela i naz-

      vanie dokumenta, etu komandu udobno  ispol'zovat'  dlya

      polucheniya  informacii  o komponentah, kotorye ne imeyut

      otdel'nogo  dokumenta,  no  upominayutsya  pri  opisanii

      kakogo-libo drugogo komponenta.


PRIMERY

      Pri ispol'zovanii komandy:


      apropos  time


      mozhet  byt'  poluchena   sleduyushchaya   posledavatel'nost'

      strok:


      alarm  -    vypolnit' komandy v ukazannoe vremya;


      time   -    komanda vydachi vremeni raboty komandy.






                            7
                   APK 00210-01 33 01-4

IMYA:
      ar - programma obsluzhivaniya arhivov i bibliotek.

FORMAT:
      ar klyuch [pozimya] arhiv imya ...

OPISANIE:
      Komanda ar obsluzhivaet gruppy fajlov,  ob'edinennyh  v
      edinyj  arhivnyj fajl. Osnovnym primeneniem etoj prog-
      rammy yavlyaetsya  sozdanie  i  modifikaciya  bibliotechnyh
      fajlov,  ispol'zuemyh redaktorom svyazij ld. Tem ne me-
      nee, ona mozhet  byt'  ispol'zovana  v  lyubyh  podobnyh
      celyah.

      "Klyuch" predstavlyaet soboj odin  iz  simvolov  drqtpmx,
      kotoryj  mozhet ob'edinyat'sya s odnim ili neskol'kimi iz
      simvolov vuaibcl (poslednie mogut byt' opushcheny). Argu-
      ment  "arhiv"  zadaet  imya  arhivnogo  fajla. Argument
      "imya" predstavlyaet soboj imya fajla, kotoryj neobhodimo
      zanesti  v arhiv ili imya fajla, uzhe vhodyashchego v sostav
      arhiva. Klyuchi zadayut sleduyushchie rezhimy raboty:

      d -   Udalenie fajlov s ukazannymi imenami iz arhiva;

      r -   Zapis' perechislennyh fajlov v arhiv.  Esli  fajl
            uzhe  vhodit  v arhiv, to on zamenyaetsya na novyj.
            Esli vmeste s klyuchom "r"  ispol'zuetsya  neobyaza-
            tel'nyj  klyuch "u", to v arhive zamenyayutsya tol'ko
            te fajly, kotorye imeyut bolee pozdnie daty modi-
            fikacii,  chem  odnoimennye fajly, vhodyashchie v ar-

                            8
                   APK 00210-01 33 01-4

            hiv. Esli ispol'zuetsya odin iz klyuchej pozicioni-
            rovaniya  "abi" i prisutstvuet parametr "pozimya",
            novye fajly pomeshchayutsya posle (a)  ili  pered  (b
            ili i) fajlom "pozimya". V protivnom sluchae novye
            fajly pomeshchayutsya v konec;

      q -   Bystroe dobavlenie perechislennyh fajlov v  konec
            arhiva. Klyuchi pozicionirovaniya ne dopuskayutsya. V
            etom rezhime ne proveryaetsya, nahodyatsya li  uzhe  v
            arhive fajly s zadannymi imenami. |tot rezhim po-
            lezen tol'ko pri  sozdanii  bol'shih  arhivov  po
            chastyam dlya ustraneniya lishnih dejstvij;

      t -   Poluchenie imen fajlov, vhodyashchih  v  arhiv.  Esli
            imena  fajlov  ne  zadany,  vydaetsya spisok imen
            vseh fajlov arhiva, v protivnom sluchae vyvoditsya
            spisok  imen tol'ko zadannyh fajlov. Esli fajl s
            zadannym imenem otsutstvuet v  arhive,  vydaetsya
            sootvetstvuyushchaya diagnostika;

      p -   Vydacha v standartnyj fajl  vyvoda  perechislennyh
            fajlov iz arhiva. Soderzhimoe arhiva ne izmenyaet-
            sya;

      m -   Peremeshchenie  perechislennyh  fajlov.  Esli   pri-
            sutstvuet  klyuch pozicionirovaniya i parametr "po-
            zimya", fajly peremeshchayutsya v ukazannoe mesto, kak
            i v rezhime "r", inache fajly peremeshchayutsya v konec
            arhiva;

                            9
                   APK 00210-01 33 01-4

      x -   Perechislennye fajly vydelyayutsya iz arhiva  v  ot-
            del'nye fajly. Esli ne zadany imena fajlov, ras-
            pakovyvaetsya ves' arhiv. Ni v koem sluchae koman-
            da h ne izmenyaet arhivnyj fajl;

      v -   Esli ukazan dannyj klyuch, komanda ar vydaet  pod-
            robnyj  protokol svoih dejstvij. Pri ispol'zova-
            nii  sovmestno  s  klyuchem  "t",  vydaetsya  bolee
            podprobnaya  informaciya  o fajlah, vhodyashchih v ar-
            hiv. Kogda dannyj klyuch ispol'zuetsya sovmestno  s
            klyuchem  "p", pered kazhdym fajlom ukazyvaetsya ego
            imya;

      c -   Sozdaet novyj arhiv,  dazhe  esli  arhivnyj  fajl
            "arhiv" uzhe sushchestvuet;

      l -   Obychno komanda ar pomeshchaet svoi vremennye  fajly
            v  kataloge /tmp. Zadanie dannogo klyucha privodit
            k tomu, chto oni razmeshchayutsya v tekushchem kataloge.

FAJLY:
      /tmp/v*   vremennye fajly

DOPOLNITELXNYE SSYLKI :
      ld, ar, lorder, ranlib

ZAMECHANIYA:
      Esli v spiske parametrov odin i  tot  zhe  fajl  ukazan
      dvazhdy, on mozhet byt' dvazhdy pomeshchen v arhiv.


                            10
                   APK 00210-01 33 01-4

IMYA:
      as, newas - assembler

FORMAT:
      as [-] [-o obfajl] [imya...]

OPISANIE:
      Komanda as assembliruet fajly s ukazannymi imenami ili
      standartnyj  fajl  vvoda, esli imena fajlov ne zadany.
      Esli zadan klyuch "-", vse neopredelennye pri  assembli-
      rovanii simvoly schitayutsya vneshnimi.

      Rezul'tat raboty komandy as pomeshchaetsya v fajl "obfajl"
      ili,  esli ne zadan klyuch "-o", ispol'zuetsya fajl a.out
      v tekushchem spravochnike.

      Komanda newas vyzyvaet novyj variant assemblera, v ko-
      torom  uluchsheny  diagnostiki,  vvedena vozmozhnost' is-
      pol'zovat' russkie bukvy v identifikatorah, no imeyutsya
      nekotorye  ogranicheniya na poryadok opisaniya identifika-
      torov (vse peremennye v pravoj  chasti  operatorov  "="
      dolzhny byt' opredeleny).

FAJLY:
      /tmp/as2        vtoroj prohod assemblera
      /tmp/atm[1-3]?  vremennye fajly
      a.out           ob'ektnyj fajl

DOPOLNITELXNYE SSYLKI :
      ld, nm, adb, a.out.

                            11
                   APK 00210-01 33 01-4

      Imeetsya otdel'noe opisanie assemblera.

DIAGNOSTIKA:
      Esli vhodnoj fajl ne dostupen dlya  chteniya  -  vydaetsya
      znak  voprosa  "?", za kotorym sleduet imya fajla. Esli
      assembliruemaya programma soderzhit oshibki, to  vydaetsya
      odin  simvol  diagnostiki, imya fajla i nomer stroki, v
      kotoroj byla  obnaruzhena  oshibka.  Vozmozhno  sleduyushchie
      simvoly diagnostiki:

      )     Narushen balans skobok;

      ]     Narushen balans skobok;

      <     Nezavershennaya stroka;

      *     Nekorrektnaya kosvennaya ssylka;

      .     Nekorrektnoe izmenenie tekushchego adresa;

      a     Oshibka v adrese;

      b     Perehod na nechetnyj libo slishkom bol'shoj adres;

      e     Oshibka v vyrazhenii;

      f     Nevernyj lokal'nyj simvol (tipa 'f' ili 'b');

      g     Neizvestnyj simvol;

      i     Konec fajla v kostrukcii "if";

      m     Simvol mnogokratno opredelen kak metka;

      o     Nechetnyj adres;


                            12
                   APK 00210-01 33 01-4

      p     "." razlichaetsya v 1-om i 2-om prohode;

      r     Oshibka razmesheniya;

      u     Neopredelennyj simvol;

      x     Sintaksicheskaya oshibka.

ZAMECHANIYA:
      Pri diagnostike sintaksicheskih  oshibok  nomer  stroki,
      gde proizoshla oshibka, mozhet ukazyvat'sya neverno.











                            13
                   APK 00210-01 33 01-4

IMYA:
      at - vypolnit' komandy v ukazannoe vremya.

FORMAT:
      at vremya [den'] [fajl]

OPISANIE:
      Komanda at sohranyaet kopiyu fajla "fajl" (po  umolchaniyu
      - standartnyj fajl vvoda) dlya zapuska v ukazannoe vre-
      mya. Predpolagaetsya, chto "fajl" soderzhit  programmu  na
      yazyke  SHELL  (ili CSHELL). V nachalo fajla vstavlyaetsya
      komanda perehoda v spravochnik (cd), kotoryj byl  teku-
      shchim  v  moment  vypolneniya komandy at. Za etim sleduet
      opredelenie vseh makroperemennyh "sredy". Pri  zapuske
      podobnogo komandnogo fajla ispol'zuyutsya identifikatory
      gruppy (GID) i pol'zovatelya (UID) sozdatelya.

      Argument "vremya" predstavlyaet soboj ot 1 do 4 cifr, za
      kotorymi  mogut  sledovat'  simvoly  "a", "p", "n" ili
      "m", oznachayushchie "do poludnya", "posle poludnya",  "dnem"
      i  "noch'yu" sootvetstvenno. Odna ili dve cifry rassmat-
      rivayutsya kak chasy. Tri ili chetyre cifry rassmatrivayut-
      sya kak chasy i minuty. Esli bukvy posle cifr otsutstvu-
      yut, podrazumevaetsya 24-chasovoe sutochnoe vremya.

      Neobyazatel'nyj parametr "den'" ispol'zuetsya dlya  zada-
      niya  libo  nazvaniya  mesyaca, za kotorym sleduet chislo,
      libo - dnya  nedeli.  Esli  prisutsvuet  slovo  "week",
      vyzov  otkladyvaetsya  na sem' dnej. Nazvaniya mesyacev i
      dnej mogut usekat'sya do raspoznavaemoj velichiny.  Pri-


                            14
                   APK 00210-01 33 01-4

      vedem primery dopustimyh komand:

      at 8am jan 24
      at 1530 fr week

      Programmy at  vypolnyayutsya  posredstvom  periodicheskogo
      zapuska  komandy  /usr/lib/atrun iz cron. Diskretnost'
      at zavisit ot togo, kak chasto vypolnyaetsya atrun.

FAJLY:
      /usr/spool/at/gg.ddd.chchchch.nn
            Rabota dolzhna byt' vypolnena v "chchchch" chasu "ddd"
            dnya  "gg" goda; "nn" predstavlyaet soboj unikal'-
            nyj nomer.

      /usr/spool/at/lasttimedone
            Soderzhit "chchchch" dlya poslednego chasa raboty.

      /usr/spool/at/past
            Katalog rabot, kotorye vypolnyayutsya  v  nastoyashchee
            vremya.

      /usr/lib/atrun
            Programma,  kotoraya  vypolnyaet  raboty  v  soot-
            vetstvii s raspisaniem.

DOPOLNITELXNYE SSYLKI :
      calendar, cron

DIAGNOSTIKA:
      Soobshcheniya o razlichnyh sintaksicheskih oshibkah i  ukaza-
      niyah vremeni vne dopustimogo diapazona.


                            15
                   APK 00210-01 33 01-4

ZAMECHANIYA:
      Vsledstvie  diskretnosti   vypolneniya   /usr/lib/atrun
      mogut proishodit' oshibki v planirovanii raboty s opoz-
      daniem do 24 chasov.














                            16
                   APK 00210-01 33 01-4

IMYA:
      awk - yazyk skanirovaniya i obrabotki teksta

FORMAT:
      awk [-fc] [prog] [fajl]...

OPISANIE:
      Komanda  awk  yavlyaetsya  interpretatorom  svoeobraznogo
      yazyka,   prednaznachennogo  dlya  obrabotki  tekstov.  V
      kazhdom  vhodnom  fajle  "fajl"  osushchestvlyaetsya   poisk
      strok,  kotorye  sootvetstvuyut odnomu iz nabora shablo-
      nov, zadannyh v argumente "prog". S kazhdym shablonom  v
      "prog"  mozhet byt' svyazano nekotoroe dejstvie, kotoroe
      budet vypolneno kogda ustanovitsya  sootvetstvie  mezhdu
      strokoj fajla "fajl" i dannym shablonom. Nabor shablonov
      mozhet  zadavat'sya  libo  neposredstvenno  v  parametre
      "prog", libo ukazyvat'sya kak "-f fajl".

      Fajly schityvayutsya po poryadku.Esli fajly ne ukazany ili
      zadan parametr "-", ispol'zuetsya standartnyj fajl vvo-
      da. Kazhdaya stroka sravnivaetsya s shablonom kazhdogo ope-
      ratora "shablon-dejstvie". Dlya kazhdogo sootvetstvuyushchego
      shablona vypolnyaetsya svyazannoe s nim dejstvie.

      Vhodnaya stroka sostoit  iz  polej,  kotorye  razdeleny
      probelami (eto umolchanie mozhet byt' izmeneno s pomoshch'yu
      FS). Polya oboznachayutsya  $1,$2,...;.  $0  otnositsya  ko
      vsej stroke.

      Operator "shablon-dejstvie" imeet sleduyushchij vid:

                            17
                   APK 00210-01 33 01-4

            shablon {dejstvie}

      Otsutstvie chasti "{dejstvie}"  oznachaet  pechat'  soot-
      vetstvuyushchih  "shablonu" strok. Otsutstvie "shablona" oz-
      nachaet, chto "dejstvie" vypolnyaetsya nad kazhdoj vvodimoj
      strokoj.

      Dejstvie predstavlyaet soboj posledovatel'nost'  opera-
      torov.

      Imeyutsya sleduyushchie operatory:
      if(uslovie) operator [else operator]
      while (uslovie) operator
      for (vyr; uslovie; vyr) operator
      break
      continue
      { [operator]... }
      peremennaya = vyr
      print [spisok-vyr] [>vyr]
      printf format [,spisok-vyr] [>vyr]
      next # propustit' ostal'nye shablony
           # dlya etoj vhodnoj stroki
      exit # propustit' ostal'noj vvod.

      Operatory zakanchivayutsya  tochkoj  s  zapyatoj,  simvolom
      novoj stroki ili pravoj skobkoj. Pustoj spisok vyrazhe-
      nij otnositsya ko vsej stroke.  Vyrazheniya  predstavlyayut
      soboj  stroku  ili  chislovye znacheniya i stroyatsya s po-
      moshch'yu operacij +, -, *, /, % i konkatenaciya  (ukazyva-
      emaya  probelom). V vyrazheniyah dopuskayutsya takzhe opera-


                            18
                   APK 00210-01 33 01-4

      cii yazyka Si ++, --, +=, -=, *=, /= i  %=.  Peremennye
      mogut  predstavlyat'  soboj  skalyary, elementy massivov
      (oboznachaemye x[i]) ili  polya.  Nachal'nymi  znacheniyami
      peremennyh  yavlyayutsya pustye stroki. Indeksami massivov
      mogut byt' lyubye stroki, ne obyazatel'no chislovye - eto
      pozvolyaet organizovat' nekotoruyu raznovidnost' associ-
      ativnoj pamyati. Strokovye konstanty zaklyuchayutsya v  ka-
      vychki "...".

      Operator print vydaet  svoi  parametry  v  standartnyj
      vyvod  (ili  v fajl, esli zadano ">fajl"), razdelyaya ih
      tekushchim razdelitelem vyhodnyh polej i zavershaya  razde-
      litelem  vyhodnyh zapisej. Operator printf formatiruet
      svoj spisok vyrazhenij v sootvetstvii s formatom.

      Vstroennaya funkciya length vozvrashchaet dlinu svoego  pa-
      rametra, rassmatrivaemogo kak stroku, ili vsej stroki,
      esli parametr otsutstvuet.  Imeyutsya  takzhe  vstroennye
      funkcii ehr, log, sqrt i int, poslednyaya usekaet znache-
      nie svoego parametra do celogo. Funkciya  substr(s,m,n)
      vozvrashchaet n-simvol'nuyu podstroku stroki s, nachinayushchu-
      yusya s m-oj pozicii.  Funkciya  sprintf(fmt,vyr,vyr,...)
      formatiruet  vyrazheniya  v sootvetstvii s printf forma-
      tom, zadannym posredstvom "fmt",i vozvrashchaet rezul'ti-
      ruyushchuyu stroku.

      SHablony predstavlyayut soboj proizvol'nye bulevy  kombi-
      nacii  (!, ||, && i skobki) regulyarnyh vyrazhenij i vy-
      razhenij otnosheniya. Regulyarnye vyrazheniya dolzhny  obram-

                            19
                   APK 00210-01 33 01-4

      lyat'sya znakami "/". Izolirovannye regulyarnye vyrazheniya
      v shablone otnosyatsya ko vsej stroke. Regulyarnye vyrazhe-
      niya  mogut prisutstvovat' takzhe i v vyrazheniyah otnoshe-
      niya.

      SHablon mozhet sostoyat' iz  dvuh  shablonov,  razdelennyh
      zapyatoj  (v  etom sluchae dejstvie vypolnyaetsya dlya vseh
      strok mezhdu  strokoj,  v  kotoroj  vstrechaetsya  pervyj
      shablon   i   strokoj,  v  kotoroj  vstrechaetsya  vtoroj
      shablon).

      Vyrazhenie otnosheniya  mozhet  imet'  odnu  iz  sleduyushchih
      form:

      vyrazhenie oppodb regulyarnoe-vyrazhenie

      vyrazhenie opotn vyrazhenie

      gde "opotn" predstavlyaet soboj odnu iz shesti  oreracij
      otnosheniya yazyka Si, a "oppodb" predstavlyaet soboj libo
      znak ^ ("vhodit"),  libo  !^  ("ne  vhodit").  Uslovie
      predstavlyaet soboj arifmeticheskoe vyrazhenie, vyrazhenie
      otnosheniya libo ih bulevu kombinaciyu.

      Special'nye shablony BEGIN i END  mogut  ispol'zovat'sya
      dlya  polucheniya  upravleniya  pered  schityvaniem  pervoj
      vhodnoj stroki i  posle  schityvaniya  poslednej.  BEGIN
      dolzhen byt' pervym shablonom, a END - poslednim.

      Otdel'nyj simvol "c" mozhet ispol'zovat'sya dlya razdele-
      niya polej putem ukazaniya v nachale programmy:

                            20
                   APK 00210-01 33 01-4

            BEGIN {FS="c"}

      libo putem ispol'zovaniya klyucha "-fc".

      K imenam peremennyh so special'nym znacheniem  otnosyat-
      sya:

      NF       - kolichestvo polej v tekushchej zapisi;

      NR       - poryadkovyj nomer tekushchej zapisi;

      FILENAME - imya tekushchego vhodnogo fajla;

      FS       - razdelitel' vhodnyh polej (po  umolchaniyu  -
                 probel);

      RS       - razdelitel' vhodnyh zapisej (po umolchaniyu -
                 simvol novoj stroki);

      OFS      - razdelitel' vyhodnyh polej (po umolchaniyu  -
                 probel);

      ORS      - razdelitel' vyhodnyh zapisej (po  umolchaniyu
                 - simvol novoj stroki);

      OFMT     - vyhodnoj format dlya chisel (po  umolchaniyu  -
                 "%.6g");

      $0       - obrabatyvaemaya stroka;

      $i       - i-toe pole obrabatyvaemoj stroki.

PRIMERY:
      Pechat' strok s dlinoj bolee 72 simvolov:

                            21
                   APK 00210-01 33 01-4

            length > 72

      Pechat' pervyh dvuh polej v obratnom poryadke:

            {print $2, $1}

      Pechat' polej v obratnom poryadke:

            {for (i=NF; i>0; --i) print $i}

      Pechat' vseh strok, nachinaya so stroki, soderzhashchej slovo
      "start" do stroki so slovom "stop" vklyuchitel'no:

            /start/,/stop/

      Pechat' vseh strok, u kotoryh pervoe pole otlichaetsya ot
      pervogo polya predydushchej stroki:

            $1 != prev {print; prev = $1}

DOPOLNITELXNYE SSYLKI :
      lex, sed.

      Imeetsya otdel'noe opisanie awk.

DIAGNOSTIKA:
      V versii awk dlya mashin s ogranichennym razmerom adresu-
      emoj  pamyati (poryadka 64Kbajt na process) osnovnye di-
      agnosticheskie soobshcheniya zameneny nomerami oshibok.  Pri
      etom  chast'  dignosticheskoj  informacii  teryaetsya  dlya
      pol'zovatelya. Dalee privoditsya spisok  diagnosticheskih
      soobshchenij  vydavaemyh polnoj versiej awk s ih nomerami
      (poteryannaya informaciya oboznachaetsya (?)):

                            22
                   APK 00210-01 33 01-4

       1 : unknown type (?) in penter
       2 : unknown type (?) in freetr
       3 : regular expression too long
       4 : unknown type (?) in cfoll
       5 : unknown type (?) in first
       6 : can't open (?)
       7 : record `(?)' too long
       8 : record `(?)' has too many fields
       9 : record `(?)' has too many fields
      10 : built giant record `(?)...'
      11 : trying to access field (?)
      12 : can't open (?)
      13 : out of space in ALLOC
      14 : illegal statement (?)
      15 : unexpected break, continue or next
      16 : unexpected break, continue or next
      17 : unknown boolean operator (?)
      18 : unknown relational operator (?)
      19 : out of temporaries in gettemp
      20 : format item (?)... too long
      21 : not enough arguments in printf((?))
      22 : illegal arithmetic operator (?)
      23 : division by zero
      24 : division by zero
      25 : division by zero
      26 : division by zero
      27 : illegal assignment operator (?)
      28 : (?) is not an array


                            23
                   APK 00210-01 33 01-4

      29 : illegal jump type (?)
      30 : illegal function type (?)
      31 : string (?) too long to print
      32 : too many output files (?)
      33 : can't open file (?)
      34 : out of space in makesymtab
      35 : symbol table overflow at (?)
      36 : can't set $0
      37 : can't set $0
      38 : illegal reference to array (?)
      39 : funny variable (?): (?) (?) (?) (?)
      40 : out of space in tostring on (?)

ZAMECHANIYA:
      Ne sushchestvuet yavnogo preobrazovaniya  mezhdu  chislami  i
      strokami. Dlya togo, chtoby vyrazhenie obrabatyvalos' kak
      chislo, dobav'te k nemu 0, a dlya togo, chtoby ono  obra-
      batyvalos' kak stroka, ob'edinite ego s "".







                            24
                   APK 00210-01 33 01-4

IMYA:
      bas - interpretator yazyka BASIC.

FORMAT:
      bas [file]

OPISANIE:
      Komanda bas yavlyaetsya interpretatorom odnogo iz dialek-
      tov  yazyka  BASIC.  Esli v komandnoj stroke zadano imya
      fajla "file", to  pered  vyzovom  interpretatora  etot
      fajl  schityvaetsya  (predpolagaetsya,  chto  on  soderzhit
      programmu na yazyke BASIC). Bas dopuskaet stroki sledu-
      yushchego vida:

      operator
      metka operator

      V  kachestve  metki  ispol'zuetsya  celoe  polozhitel'noe
      chislo.  Pomechennye operatory zapominayutsya dlya posledu-
      yushchego vypolneniya i sortiruyutsya v  poryadke  vozrastaniya
      znachenij metok. Nepomechennye operatory vypolnyayutsya ne-
      medlenno. Esli operator soderzhit vychislyaemoe vyrazhenie
      bez prisvaivaniya, rezul'tat vydaetsya srazu.

      SINTAKSIS OPERATOROV:

      vyrazhenie
            Vyrazhenie vypolnyaetsya dlya  dostizheniya  zhelaemogo
            effekta  (prisvaivanie ili vyzov fukcii) ili dlya
            pechati.V dal'nejshem vyrazhenie budet oboznachat'sya
            simvolom V;


                            25
                   APK 00210-01 33 01-4

      comment ...
            |tot  operator  ignoriruetsya,  primenyaetsya   dlya
            vklyucheniya kommentariya v programmu;

      done  Vyhod iz interpretarora obratno v sistemu;

      dump  Vyzyvaet pechat' imeni i tekushchego  znacheniya  vseh
            peremennyh v processe vypolneniya programmy;

      edit  Vhod v redaktor ed. V kachestve imeni  fajla  re-
            daktoru ed peredaetsya parametr file. Posle vyho-
            da iz redaktora proishodit vozvrat v interpreta-
            tor,  prichem programma nahodyashchayasya v fajle file,
            kompiliruetsya zanovo.

      for identifikator = V V operator
      for identifikator = V V
      gruppa operatorov
      next

            Operator for porozhdaet  mnogokratnoe  vypolnenie
            operatora  (pervaya forma zapisi) ili gruppy ope-
            ratorov (vtoraya forma zapisi), kontroliruya koli-
            chestvo  iteracij  po  znacheniyu  peremennoj name.
            |toj peremennoj prisvaivaetsya  znachenie  pervogo
            vyrazheniya,   kotoroe  uvelichivaetsya  na  edinicu
            posle kazhdogo shaga vypolneniya cikla.  Cikl  pro-
            dolzhaetsya  do  teh por poka, znachenie peremennoj
            ne prevyshaet znacheniya vtorogo vyrazheniya.

      goto V


                            26
                   APK 00210-01 33 01-4

            Vyrazhenie  vychislyaetsya,  perevoditsya  v   celoe,
            posle chego proishodit perehod k operatoru, metka
            kotorogo  ravna  znacheniyu  vyrazheniya.  Programma
            prodolzhaet vypolnyatsya s etogo mesta. Esli dannyj
            operator ne pomechen, to pered ego interpretaciej
            kompiliruyutsya operatory nakoplennye ranee.

      if V operator
      if V
      gruppa operatorov
      [ else
      gruppa operatorov ]
      fi

            Operator (pervaya forma)  ili  gruppa  operatorov
            (vtoraya  forma) vypolnyaetsya, esli znachenie vyra-
            zheniya ne ravno nulyu. Vo vtoroj forme dopuskaetsya
            nalichie al'ternativnoj gruppy operatorov.

      list [V [V]]
            |tot operator primenyaetsya dlya  prosmotra  teksta
            programmy.  Esli otsutstvuyut argumenty, vydaetsya
            vsya programma. Esli prisutstvuet odin  argument,
            to vydaetsya tol'ko odin operator, metka kotorogo
            ravna znacheniyu zadannogo vyrazheniya. Esli  zadany
            dva argumenta, to vydayutsya operatory v ukazannom
            diapazone.

      print spisok
            "Spisok" vklyuchaet v sebya vyrazheniya, peremennye i


                            27
                   APK 00210-01 33 01-4

            tekstovye konstanty (tekstovye konstanty berutsya
            v kavychki (")). Operator print  vydaet  znacheniya
            perechislennyh vyrazhenij ili peremennyh sovmestno
            s tekstom.

      prompt spisok
            Dejstvuet  analogichno  operatoru  print,  tol'ko
            posle  vydachi  poslednego  simvola ne proishodit
            perehoda na novuyu stroku.

      return [V]
            Vyrazhenie vychislyaetsya i ego znachenie ispol'zuet-
            sya   v  kachestve  znacheniya,  kotoroe  vozvrashchaet
            funkciya. Esli argument otsutstvuet, vozvrashchaetsya
            nol'.

      run   Programma kompiliruetsya, datchiku sluchajnyh chisel
            ustanavlivaetsya  startovoe  znachenie. Upravlenie
            peredaetsya  operatoru  s  naimen'shim   znacheniem
            metki.

      save [V [V]]
            Operator  save  rabotaet  analogichno   operatoru
            list, tol'ko vyvod idet ne na terminal, a v fajl
            file. Esli komanda bas byla vyzvana bez argumen-
            ta, ispol'zuetsya fajl b.out v tekushchem kataloge.

      SINTAKSIS VYRAZHENIJ:

      identifikator
            Identifikator mozhet soderzhat' proizvol'noe koli-


                            28
                   APK 00210-01 33 01-4

            chestvo simvolov, odnako znachimymi schitayutsya per-
            vye chetyre. Identifikator  dolzhen  nachinat'sya  s
            bukvy  i  mozhet  sostoyat'  tol'ko  iz  latinskih
            strochnyh bukv i cifr.

      chislo CHislo opredelyaet chislovuyu konstantu i  zapisyva-
            etsya  v  tradicionnom fortranovskom stile. CHislo
            sostoit iz cifr  i  mozhet  soderzhat'  desyatichnuyu
            tochku  ili znak poryadka "e" s posleduyushchej ekspo-
            nentoj. Naprimer: 4, -15, 0.34, 1.2e+5.

      (V)   Skobki primenyayutsya dlya izmeneniya starshinstva vy-
            polneniya operacij.

      _V    Inversiya znacheniya vyrazheniya.

      V operaciya V
            Vypolnenie operacii.

      V( [V[, V]] )
            Vyzov funkcii s zadannym chislom argumentov. Zna-
            chenie  pervogo vyrazheniya ispol'zuetsya v kachestve
            metki operatora, s kotorogo nachinaetsya  funkciya.
            Esli  znachenie  vyrazheniya poluchaetsya otricatel'-
            nym,   vyzyvaetsya   sootvetstvuyushchaya   vstroennaya
            funkciya (pravda, neizvetno kakaya imenno).

      identifikator [ V[, V]]
            Znachenie vyrazheniya, perevedennoe  v  celoe,  is-
            pol'zuetsya  dlya indeksacii massivov. Zapis' vida
            a[1,2] ravnosil'na zapisi vida a[1][2]. Znacheniya


                            29
                   APK 00210-01 33 01-4

            indeksov usekayutsya do diapazona ot 0 do 32767.

      SPISOK OPERACIJ:

      =    Operaciya prisvaivaniya. Levyj operand dolzhen  byt'
           identifikatorom  ili  elementom massiva. Znachenie
           pravogo operanda prisvaivaetsya levomu.

      & |  Operaciya logicheskoe "I" (&) daet rezul'tat  nol',
           esli  kakoj-libo  iz  operandov  raven nulyu, i ne
           nol',  esli oba operanda ne ravny nulyu.  Operaciya
           logicheskoe  "ILI"  (|)  daet rezul'tat nol', esli
           oba operanda ravny nulyu, i ne nol',  esli  kakoj-
           libo iz nih ne raven nulyu.

      < <= > >= <>
           Operacii otnosheniya:

           <     men'she;

           <=    ne bol'she;

           >     bol'she;

           >=    ne men'she;

           <>    ne ravno;
      vozvrashchayut znachenie odnogo iz argumentov esli  otnoshe-
      nie soblyudaetsya, v protivnom sluchae vozvrashchaetsya nol'.
      Opercii otnosheniya odnogo urovnya dopuskayut  vlozhennost'
      sleduyushchego  vida: rezul'tat operacii a>b>c, budet ana-
      logichen rezul'tatu operacii a>b&b>c;

                            30
                   APK 00210-01 33 01-4

      + -  Slozhenie i vychitanie;

      * /  Umnozhenie i delenie;

      ^    Vozvedenie v stepen';

      VSTROENNYE FUNKCII:

      arg(i)
            Poluchenie  i-togo  parametra   tekushchego   vyzova
            funkcii;

      exp(x)
            |ksponenta ot x;

      log(x)
            Natural'nyj logarifm ot x;

      sqr(x)
            Kvadratnyj koren' ot x;

      sin(x)
            Sinus ot x (radiany);

      cos(x)
            Kosinus ot x (radiany);

      atn(x)
            Arktangens ot x. Vozvrashchaet znacheniya v diapazone
            ot -J/2 do J/2;

      rnd() Datchik sluchajnyh chisel,  vozvrashchaet  znacheniya  v
            diapazone ot 0 do 1;

                            31
                   APK 00210-01 33 01-4

      expr()
            Programmnyj vvod. Stroka chitaetsya iz standartno-
            go  fajla vvoda i rassmatrivaetsya kak vyrazhenie.
            Programma poluchaet znachenie etogo vyrazheniya;

      abs() Absolyutnoe znachenie;

      int(x)
            Perevod x v celoe;

FAJLY:
      /tmp/btm*  vremennye fajly
      b.out      fajl dlya sohraneniya programmy
      /bin/ed    redaktor

DIAGNOSTIKA:
      Sintaksicheskie oshibki privodyat k  vydache  nekorrektnoj
      stroki.








                            32
                   APK 00210-01 33 01-4

IMYA:
      basename - otbrosit' suffiksy i prefiksy imeni fajla.

FORMAT:
      basename stroka [suffiks]

OPISANIE:
      Komanda basename udalyaet  iz  "stroki"  vse  prefiksy,
      okanchivayushchiesya  simvolom  "/", a takzhe "suffiks", esli
      on prisutstvuet v stroke, i vydaet rezul'tat  v  stan-
      dartnyj fajl vyvoda. |ta komanda obychno ispol'zuetsya v
      programmah napisannyh na yazyke SHELL.

PRIMERY:
      Privedem   proceduru,    vyzyvaemuyu    s    parametrom
      /usr/src/cmd/cat.c, kotoraya kompiliruet fajl s ukazan-
      nym imenem i pomeshchaet rezul'tat v fajl cat  v  tekushchem
      kataloge:

      cc $1
      mv a.out `basename $1 .c`

DOPOLNITELXNYE SSYLKI :
      sh





                            33
                   APK 00210-01 33 01-4

IMYA:
      bc - interpretator yazyka BC.

FORMAT:
      bc [-c] [-l] [fajl...]

OPISANIE:
      Komanda bc predstavlyaet soboj interaktivnyj  processor
      dlya  yazyka,  kotoryj po sintaksisu napominaet yazyk Ci,
      no pozvolyaet vypolnyat' arifmeticheskie operacii s  pro-
      izvol'noj  tochnost'yu. Programma na dannom yazyke schity-
      vaetsya iz standartnogo fajla vvoda. Esli zadany  argu-
      menty  tipa  "fajl",  to predpolagaetsya, chto eto imena
      fajlov, soderzhashchih rabochie podprogrammy na  yazyke  BC.
      |ti fajly schityvayutsya pered vypolneniem osnovnoj prog-
      rammy. Esli zadan parametr "-l", to ispol'zuetsya stan-
      dartnaya  biblioteka  funkcij  proizvol'noj tochnosti. V
      privodimom kratkom opisanii sintaksisa yazyka  BC,  is-
      pol'zuyutsya sleduyushchie sokrashcheniya:

      B     posledovatel'nost' simvolov ot "a" do "z";

      V     vyrazhenie;

      OP    operator.

KOMMENTARII:
      ogranichivayutsya posledovatel'nostyami  simvolov  "/*"  i
      "*/"

IMENA:

                            34
                   APK 00210-01 33 01-4

      prostye peremennye: B
      elementy massiva: B[V]
      slova "ibase", "obase" i "scale"

PROCHIE OPERANDY:
      chisla proizvol'noj dliny
      (vozmozhno so znakom i desyatichnoj tochkoj).
      (V)
      sqrt(B)    kvadratnyj koren'
      length(B)  chislo znachashchih desyatichnyh cifr
      scale(B)   tochnost'
      B(V,...,V) vyzov podprogrammy

OPERACII:
      + - * / % ^ (% - ostatok, ^ - stepen')
      ++ --       (prefiks i postfiks,
                 primenyayutsya k imenam)
      == <= >= != < >
      = =+ =- =* =/ =% =^

OPERATORY:
      V
      {OP; ... ;OP}
      if(V) OP
      while(V) OP
      for(V;V;V) OP
      pustoj operator
      break
      quit

                            35
                   APK 00210-01 33 01-4

OPREDELENIYA FUNKCIJ:
      define  B(B, ... ,B){
            auto B, ... ,B
            OP; ... OP
            return(B)
      }

      Funkcii iz standartnoj biblioteki:
      s(x)    - sinus;
      c(h)    - kosinus;
      e(h)    - eksponenta;
      l(x)    - logarifm;
      a(h)    - arktangens;
      j(n,x)  - funkciya Besselya

      Vse parametry funkcij peredayutsya po znacheniyu.

      Znachenie operatora, yavlyayushchegosya vyrazheniem, raspechaty-
      vaetsya, esli osnovnoj operaciej ne yavlyaetsya prisvaiva-
      nie. Operatory mogut razdelyat'sya libo tochkami s  zapya-
      toj,  libo  simvolami novoj stroki. Prisvaivanie pere-
      mennoj scale vliyaet na kolichestvo cifr,  poluchaemyh  v
      rezul'tate  arifmeticheskih  operacij  po  pravilam dc.
      Prisvaivaniya peremennym ibase  i  obase  ustanavlivaet
      vhodnoe i vyhodnoe osnovaniya sootvetstvenno.

      Odna i ta zhe bukva  mozhet  ispol'zovat'sya  v  kachestve
      massiva,  funkcii  i  prostoj peremennoj odnovremenno.
      Vse peremennye v programme yavlyayutsya global'nymi. Pere-
      mennye  "auto"  pri  vyzove funkcij pomeshchayutsya v stek.


                            36
                   APK 00210-01 33 01-4

      Pri  ispol'zovanii  massivov  v  kachestve   parametrov
      funkcii  i pri opredelenii ih kak avtomaticheskih pere-
      mennyh,  imya  massiva  dolzhno  soprovozhdat'sya  pustymi
      kvadratnymi skobkami.

      Naprimer, podprogramma:

      scale = 20
      define  e(x){
          auto a,b,c,i,s
          a = 1
          b = 1
          s = 1
          for(i=1; i==1; i++){
             a = a*x
             b = b*i
             c = a/b
             if(c == 0) return(s)
             s = s+c
          }
      }
      opredelyaet funkciyu dlya vychisleniya priblizhennogo znache-
      niya pokazatel'noj funkcii, a

      for(i=1; i <= 10; i++) e(i)

      vydaet priblizhennye znacheniya pokazatel'noj funkcii dlya
      pervyh desyati celyh chisel.

      Komanda bc fakticheski predstavlyaet soboj  preprocessor

                            37
                   APK 00210-01 33 01-4

      dlya dc, kotoryj vyzyvaetsya avtomaticheski, esli ne pri-
      sutstvuet klyuch "-c" (tol'ko kompilyaciya). V etom sluchae
      rezul'tat  napravlyaetsya ne na vhod dc, a v standartnyj
      fajl vyvoda.

FAJLY:
      /usr/lib/lib.b   matematicheskaya biblioteka

DOPOLNITELXNYE SSYLKI :
      dc

      Imeetsya otdel'noe opisanie bc.

ZAMECHANIYA:
      Otsutstvuyut operacii &&, || i !. Operator  for  dolzhen
      imet' vse tri vyrazheniya. Operator quit srabatyvaet pri
      schityvanii, a ne pri vypolnenii.







                            38
                   APK 00210-01 33 01-4

IMYA:
      cal - pechat' kalendarya

FORMAT:
      cal [mesyac] god

OPISANIE:
      Komanda cal vydaet  kalendar'  ukazannogo  goda.  Esli
      zadan god i mesyac, vydaetsya kalendar' tol'ko dlya etogo
      mesyaca. "god" mozhet byt' v predelah ot 1 do 9999. "me-
      syac" yavlyaetsya chislom ot 1 do 12.

ZAMECHANIYA:
      Ispol'zovanie dannoj komandy dlya polucheniya otvetov  na
      voprosy  tipa: "Na kakoj den' nedeli prihodil's' 2 yan-
      varya 1928 goda?" mozhet  okazat'sya  nepravomernym,  tak
      kak  v programme ne uchityvayutsya nekotorye istoricheskie
      fakty.

      Bud'te vnimatel'ny: "cal 78" otnositsya k rannej  hris-
      tianskoj ere, a ne k XX stoletiyu.





                            39
                   APK 00210-01 33 01-4

IMYA:
      calendar - "elektronnyj" ezhednevnik

FORMAT:
      calendar [-]

OPISANIE:
      Komanda calendar prosmatrivaet fajl "calendar" v teku-
      shchem spravochnike i vydaet vse stroki, soderzhashie segod-
      nyashnyuyu ili zavtrashnyuyu datu. Daty  mogut  zadavat'sya  v
      vide:  "mesyac.den'", naprimer, "12/7", no ne "7 dekab-
      rya" ili "7/12". V konce nedeli ponyatie "zavtra"  vklyu-
      chaet i ponedel'nik.

      Kogda prisutstvuet klyuch "-", komanda calendar prodely-
      vaet  ukazannuyu  rabotu dlya kazhdogo pol'zovatelya, ime-
      yushchego  v  svoem   registracionnom   spravochnike   fajl
      "calendar", i posylaet emu rezul'tat, esli on imeetsya,
      s pomoshch'yu mail. Obychno  eto  delaetsya  v  nochnye  chasy
      ezhednevno pod upravleniem cron.

FAJLY:
      calendar          ezhednevnik
      /usr/lib/calendar generator poiskovyh klyuchej
      /etc/passwd
      /tmp/cal*         vremennyj fajl
      Ispol'zuyutsya: egrep, sed, mail

DOPOLNITELXNYE SSYLKI :
      at, cron, mail

                            40
                   APK 00210-01 33 01-4

ZAMECHANIYA:
      Rasshirenie ponyatiya "zavtra" v komande calendar ne  ot-
      nositsya k dnyam, idushchim posle prazdnikov.













                            41
                   APK 00210-01 33 01-4

IMYA:
      cat - vydacha soderzhimogo fajlov.

FORMAT:
      cat [-] [-u] fajl...

OPISANIE:
      Komanda cat posledovatel'no schityvaet kazhdyj "fajl"  i
      zapisyvaet  rezul'tat  v standartnyj fajl vyvoda. Tak,
      komanda:

      cat file

      raspechatyvaet ukazannyj fajl, a komanda

      cat file1 file2 > file3

      ob'edinyaet pervye dva fajla  i  pomeshchaet  rezul'tat  v
      tretij fajl.

      Esli vhodnye fajly ne ukazany ili zadan klyuch "-",  is-
      pol'zuetsya  standartnyj fajl vvoda. Neobyazatel'nyj pa-
      rametr  "-u"  ukazyvaet  na  neobhodimost'  podavleniya
      obychno vypolnyaemoj cat buferizacii.

DOPOLNITELXNYE SSYLKI :
      pr, cp

ZAMECHANIYA:
      Bud'te ostorozhny i ne ispol'zujte komand vida "cat a b
      > a" i "cat" a b > b", kotorye razrushayut vhodnye fajly
      pered schityvaniem.

                            42
                   APK 00210-01 33 01-4

IMYA:
      cb - oformlenie Si-programm

FORMAT:
      cb

OPISANIE:
      Komanda cb perepisyvaet  kopiyu  C-programmy  iz  stan-
      dartnogo  fajla vvoda v standartnyj fajl vyvoda s pro-
      belami i otstupami, otobrazhayushchimi strukturu programmy.











                            43
                   APK 00210-01 33 01-4

IMYA:
      cc - vyzov kompilyatora s yazyka Si

FORMAT:
      cc [klyuch]... fajl...

OPISANIE:
      Komanda cc prednaznachena dlya vyzova kompilyatora s yazy-
      ka Si. Ona vosprinimaet parametry neskol'kih tipov.

      Parametry, imena kotoryh zakanchivayutsya na ".c", schita-
      yutsya  ishodnymi programmami na yazyke Si.Oni kompiliru-
      yutsya i kazhdaya ob'ektnaya programma  ostaetsya  v  fajle,
      imya  kotorogo poluchaetsya iz imeni sootvetstvuyushchego is-
      hodnogo fajla posle zameny ".c"  na  ".o".  Fajl  ".o"
      udalyaetsya, esli odna Si-programma kompiliruetsya i zag-
      ruzhaetsya v odnom prohode.

      Analogichno parametry, ch'i imena zakanchivayutsya na ".s",
      schitayutsya  ishodnymi programmami na yazyke assemblera i
      assembliruyutsya, v  rezul'tate  chego  poluchayutsya  fajly
      ".o".

      V komande cc mogut zadavat'sya sleduyushchie klyuchi:

      -c    Otmenyaet  fazu  sborki  i   vyzyvaet   generaciyu
            ob'ektnogo  koda dazhe togda, kogda kompiliruetsya
            tol'ko odna programma;

      -f    Ukazanie o tom, chto na mashine  otsutstvuet  FPP-
            processor.  V  etom  sluchae  vmeste s programmoj

                            44
                   APK 00210-01 33 01-4

            zagruzhayutsya neobhodimye podprogrammy  iz  bibli-
            oteki emulyacii FPP-processora;

      -p    Vklyuchenie profilirovaniya programmy.  Standartnaya
            programma zapuska zamenyaetsya programmoj, kotoraya
            pri zapuske avtomaticheski vyzyvaet monitor (2) i
            organizuet  vyvod  fajla  mon.out pri normal'nom
            zavershenii vypolneniya ob'ektnoj programmy. Posle
            etogo  mozhet  byt'  postroen grafik vypolneniya s
            pomoshch'yu komandy prof;

      -d    Generaciya koda i dopolnitel'noj  informacii  dlya
            otladchika "cdeb";

      -O    Vklyuchenie fazy optimizacii ob'ektnogo koda;

      -S    Kompiliruet perechislennye Si-programmy i  ostav-
            lyaet   rezul'tat  raboty  v  vide  assemblernogo
            teksta v  sootvetstvuyushchih  fajlah  s  suffiksami
            ".s";

      -e    Zapuskaet tol'ko makroprocessor dlya  perechislen-
            nyh Si-programm i vydaet rezul'tat v standartnyj
            fajl vyvoda. Dlya ispol'zovaniya rezul'tata v pos-
            leduyushchih vyzovah "cc" nuzhno obrabotat' rezul'tat
            redaktorom "sed" po sleduyushchej  programme:  "s/^#
            /# line/";

      -a    Blokiruetsya vyzov  makroprocessora  "cpp".  Flag
            ispol'zuetsya,  esli vhodnoj tekst uzhe proshel ob-
            rabotku preprocessorom;


                            45
                   APK 00210-01 33 01-4

      -P    Kazhdyj fajl, imya kotorogo imeet suffiks ".c" ob-
            rabatyvaetsya   tol'ko   makroprocessorom  "cpp",
            rezul'tat raboty kotorogo pomeshchaetsya  v  fajl  s
            sootvetstvuyushchim  imenem  i  suffiksom  ".i", pri
            etom podavlyaetsya vyvod strok vida "#line ...";

      -C    Obychno makroprocessor "cpp" ubiraet  kommentarii
            iz  svoego vyvoda. Flag -C blokiruet unichtozhenie
            kommentariev, chto byvaet neobhodimo dlya programm
            "xstr" ili "lint";

      -o vyhod
            Pomeshchaet okonchatel'nyj rezul'tat v fajl s imenem
            "vyhod".   Esli  ispol'zuetsya  etot  klyuch,  fajl
            "a.out" ne budet izmenen.

      -Dimya=opr
      -Dimya

            Opredelyaet ukazannoe "imya" dlya preprocessora, po
            analogii  s "#define". Esli opredelenie ne zada-
            no, dannoe imya opredelyaetsya kak "1";

      -Uimya Udalyaet  vse  nachal'nye  opredeleniya  ukazannogo
            imeni;

      -Ikat Poisk fajlov "#include", ch'i imena ne nachinayutsya
            s simvola "/", vsegda proizvoditsya snachala v te-
            kushchem spravochnike, zatem v  spravochnikah  "kat",
            perechislennyh  pri klyuche -I, a zatem - v katalo-
            gah standartnogo spiska;


                            46
                   APK 00210-01 33 01-4

      -B stroka
            Ishchet zamenyayushchie fazy kompilyatora v fajlah s ime-
            nem "stroka" s suffiksami ccp, c0, c1 i c2. Esli
            "stroka" pustaya,  ispol'zuetsya  standartnaya  re-
            zervnaya versiya;

      -t[p012]
            Ishchet tol'ko ukazannye fazy kompilyatora v fajlah,
            imena  kotoryh  stroyatsya v sootvetstvii s klyuchem
            -B. Pri otsutstvii klyucha -B podrazumevaetsya sle-
            duyushchaya "stroka": "/usr/c/".

      -T[al]imya
            Assembler (esli ukazano "a") ili redaktor svyazej
            ("l")  vyzyvayutsya  iz fajla "imya" vmesto vyzyva-
            emyh po umolchaniyu.

      Ostal'nye parametry yavlyayutsya  libo  klyuchami  redaktora
      svyazej, libo sovmestimymi s Si ob'ektnymi programmami,
      poluchennymi obychno v rezul'tate predshestvuyushchih  vypol-
      nenij cc, libo bibliotekami sovmestimyh s Si programm.
      |ti programmy, vmeste s rezul'tatami ukazannyh  kompi-
      lyacij  zagruzhayutsya  (v  zadannom poryadke), davaya v re-
      zul'tate vypolnyaemuyu programmu s imenem a.out.

FAJLY:
      fajl.c         Vhodnoj fajl
      fajl.o         Ob'ektnyj fajl
      a.out          Zagruzochnyj vyhod
      /tmp/ctm?      Vremennyj


                            47
                   APK 00210-01 33 01-4

      /lib/cpp       preprocessor
      /lib/c0        kompilyator 0 prohod
      /lib/c1        kompilyator 1 prohod
      /lib/fc1       1 prohod pri flage "-f"
      /usr/c/oc[01]  rezervnyj kompilyator
      /usr/c/ocpp    rezervnyj preprocessor
      /lib/c2        neobyazatel'nyj optimizator
      /lib/crt0.o    Dinamicheskij starter
      /lib/mcrt0.o   Starter dlya profilirovaniya
      /lib/lib[as].a Standartnye biblioteki
      /usr/include   standartnyj katalog dlya
                   fajlov "#include".
      /lib/fcrt0.0   Starter dlya flaga "-f"

DOPOLNITELXNYE SSYLKI :
      cdeb, prof, adb, ld

      Imeetsya otdel'noe opisanie yazyka Si.

DIAGNOSTIKA:
      Diagnosticheskie soobshcheniya, generiruemye samim kompilya-
      torom  si,  yavlyayutsya dostatochno ponyatnymi. V nekotoryh
      sluchayah soobshcheniya mogut generirovat'sya assemblerom ili
      redaktorom svyazej.




                            48
                   APK 00210-01 33 01-4

IMYA:
      ccat - vydacha soderzhimogo kompressirovannyh fajlov.

FORMAT:
      ccat [fajl ...]

OPISANIE:
      Komanda ccat vydaet soderzhimoe fajlov, "szhatyh" s  po-
      moshch'yu komandy compact. Fajl ne izmenyaetsya.

DIAGNOSTIKA:
      Soobshcheniya o fajlah, kotorye ne mogut byt'  otkryty,  i
      t.p.

DOPOLNITELXNYE SSYLKI :
      compact, uncompact








                            49
                   APK 00210-01 33 01-4

IMYA:
      cd - smenit' rabochij spravochnik

FORMAT:
      cd dirname

OPISANIE:
      Komanda cd zadaet spravochnik s imenem "dirname" v  ka-
      chestve  tekushchego  rabochego  spravochnika. Dlya izmeneniya
      tekushchego  spravochnika  neobhodimo   chtoby   spravochnik
      "dirname"  imel  razreshenie na poisk v nem dlya dannogo
      pol'zovatelya.

      Poskol'ku  dlya  vypolneniya  kazhdoj  komandy  sozdaetsya
      novyj  process, komanda cd byla by neeffektivnoj, esli
      by ona byla napisana kak obychnaya komanda. Poetomu  ona
      yavlyaetsya vstroennoj funkciej yazykov upravleniya zadani-
      yami SHELL i CSHELL.

DOPOLNITELXNYE SSYLKI :
      csh, sh, pwd, chdir.





                            50
                   APK 00210-01 33 01-4

IMYA:
      chmod - izmenit' status fajla

FORMAT:
      chmod status fajl ...

OPISANIE:
      Status kazhdogo iz perechislennyh  fajlov  izmenyaetsya  v
      sootvetstvii  so znacheniem parametra "status", kotoroe
      mozhet byt' absolyutnym  ili  simvolicheskim.  Absolyutnoe
      znachenie   statusa   predstavlyaet  soboj  vos'merichnoe
      chislo, stroyashcheesya po pravilu "ili" iz sleduyushchih znache-
      nij:

      4000  ustanovit' identifikator hozyaina fajla  pri  vy-
            polnenii;

      2000  ustanovit' identifikator gruppy po gruppe  hozya-
            ina fajla pri vypolnenii;

      1000  bit sohraneniya obraza teksta;

      0400  razreshenie na chtenie fajla vladel'cu;

      0200  razreshenie na zapis' fajla vladel'cu;

      0100  razreshenie  vypolneniya  (poiska  v  spravochnike)
            vladel'cu;

      0070  razreshenie chteniya, zapisi,  vypolneniya  (poiska)
            gruppe;

      0007  razreshenie  chteniya,  zapisi,  vypolneniya  prochim


                            51
                   APK 00210-01 33 01-4

            pol'zovatelyam.

      Simvolicheskoe znachenie "status" imeet sleduyushchij vid:

      [kto] op polnomochie [op polnomochie] ...

      Pole "kto" predstavlyaet soboj kombinaciyu bukv "u" (dlya
      polnomochij  pol'zovatelya), "g" (gruppa), "o" (prochie).
      Bukva "a" zamenyaet sochetanie "ugo".  Esli  pole  "kto"
      opushcheno, po umolchaniyu prinimaetsya znachenie "a", odnako
      prinimaetsya vo  vnimanie  maska  sozdaniya  fajla  (sm.
      umask).

      Pole "op" mozhet predstavlyat' soboj "+" - dlya  dobavle-
      niya  polnomochiya v rezhim fajla, "-" - dlya udaleniya pol-
      nomochiya i "=" dlya absolyutnogo prisvaivaniya  polnomochiya
      (vse ostal'nye bity budut sbrosheny).

      "Polnomochie" predstavlyaet soboj proizvol'nuyu  kombina-
      ciyu bukv "r" (chtenie), "w" (zapis'), "x" (vypolnenie),
      "s" (ustanovlenie identifikacii pol'zovatelya ili grup-
      py)  i  "t"  (sohranenie  tekstov  posle  vypolneniya).
      Otsutstvie polya polnomochiya polezno ispol'zovat' tol'ko
      s simvolom "=" dlya udaleniya vseh polnomochij.

PRIMERY:
      Pervyj iz privedennyh nizhe primerov  zapreshchaet  zapis'
      "prochim" pol'zovatelyam, a vtoroj delaet ukazannyj fajl
      vypolnyaemym.

      chmod o-w fajl

                            52
                   APK 00210-01 33 01-4

      chmod +x fajl

DOPOLNITELXNYE SSYLKI:
      ls, chown, stat, umask.

ZAMECHANIYA:
      Mozhet byt' ukazano  neskol'ko  simvolicheskih  rezhimov,
      razdelennyh  zapyatymi. Operacii vypolnyayutsya v zadannom
      poryadke. Bukvu "s"  imeet  smysl  ispol'zovat'  tol'ko
      sovmestno s "u" ili "g".

      Tol'ko vladelec fajla (ili  super-pol'zovatel')  mozhet
      izmenit' ego rezhim.









                            53
                   APK 00210-01 33 01-4

IMYA:
      clear - ochistit' ekran terminala.

FORMAT:
      clear

OPISANIE:
      Komanda clear stiraet ekran terminala,  ispol'zuya  in-
      formaciyu  ob  osobennostyah dannogo ustrojstva iz fajla
      opisanij harakteristik terminalov (/etc/termcap).

FAJLY:
      /etc/termcap  opisanie harakteristik  terminalov  raz-
                    lichnyh tipov.










                            54
                   APK 00210-01 33 01-4

IMYA:
      cmp - sravnenie dvuh fajlov.

FORMAT:
      cmp [-l] [-s] fajl1 fajl2

OPISANIE:
      Dva  ukazannyh  fajla  sravnivayutsya.  (esli   parametr
      "fajl1"  predstavlyaet  soboj  "-",  ispol'zuetsya stan-
      dartnyj fajl vvoda). Bez parametrov komanda cmp ne vy-
      daet  nikakih soobshchenij, esli fajly odinakovy,ili uka-
      zyvaet nomer bajta i stroki, gde proizoshlo  nesovpade-
      nie, esli oni otlichayutsya. Esli odin iz fajlov yavlyaetsya
      nachalom drugogo, ob etom soobshchaetsya.

      -l    pechataet nomer bajta (desyatichnyj) i otlichayushchiesya
            bajty (vos'merichnye) dlya kazhdogo nesovpadeniya;

      -s    dlya otlichayushchihsya fajlov  nichego  ne  pechataetsya,
            vozvrashchaetsya tol'ko kod.

DOPOLNITELXNYE SSYLKI:
      diff, comm

DIAGNOSTIKA:
      Vozvrashchaetsya vyhodnoj kod,  ravnyj  0  dlya  identichnyh
      fajlov,  1 dlya otlichayushchihsya fajlov i 2 dlya nedostupnyh
      ili propushchennyh parametrov.



                            55
                   APK 00210-01 33 01-4

IMYA:
      col - unichtozhit' obratnye perevody stroki.

FORMAT:
      col [-bfx]

OPISANIE:
      Komanda col chitaet standartnyj fajl vvoda i proizvodit
      zapis'  v standartnyj fajl vyvoda. Ona vypolnyaet nalo-
      zhenie  strok,  podrazumevaemoe  obratnymi   perevodami
      stroki  (ESC-7 v kode KOI-8) i pryamymi i obratnymi pe-
      revodami stroki na polshaga (ESC-8  i  ESC-9).  Komanda
      col  osobenno  polezna dlya fil'tracii mnogokolonochnogo
      vyvoda, poluchennogo komandoj ".rt" iz  pif  i  vyvoda,
      poluchaemogo  v  rezul'tate ispol'zovaniya preprocessora
      tbl.

      Hotya komanda col vosprinimaet na vvode perevody stroki
      na polshaga, ona obychno ne peredaet ih na vyvod. Vmesto
      etogo tekst, kotoryj dolzhen byl poyavit'sya mezhdu strok,
      sdvigaetsya  k  sleduyushchej nizhnej granice polnoj stroki.
      |tot rezhim mozhet byt' otmenen klyuchem -f (tochno).V etom
      sluchae  vyhod  col  mozhet soderzhat' perevody stroki na
      polshaga  vpered,  odnako  kakie-libo  perevody  stroki
      nazad vsegda otsutstvuyut.

      Esli zadan klyuch -b, col predpolagaet, chto ispol'zuemoe
      ustrojstvo  vyvoda  ne  imeet  vozmozhnosti vozvrata na
      shag. V etom sluchae, esli neskol'ko simvolov dolzhny po-
      yavit'sya  na  odnom  i tom zhe meste, budet vydan tol'ko


                            56
                   APK 00210-01 33 01-4

      poslednij schitannyj simvol.

      Upravlyayushchie simvoly SI (017 v kode KOI-8) i  SO  (016)
      schitayutsya nachalom i koncom teksta s al'ternativnym na-
      borom simvolov. Nabor simvolov (ishodnyj ili al'terna-
      tivnyj),  svyazannyj s kazhdym schitannym pechatnym simvo-
      lom, zapominaetsya. Pri vvode simvoly SI i SO  vstavlya-
      yutsya v nuzhnyh mestah, chtoby obespechit' sootvetstvuyushchuyu
      obrabotku kazhdogo simvola.

      Komanda col obychno preobrazuet probely v simvoly tabu-
      lyacii,  chtoby sokratit' vremya pechati. Esli ukazan klyuch
      -x, eto preobrazovanie otmenyaetsya.

      Iz vhodnogo potoka udalyayutsya vse upravlyayushchie  simvoly,
      za  isklyucheniem simvolov probela (SP-040), vozvrata na
      shag (BS-010),  tabulyacii  (HT-011),  vozvrata  karetki
      (CR-015),  novoj  stroki  (LF-012), za kotorym sleduet
      odin iz simvolov ESC-7, ESC-8, ESC-9, SI, SO. Vse  os-
      tal'nye nepechataemye simvoly ignoriruyutsya.

DOPOLNITELXNYE SSYLKI:
      pif, tbl, greek

ZAMECHANIYA:
      Nel'zya vozvratit'sya nazad bolee, chem na 128 strok.

      V stroke ne dolzhno byt' bolee  800  simvolov,  vklyuchaya
      simvoly vozvrata na shag.


                            57
                   APK 00210-01 33 01-4

IMYA:
      colcrt - fil'tr dlya fajlov v formate pif.

FORMAT:
      colcrt [-] [-2] [fajl ...]

OPISANIE:
      Komanda colcrt  obespechivaet  virtual'nye  vozmozhnosti
      perevoda  stroki  na polshaga  na polovinu mezhstrochnogo
      intervala i obratnogo perevoda stroki dlya  terminalov,
      ne  imeyushchih  ukazannyh  sredstv i na kotoryh povtornyj
      vyvod simvola v odnu i tu zhe poziciyu  razrushaet  imev-
      shijsya  v  nej simvol. Sdvinutye na polstroki simvoly i
      simvoly podcherkivaniya (zamenennye na tire "-")  raspo-
      lagayutsya  na  novyh  strokah  mezhdu obychnymi vyhodnymi
      strokami.

      Neobyazatel'nyj parametr "-" podavlyaet vse  podcherkiva-
      niya.  |to  osobenno  polezno  dlya  prosmotra polnost'yu
      okajmlennyh tablic posle tbl.

      Klyuch -2 vyzyvaet pechat' sdvinutyh na polstroki  simvo-
      lov,  fakticheski  udvaivaya interval vyvoda. Obychno is-
      pol'zuetsya minimal'nyj interval vyvodnogo formata, ko-
      toryj  podavlyaet  pechat'  pustyh  strok. Odnako dannaya
      programma nikogda ne podavlyaet pechat' dvuh  posledova-
      tel'nyh  pustyh  strok.  Klyuch -2 polezen pri vyvode na
      ACPU, kogda vyvod soderzhit nadstrochnye  i  podstrochnye
      indeksy, kotorye inache ne byli by vidny.

                            58
                   APK 00210-01 33 01-4

      Tipichnoe ispol'zovanie komandy colcrt sleduyushchee:

      tbl exum2.n | pif -ms | colcrt - | more

DOPOLNITELXNYE SSYLKI:
      pif, col, more, ul.

ZAMECHANIYA:
      Nel'zya vernut'sya bolee chem na 102 stroki.

      V obshchem sluchae pri povtornom vyvode v odnu i tu zhe po-
      ziciyu  proishodit  poterya simvola.Kak special'nyj slu-
      chaj, v rezul'tate nalozheniya "|"   i "-" ili  podcherki-
      vaniya poluchaetsya "+".

      Dlina stroki ogranichivayutsya 132 simvolami.

      Trebuetsya  opredelennaya  ostorozhnost'  pri   obrabotke
      nadstrochnyh i podstrochnyh indeksov v dokumentah, koto-
      rye uzhe imeyut dvojnoj interval.







                            59
                   APK 00210-01 33 01-4

IMYA :
      colrm - udalit' ukazannye kolonoki.

FORMAT:
      colrm [nachstlb [konstlb]]

OPISANIE:
      Komanda colrm  udalyaet  iz  fajla  ukazannye  stolbcy.
      Informaciya  chitaetsya  iz  standartnogo  fajla  vvoda i
      posle obrabotki zapisyvaetsya v standartnyj fajl  vyvo-
      da.

      Esli pri vyzove ukazan tol'ko odin parametr, v  kazhdoj
      stroke budut udaleny vse pozicii, nachinaya s ukazannogo
      stolbca. Esli ukazany dva parametra, budut udaleny vse
      pozicii  ot  nachal'nogo  stolbca do konechnogo stolbca.
      Numeraciya stolbcov nachinaetsya so stolbca 1.

DOPOLNITELXNYE SSYLKI:
      expand

ZAMECHANIYA
      Simvoly tabulyacii rassmatrivayutsya kak  odin  simvol  i
      odin stolbec.





                            60
                   APK 00210-01 33 01-4

IMYA:
      comm - vybrat' (otbrosit') odinakovye stroki fajlov.

FORMAT:
      comm [-[123]] fajl1 fajl2

OPISANIE:
      Komanda comm schityvaet fajly "fajl1" i "fajl2",  koto-
      rye  dolzhny byt' otsortirovany v sootvetstvii s posle-
      dovatel'nost'yu kodov KOI-8, i generiruet  tri  stolbca
      vyvoda:  stroki,  vhodyashchie  tol'ko  v "fajl1", stroki,
      vhodyashchie tol'ko v "fajl2" i  stroki,  vhodyashchie  v  oba
      fajla.  Klyuch  "-"  oznachaet ispol'zovanie standartnogo
      fajla vvoda.

      Flagi  1,  2  i  3  podavlyayut  pechat'  sootvetstvuyushchih
      stolbcov.  Takim  obrazom, komanda "comm -12" pechataet
      tol'ko stroki, obshchie dlya oboih fajlov. "Comm -23"  pe-
      chataet tol'ko stroki, kotorye vhodyat v pervyj fajl, no
      ne vhodyat vo vtoroj, a komanda "comm -123"  simvolizi-
      ruet otsutstvie operacii.

DOPOLNITELXNYE SSYLKI:
      cmp, diff, uniq




                            61
                   APK 00210-01 33 01-4

IMYA:
      compact - kompressiya fajla

FORMAT:
      compact [fajl ...]

OPISANIE:
      Komanda  compact  kompressiruet  perechislennye  fajly.
      Esli imena fajlov ne ukazany, kompressiruetsya informa-
      ciya, postupayushchaya iz standartnogo fajla vvoda,  rezul'-
      tat  vydaetsya  v  standartnyj  fajl vyvoda. Kak tol'ko
      schityvaetsya ocherednoj bajt, on nemedlenno kodiruetsya v
      sootvetstvii  s  tekushchim  kodom. |tot kod predstavlyaet
      soboj optimal'nyj kod Haffmana dlya nabora chastot,  vy-
      chislennyh  po  uzhe vvedennoj informacii. Net neobhodi-
      mosti v dobavlenii k szhatomu fajlu dereva  dekodirova-
      niya,   poskol'ku   shifrator   (compact)  i  deshifrator
      (uncompact) nachinayut rabotat' s odnogo i togo zhe  sos-
      toyaniya  i  ostayutsya sinhronnymi. Bolee togo, compact i
      uncompact  mogut  rabotat'  v  kachestve  fil'trov.   V
      chastnosti,

       ... | compact | uncompact | ...

      Rabotaet kak ochen' medlennaya komanda,  ne  vypolnyayushchaya
      nikakoj operacii.

      Esli ukazan parametr "fajl", etot fajl szhimaetsya i re-
      zul'tat  pomeshchaetsya  v  fajl s imenem "fajl.C", "fajl"
      udalyaetsya. Poslednie dva bajta  szhatogo  fajla  (".C")

                            62
                   APK 00210-01 33 01-4

      ukazyvayut,  chto  etot fajl szhat. |tot kod ispol'zuetsya
      dlya predotvrashcheniya povtornoj kompressii.

      Ozhidaemaya stepen' szhatiya  zavisit  ot  tipa  ishodnogo
      fajla. Tipichnye znacheniya stepeni szhatiya sleduyushchie:

      38% tekst;

      43% ishodnaya programma na paskale;

      36% ishodnaya programma na yazyke Si;

      19% modul' zagruzki.

      |ti znacheniya predstavlyayut soboj procent bajtov, na ko-
      torye umen'shen fajl.

ZAMECHANIYA:
      Poslednyaya chast' imeni  fajla  dolzhna  soderzhat'  menee
      13-ti  simvolov,  chtoby  ostavalos' mesto dlya suffiksa
      ".C". Katalogi ne mogut (i ne dolzhny) szhimat'sya.

DIAGNOSTIKA:
      Komanda compact ne szhimaet  katalogi.  Vydayutsya  takzhe
      soobshcheniya  o  fajlah, kotorye ne mogut byt' otkryty, i
      t.p.

FAJLY:
      Sozdavaemye fajly imeyut suffiks ".C".  Ishodnye  fajly
      udalyayutsya (esli oni ne byli zashchishcheny).

DOPOLNITELXNYE SSYLKI:
      uncompact, ccat


                            63
                   APK 00210-01 33 01-4

IMYA:
      convert - preobrazovatel'  ob'ektnogo  koda  OS  ES  v
              a.out

FORMAT:
      convert [-e] fajl1 fajl2

OPISANIE:
      Komanda convert sluzhit dlya  preobrazovaniya  ob'ektnogo
      koda v "fajl1" iz formata OS ES v ob'ektnyj kod forma-
      ta DEMOS "fajl2".

      -e    flag ustanavlivaet pri preobrazovanii  perekodi-
            rovku koda DKOI v KOI-8 dlya simvol'nyh imen slo-
            varya vneshnih  imen  ESD.  Simvoly  imeni,  krome
            togo, preobrazuyutsya v strochnye bukvy.

DOPOLNITELXNYE SSYLKI:
      a.out

ZAMECHANIYA:
      1.    Pravil'nee ispol'zovat' "fajl2" v kachestve o.tip
            dlya obrabotki ego redaktorom svyazej.

      2.    Ne obrabatyvayutsya vneshnie fiktivnye sekcii DSECT
            komandy assemblera DXD.

      3.    Ne obrabatyvayutsya slabye vneshnie imena  operato-
            rov assemblera WXTRN.

      4.    Ne obrabatyvaetsya ob'ektnaya karta SYM.

                            64
                   APK 00210-01 33 01-4

      5.    Ne podderzhivaetsya operacionnoe peremeshchenie.















                            65
                   APK 00210-01 33 01-4

IMYA:
      cp - sozdat' kopiyu fajla.

FORMAT:
      cp [-i] fajl1 fajl2
      cp [-i] fajl ... spravochnik

OPISANIE:
      "Fajl1" kopiruetsya v "fajl2". Esli "fajl2" sushchestvuet,
      rezhim  i  vladelec sohranyayutsya, v protivnom sluchae is-
      pol'zuetsya rezhim ishodnogo fajla.

      Vtoraya forma dannoj komandy kopiruet odin ili neskol'-
      ko  ukazannyh fajlov v "spravochnik" s ishodnymi imena-
      mi.

      Komanda cp otvergaet zapros na kopirovanie fajla v sa-
      mogo sebya.

      Esli zadan parametr -i i  kopirovanie  proizvoditsya  v
      uzhe   sushchestvuyushchij  fajl,  ot  pol'zovatelya  trebuetsya
      podtverzhdenie. Esli pol'zovatel' podtverzhdaet  zapros,
      vydavaya  otvet  "y", komanda cp prodolzhaet rabotu. Pri
      vydache lyubogo drugogo  simvola  predydushchee  soderzhimoe
      fajla sohranyaetsya.

DOPOLNITELXNYE SSYLKI:
      cat, pr, mv



                            66
                   APK 00210-01 33 01-4

IMYA:
      crypt - zashifrovat'/rasshifrovat'.

FORMAT:
      crypt [klyuch]

OPISANIE:
      Komanda  crypt  osushchestvlyaet  chtenie  iz  standartnogo
      fajla  vvoda i zapis' v standartnyj fajl vyvoda. Argu-
      ment "klyuch" predstavlyaet soboj  klyuch,  kotoryj  zadaet
      konkretnoe  preobrazovanie  informacii. Esli "klyuch" ne
      zadan, komanda crypt trebuet vvod klyucha  s  terminala,
      ne  vydavaya simvolov na ekran terminala vo vremya vvoda
      klyucha. Dve komandy crypt s odnim i  tem  zhe  znacheniem
      klyucha (klyuch1):

      crypt klyuch1 <ishodnyj >zashifrovannyj

      crypt klyuch1 <zashifrovannyj | pr

      zashifruyut ishodnyj fajl  i,  rasshifrovav,  raspechatayut
      ishodnyj tekst.

      Fajly, zashifrovannye s  pomoshch'yu  crypt,  sovmestimy  s
      temi fajlami, s kotorymi rabotaet redaktor ed v rezhime
      shifrovaniya.

      Zashchita zashifrovannyh fajlov osnovana na treh faktorah:

      1)    lezhashchij v osnove metod dolzhen byt'  trudnym  dlya
            razgadki;

                            67
                   APK 00210-01 33 01-4

      2)    pryamoj prosmotr prostranstva klyuchej dolzhen  byt'
            nevozmozhen;

      3)    obhodnye puti, pozvolyayushchie  poluchit'  klyuchi  ili
            ishodnyj tekst, dolzhny byt' minimizirovany.

      Komanda crypt realizuet odnorotornuyu shifroval'nuyu  ma-
      shinu  s 256-elementnym rotorom. Metody bor'by s takimi
      mashinami izvestny, odnako ne ochen' shiroko. Bolee togo,
      dlya  rasshifrovki neobhodimo prodelat' dostatochno bol'-
      shuyu rabotu.

      Preobrazovanie klyucha vo  vnutrennie  ustanovki  mashiny
      umyshlenno  sdelano slozhnym. Odnako, esli klyuchi ograni-
      cheny, naprimer, tremya  malymi  bukvami,  zashifrovannye
      fajly  mogut  byt' prochitany s zatratami ne bolee pyati
      minut mashinnogo vremeni.

      Poskol'ku klyuch yavlyaetsya parametrom komandy  crypt,  on
      yavlyaetsya  potencial'no  vidimym dlya pol'zovatelej, vy-
      polnyayushchih komandu ps ili ee proizvodnuyu. Dlya  umen'she-
      niya etoj vozmozhnosti crypt razrushaet lyubuyu zapis' klyu-
      cha srazu zhe posle vhoda. Nesomnenno, vybor klyuchej i ih
      zashchishchennost'   predstavlyayut  soboj  naibolee  uyazvimoe
      mesto.

FAJLY:
      /dev/tty  dlya napechatannogo klyucha

DOPOLNITELXNYE SSYLKI:
      ed, makekey


                            68
                   APK 00210-01 33 01-4

IMYA:
      csh - interpretator  komandnogo  yazyka  s  Si-podobnym
      sintaksisom.

FORMAT:
      csh [-cefinstvVxX] [parametr...]

OPISANIE:
      Komanda csh predstavlyaet soboj interpretator komandno-
      go  yazyka  CSHELL,  kotoryj, v otlichie ot yazyka SHELL,
      imeet bolee shirokij nabor vstroennyh komand, podderzhi-
      vaet  nekotoryj  kontekst  raboty  i imeet Si-podobnyj
      sintaksis.

      Funkcionirovanie csh nachinaetsya s vypolneniya komandno-
      go  fajla ".cshrc" v registracionnom spravochnike pol'-
      zovatelya. Esli csh ispol'zuetsya v kachestve interpreta-
      tora  osnovnogo  komandnogo yazyka, pri registriracii v
      sisteme vypolnyaetsya komandnyj fajl ".login" v  tom  zhe
      spravochnike. Posle etogo interpretator nachinaet schity-
      vat' komandy s terminala, vydavaya v kachestve podskazki
      simvol  "%".  Pri  zavershenii  raboty  vypolnyaetsya ko-
      mandnyj fajl ".logout" v  registracionnom  spravochnike
      pol'zovatelya.

      LEKSICHESKAYA STRUKTURA:

      Komandoj v yazyke CSHELL  schitaetsya  nabor  parametrov.
      Parametrom  yavlyaetsya  proizvol'naya  posledovatel'nost'
      simvolov, ne soderzhashchaya simvolov probela, tabulyacii  i

                            69
                   APK 00210-01 33 01-4

      novoj stroki. Pervyj parametr v stroke rassmatrivaetsya
      kak  imya  komandy,   kotoruyu   neobhodimo   vypolnit'.
      Sushchestvuet  nabor  simvolov, kotorye imeyut special'noe
      znachenie v yazyke CSHELL, i obrabatyvayutsya osobym obra-
      zom. Takie simvoly v dal'nejshem budut nazyvat'sya meta-
      simvolami. K ih chislu otnosyatsya "&",  "|",  ";",  "<",
      ">", "(", ")", "*" i nekotorye drugie.

      V neinteraktivnom rezhime simvol "#" ukazyvaet na nacha-
      lo  kommentariya.  On  teryaet svoe special'noe znachenie
      pri ispol'zovanii lyubogo  iz  sushchestvuyushchih  mehanizmov
      ekranirovaniya.

      KOMANDY:

      Prostaya komanda predstavlyaet soboj  posledovatel'nost'
      slov,  pervoe  iz kotoryh - imya vypolnyaemoj komandy, a
      ostal'nye peredayutsya v kachestve parametrov. Posledova-
      tel'nost'  prostyh  komand, razdelennyh simvolami "|",
      obrazuet kanal mezhprocessnoj svyazi  (vyvod  predydushchej
      komandy  yavlyaetsya  vvodom  sleduyushchej). Cepochki komand,
      obrazuyushchih  mezhprocessnye  kanaly  (konvejery),  mogut
      razdelyat'sya s pomoshch'yu simvola ";", pri etom oni vypol-
      nyayutsya posledovatel'no. V fonovom rezhime, kogda posle-
      dovatel'nost'  komand  zavershaetsya  simvolom  "&", csh
      mozhet ne dozhidayas' okonchaniya translyacii perejti k  vy-
      polneniyu  sleduyushchej komandy. V takom rezhime sushchestvuet
      avtomaticheskaya zashchita ot  signala  ostanova;  sledova-
      tel'no,  net  neobhodimosti  v  ispol'zovanii  komandy

                            70
                   APK 00210-01 33 01-4

      "nohup".

      Spisok komand, zaklyuchennyj v skobki (), rassmatrivaet-
      sya  kak prostaya komanda, kotoraya mozhet yavlyat'sya chast'yu
      konvejera. Simvoly "||" i  "&&",  ispol'zuemye  v  ka-
      chestve razdelitelej, ukazyvayut (kak i v yazyke Si), chto
      vtoroj konvejer dolzhen zapuskat'sya tol'ko v sluchae za-
      versheniya pervogo.

      MEHANIZM PODSTANOVKI PREDSHESTVUYUSHCHIH KOMAND:

      Csh zapominaet komandnye stroki, kotorye vvodil  pol'-
      zovatel'  v  processe raboty, i pozvolyaet osushchestvlyat'
      ih povtornyj vvod.

      Ukazatelem  vypolneniya  podstanovki  komand   yavlyaetsya
      simvol "!". Podstanovka mozhet nachinat'sya v lyubom meste
      vhodnogo potoka. Simvol "!"  teryaet  svoe  special'noe
      znachenie, esli on ekranirovan s pomoshch'yu simvola "
      takzhe esli za  nim  sleduet  probel,  znak  tabulyacii,
      simvol  novoj  stroki, "=" ili "(". Podstanovka komand
      proizvoditsya takzhe v tom sluchae, kogda vhodnaya  stroka
      nachinaetsya simvolom "^".

      Komandy numeruyutsya posledovatel'no, nachinaya s 1. Koli-
      chestvo  zapominaemyh  csh komandnyh strok opredelyaetsya
      peremennoj history. Ssylki na  predydushchie  komandy  iz
      tekushchej  komandy mogut byt' osushchestvleny sleduyushchim ob-
      razom:

      !N   po nomeru komandy;


                            71
                   APK 00210-01 33 01-4

      !-n  na n komand ran'she otnositel'no tekushchej komandy;

      !c   po pervoj bukve komandy;

      !?...?!
           po stroke "...", soderzhashchejsya v  nekotorom  slove
           komandy;

      !!   povtornoe vypolnenie poslednej komandy.

      Dlya vybora iz komandy otdel'nyh parametrov, posle spe-
      cifikacii  komandy  nuzhno  ukazat'  ":" i opredelitel'
      trebuemyh parametrov. Slova vhodnoj stroki numeruyutsya,
      nachinaya  s 0: 0 - obychno imya komandy, 1 - pervyj para-
      metr i t.d. Osnovnymi opredelitelyami yavlyayutsya:

      0    imya komandy;

      n    n-yj parametr;

      ^    pervyj parametr;

      $    poslednij parametr;

      %    slovo,  kotoroe  sootvetstvuet   (neposredstvenno
           predshestvuyushchemu) obrazcu ?...?;

      h-y  diapazon slov;

      -y   sootvetstvuet "0-y";27

      *    vybrat' vse parametry, nachinaya s pervogo ("%-$");

      h*   vybrat' vse parametry, nachinaya s n-go ("h-$");

                            72
                   APK 00210-01 33 01-4

      h-   to zhe, chto "h*", no ne vklyuchaya poslednij parametr
           "$".

      Simvol ":" mozhet byt' opushchen, esli opredelitel'  nachi-
      naetsya  odnim  iz simvolov "^", "$", "*", "-" ili "%".
      Posle neobyazatel'nogo opredelitelya  mogut  ukazyvat'sya
      modifikatory.  Kazhdomu  iz  nih predshestvuet dvoetochie
      ":". Opredeleny sleduyushchie modifikatory:

      g      primenit' modifikaciyu vo vseh slovah;

      h      udalit' imya fajla, ostavlyaya imena spravochnikov,
             vedushchih k nemu;

      r      raspechatat' novuyu komandu, no ne vypolnyat' ee;

      q      zaklyuchit' modificiruemoe slovo v kavychki,  pre-
             dotvrashchaya ego dal'nejshuyu modifikaciyu;

      r      udalit' rasshirenie imeni fajla, ukazannoe cherez
             tochku ".";

      s/l/r  zamenit' l na r. V kachestve razdelitelya  vmesto
             "/" mozhet byt' ispol'zovan lyuboj simvol.V stro-
             kah l i  r  razdelitel'  dolzhen  ekranirovat'sya
             simvolom "
             sya predydushchaya stroka libo iz l, libo iz  stroki
             kontekstual'nogo poiska s v "!?s?". Esli stroka
             r pusta, to l udalyaetsya;

      t      udalit'  imena  vseh  spravochnikov,  vedushchih  k
             fajlu, ostavlyaya imya fajla;


                            73
                   APK 00210-01 33 01-4

      x      to zhe, chto i q, no razbit' na  slova  v  mestah
             nalichiya  probelov,  znakov tabulyacii i simvolov
             novoj stroki;

      &      povtorit' predydushchuyu modifikaciyu.

      Csh ppredostvlyaet udobnyj sposob modifikacii poslednej
      stroki.  Dlya etih celej ispol'zuetsya konstrukciya "^ob-
      razec^zamena".

      PSEVDONIMY:

      S pomoshch'yu komand alias  i  unalias  interpretator  csh
      sostavlyaet  spisok psevdonimov, kotorye mogut ustanav-
      livat'sya, otobrazhat'sya i modificirovat'sya. Posle pros-
      motra  komandnoj  stroki  ona razbivaetsya na otdel'nye
      komandy, i pervoe  slovo  kazhdoj  komandy  proveryaetsya
      (sleva  napravo), chtoby vyyasnit', imeet li ono psevdo-
      nim. Esli imeet, to tekst, kotoryj yavlyaetsya  psevdoni-
      mom  dannoj  komandy,  schityvaetsya s pomoshch'yu mehanizma
      history tak, kak esli by eta komanda  byla  predydushchej
      vhodnoj  strokoj.  Poluchennye slova zamenyayut komandu i
      spisok parametrov.  |tot  mehanizm  pozvolyaet  vvodit'
      novyj sintaksis komand.

      PODSTANOVKA PEREMENNYH:

      Posle podstanovki psevdonimov i grammaticheskogo razbo-
      ra  vhodnoj  stroki i pered vypolneniem kazhdoj komandy
      proizvoditsya podstanovka peremennyh, oboznachaemaya sim-
      volom "$".


                            74
                   APK 00210-01 33 01-4

      Sushchestvuyut sleduyushchie konstrukcii:

      $imya
      ${imya}

            Podstavit' znachenie peremennoj. Figurnye  skobki
            otdelyayut  "imya"  ot  simvolov, kotorye k nemu ne
            otnosyatsya. Imena peremennyh mogut  soderzhat'  do
            20 bukv i simvolov podcherkivaniya;

      $imya[selektor]
      ${imya[selektor]}

            Podstavit' znachenie slova, vybrannogo  "selekto-
            rom" iz mnozhestva znachenij peremennoj "imya";

      $#imya
      ${#imya}

            Podstavit' kolichestvo slov, hranyashchihsya  v  pere-
            mennoj;

      $0    Podstavit' imya standartnogo  fajla  vvoda.  Esli
            eto imya neizvestno, voznikaet oshibka;

      $chislo
      ${chislo}

            |kvivalentno "$argv [chislo]";

      $*    |kvivalentno "$argv [*]";

      S pomoshch'yu modifikatora ":" ne mogut  byt'  proizvedeny

                            75
                   APK 00210-01 33 01-4

      sleduyushchie podstanovki:

      $?imya
      ${?imya}

            Podstavit' "1", esli "imya" opredeleno, ili "0" -
            esli ne opredeleno.

      $?0   Podstavit' "1", esli standartnyj fajl vvoda  op-
            redelen, ili "0" - v protivnom sluchae.

      $$    Podstavit' nomer processa csh.

      PODSTANOVKA VYVODA KOMAND:

      Pri  podstanovke  komandy,  ee  zaklyuchayut  v  obratnye
      apostrofy  `...`.  |ta komanda vypolnyaetsya, a ee stan-
      dartnyj vyvod razbivaetsya na otdel'nye slova v  mestah
      nalichiya  probelov,  znakov  tabulyacii i simvolov novoj
      stroki, prichem  pustye  slova  otbrasyvayutsya,  i  etot
      tekst  zatem  zamenyaet  ishodnuyu  stroku v "`". Vnutri
      strok, zaklyuchennyh  v  kavychki  "...",  tol'ko  simvol
      novoj  stroki  vydelyaet  novye slova.Probely i simvoly
      tabulyacii sohranyayutsya.

      Pri pomoshchi podstanovki vyvoda komandy mozhet byt'  soz-
      dana  tol'ko chast' slova, dazhe esli komanda vydaet ce-
      luyu stroku.

      PODSTANOVKA IMEN FAJLOV:

      Esli slovo soderzhit lyuboj iz simvolov "*",  "?",  "[",

                            76
                   APK 00210-01 33 01-4

      "{"  ili  nachinaetsya  s "^ ", to v nem mozhet byt' osu-
      shchestvlena podstanovka imeni  fajla.  Pri  etom  dannoe
      slovo  yavlyaetsya  obrazcom,  kotoryj  zamenyaetsya  soot-
      vetstvuyushchim spiskom fajlov, otsortirovannyh v alfavit-
      nom  poryadke.  Esli v spiske imen fajlov ne najdeno ni
      odnogo sootvetstviya zadannomu obrazcu, voznikaet oshib-
      ka. Sleduyushchie simvoly imeyut special'noe znachenie:

      *    Sootvetstvuet lyuboj posledovatel'nosti  simvolov,
           v tom chisle pustoj;

      ?    Sootvetstvuet lyubomu odinochnomu simvolu;

      [...]
           Sootvetstvuet lyubomu iz  perechislennyh  simvolov.
           Para  simvolov,  razdelennaya  znakom  "-",  soot-
           vetstvuet lyubomu simvolu iz ukazannogo  leksiches-
           kogo promezhutka;

      ~    Registracionnyj spravochnik, yavlyayushchijsya  znacheniem
           peremennoj home;

      ~imya Registracionnyj spravochnik pol'zovatelya s  imenem
           "imya";

      [a,b,...,n]
           Sootvetstvuet lyubomu iz  perechislennyh  simvolov.
           Dlya  ukazaniya  samih  simvolov "[" i "]" v spiske
           pered nimi dolzhen stavit'sya simvol "

      a{b,c,d}e

                            77
                   APK 00210-01 33 01-4

           Sootvetstvuet "abe ace ade". Ispol'zovanie probe-
           lov ne dopuskaetsya.

      Pri podbore imen fajlov simvol ".", nahodyashchijsya v  na-
      chale  imeni  fajla  ili  neposredstvenno  posle "/", a
      takzhe simvol "/" dolzhny byt' ukazany yavno i  tochno  na
      svoih mestah.

      VVOD/VYVOD

      Dlya zadaniya fajlov vvoda/vyvoda ispol'zuyutsya sleduyushchie
      konstrukcii:

      <imya  Ispol'zovat' fajl "imya" v kachestve  standartnogo
            fajla vvoda;

      <<slovo
            Schitat' vvod interpretatora do  stroki,  kotoraya
            identichna ukazannomu "slovu". Poluchennyj vremen-
            nyj fajl ispol'zovat'  v  kachestve  standartnogo
            fajla vvoda;

      >imya
      >!imya
      >&imya
      >&!imya

            Ispol'zovat' fajl "imya" v kachestve  standartnogo
            fajla  vyvoda. Soderzhimoe fajla usekaetsya do nu-
            levoj   dliny.   Esli   opredelena    peremennaya
            noclobber,  fajl  ne  dolzhen sushchestvovat', inache

                            78
                   APK 00210-01 33 01-4

            voznikaet oshibka. Dlya predotvrashcheniya nepredname-
            rennogo razrusheniya fajlov ispol'zuyutsya konstruk-
            cii s "!". Konstrukcii, ispol'zuyushchie  "&",  nap-
            ravlyayut v standartnyj fajl vyvoda takzhe diagnos-
            ticheskie soobshcheniya;

      >>imya
      >>&imya
      >>!imya
      >>&!imya

            Ispol'zovat' fajl "imya" v kachestve  standartnogo
            fajla vyvoda; vyhodnaya informaciya dopisyvaetsya k
            soderzhimomu fajla "imya". Esli  opredelena  pere-
            mennaya  noclobber,  a fajl ne sushchestvuet, to is-
            pol'zovanie  konstrukcij,  ne  soderzhashchih   "!",
            privodit k vozniknoveniyu oshibki.

      V fonovom rezhime standartnym fajlom vyvoda po  umolcha-
      niyu  yavlyaetsya  pustoj  fajl  "/dev/null".  Diagnostika
      mozhet byt' vyvedena po kanalu mezhprocessnoj svyazi. Dlya
      etogo ispol'zuetsya konstrukciya "|&".

      VYRAZHENIYA:

      Nekotorye iz vstroennyh komand mogut soderzhat' vyrazhe-
      niya, v kotoryh imeyutsya operacii, analogichnye operaciyam
      v yazyke Si, s  takim  zhe  prioritetom.  |ti  vyrazheniya
      mogut  poyavlyat'sya v komandah @, exit, if i while. Raz-
      resheny sleduyushchie operacii: "||", "&&", "|", "~",  "&",

                            79
                   APK 00210-01 33 01-4

      "==",  "!=",  "<=",  ">=",  "<", ">", "<<", ">>", "+",
      "-", "*", "/", "%", "!", "^", "(", ")".

      Starshinstvo operacij v etom ryadu vozrastaet sleva nap-
      ravo; vnutri sleduyushchih grupp operacii imeyut odinakovyj
      prioritet:

            ==  !=
            <=  >=  <  >
            <<  >>
            +  -
            *  /  %

      V operaciyah sravneniya "==", "!=", operandami  yavlyayutsya
      stroki;  ostal'nye  operiruyut  s  chislami. Logicheskimi
      znacheniyami yavlyayutsya: 0 - "lozh'", 1 (ili  lyuboe  chislo,
      otlichnoe  ot  nulya)  -  "istina".  Vse  znaki operacij
      dolzhny otdelyat'sya ot operandov probelami. V odnom slo-
      ve  ne dolzhny vstrechat'sya dva komponenta vyrazhenij, za
      isklyucheniem  sluchaev  ispol'zovaniya  sleduyushchih  znakov
      operacij: "&", "|", "<", ">", "(", ")".

      Imeyushchiesya v csh operacii prisvaivaniya analogichny  ope-
      raciyam  prisvaivaniya  yazyka  Si. K nim otnosyatsya: "=",
      "+=", "-=", "*=", "/=", "%=".

      Postfiksnye operacii "++" i "--" sootvetstvenno inkre-
      mentiruyut i dekrementiruyut "imya" (naprimer, "@i++").

      V kachestve prostyh operandov v  vyrazheniyah  mogut  is-
      pol'zovat'sya  komandy,  zaklyuchennye  v figurnye skobki


                            80
                   APK 00210-01 33 01-4

      "{...}".

      V csh imeyutsya operacii oprosa svojstv fajla  vida  "-l
      imya", gde l mozhet prinimat' sleduyushchie znacheniya:

      r  razreshenie chteniya;
      w  razreshenie zapisi;
      h  razreshenie vypolneniya;
      e  sushchestvovanie;
      o  vladelec;
      z  nulevoj razmer;
      f  nezashifrovannyj fajl;
      d  spravochnik.

      V ukazannom fajle osushchestvlyayutsya podstanovki  peremen-
      nyh  i  imen  fajlov.  Esli  fajl  obladaet  trebuemym
      svojstvom, to vozvrashchaetsya znachenie 1 (istina),  inache
      - 0 (lozh').

      KOMANDY UPRAVLENIYA:

      K komandam upravleniya otnosyatsya sleduyushchie konstrukcii:

      foreach imya (slovo ...)
         spisok_komand
      end

            Peremennoj "imya"  posledovatel'no  prisvaivayutsya
            znacheniya  "slovo  ..." i vypolnyaetsya "spisok_ko-
            mand".

      switch( stroka )


                            81
                   APK 00210-01 33 01-4

            case slovo:
               ...
               breaksw
            ...
            default:
               ...
               breaksw
      endsw

            "Stroka" posledovatel'no sravnivaetsya  so  vsemi
            "slovami".  Esli sootvetstvie ne obnaruzheno, vy-
            polnenie  prodolzhaetsya  posle  default.  Komanda
            breaksw  privodit k tomu, chto vypolnenie prodol-
            zhaetsya posle endsw.

      if( vyr1 ) then spisok_komand1
      else if( vyr2 ) then spisok_komand2
      else spisok_komand3
      endif

            Esli znachenie pervogo vyrazheniya istinno (otlichno
            ot  nulya),  vypolnyaetsya "spisok_komand1". V pro-
            tivnom sluchae proveryaetsya "vyrazhenie2": esli ono
            istinno, vypolnyaetsya "spisok_komand2" i t.d.

      while( vyrazhenie )
            ...
      end

            Cikl vypolnyaetsya, poka istinno znachenie "vyrazhe-

                            82
                   APK 00210-01 33 01-4

            niya".

      V operatorah upravleniya csh klyuchevoe slovo (if, else i
      dr.) dolzhno byt' pervym slovo v stroke.

      VSTROENNYE KOMANDY:

      alias
      alias imya
      alias imya spisok_slov

            Pervaya forma raspechatyvaet vse psevdonimy.  Vto-
            raya  forma  raspechatyvaet  psevdonim  ukazannogo
            "imeni".  Poslednyaya   forma   opredelyaet   "spi-
            sok_slov" kak psevdonim "imeni". V "spiske_slov"
            osushchestvlyaetsya podstanovka komand i imen fajlov.
            V  kachestve "imen" nel'zya ispol'zovat' "alias" i
            "unalias".

      alloc Vydaet razmer ispol'zuemoj dinamicheskoj  pamyati,
            vklyuchaya ispol'zuemuyu i svobodnuyu pamyat', a takzhe
            adres poslednej yachejki pamyati.

      break Vyzyvaet vozobnovlenie vypolneniya posle end bli-
            zhajshej  vneshnej  konstrukcii  foreach ili while.
            Esli v odnoj stroke ukazyvaetsya neskol'ko komand
            break,  razdelennyh tochkoj s zapyatoj, to perehod
            osushchestvlyaetsya cherez stol'ko zhe urovnej.

      breaksw
            Vyzyvaet vyhod iz  komandy  switch,  vozobnovlyaya

                            83
                   APK 00210-01 33 01-4

            vypolnenie posle endsw.

      case metka:
            "Metka" - odin iz variantov operatora switch.

      cd
      cd imya
      chdir
      chdir imya

            zamenyaet tekushchij spravochnik na spravochnik "imya".
            Esli  parametr otsutstvuet, to po umolchaniyu pri-
            nimaetsya registracionnyj spravochnik.

      continue
            Prodolzhaet vypolnenie blizhajshego vneshnego  while
            ili  foreach.  Ostal'nye  komandy tekushchej stroki
            vypolnyayutsya.

      default:
            Metka, oboznachayushchaya variant po umolchaniyu v  ope-
            ratore  switch.Dolzhna  raspolagat'sya  posle vseh
            metok case.

      echo spisok_slov
            Ukazannye slova zapisyvayutsya v standartnyj  fajl
            vyvoda.  Simvol "            na novuyu stroku.

      else
      end
      endif

                            84
                   APK 00210-01 33 01-4

      endsw

            Ispol'zuyutsya v operatorah foreach, if, switch  i
            while.

      ehes komanda
            "Komanda" zapuskaetsya vmesto csh. Rabota csh za-
            vershaetsya.

      exit
      exit( vyr )

            Proizvoditsya vyhod iz csh libo so znacheniem  pe-
            remennoj status (pervaya forma), libo so znacheni-
            em ukazannogo vyrazheniya "vyr" (vtoraya forma);

      glob spisok_slov
            |ta komanda analogichna komande echo, za isklyuche-
            niem togo, chto pri vyvode slova razdelyayutsya pro-
            belami, tak kak simvol "

      goto slovo
            Komanda   bezuslovnogo   perehoda   na    metku.
            Vypolnenie  prodolzhaetsya so stroki, idushchej posle
            ukazannoj metki. Metka dolzhna zavershat'sya simvo-
            lom ":".

      hashstat
            Raspechatyvaet statistiku, opredelyayushchuyu, naskol'-
            ko  effektivno  vnutrennyaya  tablica  heshirovaniya
            razmeshchaet komandy.

                            85
                   APK 00210-01 33 01-4

      history
            Otobrazhaet spisok predshestvuyushchih komand.

      if (vyr) komanda
            Esli znachenie ukazannogo vyrazheniya istinno,  vy-
            polnyaetsya  "komanda".  Komanda dolzhna byt' odna.
            Ispol'zovanie konvejerov ne dopuskaetsya.

      login
      login imya

            Po komande login zavershaetsya rabota csh i inici-
            aliziruetsya  programma init dlya dannogo displeya.
            Komanda mozhet ispol'zovat'sya bez parametra "imya"
            i  s nim. Vo vtorom sluchae srazu zhe budet zapro-
            shen vhodnoj parol' pol'zovatelya.

      logout
            Preryvaet rabotu csh. Esli opredelena peremennaya
            ignoreeof,  to signal konca fajla <CTRL/D> igno-
            riruetsya.

      nice
      nice +chislo
      nice komanda
      nice +chislo komanda

            Pervaya forma ustanavlivaet prioritet csh  ravnym
            4.  Vtoraya  forma ustanavlivaet prioritet ravnym
            ukazannomu chislu. Poslednie formy vypolnyayut  ko-
            mandu  s prioritetom 4 i "chislo" sootvetstvenno.


                            86
                   APK 00210-01 33 01-4

            Ispol'zuya konstrukciyu "nice -chislo ...",  super-
            pol'zovatel' mozhet ustanovit' otricatel'nyj pri-
            oritet.  Komanda   vypolnyaetsya   v   podprocesse
            csh.Ispol'zovanie konvejerov ne dopuskaetsya.

      nohup
      nohup komanda

            Komanda predotvrashchaet  reakciyu  csh  na  signaly
            preryvaniya.  Pri  ispol'zovanii  bez  parametrov
            dejstvie nohup rasprostranyaetsya  na  vse  stroki
            komandogo  fajla,  ukazannye  za  nej. Vo vtoroj
            forme signaly preryvaniya ignoriruyutsya tol'ko pri
            vypolnenii ukazannoj "komandy". Dlya vseh fonovyh
            processov, nohup vypolnyaetsya avtomaticheski.

      onintr
      onintr -
      onintr metka

            Upravlyaet reakciej  csh  na  preryvaniya.  Pervaya
            forma vosstanavlivaet standartnuyu reakciyu csh na
            preryvaniya, kotoraya zaklyuchaetsya v zavershenii vy-
            polneniya komandnyh fajlov csh ili vozvrate v in-
            teraktivnyj rezhim. Vtoraya forma vyzyvaet ignori-
            rovanie  lyubyh  signalov  preryvaniya.  Poslednyaya
            forma pri poluchenii signala preryvaniya  vyzyvaet
            vypolnenie komandy "goto metka".

      rehash

                            87
                   APK 00210-01 33 01-4

            Sozdaet hesh-tablicu komand, soderzhashchihsya v spra-
            vochnikah, kotorye ukazany v peremennoj path.

      repeat schetchik komanda
            Povtoryaet vypolnenie  "komandy"  "schetchik"  raz.
            Standartnye  fajly  vvoda/vyvoda zadayutsya tol'ko
            odin raz.

      set
      set imya
      set imya=slovo
      set imya[indeks]=slovo
      set imya=(spisok_slov)

            Pervaya forma  dannoj  komandy  vyvodit  znacheniya
            vseh  peremennyh  csh. Peremennye, kotorye imeyut
            neskol'ko znachenij,  vyvodyatsya  v  vide  spiska,
            zaklyuchennogo  v skobki. Vtoraya forma prisvaivaet
            ukazannomu "imeni" stroku nulevoj dliny.  Tret'ya
            forma prisvaivaet "imeni" znachenie "slova". CHet-
            vertaya forma prisvaivaet komponentu imeni s  no-
            merom "indeks" znachenie "slova". Poslednyaya forma
            prisvaivaet "imeni" znacheniya iz "spisoka_slov".

      setenv
      setenv imya znachenie

            Pervaya forma vyvodit znacheniya  peremennyh  sredy
            processa, vtoraya ih ustanavlivaet.

      shift


                            88
                   APK 00210-01 33 01-4

      shift peremennaya

            CHleny peremennoj argv sdvigayutsya vlevo, pri etom
            argv[1]  (levyj  element  spiska) otbrasyvaetsya.
            Esli element spiska ne opredelen ili imeet menee
            odnogo  znacheniya,  to  voznikaet  oshibka. Vtoraya
            forma komandy vypolnyaet eti zhe dejstviya nad uka-
            zannoj "peremennoj".

      source imya
            Csh schityvaet komandy iz  fajla  "imya".  Komanda
            source  mozhet byt' vlozhennoj.Esli glubina vlozhe-
            niya slishkom velika, to mozhet ne hvatit' deskrip-
            torov  fajlov.  Oshibka v komande source na lyubom
            urovne preryvaet vypolnenie ostal'nyh  vlozhennyh
            komand source. Vvod komand, proizvedennyj v pro-
            cesse vypolneniya komandy source ne fiksiruetsya v
            spiske predshestvuyushchih komand.

      time
      time komanda

            Pri otsutstvii parametrov soobshchaet vremya, zatra-
            chennoe  interpretatorom  csh i porozhdennymi pro-
            cessami. Esli parametr  zadan,  vydaetsya  vremya,
            zatrachennoe ukazannoj "komandoj".

      umask
      umask znachenie

            Maska dostupa k fajlu soobshchaetsya (pervaya  forma)


                            89
                   APK 00210-01 33 01-4

            ili  ustanavlivaetsya  ravnoj ukazannomu znacheniyu
            (vtoraya forma).  Znachenie  maski  ukazyvaetsya  v
            vos'merichnom kode. Samymi rasprostranennymi zna-
            cheniyami maski yavlyayutsya 022 (po umolchaniyu), koto-
            roe  zadaet lyuboj dostup dlya pol'zovatelej svoej
            gruppy i dostup dlya chteniya i  vypolneniya  drugim
            pol'zovatelyam, i 002, opredelyayushchee lyuboj dostup,
            za isklyucheniem zapisi, dlya  pol'zovatelej  svoej
            gruppy i vseh prochih;

      unalias obrazec
            Vse psevdonimy, imena kotoryh sootvetstvuyut uka-
            zannomu  obrazcu,  otbrasyvayutsya. Sledovatel'no,
            komanda "unalias *" udalyaet vse psevdonimy. Esli
            psevdonimy  ne udalilis', eto ne schitaetsya oshib-
            koj.Ispol'zovanie komandy bez parametrov  privo-
            dit k vozniknoveniyu oshibki.

      unhash
            Zapreshchaet ispol'zovanie hesh-tablicy dlya  uskore-
            niya nahozhdeniya vypolnyaemyh programm.

      unset obrazec
            Vse peremennye, imena kotoryh sootvetstvuyut uka-
            zannomu  obrazcu,  udalyayutsya. Takim obrazom, ko-
            manda "unset *" udalyaet vse peremennye,  oprede-
            lennye  komandoj  set. Popytka udalit' neoprede-
            lennuyu peremennuyu ne  privodit  k  vozniknoveniyu
            oshibki.

                            90
                   APK 00210-01 33 01-4

      wait  Proishodit ozhidanie vseh porozhdennyh  processov.
            V  interaktivnom  rezhime signal preryvaniya mozhet
            prervat' i vypolnenie komandy wait.Pri etom  csh
            pechataet  imena i nomera vseh nezavershennyh pro-
            cessov.

      @
      @imya=vyrazhenie
      @imya[indeks]=vyrazhenie

            Pervaya forma raspechatyvaet znacheniya  vseh  pere-
            mennyh  csh.  Vtoraya forma prisvaivaet parametru
            "imya" znachenie "vyrazheniya". Esli chast' vyrazheniya
            soderzhit  simvoly  "<", ">", "&" ili "|", to ona
            dolzhna byt' zaklyuchena v  kruglye  skobki  (...).
            Tret'ya forma prisvaivaet komponentu"imya" s nome-
            rom "indeks" znachenie "vyrazheniya". "Imya"  i  ego
            komponent  s  nomerom  "indeks" dolzhny sushchestvo-
            vat'.

      VNUTRENNIE PEREMENNYE:

      argv  Opredelyaet znacheniya parametrov csh. K nej prime-
            nimy  podstanovki pozicionnyh parametrov (napri-
            mer, "$1" zamenyaetsya na "$argv[1]").

      child Nomer processa.Vyvoditsya pri zapuske  parallel'-
            nogo  processa.  Po zavershenii processa znachenie
            peremennoj sbrasyvaetsya (unset).

      echo  Ustanavlivaetsya, esli v komandnoj stroke  ukazy-


                            91
                   APK 00210-01 33 01-4

            vaetsya flag "-h". Vyzyvaet pechat' kazhdoj komandy
            i ee parametrov pered vypolneniem. Vse  rasshire-
            niya vypolnyayutsya pered vyvodom.

      history
            Opredelyaet razmer spiska predshestvuyushchih  komand.
            Slishkom  bol'shoe  znachenie peremennoj mozhet pri-
            vesti k nehvatke pamyati. Optimal'noe chislo -  22
            stroki.

      home  Opredelyaet  imya   registracionnogo   spravochnika
            pol'zovatelya.

      ignoreeof
            Predotvrashchaet sluchajnoe zavershenie csh pri  pri-
            eme signala "konec fajla" <CTRL/D>.

      mail  Soderzhit imena fajlov, kotorye  proveryayutsya  in-
            terpretatorom  csh na nalichie pochty posle zaver-
            sheniya kazhdoj komandy.

      noclobber
            Ustanavlivaet zashchitu fajlov ot sluchajnogo razru-
            sheniya i obespechivaet sushchestvovanie fajlov vyvoda
            pri ispol'zovanii konstrukcii ">>".

      noglob
            Zapreshchaet rasshirenie imen fajlov.

      nonomatch
            Esli rasshirenie imen fajlov ne sootvetstvuet  ni

                            92
                   APK 00210-01 33 01-4

            odnomu  iz sushchestvuyushchih fajlov, to pri ustanovke
            dannoj peremennoj vozvrashchaetsya ishodnyj obrazec.
            Odnako, esli ishodnyj obrazec neveren (naprimer,
            "esno ["), to voznikaet oshibka.

      path  Opredelyaet spisok imen spravochnikov  dlya  poiska
            vypolnyaemyh komand.

      prompt
            Opredelyaet stroku-priglashenie interpretatora dlya
            vvoda  komand.  Esli  v etoj stroke prisutstvuet
            ukazatel' "!", kotoromu ne  predshestvuet  simvol
            "
            Standartnymi znacheniyami yavlyayutsya "%" - dlya obych-
            nogo pol'zovatelya i "#" - dlya superpol'zovatelya.

      shell Esli komandnyj fajl yavlyaetsya vypolnyaemym (imeet-
            sya  bit  "x")  i nachinaetsya s simvola "#", to on
            vypolnyaetsya interpretatorom csh.Esli simvol  "#"
            otsutstvuet  -  interpretatorom  sh.  Peremennaya
            shell opredelyaet fajl, kotoryj dolzhen  vypolnyat'
            interpretator csh.

      status
            Opredelyaet kod zaversheniya poslednej komandy (0 -
            pri  uspeshnom  vypolnenii komandy, 1 - pri neus-
            peshnom).

      time  Hronometriruet komandy, esli ih dejstvie prodol-
            zhalos' bolee ukazannogo vremeni.

                            93
                   APK 00210-01 33 01-4

      verbose
            Ustanavlivaetsya flagom "-v" i vyzyvaet raspechat-
            ku kazhdoj komandnoj stroki pered ee vypolneniem.

      FLAGI CSH:

      -c    Schitat' komandu iz edinstvennogo parametra, uka-
            zannogo   srazu   posle   "-c".   Vse  ostal'nye
            parametry razmeshchayutsya v peremennoj argv;

      -e    Prekratit' rabotu csh, esli lyubaya vyzvannaya  ko-
            manda  vypolnena neuspeshno ili esli kod zavershe-
            niya komandy ne raven nulyu;

      -f    Zapretit' chtenie fajla ".cshrc" dlya  obespecheniya
            bolee bystrogo zapuska interpretatora csh;

      -i    Ustanavlivaet  interaktivnyj  rezhim  raboty  in-
            terpretatora;

      -n    Osushchestvlyaet  tol'ko   sintaksicheskuyu   proverku
            komand;

      -s    Schityvat'  vhodnuyu  informaciyu  iz  standartnogo
            fajla vvoda;

      -t    Schityvat'  i  vypolnyat'  tol'ko  odnu  komandnuyu
            stroku.  |ta  stroka  mozhet  soderzhat'  v  konce
            simvol prodolzheniya stroki "

      -v    Vyzyvaet ustanovku peremennoj verbose, v rezul'-
            tate chego vvodimye komandy raspechatyvayutsya posle


                            94
                   APK 00210-01 33 01-4

            podstanovki predshestvuyushchih komand;

      -V    Vyzyvaet ustanovku peremennoj verbose pered  vy-
            polneniem fajla ".cshrc";

      -x    Vyzyvaet raspechatku komand pered ih vypolneniem;

      -X    Ustanavlivaet flag "-x" pri interpretacii  fajla
            ".cshrc".

      OBRABOTKA SIGNALOV:

      Interpretator komand obychno ignoriruet signaly  vyhoda
      (quit).  Komandy, vypolnyaemye v fonovom rezhime, obychno
      ignoriruyut signaly preryvaniya (interrupt) i vyhoda.  V
      obychnom rezhime eti signaly imeyut znacheniya, nasleduemye
      ot predydushchego processa.  Reakciya  csh  na  preryvaniya
      mozhet ustanavlivat'sya komandoj onintr. Interpretatory,
      ustanavlivaemye neposredstvenno pri registracii  pol'-
      zovatelya  v  sisteme,  vosprinimayut  signal zaversheniya
      (terminate); v  ostal'nyh  sluchayah  sostoyanie  signala
      preryvaniya  peredaetsya iz tekushchego processa v porozhda-
      emyj. Vo vremya  schityvaniya  fajla  ".logout",  signaly
      preryvaniya ne vosprinimayutsya.

FAJLY:
      ^/.cshrc    schityvaetsya csh v nachale
                vypolneniya.
      ^/.login    schityvaetsya csh posle ".cshrc"
                pri registracii.
      ^/.logout   schityvaetsya csh pri vyhode.


                            95
                   APK 00210-01 33 01-4

      /bin/sh     standartnyj shell dlya komandnyh
                fajlov, kotorye nachinayutsya ne s
                "#".
      /tmp/sh*    vremennyj fajl dlya "<<".
      /dev/null   istochnik dlya pustogo fajla.
      /etc/passwd registracionnyj spravochnik dlya
                "^imya".

OGRANICHENIYA:
      Slova ne mogut byt' dlinee, chem  512  simvolov.  Koli-
      chestvo  simvolov  v  parametrah  zavisit  ot  sistemy.
      Predel sostavlyaet ot 512 do 5120 simvolov.  Kolichestvo
      parametrov komandy, vklyuchayushchih rasshireniya imen fajlov,
      ogranicheno 1/6-oj chisla simvolov, razreshennyh v spiske
      parametrov. Pri podstanovke komand kolichestvo podstav-
      lyaemyh simvolov ne dolzhno prevyshat' chisla,  ukazannogo
      v  spiske  parametrov. Dlya predotvrashcheniya zaciklivaniya
      csh ogranichivaet kolichestvo podstanovok psevdonimov  v
      odnoj stroke do 20-ti.

DOPOLNITELXNYE SSYLKI:
      sh, environ.

ZAMECHANIYA:
      Komandy upravleniya dolzhny podvergat'sya grammaticheskomu
      razboru,  a  ne  raspoznavat'sya  v kachestve vstroennyh
      komand. |to pozvolilo by razmeshchat' ih v  lyubom  meste,
      ob'edinyat' s pomoshch'yu simvola "|", a takzhe ispol'zovat'
      s metaoboznacheniyami "&" i ";".

                            96
                   APK 00210-01 33 01-4

      Komandy, soderzhashchiesya vnutri ciklov s podskazkoj  "?",
      ne pomeshchayutsya v spisok predshestvuyushchih komand.

      Dolzhna sushchestvovat' vozmozhnost' ispol'zovaniya  modifi-
      katorov  ":" pri vyvode podstanovok komand. V makrovy-
      zovah "$" dolzhno dopuskat'sya bolee odnogo modifikatora
      ":".

      Nekotorye komandy ne dolzhny izmenyat' znacheniya peremen-
      noj  status,  inache  ona budet tak chasto menyat'sya, chto
      mozhet okazat'sya pochti bespoleznoj. Ustanovka bita 0200
      v peremennoj status pri nenormal'nom zavershenii svide-
      tel'stvuet ob oshibke.

      CHtoby sohranit' vozmozhnost' vosstanovleniya  posle  ne-
      udachnogo  vypolneniya komand ehes, novaya komanda nasle-
      duet neskol'ko  otkrytyh  fajlov,  otlichnyh  ot  stan-
      dartnyh fajlov vvoda, vyvoda i diagnosticheskih soobshche-
      nij. Esli fajly vvoda/vyvoda zadany i novaya komanda ne
      zakryvaet  ih,  to  nekotorye  fajly naprasno ostayutsya
      otkrytymi.





                            97
                   APK 00210-01 33 01-4

IMYA:
      ctags - postroenie fajla ssylok dlya programm na Si

FORMAT:
      ctags [-auw] fajl ...

OPISANIE:
      Komanda ctags sozdaet tablicu ssylok  (fajl  s  imenem
      tags) dlya programm na yazyke Si, zapisannyh v ukazannyh
      fajlah. Fajl ssylok soderzhit ukazaniya o  mestonahozhde-
      nii  opredelennyh ob'ektov (v dannom sluchae - funkcij)
      v gruppe fajlov. Kazhdaya stroka fajla ssylok  soderzhit:
      imya funkcii, imya fajla (v kotorom ona opredelena), re-
      gulyarnoe vyrazhenie, ispol'zuemoe dlya poiska  opredele-
      niya  funkcii.  |ti dannye privodyatsya v otdel'nyh polyah
      stroki i razdelyayutsya probelami ili  simvolami  tabulya-
      cii.

      V komandnoj stroke mogut ukazyvat'sya sleduyushchie klyuchi:

      -a    Privodit k tomu, chto  rezul'tat  dopisyvaetsya  v
            fajl tags;

      -x    V etom rezhime ctags vydaet dlya kazhdoj funkcii ee
            imya,  nomer stroki v kotoroj ona opredelena, imya
            fajla i soderzhimoe stroki s opredeleniem  dannoj
            funkcii.  Rezul'tat  vydaetsya v standartnyj fajl
            vyvoda;

      -v    Poluchenie spiska imen funkcij s ukazaniem  stra-
            nic  na  kotoryh oni opredeleny (predpolagaetsya,


                            98
                   APK 00210-01 33 01-4

            chto stranica soderzhit 64 stroki);

      -u    Vyzyvaet  obnovlenie  priznakov  dlya   ukazannyh
            fajlov,  t.e.  vse  ssylki na nih udalyayutsya, i k
            fajlu dobavlyayutsya novye znacheniya. Podrazumevaet-
            sya zadanie klyucha "-a";

      -w    Podavlyaet predupreditel'nuyu diagnostiku.

      Imya golovnoj programmy  (main)  obrabatyvaetsya  osobym
      obrazom.  Vmesto imeni funkcii sozdaetsya nekotoroe us-
      lovnoe imya, kotoroe formiruetsya putem dobavleniya "M" k
      imeni fajla i udaleniya suffiksa ".c", esli on imeetsya,
      a takzhe udaleniya pervyh komponentov polnogo imeni. |to
      pozvolyaet  ispol'zovat' ctags v katalogah s bolee, chem
      odnoj programmoj.

FAJLY:
      tags  vyhodnoj fajl ssylok.







                            99
                   APK 00210-01 33 01-4

IMYA:
      date - pechat'  daty.

FORMAT :
      date

OPISANIE:
      Vydaetsya tekushchaya data i vremya v vide ggmmddchchmm.  Pole
      "gg"  zadaet  poslednie  dve cifry goda, "mm" - mesyac,
      "dd" - den', "chch" - chas (po 24-chasovoj sisteme),  vto-
      roe "mm" zadaet minuty.

FAJLY
DOPOLNITELXNYE SSYLKI:
      utmp









                           100
                   APK 00210-01 33 01-4

IMYA:
      dc - nastol'nyj kal'kulyator.

FORMAT:
      dc [fajl]

OPISANIE:
      Predstavlyaet soboj paket dlya vypolneniya arifmeticheskih
      operacij s proizvol'noj tochnost'yu. Obychno on operiruet
      s desyatichnymi celymi chislami,  odnako  mozhno  zadavat'
      vhodnoe i vyhodnoe osnovaniya sistemy schisleniya i koli-
      chestvo obrabatyvaemyh drobnyh cifr. S tochki zreniya ob-
      shchej struktury dc predstavlyaet soboj stekovyj kal'kulya-
      tor (s ispol'zovaniem obratnoj pol'skoj zapisi).  Esli
      zadan  parametr,  vvod  osushchestvlyaetsya  iz  ukazannogo
      fajla (do teh por, poka on ne zakonchitsya), a  zatem  -
      iz  standartnogo  fajla  vvoda. Raspoznayutsya sleduyushchie
      konstrukcii:

      chislo znachenie  chisla   pomeshchaetsya   v   stek.   CHislo
            predstavlyaet  soboj nepreryvnuyu stroku cifr 0-9.
            Emu mozhet  predshestvovat'  simvol  podcherkivaniya
            "_",  kotoryj  sluzhit  dlya  vvoda  otricatel'nyh
            chisel. CHisla mogut soderzhat' desyatichnuyu tochku;

      + - / * % ^
            Dva verhnih znacheniya steka skladyvayutsya (+), vy-
            chitayutsya (-), umnozhayutsya (*), delyatsya (/), opre-
            delyaetsya ostatok (%) ili  vozvodyatsya  v  stepen'
            (^).  Dva  etih znacheniya vytalkivayutsya iz steka;


                           101
                   APK 00210-01 33 01-4

            na ih mesto v steke pomeshchaetsya rezul'tat.  Drob-
            naya chast' v pokazatele steka ignoriruetsya;

      sx    Vershina steka izvlekaetsya i zapominaetsya  v  re-
            gistre  s  imenem  "x", gde v kachestve "x" mozhet
            ispol'zovat'sya lyuboj simvol. Esli bukva  S  zag-
            lavnaya,  "x"  rassmatrivaetsya kak stek, i v nego
            pomeshchaetsya dannoe znachenie;

      lx    Znachenie registra "x" pomeshchaetsya v stek.  Soder-
            zhimoe registra "x" ne izmenyaetsya. Nachal'nye zna-
            cheniya vseh registrov nulevye. Esli bukva L  zag-
            lavnaya,  registr "x" rassmatrivaetsya kak stek, i
            ego verhnee znachenie pomeshchaetsya v osnovnoj stek;

      d     Verhnee znachenie steka udvaivaetsya;

      p     Verhnee znachenie steka raspechatyvaetsya.  Verhnee
            znachenie  ostaetsya neizmennym. "P" rassmatrivaet
            vershinu steka kak stroku simvolov KOI-8, udalyaet
            i raspechatyvaet etu stroku;

      f     Raspechatyvayutsya vse znacheniya, nahodyashchiesya v ste-
            ke i v registrah;

      q     Proizvoditsya vyhod iz programmy. Pri  vypolnenii
            stroki uroven' rekursii umen'shaetsya na dva. Esli
            bukva Q zaglavnaya, iz steka izvlekaetsya  verhnee
            znachenie  i uroven' vypolneniya stroki Izmenyaetsya
            na eto znachenie;

                           102
                   APK 00210-01 33 01-4

      x     Rassmatrivaet verhnij element steka  kak  stroku
            simvolov i vypolnyaet ee kak stroku komand dc;

      X     Zamenyaet chislo v vershine steka na ego masshtabnyj
            mnozhitel';

      [...] Pomeshchaet stroku simvolov KOI-8 v skobkah v  ver-
            shinu steka;

      <x >x =x
            Verhnie dva elementa steka izvlekayutsya i sravni-
            vayutsya.  Esli oni udovletvoryayut ukazannomu otno-
            sheniyu, vypolnyaetsya registr "x";

      v     Zamenyaet verhnij element  steka  ego  kvadratnym
            kornem.  Sushchestvuyushchaya  drobnaya  chast'  parametra
            uchityvaetsya, inache masshtabnyj mnozhitel'  ignori-
            ruetsya;

      !     Ostal'naya chast' stroki rassmatrivaetsya  kak  ko-
            manda sistemy DEMOS;

      c     Iz steka izvlekayutsya vse znacheniya;

      i     Verhnee znachenie steka izvlekaetsya i ispol'zuet-
            sya  v  kachestve osnovaniya chisel dlya posleduyushchego
            vvoda. Zaglavnoe  I  pomeshchaet  v  vershinu  steka
            vhodnoe osnovanie;

      o     Verhnee znachenie steka izvlekaetsya i ispol'zuet-
            sya  v  kachestve osnovaniya chisel dlya posleduyushchego
            vyvoda. Zaglavnoe O pomeshchaet v vershinu steka vy-


                           103
                   APK 00210-01 33 01-4

            hodnoe osnovanie;

      k     Izvlekaetsya verhnee znachenie steka, kotoroe  is-
            pol'zuetsya  v kachestve neotricatel'nogo masshtab-
            nogo mnozhitelya: sootvetstvuyushchee kolichestvo pozi-
            cij  pechataetsya  pri vyvode i obrabatyvaetsya pri
            umnozhenii, delenii i vozvedenii v stepen'.  Vza-
            imovliyanie masshtabnogo mnozhitelya, vhodnogo osno-
            vaniya i vyhodnogo osnovaniya budut  imet'  smysl,
            esli vse oni izmenyayutsya odnovremenno;

      z     Uroven' steka pomeshchaetsya v stek. Zaglavnoe Z za-
            menyaet chislo v vershine steka ego dlinoj;

      ?     Iz istochnika vvoda (obychno terminal) vvoditsya  i
            vypolnyaetsya vhodnaya stroka;

      ; :   Ispol'zuetsya komandoj bc dlya operacij s massiva-
            mi.

DOPOLNITELXNYE SSYLKI:
      bc - preprocessor  dlya  dc,  obespechivayushchij  infiksnoe
      predstavlenie  i napominayushchij yazyk Si, sintaksis koto-
      rogo realizuet funkcii i udobnye struktury  upravleniya
      dlya programm.

      Imeetsya otdel'noe opisanie dc.

DIAGNOSTIKA:
      "x is unimplemented" ("x  ne  pomeshchaetsya"),  gde  x  -
      vos'merichnoe chislo.

                           104
                   APK 00210-01 33 01-4

      "stack empty" ("stek pust"), esli v steke nedostatochno
      elementov dlya vypolneniya trebuemyh funkcij.

      "out of space" ("ne hvataet  mesta"),  kogda  ischerpan
      spisok svobodnogo prostranstva (slishkom mnogo cifr).

      "out of headers" ("ne hvataet zagolovkov"), kogda  od-
      novremenno obrabatyvaetsya slishkom mnogo chisel.

      "out of pushdown"  ("ischerpan  stek"),  esli  v  steke
      slishkom mnogo elementov.

      "Nesting Depth"  ("glubina  vlozheniya"),  esli  slishkom
      mnogo urovnej vlozhennogo vypolneniya.










                           105
                   APK 00210-01 33 01-4

IMYA:
      dcon - otladchik

FORMAT:
      dcon fajl [ imya spiska ]

OPISANIE:
      Dcon yavlyaetsya otladchikom DEMOS. Komanda pozvolyaet  kak
      proveryat'  soderzhimoe fajlov, tak i dinamicheski testi-
      rovat' programmu. Obychno, kogda  ispol'zuetsya  operand
      "fajl",  proveryaetsya fajl ili programma (vyhodnoj for-
      mati proizvoditsya damp pamyati s oshibkoj ili raspechatka
      nuzhnogo fajla (nahodyashchegosya, naprimer na diske).

      "Imya spiska" - ispol'zuetsya, esli fajl  soderzhit  sim-
      vol'nuyu tablicu. Esli etot operand otsutstvuet, tabli-
      ca simvolov vybiraetsya iz samogo fajla,  imya  kotorogo
      ispol'zovano  v  komande.  Esli  net vozmozhnosti najti
      spisok imen, dcon mozhet byt' ispol'zovana, no uzhe  bez
      vozmozhnosti raboty s simvol'nymi dannymi.

      Dalee privoditsya kratkoe opisanie variantov  ispol'zo-
      vaniya  komand  dcon.  Bol'shinstvo komand dcon vklyuchayut
      adresa operandov i rezhimy  pechati.  Adresa  vyrazhenij,
      kotorye mogut byt' ispol'zovany, privedeny nizhe:

      source_name
            adres imeni-istochnika (source_name),  opredelen-
            nogo v programme;

      ;r0...;r15


                           106
                   APK 00210-01 33 01-4

            prosmotr registrov s 0 po 15;

      ;fr0...;fr6
            prosmotr  soderzhimogo  registrov   s   plavayushchej
            tochkoj 0,2,4,6;

      local_name
            imya otladchika, nachinaetsya s "#";

      number
            vos'merichnyj,   desyatichnyj,    shestnadcaterichnyj
            nomer ispol'zovaniya "S" vvodnogo formata (On, n,
            Oxn);

      .     razmeshchenie naibolee "svezhih" rezul'tatov  testi-
            rovaniya;

      ..    razmeshchenie tekushchej komandy;

      $     konec fajla;

      expr  obychnoe  vyrazhenie,  isklyuchayushchee   ispol'zovanie
            "//" v kachestve razdelitelya;

      name=expr
            ob'em pamyati dlya expr;

      function:variable
            otnositsya k lokal'noj  peremennoj  (variable)  v
            funkcii (function);

      *expr kosvennoe vyrazhenie cherez expr;

                           107
                   APK 00210-01 33 01-4

      enter(name)
            nachalo imeni funkcii;

      exit(name)
            konec imeni funkcii;

      Soderzhimoe adresov, predstavlennyh v vyrazheniyah, vyvo-
      ditsya  soglasno sleduyushchim rezhimam. Rezhim vyvoda speci-
      ficiruetsya dvumya parametrami: dlinoj simvolov i formoj
      predstavleniya.

      Dliny mogut byt' predstavleny v vide:

      -b    dlya adresuemogo bajta;

      -h    dlya adresuemogo poluslova;

      -w    dlya adresuemogo slova;

      -l    dlya adresuemogo dvojnogo slova;

      -a    dlya adresa samogo vyrazheniya.

      Rezhimy vyvoda:

      -d    dlya desyatichnyh dannyh;

      -o    dlya vos'merichnyh dannyh;

      -x    dlya shestnadcaterichnyh dannyh;

      -c    dlya simvol'nyh dannyh;

      -s    dlya stroki simvolov (ne ukazatelej);

                           108
                   APK 00210-01 33 01-4

      -i    dlya mnemoniki komandy;

      -ix   dlya rezhimov i i x;

      -v    dlya simvolov, znachenie kotoryh svyazano  s  adre-
            som.

      Mogut byt' takzhe sleduyushchie varianty:

      (new-line)
            vyvodit ".+dlina pechati";

      expr1,expr2[print-option]
            pechataet razmeshchenie vyrazhenij ot expr1 do expr2;

      +expr[print-option]
            vyvodit ".+vyrazhenie";

      -expr[print-option]
            vyvodit ".-vyrazhenie";

      ?[print-option]
            vyvodit "sled" stoka;

      *[print-option]
            vyvodit '*';

      ;psw[print-option]
            vyvodit psw;

      !DEMOS-command
            posylaet komandy DEMOS intertritatoru shell;

      {command_list}


                           109
                   APK 00210-01 33 01-4

            spisok komand;

      ;if(expr)command
            esli vyrazhenie imeet nenulevoe znachenie, command
            vypolnyaetsya;

      ;bp expr[command_command][/*comment]
            tochka preryvaniya v vyrazhenii;

      ;macro name(arg)command
            opredelyaet lokal'noe imya makroopredeleniya, koto-
            roe,  kogda  ispol'zuetsya,  podstavlyaet znachenie
            argumenta (arg);

      ;go [arg1 arg2...]
            nachinaet vypolnenie programmy, ispol'zuya ukazan-
            nye argumenty;

      ;cont [expr]
            prodolzhaet vypolnenie vyrazheniya (expr);

      ;brks vyvodit tekushchie tochki preryvaniya;

      ;clr [expr]
            rasstavlyaet tochki preryvaniya v vyrazhenii;

      ;quit ekvivalentno EOT (vyjti iz otladchika);

      ;do file
            vzyat' komandy iz fajla "file";

      ;out [file]
            nachat' kosvennyj vyvod fajla "file";


                           110
                   APK 00210-01 33 01-4

      ;save [expr][/*comment]
            osushchestvlyaet  nepreryvnoe  izmenenie  vyrazheniya.
            Esli vyrazhenie ne specificirovano, vse izmeneniya
            proishodyat nepreryvno. Izmeneniya,  data,  vremya,
            imya modifikacii zapisyvayutsya v fajl file.cmt.

      ;rst [expr]
            sohranyaet znachenie v expr otnositel'no ego  zna-
            chenij na vhode komandy dcon. Esli expr ne ukaza-
            no, sohranyaetsya razmeshchenie izmenenij;

      ;copy file
            podobno ;save isklyuchaet  sohranenie  izmenyaemogo
            fajla v file;

      ;ss [n[command]]
            odin shag  programmy,  gde  "n"  -nomer  komandy,
            posle kotoroj neobhodimo ostanovit' programmu.








                           111
                   APK 00210-01 33 01-4

IMYA:
      dd - preobrazovat' i skopirovat' fajl.

FORMAT:
      dd [klyuch = znachenie] ...

OPISANIE:
      Komanda dd kopiruet zadannyj vhodnoj fajl  v  zadannyj
      vyhodnoj  fajl s vozmozhnymi preobrazovaniyami. Po umol-
      chaniyu ispol'zuyutsya  standartnyj  fajl  vvoda  i  stan-
      dartnyj fajl vyvoda. Mozhet byt' zadan razmer bloka pri
      vvode i vyvode, chtoby ispol'zovat' preimushchestva pryamo-
      go fizicheskogo vvoda-vyvoda.

      Parametr                   znachenie

      if= Imya vhodnogo fajla  (po  umolchaniyu  -  standartnyj
          fajl vvoda).

      of= Imya vyhodnogo fajla (po  umolchaniyu  -  standartnyj
          fajl vyvoda).

      ibs=n
          Ustanavlivaet razmer bloka pri vvode ravnym n bajt
          .

      obs=n
          Ustanavlivaet razmer bloka  pri  vyvode  ravnym  n
          bajt .

      bs=n
          Ustanavlivaet razmer bloka kak dlya  vvoda,  tak  i


                           112
                   APK 00210-01 33 01-4

          dlya  vyvoda,  otmenyaya ibs i obs. Osobenno effekti-
          ven, esli ne zadano preobrazovanie  (ne  trebuetsya
          sozdanie kopii).

      cbs=n
          Razmer bufera preobrazovaniya.

      skip=n
          Propuskaet n vhodnyh zapisej pered nachalom kopiro-
          vaniya.

      files=n
          Propuskaet n vhodnyh fajlov pered nachalom  kopiro-
          vaniya.

      seek=n
          Propuskaet n zapisej  ot  nachala  vyhodnogo  fajla
          pered kopirovaniem.

      count=n
          Kopiruet tol'ko n vhodnyh zapisej.

      conv=ascii
          Vypolnyaet preobrazovanie iz koda DKOI v kod KOI-8.

      conv=ebcdic
          Vypolnyaet preobrazovanie iz koda KOI-8 v kod DKOI.

      conv=ibm
          Neskol'ko  otlichayushcheesya  preobrazovanie  KOI-8   v
          DKOI.

                           113
                   APK 00210-01 33 01-4

      conv=lcase
          Preobrazuet alfavitnye simvoly v nizhnij registr.

      conv=ucase
          Preobrazuet alfavitnye simvoly v verhnij registr.

      conv=swab
          Perestavlyaet kazhduyu paru bajtov.

      conv=noerror
          Ne prekrashchaet  obrabotku  pri  obnaruzhenii  oshibki
          chteniya.

      conv=sync
          Dopolnyaet kazhduyu vhodnuyu zapis' do razmera ibs.

      conv=...,...
          Neskol'ko preobrazovanij, razdelennyh zapyatoj.

      Tam, gde opredelyayutsya razmery, predpolagaetsya ukazanie
      chisla  bajtov. CHislo mozhet okanchivat'sya simvolami "k",
      "b" ili "w", chto oznachaet umnozhenie na 1024,4096 ili 2
      sootvetstvenno.Dlya oboznacheniya proizvedeniya para chisel
      mozhet razdelyat'sya simvolom "x".

      Parametr "cbs=n" ispol'zuetsya tol'ko togda, kogda  za-
      dany  preobrazovaniya ascii ili ebcdic. V pervom sluchae
      cbs simvolov pomeshchayutsya v bufer preobrazovaniya, preob-
      razuyutsya  v kod KOI-8 i pered pomeshcheniem etoj stroki v
      vyhodnoj fajl zaklyuchitel'nye probely  otbrasyvayutsya  i
      dobavlyaetsya simvol novoj stroki. Vo vtorom sluchae sim-

                           114
                   APK 00210-01 33 01-4

      voly KOI-8 schityvayutsya v bufer preobrazovaniya,  preob-
      razuyutsya v kod DKOI i dopolnyayutsya probelami, chtoby po-
      luchit' vyhodnuyu zapis' razmerom cbs.

      Posle zaversheniya dd soobshchaet kolichestvo polnyh  i  ne-
      polnyh vvedennyh i vyvedennyh blokov.

PRIMER:
      Sleduyushchaya komanda perepisyvaet lentu DKOI, kotoraya so-
      derzhit po desyat' 80-bajtnyh obrazov kart DKOI v bloke,
      v fajl s imenem x:

      dd if=/dev/mt580 of=h ibs=800 cbs=80 conv=ascii,lcase

      Obratite vnimanie na ispol'zovanie nebuferizirovannogo
      obmena  s magnitnoj lentoj (rmt). Komanda dd osobennno
      podhodit dlya nebuferizirovannogo vvoda-vyvoda, tak kak
      pozvolyaet  schityvat' i zapisyvat' zapisi proizvol'nogo
      razmera.

DOPOLNITELXNYE SSYLKI:
      cp, tr

DIAGNOSTIKA:
      "f+p records in (out)" ("f+p zapisej vvedeno  (vyvede-
      no)"):  kolichestvo  polnyh i nepolnyh schitannyh (zapi-
      sannyh) zapisej.

ZAMECHANIYA:
      Simvoly novoj stroki vstavlyayutsya tol'ko pri preobrazo-
      vanii  v  kod  KOI-8.Dopolnenie vypolnyaetsya tol'ko pri


                           115
                   APK 00210-01 33 01-4

      preobrazovanii v kod DKOI. |to  sledovalo  by  sdelat'
      otdel'nymi parametrami.














                           116
                   APK 00210-01 33 01-4

IMYA:
      ddutok - perekodirovka iz koda "u-cod" MNOS.

FORMAT:
      ddutok fajl ...

OPISANIE :
      Komanda  ddutok  posledovatel'no  perekodiruet  kazhdyj
      "fajl"  iz  koda  "u-cod"  i  zapisyvaet rezul'tat pod
      prezhnim imenem. Komanda rabotaet  takim  obrazom,  chto
      fajly,  soderzhashchie netekstovye simvoly ili ne soderzha-
      shchie russkih bukv ostayutsya neizmenennymi.

      "u-cod" - eto nestandartnaya kodirovka, otlichayushchayasya ot
      KOI-8  tem, chto russkie bukvy uporyadocheny po alfavitu,
      strochnye bukvy nachinayutsya s  koda  0340,  propisnye  -
      0300.

DOPOLNITELXNYE SSYLKI:
      dd






                           117
                   APK 00210-01 33 01-4

IMYA
      demsend - perforaciya dannyh dlya sistemy DEMOS.

OPISANIE
      demsend nazyvaetsya  zagruzochnyj  modul'  programmy  na
      yazyke  pl/1.  Rezul'tatom  vypolneniya etoj programmy v
      srede OS ES ili PDO yavlyaetsya perforaciya  fajla  virtu-
      al'nym perfokartochnym ustrojstvom vyvoda s napravleni-
      em perforacii na virtual'nyj  perfokartochnyj  vvod  VM
      DEMOS.  CHtenie  s perfokartochnogo vvoda i razmeshchenie v
      fajle DEMOS perforirovannyh dannyh  vypolnyaet  utilita
      vmread.  Upravlyayushchie parametry programmy demsend zapi-
      syvayutsya v pole RARM operatora  EXEC  i  imeyut  sostav
      analogichnyj sostavu zagolovka utility vmread:

      /modes; userid; destfile.

      Gde

      modes pole upravlyayushchih klyuchej vmread;

      userid
            imya  pol'zovatelya DEMOS

      destfile
            imya fajla DEMOS

      Sleduyushchij primer pokazyvaet operatory YAUZ  OS  ES  dlya
      vypolneniya programmy demsend:

      //name job ...

                           118
                   APK 00210-01 33 01-4

      //*route punch mode.dem

      //senddem exec pgm=demsend,parm='/s;petr1;blah'

      //steplib dd dsn=engtools.public.load,disp=shr

      //in dd dsn=petr1.test.blah,disp=old,dcb=(...)

      //out dd dcb=(recfm=fb,lrecl=80,blksize=80),

      // sysout=b

      Dlya polucheniya effekta raboty programmy demsend v srede
      sistemy PDO imeetsya fajl PDO nazvaniya demsend module i
      komandnaya procedura demsend exec, obespechivayushchie pol'-
      zovatel'skij interfejs s perforaciej.

DOPOLNITELXNYE SSYLKI
      vmread, send







                           119
                   APK 00210-01 33 01-4

IMYA:
      deroff - udalit' konstrukcii pif, troff, tbl i eqn.

FORMAT:
      deroff [-w] fajl ...

OPISANIE:
      Komanda deroff poocheredno schityvaet kazhdyj fajl i uda-
      lyaet  vse  komandnye  stroki pif, troff, konstrukcii s
      obratnoj kosoj chertoj,  makroopredeleniya,  konstrukcii
      eqn  (mezhdu strokami ".eq" i ".en" ili mezhdu ogranichi-
      telyami), a takzhe opisaniya tablic, i zapisyvaet ostatok
      v  standartnyj  fajl vyvoda. Komanda deroff sleduet po
      cepochkam   vklyuchennyh   fajlov   (komandy   ".so"    i
      ".nx").Esli  fajl uzhe byl vklyuchen, ".so" ignoriruetsya,
      a ".nx" zavershaet vypolnenie.  Esli  vhodnoj  fajl  ne
      ukazan,  deroff  osushchestvlyaet  chtenie  iz standartnogo
      vhodnogo fajla.

      Esli ukazan flag "-w", vyhod predstavlyaet soboj spisok
      slov,  po odnomu "slovu" (stroka bukv, cifr i apostro-
      fov, nachinayushchayasya bukvoj; apostrofy udalyayutsya) v stro-
      ke,  vse  ostal'nye  simvoly ignoriruyutsya. V ostal'nyh
      sluchayah vyhod sootvetstvuet originalu, s uchetom isklyu-
      cheniya vysheupomyanutyh konstrukcij.

DOPOLNITELXNYE SSYLKI:
      pif, eqn, tbl

ZAMECHANIYA:

                           120
                   APK 00210-01 33 01-4

      Komanda deroff ne yavlyaetsya polnym interpretatorom pif,
      vsledstvie chego utonchennye konstrukcii mogut privodit'
      k oshibkam. Bol'shinstvo oshibok privodyat k slishkom bol'-
      shomu, a ne slishkom malomu vyvodu.














                           121
                   APK 00210-01 33 01-4

IMYA:
      diff - sravnenie fajlov i spravochnikov.

FORMAT:
      diff [-l] [-r] [-s] [-cefh] [-b] spr1 spr2
      diff [-cefh] [-b] fajl1 fajl2
      diff [-dstroka] [-b] fajl1 fajl2

OPISANIE:
      Esli oba parametra yavlyayutsya spravochnikami,  diff  sos-
      tovlyaet  spiski imen soderzhashchihsya v nih fajlov (otsor-
      tirovav ih v alfavitnom poryadke) i vypolnyaet  regulyar-
      nuyu proceduru sravneniya nad tekstovymi fajlami. Esli v
      spravochnikah soderzhatsya  nesovpadayushchie  podspravochniki
      ili netekstovye fajly s odinakovymi imenami, oni pros-
      to perechislyayutsya. Tak zhe perechislyayutsya fajly, vstrecha-
      yushchiesya  tol'ko  v odnom iz spravochnikov. Pri sravnenii
      spravochnikov mozhno zadavat' sleduyushchie klyuchi:

      -l    "dlinnyj format vydachi" - kazhdyj tekstovyj  fajl
            vyvoditsya  s pomoshch'yu komandy pr.Otlichiya v fajlah
            drugih tipov nakaplivayutsya i vydayutsya posle  so-
            obshchenij o vseh tekstovyh fajlah;

      -r    komanda diff  vypolnyaetsya  rekursivno  dlya  vseh
            podspravochnikov s odinakovymi imenami;

      -s    komanda soobshchaet tol'ko o sovpadayushchih fajlah;

      -sname
            sravnenie soderzhimogo spravochnikov nachinaetsya  s


                           122
                   APK 00210-01 33 01-4

            imeni name.

      Komanda diff soobshchaet, kakie stroki dolzhny byt'  izme-
      neny  v  dvuh  fajlah,  chtoby oni sovpali. Esli vmesto
      "fajl1" ("fajl2") ukazan "-", ispol'zuetsya standartnyj
      fajl vvoda. Esli odin iz parametrov ukazyvaet na spra-
      vochnik, ispol'zuetsya tot fajl v etom spravochnike,  ch'e
      imya  sovpadaet  s imenem fajla "fajl2" ("fajl1"). Nor-
      mal'nyj vyvod soderzhit stroki sleduyushchego vida:

         n1 a n3, n4
         n1, n2 d n3
         n1, n2 s n3, n4

      |ti stroki sootvetstvuyut komandam ed dlya  preobrazova-
      niya  "fajla1"  v "fajl2". CHisla posle bukv otnosyatsya k
      fajlu "fajl2". Na samom dele, menyaya "a" na "d" i  pro-
      izvodya  chtenie v obratnom poryadke, mozhno takzhe oprede-
      lit', kak preobrazovat' "fajl2" v "fajl1". Kak i v ed,
      odinakovye pary, v kotoryh n1=n2 ili n3=n4 sokrashchayutsya
      do odnogo chisla.

      Posle kazhdoj iz etih strok sleduyut vse sootvetstvuyushchie
      stroki  pervogo fajla, otmechennye "<", a zatem vse so-
      otvetstvuyushchie stroki vtorogo fajla, otmechennye ">".

      Klyuch "-b" privodit k ignorirovaniyu zaklyuchitel'nyh pro-
      belov  i  simvolov tabulyacii, a takzhe k tomu, chto raz-
      lichnye posledovatel'nosti probelov  schitayutsya  ekviva-
      lentnymi.

                           123
                   APK 00210-01 33 01-4

      Sleduyushchaya gruppa klyuchej yavlyaetsya vzaimoisklyuchayushchej:

      -e    Privodit k sozdaniyu spiska komand a, c i  d  dlya
            redaktora  ed,  kotoryj  vossozdaet  "fajl2"  iz
            "fajla1". Sleduyushchaya programma dlya interpretatora
            komand  sovmestno  s opciej "-e" pomogaet sopro-
            vozhdat' neskol'ko versij fajla. Pod rukami nuzhno
            imet' tol'ko ishodnuyu versiyu fajla ($1) i cepoch-
            ku spiskov komand ed dlya perehoda ot odnoj  ver-
            sii  k  drugoj, poluchennyh s pomoshch'yu ed ($2, &3,
            ...).  "poslednyaya  versiya"  pomeshchaetsya  v  stan-
            dartnyj fajl vyvoda:

              (shift; cat $*; echo '1,$p') ! ed -$1 ;

      -f    Generiruet spisok analogichnyj "-e", ne ispol'zu-
            emyj s ed, i v obratnom poryadke;

      -c    Vydaet kontekst,v kotorom vstrechayutsya izmenennye
            stroki.  Po  umolchaniyu  vydaetsya tri stroki do i
            tri stroki posle razlichayushchihsya strok. CHislo  do-
            polnitel'no vydavaemyh strok mozhno zadavat'. Tak
            komanda s klyuchom "-c10", budet vydavat' 10 strok
            do   i 10 strok posle kazhdoj razlichayushchejsya stro-
            ki. Krome togo, pri zadanii "-c" vydayutsya  imena
            sravnivaemyh  fajlov s datami ih sozdaniya. Soob-
            shcheniya o kazhdom  izmenenii  razdelyayutsya  strokami
            "**********". Stroki,otsutstvuyushchie v fajle1,mar-
            kiruyutsya simvolom "-".Stroki,dobavlennye v  faj-
            l2,simvolom "+". izmenennye stroki simvolom "!";


                           124
                   APK 00210-01 33 01-4

      -Dstroka
            Sozdaet  ob'edinennuyu  versiyu  fajlov  (fajl1  i
            fajl2),  okruzhaya vse razlichayushchiesya stroki direk-
            tivami uslovnoj kompilyacii  preprocessora  yazyka
            Si.  Pri  etom  "stroka" ispol'zuetsya v kachestve
            argumenta direktiv preprocessora.  Tak,  esli  v
            fajlax file1 i file2 razlichaetsya stroka:

            long int k=1000000 /* stroka iz file1 */
            int k=1000000 /* stroka iz file2 */
            komanda:
            diff -DLONGINT file1 file2

            provodit vydachu v standartnyj vyvod fajla, v ko-
            torom  dannaya stroka budet zamenena na sleduyushchuyu
            konstrukciyu:

            #ifndef LONGINT
            long int k=1000000 /* stroka iz file1 */
            #else
            int k=1000000 /* stroka iz file2 */
            #endif

      -h    Vypolnyaet svoyu rabotu bystro i grubo. Ona  rabo-
            taet tol'ko v teh sluchayah, kogda uchastki izmene-
            nij maly i horosho otdeleny drug ot druga, odnako
            mozhet obrabatyvat' fajly neogranichennoj dliny. S
            klyuchom "-h" ne dopuskayutsya klyuchi "-e" i "-f".

      Za isklyucheniem redkih sluchaev, diff nahodit naimen'shij

                           125
                   APK 00210-01 33 01-4

      dostatochnyj nabor razlichij fajlov.

FAJLY:
      /tmp/d?????
      /usr/lib/diffh  dlya klyucha "-h".

DOPOLNITELXNYE SSYLKI:
      cmp, comm, ed

DIAGNOSTIKA:
      Kod vozvrata raven:

      0 - esli net razlichij;

      1 - esli razlichiya est';

      2 - esli vypolenie komandy neudachno.

ZAMECHANIYA:
      Spiski redaktirovaniya, generiruemye s klyuchami  "-e"  i
      "-f", ne sozdayut strok, sostoyashchih iz odnoj ".".







                           126
                   APK 00210-01 33 01-4

IMYA:
      diff3 - sravnenie treh fajlov.

FORMAT:
      diff3 [-eh3] fajl1 fajl2 fajl3

OPISANIE:
      Komanda diff3 sravnivaet tri versii fajla  i  soobshchaet
      stepeni rassoglasovaniya tekstov, otmechaemye sleduyushchimi
      kodami:

      ====  vse tri fajla razlichny;

      ====1 otlichaetsya "fajl1";

      ====2 otlichaetsya "fajl2";

      ====3 otlichaetsya "fajl3".

      Vid izmeneniya, pozvolyayushchij preobrazovat' dannyj  uchas-
      tok dannogo fajla, ukazyvaetsya odnim iz sleduyushchih spo-
      sobov:

      f:n1 a
            tekst dolzhen byt' dobavlen posle stroki s  nome-
            rom n1 v fajle "f", gde f=1, 2 ili 3.

      f:n1,n2 c
            Tekst dolzhen byt' izmenen na uchastke  ot  stroki
            n1  do stroki n2. Esli n1=n2, uchastok mozhet byt'
            sokrashchen do n1.

      Ishodnoe soderzhimoe uchastka privoditsya srazu zhe  posle


                           127
                   APK 00210-01 33 01-4

      ukazaniya  "c".  Esli soderzhimoe dvuh fajlov odinakovo,
      soderzhimoe fajla s men'shim nomerom ne vyvoditsya.

      S klyuchom "-e" diff3 sozdaet komandnyj fajl dlya  redak-
      tora ed, kotoryj vklyuchit v "fajl1" vse izmeneniya mezhdu
      fajlami "fajl2" i  "fajl3",  t.e.  izmeneniya,  kotorye
      normal'no  byli  by  pomecheny  "====" i "====3". Opciya
      "-x"  ("-3")  sozdaet  komandnyj  fajl  dlya  vklyucheniya
      tol'ko  izmenenij, otmechaemyh "====" ("====3"). Sledu-
      yushchaya komanda  primenit  poluchennyj  v  rezul'tate  ko-
      mandnyj fajl (script) k fajlu "fajl1":

      (cat script; echo '1,$p') | ed - fajl1

FAJLY:
      /tmp/d3?????
      /usr/lib/diff3

DOPOLNITELXNYE SSYLKI:
      diff

ZAMECHANIYA:
      Stroki teksta, sostoyashchie iz odnoj ".", narushayut rabotu
      "-e".

      Fajly, dlina kotoryh prevyshaet 64K bajt, ne  obrabaty-
      vayutsya.




                           128
                   APK 00210-01 33 01-4

IMYA:
      du - pechat' svedenij ob ispol'zovanii diskov.

FORMAT:
      du [-s] [-a] [imya...]

OPISANIE:
      Komanda du vydaet chislo blokov, zanimaemyh vsemi  faj-
      lami i spravochnikami (rekursivno), soderzhashchmisya vnutri
      kazhdogo zadannogo spravochnika ili  fajla  "imya".  Esli
      "imya" otsutstvuet, ispol'zuetsya ".".

      Klyuch "-s" vyzyvaet vydachu tol'ko  obshchego  itoga.  Klyuch
      "-a"  vyzyvaet  vyvod  soobshcheniya po kazhdomu fajlu. Pri
      otsutstvii  klyucha  soobshcheniya  generiruyutsya  tol'ko  po
      spravochnikam.

      Fajly, kotorye imeyut  neskol'ko  al'ternativnyh  imen,
      uchityvayutsya tol'ko odin raz.

ZAMECHANIYA:
      Esli v kachestve parametrov zadany ne spravochniki i  ne
      ukazan klyuch "-a", to oni ne raspechatyvayutsya.

      Esli imeetsya slishkom  mnogo  razlichnyh  al'ternativnyh
      imen  fajlov, komanda du uchityvaet izbytochnye fajly po
      neskol'ko raz.




                           129
                   APK 00210-01 33 01-4

IMYA:
      ES - postroitel' sredy Paskalya

FORMAT:
      ES

OPISANIE:
      ES prinimaet na standartnom vhode ishodnyj tekst prog-
      rammy  na  Paskale i izvlekaet ob'yavleniya. |ta komanda
      pozvolyaet sozdavat' sredu dlya $x-opcii kompilyacii.











                           130
                   APK 00210-01 33 01-4

IMYA:
      echo - vydacha parametrov.

FORMAT:
      echo  [-n] [param] ...

OPISANIE:
      Komanda echo zapisyvaet  svoi  parametry,  razdelennye
      probelami  i  zakanchivayushchiesya simvolom novoj stroki, v
      standartnyj fajl vyvoda. Esli ispol'zuetsya flag  "-n",
      k vyvodu ne dobavlyaetsya simvol novoj stroki.

      Komanda echo ispol'zuetsya dlya  vydachi  diagnosticheskih
      soobshchenij v programmah interpretatora komand i dlya za-
      pisi postoyannyh dannyh v potokah. Dlya posylki diagnos-
      ticheskogo soobshcheniya v standartnyj fajl oshibok vypolni-
      te komandu:

      echo "tekst soobshcheniya" 1>&2







                           131
                   APK 00210-01 33 01-4

IMYA:
      ed - strochnyj redaktor tekstov.

FORMAT:
      ed [-] [-h] [imya]

OPISANIE:
      Dlya UNIX-obraznyh sistem, ed yavlyaetsya standartnym  re-
      daktorom tekstov. Pri interaktivnoj rabote on ustupaet
      po udobstvu poliekrannomu redaktoru, no mozhet rabotat'
      s lyubymi terminalami (naprimer, s teletajpami).

      Redaktor ed rabotaet s  kopiej  redaktiruemogo  fajla.
      Sdelannye v kopii izmeneniya ne vliyayut na ishodnyj fajl
      do teh por, poka ne budet vydana komanda "w" (zapis').
      Kopiya  redaktiruemogo  teksta razmeshchaetsya vo vremennom
      fajle, nazyvaemom "buferom".

      Esli zadan parametr "imya", ukazannyj fajl  schityvaetsya
      v bufer redaktora dlya posleduyushchej obrabotki. Esli uka-
      zan klyuch "-h", pered chteniem fajla vypolnyaetsya komanda
      "x"  dlya raboty s zashifrovannymi fajlami. Klyuch "-" po-
      davlyaet pechat' poyasnitel'nyh soobshchenij i  ispol'zuetsya
      pri  vvode  instrukcij  redaktirovaniya  iz  komandnogo
      fajla.

      Komandy redaktora ed imeyut prostuyu i regulyarnuyu struk-
      turu: 0 ili neskol'ko "ukazatelej", za kotorymi sledu-
      et odnosimvol'noe "imya komandy" i, vozmozhno,  paramet-
      ry.  "Ukazateli" opredelyayut odnu ili neskol'ko strok v

                           132
                   APK 00210-01 33 01-4

      bufere. Propushchennye adresa dopolnyayutsya po umolchaniyu.

      Vo vremya raboty ed mozhet nahodit'sya libo  v  komandnom
      rezhime  (kogda  vvodimye  stroki  rassmatrivayutsya  kak
      instrukcii redaktirovaniya), libo v rezhime vvoda  (t.e.
      nabiraemaya informaciya prosto perepisyvaetsya v fajl). V
      nachale seansa redaktor nahoditsya v  komandnom  rezhime.
      Esli  byl perehod v rezhim vvoda, redaktor vosprinimaet
      tol'ko odnu komandu - vyhod iz dannogo rezhima (tochka v
      pervoj pozicii stroki).

      V redaktore ed v ogranichennom vide ispol'zuetsya  ponya-
      tie  "regulyarnogo vyrazheniya". Regulyarnoe vyrazhenie op-
      redelyaet mnozhestvo strok simvolov. Govoryat,  chto  chlen
      etogo  mnozhestva sootvetstvuet etomu regulyarnomu vyra-
      zheniyu. V privedennom  opredelenii regulyarnyh vyrazhenij
      slovo  "simvol"  oznachaet lyuboj simvol, za isklyucheniem
      simvola novoj stroki:

      1)   Lyuboj simvol, za isklyucheniem  special'nyh  simvo-
           lov, sootvetstvuet samomu sebe. Special'nymi sim-
           volami yavlyayutsya razdelitel' regulyarnyh vyrazhenij,
           znaki "[." i, inogda "^*$";

      2)   "."  sootvetstvuet lyubomu simvolu;

      3)   "
           niem cifry ili "()", sootvetstvuet etomu simvolu;

      4)   Nepustaya stroka  "s",  zaklyuchennaya  v  kvadratnye
           skobki ([s] ili [^s]), sotvetstvuet lyubomu simvo-


                           133
                   APK 00210-01 33 01-4

           lu,vhodyashchemu (ili ne  vhodyashchemu)  v  stroku  "s".
           Vnutri stroki "s" simvol "
           go znacheniya, a "]" mozhet poyavlyat'sya tol'ko v  ka-
           chestve  pervoj  bukvy. Podstroka "a-b", gde "a" i
           "b" raspolozheny v  vozrastayushchem  poryadke  otnosi-
           tel'no  russkogo  ili  latinskogo  alfavitov (dlya
           special'nyh simvolov  otnositel'no  koda  KOI-8),
           oboznachaet diapazon simvolov ot "a" do "b", vklyu-
           chitel'no;

      5)   Regulyarnoe vyrazhenie vida 1-4, za kotorym sleduet
           "*", opredelyaet posledovatel'nost' iz 0 ili bolee
           sootvetstvij etomu regulyarnomu vyrazheniyu;

      6)   Regulyarnoe vyrazhenie "x", nahodyashcheesya mezhdu  "
           i ")", sootvetstvuet tomu zhe, chto i "x";

      7)   Znak "
           toj  zhe stroke, chto i nahodyashcheesya v skobkah regu-
           lyarnoe vyrazhenie, nachinayushcheesya s n-oj "

      8)   Regulyarnoe vyrazhenie "x"  vida  1-8,  za  kotorym
           sleduet  regulyarnoe vyrazhenie "y" vida 1-7, soot-
           vetstvuet sootvetstvie dlya "x", za kotorym sledu-
           et  sootvetstvie dlya "y", prichem sootvetstvie dlya
           "x" vybiraetsya kak mozhno bol'shim, odnako dopuska-
           yushchim sootvetstvie dlya "y";

      9)   Regulyarnoe vyrazhenie  vida  1-8,  kotoromu  pred-
           shestvuet  "^" (ili za kotorym sleduet "$"), ogra-

                           134
                   APK 00210-01 33 01-4

           nicheno sootvetstviyami, nachinayushchimisya v levom (ili
           zakanchivayushchimisya v pravom) konce stroki;

      10)  Regulyarnoe  vyrazhenie  vida  1-9  vybiraet  samoe
           dlinnoe i krajnee sleva sootvetstvie v stroke;

      11)  Pustoe regulyarnoe  vyrazhenie  zamenyaet  poslednee
           vstrechennoe regulyarnoe vyrazhenie.

      Regulyarnye vyrazheniya ispol'zuyutsya v adresah dlya  opre-
      deleniya strok, a takzhe v odnoj komande (s) dlya oprede-
      leniya chasti stroki, kotoruyu nuzhno zamenit'. Esli  tre-
      buetsya  ispol'zovat'  odin  iz metasimvolov regulyarnyh
      vyrazhenij v kachestve obychnogo simvola,  etomu  simvolu
      dolzhna  predshestvovat' "
      lam, svyazyvayushchim regulyarnye vyrazheniya (chasto "/"), tak
      i k samomu simvolu "

      Dlya ponimaniya sistemy adresacii v redaktore ed neobho-
      dimo  predstavlyat'  sebe,  chto v kazhdyj moment vremeni
      sushchestvuet "tekushchaya stroka".  Voobshche  govorya,  tekushchaya
      stroka predstavlyaet soboj poslednyuyu stroku, obrabotan-
      nuyu nekotoroj komandoj, odnako tochnoe vliyanie na polo-
      zhenie   tekushchej   stroki  rassmatrivaetsya  v  opisanii
      komand. Adresa stroyatsya sleduyushchim obrazom.

      1)   Simvol "." adresuet tekushchuyu stroku;

      2)   Simvol "$" adresuet poslednyuyu stroku bufera;

      3)   Desyatichnoe chislo "n" adresuet n-uyu stroku bufera;

                           135
                   APK 00210-01 33 01-4

      4)   "/x" ukazyvaet stroku, pomechennuyu imenem "x", ko-
           toroe  dolzhno  predstavlyat'  soboj  maluyu  bukvu.
           Stroki pomechayutsya s pomoshch'yu komandy "k",  kotoraya
           opisana nizhe;

      5)   Regulyarnoe vyrazhenie, zaklyuchennoe v simvoly  "/",
           ukazyvaet  stroku, kotoraya opredelyaetsya putem po-
           iska vpered ot tekushchej stroki do  pervoj  stroki,
           soderzhashchej   posledovatel'nost'  simvolov,  soot-
           vetstvuyushchuyu dannomu  regulyarnomu  vyrazheniyu.  Pri
           neobhodimosti posle dostizheniya konca bufera poisk
           prodolzhaetsya s ego nachala;

      6)   Regulyarnoe vyrazhenie, zaklyuchennoe v  voprositel'-
           nye znaki "?", adresuet stroku, kotoraya opredelya-
           etsya putem poiska  nazad  ot  tekushchej  stroki  do
           pervoj stroki, soderzhashchej posledovatel'nost' sim-
           volov, sootvetstvuyushchuyu dannomu regulyarnomu  vyra-
           zheniyu.  Pri neobhodimosti posle dostizheniya nachala
           bufera poisk prodolzhaetsya s ego konca;

      7)   Adres, za kotorym sleduet znak "+" ili znak "-" i
           desyatichnoe chislo, opredelyaet etot adres plyus (ili
           minus)  ukazannoe  kolichestvo  strok.  Znak  plyus
           mozhet byt' opushchen;

      8)   Esli adres nachinaetsya so znaka "+" ili  "-",  vy-
           polnyaetsya  slozhenie  ili vychitanie po otnosheniyu k
           tekushchej stroke. Naprimer, "-5" oznachaet ".-5".

                           136
                   APK 00210-01 33 01-4

      9)   Esli adres zakanchivaetsya znakom "+"  ili  "-",  k
           nemu   dobavlyaetsya   (ili   vychitaetsya)   1.  Kak
           sledstvie etogo pravila i pravila  8,  adres  "-"
           otnositsya  k stroke, kotoraya predshestvuet tekushchej
           stroke. Bolee togo, znaki "+" i "-" v konce obla-
           dayut  effektom nakopleniya, tak chto "--" otnositsya
           k tekushchej stroke minus 2.

      10)  Simvol "^" v adresah ekvivalenten simvolu "-".

      Komandy mogut trebovat' ni odnogo, odin ili dva  adre-
      sa.  Komandy, v kotoryh ne trebuetsya adres, rassmatri-
      vayut nalichie adresa kak oshibku. Esli v  komandah,  gde
      trebuetsya  odin  ili dva adresa, ukazano nedostatochnoe
      kolichestvo adresov,  prinimayutsya  standartnye  adresa.
      Esli  v komande ukazano bol'she adresov, chem trebuetsya,
      ispol'zuyutsya poslednie odin ili dva adresa (v  zavisi-
      mosti ot togo, skol'ko nuzhno).

      Obychno adresa otdelyayutsya drug ot druga s pomoshch'yu zapya-
      toj  ",". Oni mogut razdelyat'sya takzhe tochkoj s zapyatoj
      ";". V etom sluchae tekushchaya stroka "."  ustanavlivaetsya
      na pervyj adres pered tem, kak interpretiruetsya sledu-
      yushchij. |ta osobennost' mozhet byt' ispol'zovana pri  op-
      redelenii nachal'noj stroki dlya pryamogo i obratnogo po-
      iska ("/", "?"). Vtoroj adres lyuboj dvuhadresnoj  pos-
      ledovatel'nosti  dolzhen sootvetstvovat' stroke, sledu-
      yushchej za strokoj, kotoraya sootvetstvuet pervomu adresu.

      V privedennom  spiske komand redaktora ed  standartnye


                           137
                   APK 00210-01 33 01-4

      adresa  ukazany  v  skobkah. Skobki ne yavlyayutsya chast'yu
      adresa, a ispol'zuyutsya lish' dlya togo, chtoby  pokazat',
      chto dannye adresa yavlyayutsya standartnymi.

      Kak otmechalos' ranee, poyavlenie v  odnoj  stroke  nes-
      kol'kih  komand v obshchem sluchae yavlyaetsya oshibkoj. Odna-
      ko, k bol'shinstvu komand mogut byt' dobavleny  komandy
      "p" ili "l", kotorye vyzyvayut raspechatku tekushchej stro-
      ki v odnom iz dvuh formatov.
       K komandam mozhet takzhe dobavlyat'sya komanda "n", koto-
      raya  vyzyvaet  pechat'  nomera stroki v vyvode komandy.
      |ti suffiksy mogut ob'edinyat'sya v lyubom poryadke.

      (.)a
      <tekst>
      .

            Komanda dozapisi - schityvaet ukazannyj  tekst  i
            dobavlyaet  ego posle stroki s ukazannym adresom.
            "." ostaetsya v poslednej vvedennoj stroke,  esli
            ona  imeetsya,  v protivnom sluchae - v adresuemoj
            stroke. V etoj komande  dopuskaetsya  adres  "0",
            pri etom tekst pomeshchaetsya v nachalo bufera.

      (.,.)c
      <tekst>
      .

            Komanda zameny udalyaet adresuemye stroki,  zatem
            schityvaet  vvodimyj  tekst, kotoryj zamenyaet eti


                           138
                   APK 00210-01 33 01-4

            stroki. "." ostaetsya v poslednej vvedenoj  stro-
            ke; esli takovyh ne bylo, ona ostaetsya v stroke,
            predshestvovavshej udalennym strokam.

      (...) d
            Komanda udaleniya udalyaet  adresuemye  stroki  iz
            bufera. Tekushchej stanovitsya stroka, pervonachal'no
            nahodivshayasya posle poslednej  udalennoj  stroki.
            Esli udalennye stroki raspolagalis' v konce, te-
            kushchej strokoj stanovitsya novaya poslednyaya stroka.

      e imya_fajla
            Komanda redaktirovaniya vyzyvaet  udalenie  vsego
            soderzhimogo  bufera  i  posleduyushchee schityvanie v
            nego fajla s ukazannym imenem. "."  ustanavliva-
            etsya  na poslednej stroke bufera. Pechataetsya ko-
            lichestvo schitannyh simvolov. "imya_fajla" zapomi-
            naetsya  dlya  vozmozhnogo ispol'zovaniya v kachestve
            standartnogo imeni fajla v posleduyushchih  komandah
            r ili w. Esli "imya_fajla" otsutstvuet, ispol'zu-
            etsya zapomnennoe imya.

      E imya_fajla
            |ta komanda vypolnyaet te zhe dejstviya, chto i  ko-
            manda  "e", za isklyucheniem togo, chto ne vydaetsya
            diagnosticheskih soobshchenij, esli posle poslednego
            izmeneniya bufera ne byla vydana komanda "w".

      f imya_fajla
            Komanda pechati imeni fajla raspechatyvaet tekushchee


                           139
                   APK 00210-01 33 01-4

            zapomnennoe    imya   fajla.   Esli   ukazyvaetsya
            "imya_fajla", tekushchee zapomnennoe imya fajla zame-
            nyaetsya na "imya_fajla".

      (1,$) g/regulyarnoe vyrazhenie/spisok komand
            V etoj komande na  pervom  shage  pomechayutsya  vse
            stroki, kotorye sootvetstvuyut zadannomu regulyar-
            nomu vyrazheniyu. Posle  etogo  dlya  kazhdoj  takoj
            stroki  vypolnyaetsya zadannyj spisok komand, pri-
            chem "."  pervonachal'no  ustanavlivaetsya  v  etoj
            stroke.  Odna  komanda  ili pervaya iz neskol'kih
            komand raspolagaetsya v toj zhe stroke, chto i  ko-
            manda  "g". Vse stroki spiska, sostoyashchie iz nes-
            kol'kih  strok,  dolzhny  zakanchivat'sya  simvolom
            "
            reblenie komand "a", "i" "c" i svyazannogo s nimi
            vvoda.  ".", zavershayushchaya rezhim vvoda, mozhet byt'
            opushchena, esli ona nahoditsya v  poslednej  stroke
            spiska komand. Komandy "g" i "v" v spiske komand
            ne dopuskayutsya.

      (.)i
      <tekst>
      .

            |ta komanda vstavlyaet zadannyj tekst pered adre-
            suemoj  strokoj. "." ostaetsya v poslednej vvodi-
            moj stroke ili, esli ee net, v stroke pered  ad-
            resuemoj  strokoj.  |ta stroka otlichaetsya ot ko-

                           140
                   APK 00210-01 33 01-4

            mandy a tol'ko mestom, kuda pomeshchaetsya tekst.

      (.,.+1)j
            |ta stroka ob'edinyaet adresuemye stroki  v  odnu
            stroku. Promezhutochnye simvoly novoj stroki pros-
            to ischezayut. "." ostaetsya v rezul'tiruyushchej stro-
            ke.

      (.)kh Komanda  markirovaniya   prisvaivaet   adresuemoj
            stroke  imya  "h",  kotoroe  dolzhno  predstavlyat'
            soboj maluyu bukvu.  Vposledstvii  dannaya  stroka
            mozhet adresovat'sya s pomoshch'yu formy adresa "'h".

      (.,.)l
            |ta komanda raspechatyvaet adresuemye stroki pod-
            robnym obrazom: negraficheskie simvoly pechatayutsya
            v vide dvuh vos'merichnyh cifr, a dlinnye  stroki
            perenosyatsya.  Komanda  "l" mozhet raspolagat'sya v
            odnoj i toj zhe stroke posle lyuboj ne svyazannoj s
            vvodom-vyvodom komandy.

      (.,.)ma
            Komanda peresylki peremeshchaet adresuemye stroki i
            pomeshchaet  ih  posle stroki, adresuemoj s pomoshch'yu
            "a". Poslednyaya iz peremeshchennyh strok  stanovitsya
            tekushchej strokoj.

      (.,.)n
            Komanda numeracii raspechatyvaet adresuemye stro-
            ki  vmeste s nomerami strok i simvolom tabulyacii

                           141
                   APK 00210-01 33 01-4

            sleva.

      (.,.)p
            |ta komanda raspechatyvaet adresuemye stroki. "."
            ostaetsya   v   poslednej  raspechatannoj  stroke.
            Komanda p mozhet raspolagat'sya v odnoj i  toj  zhe
            stroke posle lyuboj ne svyazannoj s vvodom-vyvodom
            komandy.

      (.,.)P
            |ta komanda yavlyaetsya sinonimom komandy "p".

      q     Komanda vyhoda vyzyvaet vyhod iz  redaktora  ed.
            Avtomaticheskaya zapis' v fajl ne proizvoditsya.

      Q     |ta komanda analogichna komande "q", za  isklyuche-
            niem togo, chto ne vydaetsya diagnosticheskih soob-
            shchenij, esli posle poslednego izmeneniya bufera ne
            byla vydana komanda "w".

      ($)r imya_fajla
            Komanda chteniya schityvaet ukazannyj fajl i  pome-
            shchaet rezul'tat posle adresuemoj stroki. Esli imya
            fajla ne ukazano, ispol'zuetsya  zapomnennoe  imya
            fajla,  esli  takovoe imeetsya (sm. komandy "l" i
            "f"). Imya fajla zapominaetsya, esli uzhe  ne  bylo
            zapomnennogo imeni fajla. Dlya komandy "r" dopus-
            kaetsya adres "0", kotoryj privodit k  tomu,  chto
            fajl  schityvaetsya v nachalo bufera. Esli schityva-
            nie proshlo uspeshno, pechataetsya  kolichestvo  schi-

                           142
                   APK 00210-01 33 01-4

            tannyh  simvolov.  "." ostaetsya v poslednej schi-
            tannoj iz fajla stroke.

      (.,.)s/regulyarnoe vyrazhenie/zamena/ ili
      (.,.)s/regulyarnoe vyrazhenie/zamena/g

            Komanda podstanovki prosmatrivaet kazhduyu adresu-
            emuyu  stroku  na  predmet sootvetstviya zadannomu
            regulyarnomu vyrazheniyu. Esli posle komandy ukazan
            indikator  global'nogo  zameshcheniya  "g", v kazhdoj
            stroke, v kotoroj obnaruzheno  sootvetstvie,  vse
            sootvetstvuyushchie  posledovatel'nosti simvolov za-
            meshchayutsya  ukazannoj  "zamenoj".  Esli  indikator
            global'nogo  zameshcheniya  otsutstvuet,  zamenyaetsya
            tol'ko pervaya sootvetstvuyushchaya posledovatel'nost'
            simvolov.  Esli  podstanovka ne vypolnyaetsya ni v
            odnoj iz adresuemyh strok, eto yavlyaetsya oshibkoj.
            Dlya  razdeleniya  regulyarnogo  vyrazheniya i zameny
            vmesto "/"  mozhet  ispol'zovat'sya  lyuboj  simvol
            punktuacii. "." ostaetsya v poslednej stroke, gde
            byla  vypolnena  podstanovka.   Ampersand   "&",
            vstrechayushchijsya  v zamene, zamenyaetsya strokoj sim-
            volov,  sootvetstvuyushchej  regulyarnomu  vyrazheniyu.
            Special'noe  znachenie  simvola  "&"  v ukazannom
            kontekste mozhet byt' otmeneno posredstvom ukaza-
            niya  pered nim "
            zameshchayutsya tekstom, sootvetstvuyushchim n-omu  regu-
            lyarnomu  vyrazheniyu,  zaklyuchennomu  mezhdu  " i
            ")".  Esli  imeyutsya  vlozhennye  podvyrazheniya  v


                           143
                   APK 00210-01 33 01-4

            skobkah, "n" opredelyaetsya putem podscheta sluchaev
            upotrebleniya " nachinaya sleva.  Stroki  mogut
            byt'  razdeleny  posredstvom  podstanovki  v nih
            simvolov novoj stroki. Simvoly  novoj  stroki  v
            stroke  zameny  dolzhny byt' vydeleny posredstvom
            ukazaniya pered nimi simvola "
            zaklyuchitel'nyh  razdelitelya  mogut byt' opushcheny,
            podrazumevaya suffiks "p". Special'naya forma  ko-
            mandy "s" bez posleduyushchih razdelitelej povtoryaet
            poslednyuyu  komandu  podstanovki  dlya  adresuemyh
            strok.  Posle "s" mogut sledovat' bukvy "r" (is-
            pol'zovat'  poslednee  regulyarnoe  vyrazhenie   v
            levoj  storone  vmesto poslednej komandy podsta-
            novki v levoj storone), "p" (dopolnyaet ustanovku
            suffiksa  "p" dlya predydushchej ustanovki) i g (do-
            polnyaet ustanovku suffiksa "g"). |ti bukvy mogut
            ob'edinyat'sya v lyubom poryadke.

      (.,.)t a
            |ta komanda rabotaet analogichno komande "m",  za
            isklyucheniem togo, chto kopiya adresuemyh strok po-
            meshchaetsya posle adresa "a"  (kotoryj  mozhet  byt'
            0). "." ostaetsya v poslednej stroke kopii.

      (.,.)u
            Komanda  annulirovaniya  vosstanavlivaet   bufer,
            vozvrashchaya ego v sostoyanie, kotoroe on imel pered
            poslednej komandoj modifikacii bufera. Polozhenie
            tekushchej stroki takzhe vosstanavlivaetsya. Komanda-


                           144
                   APK 00210-01 33 01-4

            mi, modificiruyushchimi bufer, yavlyayutsya "a, c, d, g,
            i, k i v". Pri anulirovanii "g" i "v" rassmatri-
            vayutsya kak odinochnye komandy modifikacii bufera.
            Komanda   anulirovaniya   yavlyaetsya  inversnoj  po
            otnosheniyu k samoj sebe. Kogda  redaktoru  ed  ne
            hvataet pamyati, polnoe annulirovanie nevozmozhno,
            i komanda "u" mozhet annulirovat' tol'ko  vliyanie
            poslednej  podstanovki  v  tekushchej stroke. Takoe
            ogranichennoe annulirovanie otnositsya takzhe  i  k
            komandnym  fajlam redaktora, kogda ed vyzyvaetsya
            s klyuchem "-".

      (1,$)v/regulyarnoe vyrazhenie/spisok komand
            |ta komanda analogichna komande "g", za  isklyuche-
            niem togo, chto spisok komand vypolnyaetsya pri na-
            chal'noj ustanovke "."  na  kazhduyu  stroku  krome
            teh,  kotorye  sootvetstvuyut regulyarnomu vyrazhe-
            niyu.

      (1,$)w imya_fajla
            Komanda zapisi zapisyvaet  adresuemye  stroki  v
            ukazannyj fajl. Esli fajl ne sushchestvuet, on soz-
            daetsya. Imya fajla zapominaetsya, esli eshche ne bylo
            zapomnennogo  imeni. Esli imya fajla ne zadaetsya,
            ispol'zuetsya zapomnennoe  imya  fajla,  esli  ono
            imeetsya  (sm.  komandy "e" i "f"). Polozhenie "."
            ne izmenyaetsya. Esli dannaya  komanda  vypolnilas'
            uspeshno, pechataetsya kolichestvo zapisannyh simvo-
            lov.


                           145
                   APK 00210-01 33 01-4

      (1,$)W imya_fajla
            |ta komanda analogichna komande "w", za  isklyuche-
            niem  togo,  chto adresuemye stroki dobavlyayutsya k
            fajlu.

      (1,$)WQ imya_fajla
            |ta komanda analogichna komande "w", za  isklyuche-
            niem  togo,  chto  zatem vypolnyaetsya komanda "q",
            osushchestvlyayushchaya vyhod iz redaktora  posle  zapisi
            fajla.

      x     Iz standartnogo  vvoda  zaprashivaetsya  stroka  s
            klyuchom.  Vposledstvii  komandy  "r",  "e"  i "w"
            budut zashifrovyvat' i rasshifrovyvat' tekst s po-
            moshch'yu  algoritma  "crypt",  ispol'zuya etot klyuch.
            Pustoj klyuch otmenyaet rezhim shifracii.

      (.+1)z
      ili
      (.+1)zn

            |ta komanda ispol'zuetsya dlya  prosmotra  bufera,
            nachinaya  s  ishodnoj  stroki. Raspechatyvaetsya 22
            (ili "n", esli ukazano) stroki. Poslednyaya  nape-
            chatannaya stroka stanovitsya tekushchej strokoj. Zna-
            chenie  "n"  zapominaetsya,  t.e.  ono  stanovitsya
            standartnym dlya posleduyushchih komand "z".

      ($)=  Raspechatyvaetsya  nomer  stroki  dlya   adresuemoj
            stroki. |ta komanda ne menyaet polozheniya ".".

                           146
                   APK 00210-01 33 01-4

      !<komanda yazyka upravleniya zadaniyami>
            CHast' stroki posle "!" peredaetsya sh dlya  vypol-
            neniya v kachestve komandy. Polozhenie "." ne menya-
            etsya.

      (.+1,.+1) <konec stroki>
            Odinochnyj adres v stroke vyzyvaet raspechatku ad-
            resuemoj   stroki.  Pustaya  stroka  ekvivalentna
            ".+1r". |to polezno dlya prohoda po tekstu.  Esli
            ukazyvaetsya  dva adresa, ne razdelyaemye tochkoj s
            zapyatoj, redaktor ed raspechatyvaet ukazannyj di-
            apazon  strok. Esli oni razdeleny tochkoj s zapya-
            toj, raspechatyvaetsya vtoraya stroka.

      Esli posylaetsya signal preryvaniya, redaktor ed pechata-
      et  "?interrupted"  ("?prervan")  i vozvrashchaetsya v ko-
      mandnyj rezhim.

      Nekotorye razmernye ogranicheniya: 512 simvolov v  stro-
      ke,  256  simvolov v spiske komand dlya komandy "g", 64
      simvola v imeni fajla. Predel kolichestva strok zavisit
      ot  razmera operativnoj pamyati: kazhdaya stroka zanimaet
      2 slova.

      Pri chtenii fajla ed otbrasyvaet simvoly nul koda KOI-8
      i vse simvoly posle poslednego simvola novoj stroki.

FAJLY:
      /tmp/e*
      edhup

                           147
                   APK 00210-01 33 01-4

      Pri zavisanii terminala zdes' sohranyaetsya protokol vy-
      polnennoj raboty.

DOPOLNITELXNYE SSYLKI:
      sed, crypt

DIAGNOSTIKA:
      "?name"  dlya nedostupnogo fajla.
      "?"      pri prochih oshibkah.

      Dlya predotvrashcheniya poteri  cennoj  informacii  komandy
      "q"  i  "e" schitayutsya oshibochnymi, esli posle poslednej
      modifikacii bufera ne byla vydana komanda "w". Povtor-
      naya komanda "q" ili "e" vypolnyaetsya vsegda.

ZAMECHANIYA:
      Komanda  "l"  nepravil'no  obrabatyvaet  simvol  "del"
      ("zaboj").

      Komanda  annulirovaniya  privodit  k  potere  metok   v
      vosstanovlennyh strokah.






                           148
                   APK 00210-01 33 01-4

IMYA:
      expand, unexpand - razvernut' (svernut') simvoly tabu-
      lyacii.

FORMAT:
      expand [-tabstop] [-tab1, tab2, ..., tabN] [fajl ... ]
      unexpand [-a] [fajl ... ]

OPISANIE:
      Komanda expand obrabatyvaet ukazannye fajly ili  stan-
      dartnyj  vvod i proizvodit zapis' v standartnyj vyvod,
      zamenyaya simvoly tabulyacii na probely. Simvoly vozvrata
      na  shag v vyvode sohranyayutsya i umen'shayut schetchik pozi-
      cij  dlya  svyazannyh  s  tabulyaciej  raschetov.  Komanda
      expand  polezna dlya predvaritel'noj obrabotki simvol'-
      nyh fajlov, soderzhashchih simvoly tabulyacii (pered sorti-
      rovkoj, prosmotrom opredelennyh stolbcov i t.p.).

      Esli zadan edinstvennyj parametr "tabstop", razmer ta-
      bulyacii   ustanavlivaetsya  ravnym  "tabstop"  probelam
      vmesto standartnogo znacheniya 8. Esli zadano  neskol'ko
      tabulyacionnyh  ostanovov, pozicii tabulyacii ustanavli-
      vayutsya v ukazannyh stolbcah.

      Komanda unexpand zamenyaet posledovatel'nosti  probelov
      na  simvoly  tabulyacii, chitaya ishodnye dannye iz stan-
      dartnogo vvoda ili (esli zadany  fajly)  iz  ukazannyh
      fajlov. Esli zadan klyuch "-a", simvoly tabulyacii vstav-
      lyayutsya vezde,gde eto vozmozhno. Po  umolchaniyu  unexpand
      zamenyaet na simvoly tabulyacii tol'ko pervye probely.


                           149
                   APK 00210-01 33 01-4

IMYA:
      expr - vychislenie parametrov kak vyrazheniya.

FORMAT:
      expr param ...

OPISANIE:
      Parametry rassmatrivayutsya kak vyrazhenie. Posle  vychis-
      leniya  rezul'tat  zapisyvaetsya  v  standartnyj  vyvod.
      Kazhdyj chlen vyrazheniya predstavlyaet soboj otdel'nyj pa-
      rametr.

      Operacii i klyuchevye slova. |tot spisok sostavlen v po-
      ryadke vozrastaniya starshinstva operacij.Operacii s odi-
      nakovym starshinstvom sgruppirovany:

      Vyr ! vyr
            Vyvodit pervoe vyrazhenie "vyr", esli ono ne pus-
            toe  i  ne ravno "0", v protivnom sluchae vyvodit
            vtoroe vyrazhenie;

      Vyr & vyr
            Esli ni odno iz vyrazhenij ne yavlyaetsya pustym ili
            "0",  vyvodit pervoe vyrazhenie, v protivnom slu-
            chae vyvodit "0";

      Vyr opotn vyr
            "Opotn" predstavlyaet soboj odnu iz operacij  ot-
            nosheniya  <,  <=, =, !=, >=, >. Vyvodit "1", esli
            ukazannoe sravnenie verno, i "0", esli ono  oshi-
            bochno. Esli oba vyrazheniya yavlyayutsya celymi, srav-


                           150
                   APK 00210-01 33 01-4

            nenie yavlyaetsya  chislennym,  inache  ono  yavlyaetsya
            leksikograficheskim;

      vyr + vyr
      vyr - vyr

            Slozhenie ili vychitanie parametrov;

      Vyr * vyr
      vyr / vyr
      vyr % vyr

            Umnozhenie, delenie ili vychislenie ostatka ot de-
            leniya parametrov;

      Vyr : vyr
            Operaciya  sravnivaet  stroku,   soderzhashchuyusya   v
            pervom  parametre,  s regulyarnym vyrazheniem, so-
            derzhashchimsya vo vtorom parametre. Sintaksis  regu-
            lyarnogo  vyrazheniya takoj zhe, kak v redaktore ed.
            Simvoly shablona .) mogut ispol'zovat'sya dlya  vy-
            bora chasti pervogo parametra. V ostal'nyh slucha-
            yah vyvoditsya kolichestvo  simvolov,  sootvetstvu-
            yushchih shablonu ("0", esli sravnenie neudachno);

      ( Vyr )
            Skobki dlya gruppirovki.

PRIMERY:
      Uvelichenie na "1" peremennoj A yazyka upravleniya  zada-
      niyami:

                           151
                   APK 00210-01 33 01-4

            A=`expr $A + 1`

      Nahozhdeniya chasti imeni fajla (mladshej chasti) iz polno-
      go  imeni  fajla,  hranyashchegosya v peremennoj A, kotoraya
      mozhet soderzhat' ili ne soderzhat' "/":

            expr $A : '.*/)' '|' $A

      V poslednem primere sdleduet obratit' vnimanie na  to,
      chto  operacii komandy expr, sovpadayushchie s metasivolami
      yazyka upravleniya zadaniyami, vzyaty v apostrofy.

DOPOLNITELXNYE SSYLKI:
      ed, sh, test

DIAGNOSTIKA:
      Komanda expr vozvrashchaet sleduyushchie vyhodnye kody:

      0 - esli vyrazhenie ne pustoe i ne ravno "0";

      1 - esli vyrazhenie pustoe ili "0";

      2 - dlya nevernyh vyrazhenij.





                           152
                   APK 00210-01 33 01-4

IMYA:
      f77 - kompilyator s yazyka FORTRAN-77.

FORMAT:
      f77 [klyuch] ... Fajl ...

OPISANIE:
      Komanda f77  predstavlyaet  soboj  kompilyator  s  yazyka
      FORTRAN-77. Raspoznayutsya parametry sleduyushchih tipov:

      -     Parametry, imena kotoryh zakanchivayutsya na  ".f",
            schitayutsya   ishodnymi   programmami   na   yazyke
            FORTRAN-77.Oni kompiliruyutsya, i kazhdaya ob'ektnaya
            programma pomeshchaetsya v fajl tekushchego spravochnika
            pod imenem, kotoroe poluchaetsya iz imeni ishodno-
            go fajla putem zameny ".f" na ".o";

      -     Parametry, imena kotoryh zakanchivayutsya  na  ".r"
            ili  ".e",  schitayutsya  ishodnymi  programmami na
            yazykah RATFOR ili EFL sootvetstvenno.Oni  sperva
            preobrazuyutsya  sootvetstvuyushchim preprocessorom, a
            zatem kompiliruyutsya s pomoshch'yu f77;

      -     Analogichno, parametry, imena kotoryh  zakanchiva-
            yutsya na ".c" ili ".s", schitayutsya ishodnymi prog-
            rammami na yazyke Si ili assemblere.Oni  kompili-
            ruyutsya ili assembliruyutsya, sozdavaya fajly ".o".

      Privedennye  klyuchi imeyut to zhe samoe znachenie, chto i v
      komande  cc. Opisanie klyuchej, zadayushchih rezhimy zagruzki
      soderzhitsya v ld:


                           153
                   APK 00210-01 33 01-4

      -c    Podavlyaet zagruzku i sozdaet fajl ".o" dlya  kazh-
            dogo ishodnogo fajla;

      -d    Kompilyator formiruet  dopolnitel'nye  komandy  i
            informaciyu v ob'ektnom fajle dlya simvol'nogo ot-
            ladchika cdebug.

      -p    Podgotovit' ob'ektnye fajly  dlya  profilirovaniya
            (sm. komandu prof);

      -O    Vyzvat' optimizator ob'ektnogo koda;

      -S    Skompilirovat' ukazannye  programmy  i  ostavit'
            assemblernyj  vyhod  v  sootvetstvuyushchih fajlah s
            suffiksami ".s". (fajly ".o" ne sozdayutsya);

      -f    Ispol'zovat'  interpretator  plavayushchej  zapyatoj,
            krome  togo,  podklyuchaetsya  variant kompilyatora,
            kotoryj mozhet rabotat' na mashinah bez processora
            plavayushchej zapyatoj.

      -o vyvod
            Prisvaivaet vyhodnomu fajlu redaktora svyazej  ld
            imya "vyvod" vmesto "a.out";

      Sleduyushchie klyuchi yavlyayutsya specificheskimi dlya f77:

      -onetrip
            Kompiliruet cikly do, kotorye, poluchiv  upravle-
            nie,  vypolnyayutsya  po  krajnej mere odin raz. (V
            FORTRANe-77 cikly do voobshche ne vypolnyayutsya, esli
            verhnyaya granica men'she, chem nizhnyaya);


                           154
                   APK 00210-01 33 01-4

      -u    Ustanavlivaet  tip   neopredelennyh   peremennyh
            "undefined"   vmesto  ispol'zovaniya  standartnyh
            pravil yazyka FORTRAN;

      -w    Podavlyaet vse predupreditel'nye soobshcheniya.  Esli
            etot  klyuch  imeet vid "-w66", podavlyayutsya tol'ko
            predupreditel'nye soobshcheniya otnositel'no sovmes-
            timosti  s yazykom FORTRAN-66. Klyuch "-wki" podav-
            lyaet  predupreditel'nye  soobshcheniya   o   russkih
            bukvah v identifikatorah;

      -U    Po umolchaniyu propisnye bukvy v identifikatorah i
            v  klyuchevyh  slovah perevodyatsya v strochnye. Klyuch
            "-U" blokiruet perevod, chto pozvolyaet  razlichat'
            propisnye  i  strochnye  bukvy v identifikatorah.
            Klyuchevye slova v etom sluchae  zapisyvayutsya  pro-
            pisnymi bukvami;

      -O<cifra>
            Razreshit' vynesenie  peremennyh  ciklov  na  re-
            gistry s cel'yu optimizacii. Odnovremenno vklyucha-
            etsya rezhim "-O". <cifra>  opredelyaet  chislo  re-
            gistrov: 1 ili 2;

      -I2 -I4 -Is
            Flagi vliyayut na razmer  celyh  peremennyh:  flag
            "-I2"  ustanavlivaet tip "integer" ekvivalentnym
            "integer*2", "-I4" - "integer*4".  Po  umolchaniyu
            ustanovlen  rezhim "-I4" (v sootvetstvii so stan-
            dartom  peremennye  tipov  "integer"  i   "real"


                           155
                   APK 00210-01 33 01-4

            dolzhny  zanimat' odinakovuyu pamyat'). Rezhim "-Is"
            razreshaet kompilyatoru v rezhime  "-I4"  vychislyat'
            indeksy v predpolozhenii, chto oni nahodyatsya v di-
            apazone chisel tipa "integer*2";

      -v    V etom rezhime kompilyator soobshaet ob nachale oche-
            rednyh etapov translyacii(F77PASS, PASS1, AS, LD,
            C), a takzhe vydaet versiyu kompilyatora;

      -V    Otladochnyj rezhim raboty kompilyatora.  Raspechaty-
            vayutsya  komandy  "shell", zapuskaemye v processe
            translyacii vmeste so svoimi parametrami;

      -T<simvol><imya-komponenty>
            Zamenit' kakoj to prohod kompilyatora na  ukazan-
            nuyu  programmu.  Sluzhit  dlya otladki kompilyatora
            ili vyzova drugih ego versij. <simvol> oboznacha-
            et sleduyushchie komponenty translyatora:

            "0" - f77 prohod 0;
            "1" - f77 prohod 1;
            "2" - c1 (si-kompilyator, prohod 1);
            "o" - c2 (optimizator koda);
            "a" - as (assembler);
            "l" - ld (redaktora svyazej);
            "f" - golovnoj razdel (vmesto /lib/crt0);
            "m" - makroprocessor m4.

            Sleduet imet' v vidu, chto flag "-f" perenaznacha-
            et komponenty "1" i "f".

                           156
                   APK 00210-01 33 01-4

      -F    Obrabotat' sootvetstvuyushchie fajly preprocessorami
            RATFOR  i EFL, pomestit' rezul'tat v fajl s suf-
            fiksom ".f", no ne kompilirovat' rezul'tat;

      -m    Primenit'  k  kazhdomu  fajlu   ".r"   ili   ".e"
            preprocessor  m4 pered obrabotkoj ego preproces-
            sorami RATFOR i EFL;

      -ex   Ispol'zovat' stroku "x" kak klyuch dlya EFL pri ob-
            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.   Segment   dannyh
            peremeshchaetsya na granicu pervyh 4K, sleduyushchih  za
            tekctovym cegmentom;

      -o    Parametr "imya" posle opcii "-o"  ispol'zuetsya  v
            kachestve   imeni   vyxodnogo   fajla  ld  vmecto
            "a.out";

      -r    Generiruet bity peremeshcheniya  v  vyhodnom  fajle,
            tak  chto on mozhet uchastvovat' v posleduyushchem pro-
            gone ld. |tot flag predotvrashchaet  takzhe  okoncha-
            tel'noe  opredelenie  obshchih simvolov i podavlyaet
            diagnosticheskie      soobshcheniya      otnositel'no
            neoppedelennyx cimvolov;

      -s    Udalyaet iz rezul'tiruyushchego fajla tablicu  simvo-
            lov  i  bity  peremeshcheniya s cel'yu ekonomii mesta
            (cenoj snizheniya poleznosti otladchikov). |ta  in-
            formaciya  mozhet  byt'  udalena  takzhe  s pomoshch'yu
            komandy strip;

      -u    Rassmatrivaet sleduyushchij parametr kak simvol, ko-
            toryj vvoditsya v kachestve neopredelennogo v tab-
            licu simvolov. |to udobno dlya  zagruzki  celikom
            iz  biblioteki,  poskol'ku pervonachal'no tablica
            simvolov pusta, a dlya zagruzki pervoj  ppogpammy
            tpebyetcya nepazpeshennaya ccylka;


                            13
                   APK.00210-01 33 01-5

      -X    Sohranyaet lokal'nye simvoly, za isklyucheniem teh,
            ch'i imena nachinayutsya s bukvy "$".  |tot klyuch is-
            pol'zuetsya komandoj cc dlya otbrasyvaniya sgeneri-
            rovannyh  pri  obrabotke metok s sohraneniem pri
            etom  simvolov,  lokal'nyh  dlya   programmy.   B
            tablicy   cimvolov   pomeshchayutcya  tol'ko  vneshnie
            cimvoly;

      -x    Ne pomeshchaet lokal'nye (ne .globl) simvoly v  vy-
            hodnoj  fajl.  |ta  opciya  ekonomit opredelennoe
            mesto v vyhodnom fajle.

FAJLY:
      /lib/lib*.a     biblioteki
      /usr/lib/lib*.a dopolnitel'nye biblioteki
      a.out           vyhodnoj fajl

DOPOLNITELXNYE SSYLKI :
      as, ar, cc, ranlib, ldover







                            14
                   APK.00210-01 33 01-5

IMYA:
      learn - obuchenie rabote s sistemoj.

FORMAT:
      learn [-sprav.] [kurs [urok [skor.]]]

OPISANIE:
      Komanda learn predostavlyaet vozmozhnost' teoreticheskogo
      i prakticheskogo obucheniya ispol'zovaniyu sistemy DEMOS c
      pomoshch'yu |VM. Dlya nachala prosto vvedite "learn".  Prog-
      ramma  budet zadavat' voprosy, chtoby vyyasnit', chego vy
      hotite. Voprosov mozhno izbezhat', ukazav nazvanie "kur-
      sa"  obucheniya  i  nomer poslednego "uroka", kotoryj vy
      vypolnili vo vremya predydushchego seansa. Vy mozhete takzhe
      ukazat' parametr "skorost'", kotoryj vam postoyanno so-
      obshchaet learn vmeste s nomerom vypolnennogo uroka. Esli
      v  kachestve "uroka" ukazan "-", komanda learn zaprashi-
      vaet k kakomu uroku sleduet perejti; eto  polezno  pri
      otladke kursov obucheniya.

      V nastoyashchee vremya dostupny sleduyushchie "kursy":

      keyboard
            rabota s funkcional'noj klaviaturoj;

      files osnovnye komandy OS DEMOS;

      morefiles
            prodolzhenie izucheniya komand OS DEMOS;

      C     programmirovanie na yazyke Si.

                            15
                   APK.00210-01 33 01-5

      Special'naya komanda "poka"  zavershaet  seans  svyazi  s
      learn.

      Klyuch "-spravochnik" pozvolyaet rabotat' s kursami obuche-
      niya, razmeshchennymi ne v standartnom spravochnike sistemy
      learn.

FAJLY:
      /mnt/learn

ZAMECHANIYA:
      Osnovnoj effekt komandy learn, zaklyuchaetsya v tom,  chto
      obychenie  ppovoditcya  na  modeli  OC,na toj ee vepcii,
      kotopaya cejchac ustanovlena na |VM.  Vo  vremya  pervogo
      seansa  ochen'  polezno,  ocobenno dlya neppogpammictov,
      ecli pyadom bydet naxodit'cya specialist po sisteme.

      Pri sostavlenii  nekotoryh urokov mogli byt'  dopushcheny
      oshibki, inogda komponenta v konkretnoj versii OS rabo-
      taet po-drugomu; takie  uroki  mogut  byt'  propushcheny,
      hotya  trebuetsya opredelennyj navyk dlya togo, chtoby ot-
      lichit' dopushchennuyu obuchaemym  oshibku  ot  "raznochteniya"
      komponent.





                            16
                   APK.00210-01 33 01-5

IMYA:
      lex - generator programm leksicheskogo analiza.

FORMAT:
      lex [-tvfn] [fajl]...

OPISANIE:
      Komanda lex generiruet programmy,  kotorye  mogut  is-
      pol'zovat'sya dlya prostogo leksicheskogo analiza teksta.
      Vhodnye fajly (po umolchaniyu - standartnyj vvod) soder-
      zhat regulyarnye vyrazheniya, kotorye dolzhny otyskivat'sya,
      i dejstviya, zapisannye na yazyke Si, kotorye dolzhny vy-
      polnyat'sya pri nahozhdenii etih vyrazhenij.

      Generiruetsya ishodnaya programma  "lex.yy.s"  na  yazyke
      Si, kotoraya dolzhna kompilirovat'sya sleduyushchim obrazom:

            cc lex.yy.c -ll

      Pri rabote etoj programmy proizvoditsya kopirovanie ne-
      raspoznannyh  porcij  vhodnyh dannyh na vyhod, a takzhe
      vypolnenie sootvetstvuyushchih dejstvij, opisannyh na yazy-
      ke Si, dlya kazhdogo regulyarnogo vyrazheniya, kotoroe bylo
      raspoznano.

      Privedennaya nizhe programma na yazyke lex vypolnyaet pre-
      obrazovanie  iz  verhnego  registra  v nizhnij, udalyaet
      probely v konce strok i zamenyaet neskol'ko probelov na
      odin:

        %%

                            17
                   APK.00210-01 33 01-5

        [A-Z] putchar(yytext[0]+'a'-'A');
        [ ]+$
        [ ]+ putchar(' ');

      Komanda imeyut sleduyushchie parametry:

      -t    pomestit' rezul'tat v standartnyj fajl vyvoda, a
            ne v fajl lex.yy.s;

      -v    vydat' razmery vnutrennih tablic;

      -n    ne vydavat' razmery tablic  (ustanavlivaetsya  po
            umolchaniyu);

      -f    "bystraya" kompilyaciya, ne provoditsya upakovka re-
            zul'tiruyushchih  tablic.  Goditsya  tol'ko dlya malyh
            programm.

      -d    vklyuchenie otladochnogo rezhima  kompilyatora  (klyuch
            mozhet  zadavat'sya tol'ko pri ispol'zovanii diag-
            nosticheskogo varianta lex).

DOPOLNITELXNYE SSYLKI :
      yacc






                            18
                   APK.00210-01 33 01-5

IMYA:
      ln - sozdanie al'ternativnyh imen.

FORMAT:
      ln imya1 [imya2] ...[imya n] [d2]

OPISANIE:
      Odin i tot zhe fajl (vmeste so svoim razmerom, informa-
      ciej,  otnosyashchejsya  k zashchite, i t.d.) mozhet imet' nes-
      kol'ko al'ternativnyh imen. Ne sushchestvuet sposoba  ot-
      lichit'  al'ternativnoe imya dannogo fajla ot ego ishod-
      nogo imeni, lyubye izmeneniya v fajle vypolnyayutsya  neza-
      visimo ot imeni, pod kotorym izvesten etot fajl.

      Komanda ln cozdaet dlya kazhdogo ykazannogo  fajla  "imya
      1",...,"imya   n"  al'tepnativnoe  imya  v  cyshchectvyyushchem
      cppavochnike "d2". Ecli v kachectve  argumentov  komandy
      zadany  "imya  1" i "imya 2", to dlya sushchestvuyushchego fajla
      "imya 1" cozdaetcya al'tepnativnoe imya "imya 2" v tekyshchem
      kataloge.

ZAMECHANIYA:
      Sozdavat' al'ternativnye imena spravochnikov,  ili  po-
      meshchat'  imena fajlov v raznyh fajlovyh sistemah zapre-
      shchaetsya.

DOPOLNITELXNYE SSYLKI :
      rm



                            19
                   APK.00210-01 33 01-5

IMYA:
      lock - blokirovat' terminal.

FORMAT:
      lock

OPISANIE:
      Komanda lock zaprashivaet u pol'zovatelya parol',  zatem
      pechataet  na terminale "Again" i blokiruet etot termi-
      nal do teh por, poka parol' ne budet ukazan  povtorno.
      Esli  pol'zovatel'  zabudet  parol', u nego net drugoj
      vozmozhnosti, krome  kak  zaregistrirovat'sya  gde-to  v
      drugom meste i zavershit' blokiruyushchij process.










                            20
                   APK.00210-01 33 01-5

IMYA:
      logoff - vyhod iz sistemy DEMOS.

FORMAT:
      logoff

OPISANIE:
      Komanda logoff prednaznachena dlya  vyhoda  pol'zovatelya
      iz  sistemy  DEMOS. Vyhod iz sistemy po komande logoff
      proishodit iz lyubogo urovnya fajlovoj sistemy DEMOS.

      Priznakom vyhoda iz sistemy DEMOS  sluzhit  izobrazhenie
      na ekrane displeya "zastavki" s identifikaciej SVM ES.









                            21
                   APK.00210-01 33 01-5

IMYA:
      look - poisk strok v otsortirovannom spiske.

FORMAT:
      look [-df] stroka [fajl]

OPISANIE:
      Komanda look prosmatrivaet  otsortirovannyj  "fajl"  i
      pechataet  vse stroki, nachinayushchiesya simvolami "stroka".
      Ispol'zuetsya dvoichnyj poisk. Opcii "d" i "f" vliyayut na
      sravnenie, kak i v sort:

      d     "slovarnyj" poryadok: tol'ko bukvy, cifry, simvo-
            ly tabulyacii i probely uchastvuyut v sravnenii;

      f     Ignoriruetsya  registr  simvolov.  Bol'shie  bukvy
            schitayutsya pri sravnenii ravnymi malym.

DOPOLNITELXNYE SSYLKI :
      sort, grep







                            22
                   APK.00210-01 33 01-5

IMYA:
      lorder - opredelit' svyazi ob'ektnyh fajlov.

FORMAT:
      lorder fajl ...

OPISANIE:
      Vhodnaya informaciya predstavlyaet soboj  odin  ili  nes-
      kol'ko  ob'ektnyh bibliotechnyh ili arhivnyh  fajlov. V
      rezul'tate raboty poluchaetsya spisok par imen ob'ektnyh
      fajlov.  Pervyj fajl pary ssylaetsya na vneshnij identi-
      fikator, opredelennyj vo vtorom. Vyhod mozhet byt'  ob-
      rabotan  komandoj  tsort dlya nahozhdeniya takogo poryadka
      razmeshcheniya modulej v biblioteke, kotoryj  obespechivaet
      odnoprohodnyj poisk dlya ld.

      Sleduyushchaya stroka prednaznachena  dlya  postroeniya  novoj
      biblioteki iz sushchestvuyushchih fajlov ".o":

            ar cr library `lorder *.o | tsort`

DOPOLNITELXNYE SSYLKI :
      tsort, ld, ar

ZAMECHANIYA:
      imena ob'ektnyh fajlov kak vnutri, tak  i  vne  bibli-
      otek, dolzhny imet' okonchanie ".o" - v protivnom sluchae
      rezul'tat budet bessmyslennym.



                            23
                   APK.00210-01 33 01-5

IMYA:
      lpq - vydat' coctoyanie ochepedi k ACPU.

FORMAT:
      lpq

OPISANIE:
      Komanda lpq vydaet sootoyanie ocheredi fajlov, ozhidayushchih
      vyvoda  na  ACPU.  Kazhdyj  element ocheredi vydaetsya, s
      ukazaniem imeni dannogo fajla, razmera fajla v  simvo-
      lah,  vladel'ca i identifikacionnogo nomera. Identifi-
      kator polezen dlya udaleniya zadannogo vhoda iz  ocheredi
      s pomoshch'yu komandy lprm.

FAJLY:
      /usr/spool/lpd/*

DOPOLNITELXNYE SSYLKI :
      lpr, lprm







                            24
                   APK.00210-01 33 01-5

IMYA:
      lpr - postanovka fajla v ochered' na pechat'.

FORMAT:
      lpr [-m] [-c] [-r] [-b zagolovok] [imya...]

OPISANIE:
      Komanda lpr vyzyvaet zanesenie ukazannyh fajlov v oche-
      red'  na  pechat'.  Esli  fajly ne ukazany, schityvaetsya
      standartnyj fajl vvoda.

      Klyuchi opredelyayut sleduyushchie rezhimy vypolneniya komandy:

      -m    posle zaversheniya pechati fajla pol'zovatelyu posy-
            laetsya soobshchenie s pomoshch'yu mail;

      -c    po umolchaniyu, fajly, kotorye trebuetsya vydat' na
            ACPU, kopiruyutsya v spravochnik /tmp/spool/lpd - v
            etom rezhime v /tmp/spool/lpd  poyavlyaetsya  tol'ko
            ssylka na fajl i kopirovaniya ne proishodit;

      -r    posle zaversheniya pechati ukazannye fajly udalyayut-
            sya;

      -b    Po umolchaniyu, pered kazhdym fajlom pechataetsya za-
            golovok,  kotoryj soderzhit imya pol'zovatelya, za-
            pustivshego dannuyu komandu i vremya vydachi. V etom
            rezhime  zagolovok dopolnyaetsya slovom, opredelen-
            nym v parametre "zagolovok", kotoroe  pechataetsya
            bol'shimi bukvami v seredine lista. Pechataetsya ne
            bolee 14 simvolov "zagolovka".

                            25
                   APK.00210-01 33 01-5

FAJLY:
      /usr/spool/lpd/*
      /usr/lib/lpd     "demon" pechati
      /usr/lib/lpf     fil'tr dlya obrabotki
                   zagolovkov i podcherkivanij

DOPOLNITELXNYE SSYLKI :
      lpq, lprm

ZAMECHANIYA:
      V rezhime -c, pri nevozhmozhnosti zavesti ssylku  (ishod-
      nyj  fajl  nahoditsya  v drugoj fajlovoj sisteme), fajl
      vse-taki kopiruetsya.

      V dannoj versii ne realizovano povtorenie pechati fajla
      pri sboe ACPU.








                            26
                   APK.00210-01 33 01-5

IMYA:
      lprm - udalit' fajl iz ocheredi k ACPU.

FORMAT:
      lprm [identifikator...] [imya-fajla...] [vladel'ca...]

OPISANIE:
      Komanda lprm udalyaet fajl iz ocheredi k  ACPU.  Identi-
      fikatop,  imya-fajla ili vladel'ca konkpetnogo fajla iz
      ochepedi mozhno uznat' s pomoshch'yu komandy lpq. Vse fajly,
      udovletvoryayushchie   zadannomu  usloviyu,  budut  udaleny.
      Vydaetsya identifikator kazhdogo udalennogo  iz  ocheredi
      fajla.

DOPOLNITELXNYE SSYLKI :
      lpr, lpq

FAJLY
      /usr/spool/lpd/*







                            27
                   APK.00210-01 33 01-5

IMYA:
      ls - vydat' soderzhimoe spravochnika.

FORMAT:
      ls [-1ACFRabcdfgilmnqrstux] imya ... l [klyuchi  ls]  imya
      ...

OPISANIE:
      Dlya kazhdogo parametra, yavlyayushchegosya imenem spravochnika,
      komanda  ls  vydaet  spisok  vhodyashchih  v nego fajlov i
      spravochnikov.  Dlya  kazhdogo   parametra,   yavlyayushchegosya
      fajlom,  komanda  ls  povtoryaet ego imya i soobshchaet vsyu
      ostal'nuyu zatrebovannuyu informaciyu. Po  umolchaniyu  vy-
      hodnaya  informaciya  sortiruetsya  v alfavitnom poryadke.
      Esli parametry ne ukazany, vydaetsya soderzhimoe tekushche-
      go spravochnika.

      Imeetsya  tri  vozmozhnyh  formata  vydachi.   Vybiraemyj
      format  zavisit ot togo, napravlyaetsya li vyvod na ter-
      minal, a takzhe mozhet  upravlyat'sya  s  pomoshch'yu  klyuchej.
      Standartnym  formatom  dlya vydachi na terminal yavlyaetsya
      vyvod v neskol'ko stolbcov .Esli vyvod proizvoditsya ne
      na  terminal,  po umolchaniyu vydaetsya po odnomu imeni v
      stroke. Krome togo, s pomoshch'yu klyucha "-m", mozhet  zada-
      vat'sya format, v kotorom imena fajlov vydayutsya poperek
      stranicy, razdelyayas' simvolami ",". Pri vyzove  "l"  ,
      po umolchaniyu podrazumevaetsya klyuch "-m".

      Fajly, kotorye rassmatrivayutsya ne kak soderzhimoe spra-
      vochnika,  vsegda  sortiruyutsya poperek stranicy, a ne v


                            28
                   APK.00210-01 33 01-5

      stolbcah tablicy sverhu vniz. |to svyazano s  tem,  chto
      imena otdel'nyh fajlov mogut imet' proizvol'nuyu dlinu.
      Imeetsya neskol'ko klyuchej:

      -l    Vydavat' "v dlinnom formate", ukazyvaya dlya  kazh-
            dogo  fajla  ego rezhim, chislo svyazej, vladel'ca,
            razmer v bajtah i vremya  poslednej  modifikacii.
            Esli fajl yavlyaetsya special'nym fajlom, pole raz-
            mera budet soderzhat' osnovnoj  i  dopolnitel'nyj
            nomera ustrojstva;

      -t    Otsortirovat' v sootvetstvii so vremenem modifi-
            kacii  (vnachale s bolee pozdnim vremenem modifi-
            kacii) vmesto obychnoj sortirovki po imenam;

      -a    Vydavat' vse imena (obychno imena fajlov  nachina-
            yushchiesya s tochki "." ne vydayutsya);

      -s    Ukazat' razmer dlya kazhdogo imeni v blokah, vklyu-
            chaya bloki kosvennoj adresacii;

      -d    Esli parametr yavlyaetsya imenem spravochnika, vyda-
            vat'  tol'ko ego imya, a ne soderzhimoe (ispol'zu-
            etsya glavnym obrazom s "-l" dlya polucheniya sosto-
            yaniya spravochnika);

      -r    Izmenit' poryadok sortirovki na  protivopolozhnyj,
            chtoby  poluchit'  fajly v obratnom alfavitnom po-
            ryadke ili vnachale bolee starye fajly;

      -u    Ispol'zovat'  vremya  poslednego  dostupa  vmesto

                            29
                   APK.00210-01 33 01-5

            vremeni  poslednej  modifikacii  pri  sortirovke
            (-t) ili raspechatke (-l);

      -i    Ukazat' v pervoj pozicii soobshcheniya  dlya  kazhdogo
            perechislyaemogo fajla i-nomer;

      -f    Privodit k tomu, chto kazhdyj parametr interpreti-
            ruetsya  kak  imya  spravochnika, i raspechatyvaetsya
            imya, nahodyashcheesya v  kazhdoj  pozicii.  |tot  klyuch
            otklyuchaet klyuchi "-l", "-t", "-s" i "-r", i vklyu-
            chaet klyuch "-a"; poryadok takoj, v  kotorom  imena
            nahodyatsya v spravochnike;

      -g    Ukazat' identifikator gruppy vmesto  identifika-
            tora vladel'ca pri podrobnoj vydache ("-l");

      -m    Ispol'zuetsya potokovyj vyhodnoj format;

      -1    Ispol'zuetsya format s  odnim  imenem  v  stroke,
            naprimer, pri vyvode na terminal;

      -c    Ispol'zuetsya vyvod v neskol'ko stolbcov,  napri-
            mer, pri vyvode v fajl ili v potok (pipe);

      -q    Vyzyvaet pechat' simvola "?"  vmesto  neizobrazha-
            emyh simvolov v imenah fajlov; eto obychno proiz-
            voditsya, esli vyhodnym ustrojstvom yavlyaetsya ter-
            minal;

      -x    Vyzyvaet  sortirovku  sostoyashchej  iz   neskol'kih
            stolbcov  vydachi  poperek  stranicy, a ne sverhu
            vniz; takoj format  yavlyaetsya  standartnym,  esli


                            30
                   APK.00210-01 33 01-5

            poslednim simvolom imeni, s kotorym byla vyzvana
            programma, yavlyaetsya "x";

      -A    Bydayutcya vce imena tekyshego kataloga (analogichno
            "-a") krome '.' i '..' ;

      -F    K imenam  spravochnikov  pri  vydache  dobavlyaetsya
            simvol "/"; imena ispolnyaemyh fajlov dopolnyayutsya
            simvolom "*";

      -R    Rekursivnaya vydacha soderzhimogo vseh vstrechayushchih-
            sya spravochnikov.

      Status fajla, vydavaemyj pri ukazanii klyucha "-l", sos-
      toit  iz  11 simvolov, kotorye interpretiruyutsya sledu-
      yushchim obrazom. Pervym simvolom yavlyaetsya:

      d     Esli dannyj fajl yavlyaetsya spravochnikom;

      b     Esli dannyj  fajl  yavlyaetsya  special'nym  fajlom
            blochnogo tipa;

      c     Esli dannyj  fajl  yavlyaetsya  special'nym  fajlom
            simvol'nogo tipa;

      -     Esli dannyj fajl yavlyaetsya prostym fajlom.

      Sleduyushchie 9 simvolov interpretiruyutsya kak  tri  nabora
      po tri simvola v kazhdom. Pervyj nabor ukazyvaet polno-
      mochiya vladel'ca, sleduyushchij - polnomochiya drugih pol'zo-
      vatelej  toj  zhe gruppy, i poslednij - polnomochiya vseh
      prochih pol'zovatelej. V kazhdom takom nabore tri simvo-

                            31
                   APK.00210-01 33 01-5

      la ukazyvayut polnomochiya sootvetstvenno dlya chteniya, za-
      pisi i vypolneniya dannogo  fajla  kak  programmy.  Dlya
      spravochnika  polnomochie  "vypolnenie" interpretiruetsya
      kak razreshenie poiska v kataloge zadannogo fajla. Pol-
      nomochiya zadayutsya sleduyushchim obrazom:

      r     esli fajl dostupen dlya chteniya;

      w     esli fajl dostupen dlya zapisi;

      x     esli fajl dostupen dlya vypolneniya;

      -     esli ukazannyj vid dostupa ne razreshaetsya.

      Simvol polnomochiya dlya vypolneniya  gruppoj  ukazyvaetsya
      kak  "s", esli etot fajl imeet rezhim ustanovki identi-
      fikacii gruppy; analogichno, simvol polnomochiya dlya  vy-
      polneniya  pol'zovatelem ukazyvaetsya kak "s", esli fajl
      imeet rezhim ustanovki identifikacii pol'zovatelya.

      Poslednim simvolom rezhima (obychno "x" ili "-") yavlyaet-
      sya "t", esli ustanovlen bit rezhima 1000.

      Kogda raspechatyvayutsya razmery  fajlov  v  spravochnike,
      vydaetsya  obshchee  kolichestvo blokov, vklyuchaya bloki kos-
      vennoj adresacii.

ZAMECHANIYA:
      Simvoly tabulyacii  i  novoj  stroki  v  imenah  fajlov
      rassmatrivayutsya kak pechataemye simvoly.

      Predpolagaetsya, dlina stroki ustrojstva  vyvoda  ravna

                            32
                   APK.00210-01 33 01-5

      80 poziciyam. SHirina stolbcov sostavlyaet obychno 15 sim-
      volov. Esli zadany klyuchi "-i" ili "-s", shirina sostav-
      lyaet  20 simvolov. Esli odnovremenno zadany klyuchi "-i"
      i  "-s", shirina sostavlyaet 25 simvolov. V  lyubom  slu-
      chae,  esli  zadan  klyuch "-l" ili "-n", predpolagaetsya,
      chto v stroke pomeshchaetsya  informaciya  tol'ko  ob  odnom
      imeni.

      Ustanovka klyuchej v zavisimosti ot  togo,  yavlyaetsya  li
      vyvodnoe ustrojstvo terminalom, nezhelatel'na, tak kak

            ls -s ! lpr

      znachitel'no otlichaetsya ot

            ls -s

      Vybor shiriny stolbcov yavlyaetsya ves'ma ogranichennym dlya
      terminalov, kotorye mogut vypolnyat' tabulyaciyu.








                            33
                   APK.00210-01 33 01-5

IMYA:
      m4 - makroprocessor.

FORMAT:
      m4 [fajl ...]

OPISANIE:
      Makroprocessor m4 prednaznachen dlya ispol'zovaniya v ka-
      chestve  preprocessora yazykov FORTRAN, Si i drugih.Kazh-
      dyj iz fajlov, ukazannyh v parametrah,  obrabatyvaetsya
      po  ocheredi. Esli parametry otsutstvuyut ili parametrom
      yavlyaetsya  "-",  schityvaetsya  standartnyj  fajl  vvoda.
      Obrabotannyj tekst zapisyvaetsya v standartnyj fajl vy-
      voda.

      Format makrovyzova:

            imya(par1,par2,...,parN)

      Simvol "(" dolzhen sledovat' neposredstvenno posle ime-
      ni makroopredeleniya. Esli simvol "(" otsutstvuet posle
      imeni, schitaetsya, chto makro ne imeet  parametrov.  Pri
      perechislenii parametrov nachal'nye probely, simvoly ta-
      bulyacii i novoj stroki, ne zaklyuchennye v kavychki,  ig-
      noriruyutsya.  Imena  makroopredelenij mogut sostoyat' iz
      bukv, cifr i simvolov podcherkivaniya "_", prichem pervym
      simvolom ne dolzhna byt' cifra.

      Mozhno otkazat'sya ot nemedlennoj  podstanovki  znacheniya
      makroimeni.  Dlya  etoj celi sootvetstvuyushchie posledova-
      tel'nosti simvolov zaklyuchayutsya v apostrofy  (`').  Pri


                            34
                   APK.00210-01 33 01-5

      kazhdom prosmotre makroprocessora odin uroven' apostro-
      fov udalyaetsya.

      Kogda obnaruzhivaetsya imya makroopredeleniya,  ego  para-
      metry  posledovatel'no obrabatyvayutsya. Vychislenie mak-
      roopredelenij obychno prodolzhaetsya pri prosmotre  para-
      metrov,  i  lyubye  zapyatye  ili pravye skobki, kotorye
      mogut poyavit'sya v znachenii  vlozhennogo  vyzova,  imeyut
      takoe zhe dejstvie, kak i ishodnyj tekst. Posle podsta-
      novki znachenie makro  pomeshchaetsya  obratno  vo  vhodnoj
      potok i prosmatrivaetsya povtorno.

      Vozmozhno zadanie svoih makro s  sovpadayushchimi  imenami,
      odnako  posle  etogo  ih nachal'nyj smysl teryaetsya. Kak
      pravilo vstroennye makro vydayut znachenie "pusto" (esli
      v  opisanii ne skazano inache). Kratkoe opisanie vstro-
      ennyh makroopredelenij m4, kotorye predstavlyayut  soboj
      vhodnoj yazyk makroprocessora:

      define(imya,znachenie)
            Vtoroj parametr ustanavlivaetsya v kachestve  zna-
            cheniya  makroimeni, ukazanogo v pervom parametre.
            Kazhdoe upotreblenie $n v zameshchayushchem tekste,  gde
            n - cifra, zamenyaetsya na n-yj parametr. Parametr
            0 predstavlyaet soboj  imya  makro.  Otsutstvuyushchie
            parametry zamenyayutsya pustymi strokami;

      undefine(`imya')
            Udalyaet opredelenie makro, ukazannogo v paramet-
            re;


                            35
                   APK.00210-01 33 01-5

      ifdef(`imya',param2,param3)
            Esli pervyj parametr opredelen, znacheniem  yavlya-
            etsya  vtoroj  parametr,  esli net - tretij. Esli
            tretij parametr otsutstvuet, znacheniem  yavlyaetsya
            pusto;

      changequote(l,r)
            Zamenyaet simvoly  ekranirovaniya  (apostrofy)  na
            pervyj i vtoroj parametry. Vyzov changequote bez
            parametrov  vosstanavlivaet  ishodnye   znacheniya
            (t.e. `');

      divert(n)
            Makroprocessor  obsluzhivaet   do   10   vyvodnyh
            fajlov,  pronumerovannyh  ot  0  do  9. Konechnyj
            vyvod  predstavlyaet  soboj   konkatenaciyu   etih
            fajlov v poryadke ih nomerov. Po umolchaniyu infor-
            maciya vydaetsya v standartnyj fajl vyvoda (fajl s
            nomerom 0). Makro divert zamenyaet tekushchij vyhod-
            noj fajl  na  ukazannyj  v  parametre  (cifrovaya
            stroka).  Vyvod, kotoryj napravlyaetsya v fajl no-
            merom, ne vhodyashchim v diapazon 0-9,  otbrasyvaet-
            sya;

      undivert(n1,n2 ...)
            Vyzyvaet nemedlennyj vyvod teksta iz  vseh  uka-
            zannyh fajlov (ili iz vseh fajlov, esli paramet-
            ry otsutstvuyut). Tekst mozhet byt' vyveden v dru-
            goj  fajl. Pri vyvode informaciya v fajle unichto-

                            36
                   APK.00210-01 33 01-5

            zhaetsya;

      divnum
            Vozvrashchaet znachenie tekushchego vyhodnogo fajla;

      dln   Schityvaet i otbrasyvaet  simvoly  do  sleduyushchego
            simvola novoj stroki vklyuchitel'no;

      ifelse(a,b,c,d)
            Imeet tri ili bolee parametrov. Esli pervyj  pa-
            rametr  sovpadaet so vtorym, tretij parametr is-
            pol'zuetsya v kachestve znacheniya. Esli eto ne  tak
            i  esli imeetsya bolee chetyreh parametrov, dannyj
            process povtoryaetsya dlya parametrov 4, 5, 6 i  7.
            V  protivnom sluchae znacheniem yavlyaetsya libo chet-
            vertaya stroka,  libo,  esli  ona  otsutstvuet  -
            pusto;

      incr(chislo)
            Vozvrashchaet znachenie svoego parametra,  uvelichen-
            noe  na  1. Ishodnaya stroka cifr rassmatrivaetsya
            kak desyatichnoe chislo;

      eval(vyrazhenie)
            Vydaet znachenie ukazannogo vyrazheniya. Pri vychis-
            lenii  ispol'zuetsya 32-razryadnaya celaya arifmeti-
            ka. Operacii vklyuchayut v sebya +, -, *,  /,  %,  ^
            (vozvedenie v stepen'), otnosheniya, skobki;

      len(stroka)
            Vozvrashchaet kolichestvo simvolov v "stroke";


                            37
                   APK.00210-01 33 01-5

      index(stroka_1,stroka_2)
            Vozvrashchaet nomer simvola "stroki_1"  s  kotorogo
            nachinaetsya  vhozhdenie  "stroki_2". Schet simvolov
            nachinaetsya s nulya. Esli v  "stroke_1"  vhozhdenij
            "stroki_2" ne obnaruzhenno, vozvrashchaetsya -1;

      substr(s,i,n)
            Vozvrashchaet podstroku stroki "s", nachinayushchuyusya  s
            i-toj  pozicii, dlinoj v "n" simvolov. Schet sim-
            volov nachinaetsya s nulya.  Esli  tretij  parametr
            otsutstvuet,  schitaetsya, chto podstroka prodolzha-
            etsya do konca stroki "s";

      translit(s,f,t)
            Perekodiruet stroku "s", zamenyaya simvoly, vhodya-
            shchie  v  stroku  "f",  sootvetstvuyushchimi simvolami
            stroki "t";

      include(imya)
            Zamenyaetsya na soderzhimoe fajla s ukazannym "ime-
            nem";

      sinclude(imya)
            Analogichno include, za isklyucheniem togo, chto es-
            li  fajl  nedostupen,  diagnostika ne vydaetsya i
            process raboty makroprocessora ne preryvaetsya;

      syscmd(komanda)
            Vypolnyaet ukazannuyu "komandu" sistemy.  Znachenie
            ne vozvrashchaetsya;

                            38
                   APK.00210-01 33 01-5

      maketemp(...XXX...)
            Zamenyaet simvoly  XXX  identifikatorom  tekushchego
            processa;

      errprint(stroka_1,stroka_2,...)
            Vydaet ukazannye stroki v standartnyj fajl diag-
            nosticheskih soobshchenij;

      dumpdef(imya_1,imya_2...)
            Vydaet tekushchie imena i opredeleniya dlya ukazannyh
            parametrov  (ili  vse, esli parametry otsutstvu-
            yut);









                            39
                   APK.00210-01 33 01-5

IMYA:
      mail - pochtovaya sluzhba.

FORMAT:
      mail [+] [-i] [adresat]...
      mail [+] [-i] -f fajl

OPISANIE:
      komanda mail prednaznachena dlya realizacii obmena soob-
      shcheniyami   mezhdu  pol'zovatelyami  posredstvom  apparata
      "pochtovyh yashchikov". Pochtovym yashchikom pol'zovatelya, obych-
      no  yavlyaetsya fajl v spravochnike /usr/spool/mail s ime-
      nem analogichnym imeni pol'zovatelya,  pod  kotorym  tot
      zaregistrirovan  v  sisteme.  Primenyaya  komandu  mail,
      pol'zovatel'    poluchaet    vozmozhnost'    prosmotret'
      sobstvennyj  "pochtovyj yashchik" ili dopolnit' chuzhoj svoim
      soobshcheniem. Esli v komande ne ukazan "adresat",  vyda-
      etsya  pochta  pol'zovatelya,  soobshchenie za soobshcheniem, v
      poryadke "poslednim prishel - pervym vyshel". Kogda pere-
      chisleny "adresaty", mail schityvaet standartnyj vvod do
      konca fajla ili stroki, soderzhashchej lish' ".", i  dobav-
      lyaet ego k "pochtovomu yashchiku" kazhdogo "adresata". V na-
      chale  soobshcheniya  ukazyvaetsya  imya  otpravitelya,   data
      otpravleniya  i "pochtovyj shtempel'". V kachestve "pochto-
      vogo shtempelya" ispol'zuyutsya stroki, nachinayushchiesya  sim-
      volom  ">".  Obychno, "adresat" - imya pol'zovatelya, pod
      kotorym tot zaregistrirovan v sisteme, esli neobhodimo
      otpravit' soobshchenie pol'zovatelyu nahodyashchemusya v drugoj
      sisteme (na drugoj mashine), to pered parametrom "adre-


                            40
                   APK.00210-01 33 01-5

      sat" sleduet ukazat' "!imya_sistemy" .

      Klyuchi zadayut sleduyushchie rezhimy raboty komandy:

      +     izmenit' poryadok prosmotra  soobshchenij  na  rezhim
            "pervym prishel - pervym vyshel";

      -i    ignorirovat' preryvaniya;

      -f    ispol'zovat' sleduyushchij za  nim  parametr  v  ka-
            chestve  imeni  fajla, al'ternativnogo "pochtovomu
            yashchiku".

      Vo vremya prosmotra  "pochtovogo  yashchika",  posle  pechati
      ocherednogo soobshcheniya programma vydaet na terminal znak
      voprosa "?" i ozhidaet komandu. Dopustimy sleduyushchie ot-
      vety:

      <return>
            perejti k sleduyushchemu soobshcheniyu bez izmeneniya so-
            derzhimogo pochtovogo yashchika;

      d     udalit' soobshchenie i perejti k sleduyushchemu;

      p     povtorno napechatat' tekushchee soobshchenie;

      -     vernut'sya k predydushchemu soobshcheniyu;

      s[fajl]...
            sohranit' soobshchenie v fajlah s ukazannymi imena-
            mi (po umolchaniyu, ispol'zuetsya fajl mbox v rabo-
            chem spravochnike pol'zovatelya);

                            41
                   APK.00210-01 33 01-5

      w[fajl]...
            sohranit' soobshchenie bez  zagolovka  v  fajlah  s
            ukazannymi imenami (po umolchaniyu - mbox);

      m[pol'zovatel']...
            napravit' soobshchenie perechislennym  pol'zovatelyam
            (po umolchaniyu - sebe);

      EOT (<konec peredachi> - <cntrl-D>)
            pomestit' neprosmotrennuyu pochtu obratno v pochto-
            vyj yashchik i zavershit' prosmotr;

      q     to zhe, chto  i EOT;

      !komanda
            vyzvat' interpretator komand SHELL  i  vypolnit'
            ukazannuyu komandu.

      Lyuboj drugoj otvet privedet k vydache privedennogo vyshe
      spiska  komand. Soobshchenie o nalichii pochty vydaetsya pri
      registracii.

FAJLY:
      /etc/passwd             svedeniya o pol'zovatelyah  sis-
                              temy

      /usr/spool/mail/*       "pochtovye yashchiki"

      mbox                    sohranennaya pochta

      /tmp/ma*                vremennye fajly

      dead.letter             ne otpravlennyj po pochte tekst


                            42
                   APK.00210-01 33 01-5

                              pif  -mes  [a-i]*.1 > ai1.f mx
                              -ES -P ant.ai ai1.f > ai1.fcps
                              pif  -mes  [j-z]*.1 > jz1.f mx
                              -ES -P ant.jz jz1.f > jz1.fcps
                              rm *.f













                            43
                   APK.00210-01 33 01-5

IMYA:
      make - programma sborki komponent.

FORMAT:
      make [-f komandnyj_fajl] [klyuch] ... Fajl ...

OPISANIE:
      Komanda make vypolnyaet sborku komponent iz nabora  is-
      hodnyh  fajlov. Rezul'tatom raboty make mozhet yavlyat'sya
      gotovaya programma, poluchaemaya iz mnozhestva fajlov, ot-
      chet  ili  stat'ya, sozdavaemaya s pomoshch'yu sistemy podgo-
      tovki dokumentacii, biblioteka funkcij i t.p.

      Dlya ispol'zovaniya  make,  razrabatyvaetsya  special'naya
      programma  sborki, pod upravleniem kotoroj vypolnyayutsya
      vse neobhodimye dejstviya dlya polucheniya trebuemogo  re-
      zul'tata.  Programma  sborki (komandnyj fajl make) so-
      derzhit informaciyu o porozhdaemyh ob'ektah, derevo zavi-
      simostej,   opisyvayushchee  iz  kakih  fajlov  poluchaetsya
      ob'ekt, i komandy yazyka SHELL dlya sozdaniya ob'ektov.

      Imya komandnogo fajla ukazyvaetsya posle klyucha "-f", es-
      li  vmesto  parametra "komandnyj_fajl" ukazan "-", is-
      pol'zuetsya standartnyj fajl vvoda. Pri zadanii v vyzy-
      vayushchej  stroke  neskol'kih fajlov s klyuchami "-f" v ka-
      chestve opisaniya ispol'zuetsya  konkatenaciya  zapisej  v
      ukazannyh fajlah.

      Komponenta sozdaetsya, esli ona ne sushchestvuet, ili esli
      hotya  by odin iz fajlov (ot kotoryh ona pryamo ili kos-

                            44
                   APK.00210-01 33 01-5

      venno zavisit) izmenyalsya posle poslednej sborki.

      Komandnyj fajl soderzhit nabor operatorov, kotorye  op-
      redelyayut  usloviya i pravila porozhdeniya komponent. Ope-
      rator nachinaetsya so spiska  imen  trebuemyh  ob'ektov,
      posle  kotorogo stoit odin ili dva simvola "dvoetochie"
      i, vozmozhno, sleduet  spisok  ishodnyh  fajlov.  Tekst
      posle tochki s zapyatoj, a takzhe vse posleduyushchie stroki,
      nachinayushchiesya simvolom  tabulyacii,  predstavlyayut  soboj
      komandy  yazyka  SHELL,  kotorye dolzhny vypolnyat'sya dlya
      sozdaniya komponenty.

      Pri zapisi imen porozhdaemyh i trebuyushchihsya  fajlov  do-
      pustimo  ispol'zovanie regulyarnyh vyrazhenij (ispol'zu-
      yutsya metasimvoly "*", "[-]", "?", interpretaciya  koto-
      ryh sovpadaet s prinyatoj v yazyke SHELL; ).

      Ostatok stroki, nachinayushchijsya simvolom  "#",  schitaetsya
      kommentariem i ne rassmatrivaetsya programmoj make.

      Sleduyushchij komandnyj  fajl  soderzhit  pravila  sozdaniya
      programmy "pgm", poluchaemoj v rezul'tate sborki fajlov
      "a.o" i "b.o", kotorye, v  svoyu  ochered',  zavisyat  ot
      fajlov "a.c", "b.c" i "incl.h".

            pgm: a.o b.o
                  cc a.o b.o -o pgm
            a.o: incl.h a.c
                  cc -c a.c
            b.o: incl.h b.c

                            45
                   APK.00210-01 33 01-5

                  cc -c b.c

      V dannom primere kazhdyj iz porozhdaemyh ob'ektov  zavi-
      sit  ot  sushchestvovaniya dvuh komponet, i pri otsutstvii
      ili  v  rezul'tate  modifikacii  lyuboj  iz  nih,   dlya
      polucheniya  ob'ekta  vypolnyayutsya  odinakovye  dejstviya.
      Sushchestvuet vozmozhnost' zadaniya neskol'kih  pravil  po-
      rozhdeniya  dlya odnogo i togo zhe ob'ekta. V etom sluchae,
      v kachestve razdelitelya mozhno ispol'zovat' dva  simvola
      "dvoetochie":

        aa :: x.c y.c
              echo OBNOVLEN FAJL NA YAZYKE SI
        aa :: x.y
              echo OBNOVLEN FAJL NA YAZYKE YACC

      Komandnyj fajl mozhet soderzhat' vyzovy makroperemennyh,
      dlya zadaniya znachenij kotoryh ispol'zuyutsya stroki vida:

            imya = znachenie

      Pri vypolnenii komandnogo fajla vse konstrukcii:

            $(imya)
      ili
            ${imya}

      zameshchayutsya  "znacheniem"   sootvetstvuyushchej   peremennoj
      "imya". Esli "imya" sostoit iz odnogo simvola, to v mak-
      rovyzove skobki mozhno ne ispol'zovat'.

      Znacheniya makroperemennyh mozhno ustanavlivat' ne tol'ko


                            46
                   APK.00210-01 33 01-5

      v  samom  komandnom  fajle, no i pri vyzove make. Esli
      odna i ta zhe makroperemennaya odnovremenno opredelyaetsya
      i  v komadnom fajle i v vyzove, ispol'zuetsya znachenie,
      zadannoe pri vyzove. Tak, esli komandnyj fajl soderzhit
      stroki:

            TEXT = ZADANIE 2
            progr:
                  echo ${TEXT}

      zapusk komandy make bez parametrov privedet  k  vydache
      teksta "ZADANIE 2". Esli etot zhe komandnyj fajl zapus-
      kaetsya komandoj:

            make "TEXT = PRIMER 1"

      v  rezul'tate  ee  raboty  budet  polucheno   soobshchenie
      "PRIMER 1".

      Sushchestvuet neskol'ko special'nyh makroperemennyh, zna-
      cheniya kotoryh ustanavlivayutsya samoj programmoj make:

      $*   Imya sozdavaemoj komponenty bez suffiksa;

      $?   Spisok modificirovannyh fajlov, privodyashchih k  vy-
           polneniyu komand dannogo pravila;

      $@   Polnoe imya sozdavaemogo fajla;

      $<   Spisok ishodnyh fajlov;

      $$   Simvol "$".

                            47
                   APK.00210-01 33 01-5

      Neobhodimyj ob'ekt mozhno poluchit' iz  kakogo-libo  is-
      hodnogo fajla odnim iz chetyreh sposobov:

        -  neposredstvenno zadat' imena i  pravila  porozhde-
           niya;

        -  vvesti obshchee pravilo dlya imen s  ukazannymi  suf-
           fiksami;

        -  zadat' pravilo ".DEFAULT";

        -  ispol'zovat' standartnye soglasheniya o  preobrazo-
           vaniyah.

      V operatore, neposredstvenno ukazyvayushchem metod poluche-
      niya odnogo fajla iz drugogo, yavno zadayutsya polnye ime-
      na porozhdaemogo i ishodnogo fajlov. Naprimer,  poluche-
      nie fajla "a.K" iz "a.M":

            a.K : a.M
                  mv a.M a.K

      V obshchem pravile ukazyvayutsya suffiksy i zadayutsya koman-
      dy,  preobrazuyushchie  fajly  s odnim suffiksom v fajly s
      tem zhe imenem, no drugim suffiksom. Naprimer,  pravilo
      polucheniya  fajlov s suffiksom ".o" iz fajlov okanchiva-
      yushchihsya na ".s" mozhet imet' vid:

            .c.o :
                  cc -c $<

      Krome togo, v komandnom fajle neobhodimo ukazat',  chto

                            48
                   APK.00210-01 33 01-5

      ".o"  i ".c" yavlyayutsya suffiksami i zadat' poryadok pri-
      meneniya  obshchih  pravil  preobrazovaniya  (dlya  sluchaev,
      kogda  neskol'ko  obshchih  pravil  opisyvayut  perehod ot
      raznyh ishodnyh fajlov k odnomu porozhdennomu). |to de-
      laetsya s pomoshch'yu operatora:

            .SUFFIXES: .o .c

      Esli v spiske porozhdaemyh ob'ektov pri pravile ukazana
      konstrukciya  ".DEFAULT",  to  eto  pravilo vypolnyaetsya
      vsyakij raz, kogda programma make ne imeet informacii o
      metode  polucheniya  trebuemogo  fajla. Naprimer, esli v
      komandnom fajle zadano pravilo:

            .DEFAULT:
                  cp dummy $@

      budut sozdavat'sya vse nedostayushchie fajly (kazhdyj iz ko-
      toryh poluchaetsya s pomoshch'yu kopirovaniya fajla dummy).

      Vo vremya raboty komandnogo  fajla  mozhno  ispol'zovat'
      nabor standartnyh pravil polucheniya komponent, imeyushchij-
      sya v sisteme.  Tak,  pervyj  iz  privedennyh  primerov
      mozhno bylo zapicat' znachitel'no kopoche:

            pgm: a.o b.o
                  cc a.o b.o -o pgm
            a.o b.o: incl.h

      Pri ispol'zovanii standartnyh pravil, sushchestvuet  voz-
      mozhnost'  izmeneniya imen nekotoryh kompilyatorov i klyu-

                            49
                   APK.00210-01 33 01-5

      chej, s kotorymi oni vyzyvayutsya. Imena kompilyatorov za-
      dayutsya makroperemennymi:

      AS    Assembler (as);

      CC    Si-kompilyator (cc);

      RC    Fortran-77 (f77);

      LEX   Generator leksicheskih analizatorov Lex (lex);

      YACC  Kompilyator kompilyatorov Yacc (yacc).

      Klyuchi  standartnyh  kompilyatorov  yavlyayutsya  znacheniyami
      sleduyushchih makroperemennyh:

      CFLAGS    Klyuchi Si-kompilyatora (cc);

      FFLAGS    Klyuchi kompilyatora Fortran-77 (f77);

      LFLAGS    Klyuchi generatora programm leksicheskogo  ana-
                liza lex;

      YFLAGS    Klyuchi kompilyatora yacc;

      LOADLIBES Spisok ispol'zuemyh bibliotek.

      Pri ispol'zovanii standartnyh pravil ispol'zuetsya sle-
      duyushchee soglashchenie o traktovke suffiksov:

      .out  Fajl vyvoda;

      .o    Ob'ektnyj fajl;

      .c    Ishodnyj fajl na yazyke Si;

                            50
                   APK.00210-01 33 01-5

      .f    Ishodnyj fajl na Fortrane;

      .e    Ishodnyj fajl na yazyke Efl;

      .r    Ishodnyj fajl na Ratfore;

      .y    Ishodnyj fajl na Yacc;

      .l    Ishodnyj fajl na Lex;

      .s    Ishodnyj fajl na Assemblere;

      .p    Ishodnyj fajl na Paskale.

      Dlya vypolneniya kazhdoj komandnoj stroki SHELL  zapuska-
      etsya otdel'nyj process. Poetomu pri ispol'zovanii mak-
      roperemennyh  trebuetsya  prinimat'  special'nye  mery,
      naprimer,  oformlyat' gruppy komand, ispol'zuyushchie obshchie
      makro v vide sostavnoj komandy SHELL.

      Esli v komandnom fajle ne byl zadan  special'nyj  vhod
      ".SILENT",  ili  pervym simvolom komandy ne byl simvol
      "@",  stroka  pri  vypolnenii  raspechatyvaetsya.  Krome
      togo,  pri vyzove make dlya ustanovki rezhima podavleniya
      vydachi  ispolnyaemyh  komand  mozhno  ispol'zovat'  klyuch
      "-s".

      Sozdanie fajla s pomoshch'yu  programmy  make  mozhet  byt'
      sluchajno ili prednamerenno prervano. Esli nedodelannyj
      fajl ne yavlyaetsya spravochnikom, i v spiske  porozhdaemyh
      ob'ektov naryadu s imenem etogo fajla ukazano special'-
      noe imya ".PRECIOUS", fajl unichtozhaetsya.

                            51
                   APK.00210-01 33 01-5

      Sushchestvuet vozmozhnost' raboty s fajlami zapisannymi  v
      arhiv.  Pri etom ocenivaetsya vremya poslednej modifika-
      cii fajla (a ne vremya sozdaniya arhiva ili vremya zapisi
      fajla  v arhiv). Imya nahodyashchegosya v arhive fajla mozhet
      ukazyvat'sya, kak v spiske porozhdaemyh ob'ektov, tak  i
      sredi  imen,  ot  kotoryh  zavisit  sozdanie ob'ektov.
      Krome imeni fajla, pri rabote s bibliotekami ob'ektnyh
      modulej, mozhno ukazyvat' imena funkcij. Dlya togo, chto-
      by otlichat' imena komponent, zapisannyh v  arhiv,  is-
      pol'zuetsya special'naya forma zapisi imen:

      a(b)     oznachaet, chto fajl s imenem  "b"  hranitsya  v
               arhive "a";

      a((_b))  oznachaet vneshnee imya funkcii  "_b"  v  arhive
               "a".

      Esli kod zaversheniya kakoj-libo komandy ne raven  nulyu,
      vypolnenie  programmy make obychno prekrashchaetsya. Oshibka
      takogo roda mozhet byt' proignorirovana. S etoj cel'yu v
      spisok  porozhdaemyh  ob'ektov vvoditsya special'noe imya
      ".IGNORE", libo pered vypolnyaemoj komandoj ukazyvaetsya
      defis "-".

      Komanda make mozhet byt' vyzvana so sleduyushchimi klyuchami:

      -d   Otladochnyj rezhim. V etom rezhime vydaetsya dopolni-
           tel'naya informaciya o vypolnenii komandnogo fajla;

      -f   Sleduyushchij  parametr  yavlyaetsya  imenem  komandnogo
           fajla;  po umolchaniyu - "makefile" ili "Makefile".


                            52
                   APK.00210-01 33 01-5

           Esli etot klyuch ne zadan,  a  v  spravochnike  pri-
           sutstvuyut  oba imeni, v kachestve komandnogo fajla
           ispol'zuetsya "makefile";

      -i   Rezhim ignorirovaniya  oshibochnyh  kodov  zaversheniya
           komand.     |kvivalentno    special'nomu    makro
           ".IGNORE:";

      -k   Esli kod vozvrata komandy ne raven nulyu,  prekra-
           tit'  obrabotku  tekushchej vetvi, i perejti k obra-
           botke sleduyushchih vetvej dereva,  ne  zavisyashchih  ot
           tekushchej vetvi;

      -n   Raspechatat', no ne vypolnyat' komandy,  prednazna-
           chennye dlya sborki programmy;

      -p   Raspechatka versii ishodnogo dereva;

      -q   Osushchestvlyaet  proverku   ukazannogo   ob'ekta   i
           vozvrashchaet  kod zaversheniya 0, esli on trebuet mo-
           difikacii, ili -1 v protivnom sluchae;

      -r   |kvivalentno zadaniyu makro ".SUFFIXES:" bez spis-
           ka. Otmenyaet dejstvie standartnyh pravil porozhde-
           niya;

      -s   |kvivalentno special'nomu makro ".SILENT:" -  ot-
           mena raspechatki komandnyh strok;

      -S   Prervat' vypolnenie programmy pri  oshibochnom  za-
           vershenii kakoj-libo komandy;

                            53
                   APK.00210-01 33 01-5

      -t   Obnovit' datu modifikacii  ob'ekta,  ne  vypolnyaya
           kakih-libo komand;

DOPOLNITELXNYE SSYLKI :
      sh, touch

ZAMECHANIYA:
      Komandy, kotorye vypolnyayutsya yazykom upravleniya zadani-
      yami  (naprimer  cd),  ne  dolzhny  perehodit'  na novuyu
      stroku v komandnom fajle.











                            54
                   APK.00210-01 33 01-5

IMYA:
      mesg - otkryt' ili zakryt' priem soobshchenij.

FORMAT:
      mesg [n] [y]

OPISANIE:
      Komanda mesg s parametrom "n" zapreshchaet drugim pol'zo-
      vatelyam proizvodit' zapis' na terminal dannogo pol'zo-
      vatelya. Komanda mesg s parametrom "y"  vosstanavlivaet
      eto  pravo. Pri otsutstvii parametrov komanda mesg in-
      formiruet o tekushchem sostoyanii bez izmeneniya ego.

DOPOLNITELXNYE SSYLKI :
      write

DIAGNOSTIKA:
      Kod vozvrata raven 0, esli soobshcheniya mogut  prinimat'-
      sya, 1, esli net, i 2 pri oshibke.







                            55
                   APK.00210-01 33 01-5

IMYA:
      mkdir - sozdat' spravochnik.

FORMAT:
      mkdir imyaspr ...

OPISANIE:
      Komanda  mkdir  cozdaet   ykazannye   cppavochniki   co
      ctatycom  755.  Standartnye vhody "." dlya samogo spra-
      vochnika i ".." dlya porozhdayushchego spravochnika  sozdayutsya
      avtomaticheski.

      Dlya vypolneniya komandy mkdir trebuetsya pravo zapisi  v
      porozhdayushchem kataloge.

DOPOLNITELXNYE SSYLKI :
      rm

DIAGNOSTIKA:
      Komanda mkdir vydaet kod vozvrata 0, esli vse spravoch-
      niki  byli uspeshno sozdany. V protivnom sluchae pechata-
      etsya diagnostika i vozvrashchaetsya nenulevoj kod.





                            56
                   APK.00210-01 33 01-5

IMYA:
      mv - peremestit' fajl.

FORMAT:
      mv fajl1 fajl2
      mv fajl ... spravochnik

OPISANIE:
      Komanda mv peremeshchaet "fajl1" v "fajl2".

      Esli "fajl2" uzhe sushchestvuet, on udalyaetsya pered  pere-
      pisyvaniem  "fajla1". Esli status fajla "fajl2" zapre-
      shchaet zapis', no pol'zovatelyu razreshena zapis' v dannyj
      spravochnik,  komanda  mv  pechataet  pezhim  i cchityvaet
      ctpoky iz ctandaptnogo vvoda, ecli eta stroka  nachina-
      etsya  simvolom "y", proishodit perezapis'. V ostal'nyh
      sluchayah proishodit vyhod iz mv.

      Vtoraya forma komandy privodit k  tomu,  chto  odin  ili
      neskol'ko  "fajlov"  perepisyvayutsya v "spravochnik" pod
      svoimi ishodnymi imenami.

      Komanda mv otkazyvaetsya  perepisyvat'  fajl  v  samogo
      sebya.

DOPOLNITELXNYE SSYLKI :
      cp, chmod

ZAMECHANIYA:
      Esli "fajl1" i "fajl2" raspolozheny v  raznyh  fajlovyh
      sistemah, komanda mv dolzhna skopirovat' fajl i udalit'

                            57
                   APK.00210-01 33 01-5

      ishodnyj. V etom sluchae  imenem  vladel'ca  stanovitsya
      imya  kopiruyushchego  processa,  a svyazi s drugimi fajlami
      (al'ternativnye imena) teryayutsya.

      Spravochniki mogut peremeshchat'sya tol'ko v predelah odnoj
      i toj zhe fajlovoj sistemy.

ZAMECHANIYA:
      Komanda mv dolzhna by imet' flag "-f" analogichno koman-
      de  rm,  dlya podavleniya zaprosa na podtverzhenie v slu-
      chae, esli celevoj fajl sushchestvuet i zashchishchen ot zapisi.










                            58
                   APK.00210-01 33 01-5

IMYA:
      newgrp - smenit' identifikator gruppy.

FORMAT:
      newgrp identifikator_gruppy

OPISANIE:
      Komanda newgrp izmenyaet identifikator gruppy vydavshego
      ee pol'zovatelya, analogichno komande login. V rezul'ta-
      te vypolneniya komandy ostaetsya zaregistrirovannym etot
      zhe pol'zovatel', ego tekushchij spravochnik ne izmenyaetsya,
      odnako opredelenie polnomochij dostupa k fajlam  proiz-
      voditsya na osnovanii novogo identifikatora gruppy;

      Parol' zaprashivaetsya v tom sluchae, esli  gruppa  imeet
      parol', a sam pol'zovatel' - net;

      Komanda newgrp vypolnyaetsya interpretatorom komand.

DOPOLNITELXNYE SSYLKI :
      login






                            59
                   APK.00210-01 33 01-5

IMYA:
      nice, nohup - zapustit' komandu poniziv prioritet.

FORMAT:
      nice [-chislo] komanda [parametry]
      nohup komanda [parametry]

OPISANIE:
      Komanda nice vypolnyaet ukazannuyu komandu s nizkim pri-
      oritetom.  Esli prisutstvuet parametr "chislo", priori-
      tet chislenno  uvelichivaetsya  (bol'shie  chisla  oznachayut
      men'shie prioritety) na etu velichinu do granichnogo zna-
      cheniya 20. Znachenie "chisla" po umolchaniyu ravno 10.

      Super-pol'zovatel' mozhet vypolnyat' komandy s priorite-
      tom  vyshe obychnogo posredstvom ukazaniya otricatel'nogo
      prioriteta, naprimer, "--10".

      Nohup vypolnyaet ukazannuyu komandu,  ignoriruya  signaly
      ostanova  i zaversheniya ot upravlyayushchego terminala. Pri-
      oritet uvelichivaetsya na 5. Komanda nohup  dolzhna  byt'
      vyzvana s "&" dlya togo, chtoby predotvratit' ee reakciyu
      na preryvanie ili prisvoenie  eyu  vvodimoj  informacii
      sleduyushchego  pol'zovatelya,  kotoryj  registriruetsya  na
      etom zhe terminale.

DOPOLNITELXNYE SSYLKI :
      sh, csh

DIAGNOSTIKA:
      Komanda nice vozvrashchaet kod vozvrata  vhodyashchej  v  nee


                            60
                   APK.00210-01 33 01-5

      komandy.

ZAMECHANIYA:
      Komandy nice i nohup yavlyayutsya specificheskimi  dlya  sh.
      Esli  vy  ispol'zuete csh, komandy, vypolnyaemye s "&",
      avtomaticheski zashchishchayutsya ot signalov ostanova  ot  up-
      ravlyayushchego   terminala.   Imeetsya  vstroennaya  komanda
      nohup, kotoraya obespechivaet zashchitu ot zaversheniya,  od-
      nako ona ne pereadresovyvaet vyvod v fajl nohup.out.

      Komanda nice vstroena v csh s  sintaksisom,  neskol'ko
      otlichayushchimsya  ot opisannogo zdes' - "nice+10" ustanav-
      livaet polozhitel'nyj prioritet, a "nice-10" ustanavli-
      vaet  ispol'zuemyj  super-pol'zovatelem  otricatel'nyj
      prioritet.








                            61
                   APK.00210-01 33 01-5

IMYA:
      nm - vydat' spisok imen.

FORMAT:
      nm [-agnopru] [fajl ...]

OPISANIE:
      Komanda nm raspechatyvaet spisok imen  (tablicu  simvo-
      lov)   kazhdogo   iz   ukazannyh  v  spiske  parametrov
      ob'ektnyh fajlov. Esli parametr predstavlyaet soboj ar-
      hiv, budet raspechatyvat'sya tablica simvolov dlya kazhdo-
      go ob'ektnogo fajla arhiva.  Esli  "fajl"  ne  ukazan,
      raspechatyvayutsya simvoly iz fajla "a.out".

      Kazhdomu simvolicheskomu imeni predshestvuet ego znachenie
      (probely,  esli  ono  ne  opredeleno) i odna iz bukv u
      (neopredelennoe), a (absolyutnoe), t (simvol tekstovogo
      segmenta),  d (simvol segmenta dannyh), b (simvol seg-
      menta bss) ili c (obshchij simvol). Esli simvol  yavlyaetsya
      lokal'nym (ne vneshnim), eta bukva pechataetsya na nizhnem
      registre. Vyvod sortiruetsya po alfavitu.

      Vozmozhny sleduyushchie opcii:

      -g    Vydavat' tol'ko global'nye (vneshnie) simvoly;

      -n    Otsortirovat' po znacheniyam, a ne po alfavitu;

      -o    Ukazyvat' imya fajla ili elementa arhiva v kazhdoj
            stroke vyvoda, a ne tol'ko odin raz;

      -p    Ne sortirovat', pechatat' v poryadke tablicy  sim-


                            62
                   APK.00210-01 33 01-5

            volov;

      -r    Otsortirovat' v obratnom poryadke;

      -u    Pechatat' tol'ko neopredelennye simvoly.

DOPOLNITELXNYE SSYLKI :
      ar, ar, a.out












                            63
                   APK.00210-01 33 01-5

IMYA:
      od - formatirovanie informacii prosmotra.

FORMAT:
      od [-format] [file] [[+]offset[.][b]
         [label]]

OPISANIE:
      Komanda od vydaet v standartnyj fajl vyvoda soderzhimoe
      fajla  "file"  v  ukazannom  formate.  Esli  format ne
      zadan, to vyvod proizvoditsya po formatu "o".  Informa-
      ciya  vydaetsya s ukazannogo mesta (po umolchaniyu - s na-
      chala fajla) do konca fajla.

      Pervyj parametr ("format") mozhet  soderzhat'  sleduyushchie
      klyuchi:

      a    Interpretirovat' bajty kak  simvoly  koda  KOI-8.
           Negraficheskie  simvoly  oboznachayutsya  ih imenami,
           vse ostal'nye bajty, znacheniya kotoryh ne vhodyat v
           kod KOI-8, vydayutsya v vos'merichnom vide. Esli od-
           novremenno zadan klyuch "p", to bajty, znacheniya ko-
           toryh imeyut chetnyj paritet - podcherkivayutsya. Esli
           zadan klyuch "P" - podcherkivayutsya  simvoly  imeyushchie
           nechetnyj paritet;

      b    Vydavat' vos'merichnye znacheniya bajtov;

      c    Interpretirovat' bajty kak  simvoly  koda  KOI-8.
           Nekotorye  negraficheskie simvoly oboznachayutsya tak
           zhe, kak i v yazyke Si:    -  pusto;    -  novaya


                            64
                   APK.00210-01 33 01-5

           stroka;  vozvrat na shag;7  - vozvrat karet-
           ki;  - perevod formata;  - tabulyaciya. Vse os-
           tal'nye  bajty,  znacheniya kotoryh ne vhodyat v kod
           KOI-8, vydayutsya v vos'merichnom vide;

      d    Vydavat' slova (short) v  vide  desyatichnyh  chisel
           bez znaka;

      f    Vydavat' dlinnye slova (long) v vide veshchestvennyh
           chisel;

      h    Vydavat' slova (short) v  vide  shestnadcatirichnyh
           chisel bez znaka;

      i    Vydavat' slova (short) v vide desyatichnyh chisel so
           znakom;

      l    Vydavat' dlinnye slova (long) v  vide  desyatichnyh
           chisel so znakom;

      o    Vydavat' slova (short) v vide vos'merichnyh chisel;

      s[N] Interpretirovat'  posledovatel'nost'  bajtov  kak
           tekstovuyu  stroku, zavershayushchuyusya simvolom "pusto"
           (' '). CHislo N zadaet minimal'nuyu dlinu prosmat-
           rivaemoj posledovatel'nosti, po umolchaniyu N ravno
           3;

      v    Vydavat' vse znacheniya. Po umolchaniyu, vmesto  pos-
           ledovatel'nosti   povtoryayushchihsya   strok  vydaetsya
           simvol '*' v pervoj pozicii;

                            65
                   APK.00210-01 33 01-5

      w[N] |tot klyuch opredelyaet dlya  kazhdoj  vhodnoj  stroki
           chislo  obrabatyvaemyh  bajt.  Esli  etot  klyuch ne
           ukazan, to iz kazhdoj vhodnoj  stroki  schityvaetsya
           16 bajt. Esli N opushcheno ispol'zuetsya 32 bajta;

      x    Vydavat' slova (short) v  vide  shestnadcaterichnyh
           chisel.

      Parametr "file" opredelyaet imya fajla,  kotoryj  dolzhen
      byt'  prosmotren. Esli etot parametr ne zadan, ispol'-
      zuetsya standartnyj fajl vvoda.

      Parametr "offset"  zadaet  smeshchenie  v  fajle,  otkuda
      dolzhna   nachinat'sya   vydacha.   |tot  parametr  obychno
      rassmatrivaetsya kak vos'merichnoe  chislo  bajtov.  Esli
      posle  nego stoit ".", smeshchenie interpretiruetsya v de-
      syatichnom kode. Esli posle nego stoit "b", smeshchenie in-
      terpretiruetsya  v  blokah  po  512 bajt. Esli parametr
      "file" otsutstvuet, parametru  "offset"  dolzhen  pred-
      shestvovat' znak "+".

      Argument "label" yavlyaetsya psevdo-adresom  dlya  pervogo
      prosmatrivaemogo  bajta.  On  zadaetsya  v skobkah "()"
      posle zadaniya smeshcheniya i imeet tot zhe sintaksis, chto i
      smeshchenie.

DOPOLNITELXNYE SSYLKI :
      adb

ZAMECHANIYA:
      Imya fajla ne dolzhno nachinat'sya s simvola "+". Dopuska-


                            66
                   APK.00210-01 33 01-5

      etsya tol'ko odno imya fajla.















                            67
                   APK.00210-01 33 01-5

IMYA:
      opr - vyvod fajlov DEMOS v oblast' nakopleniya MVM.

FORMAT:
      opr   [-h] [-u idvm] [-v idvm] [-p kopiya] [-n imya_faj-
            la]  [-c  klass]  [-t  teg] [-T zagolovok] [fajl
            ...]

Opisanie:
      Komandoj opr obespechivaetsya vyvod fajlov DEMOS v  oche-
      red' fajlov nakopleniya.

      Rezhimy fajlov nakopleniya dlya dannyh ustrojstv ustanav-
      livayutsya  komandoj MVM SPOOL, odnako komanda opr izme-
      nyaet eti rezhimy na osnovanii svoih parametrov dlya vvo-
      dimyh fajlov.

      Sleduyushchie rezhimy fajlov nakopleniya  menyayutsya  komandoj
      opr:

      -h    eta opciya ukazyvaet, chto dlya pechatayushchego ustroj-
            stva  ustanavlivaetsya rezhim raboty HOLD, pri ko-
            torom sozdavaemye na ustrojstve  pri  vypolnenii
            komandy  opr fajly nakopleniya budut pomeshchat'sya v
            sostoyanii zaderzhki;

      idvm  ukazyvaet identifikator VM, kotoroj prednaznacha-
            etsya fajl nakopleniya. Po umolchaniyu identifikator
            VM  vybiraetsya  iz  5-ogo  polya  sootvetstvuyushchej
            pol'zovatelyu zapisi fajla /etc/passwd;

                            68
                   APK.00210-01 33 01-5

      kopiya opredelyaet kolichestvo kopij  fajlov  nakopleniya,
            kotoroe  dolzhno  byt'  polucheno  pri vyvode etih
            fajlov na real'noe ustrojstvo vyvoda;

      imya_fajla
            ukazyvaet, chto sozdannomu fajlu nakopleniya,  dlya
            ukazannyh  fajlov DEMOS, sleduet prisvoit' iden-
            tifikator fajla v formate, prinyatom v PDO ili OS
            ES;

      klass klass nakopleniya, v kotoryj dolzhen byt'  pomeshchen
            sozdannyj fajl nakopleniya. Po umolchaniyu fajl na-
            kopleniya pomeshchaetsya v  ochered'  klassa  A,  esli
            zadan  vvodnoj  fajl  v komande opr, v protivnom
            sluchae - v ochered' klassa T;

      -u    ukazyvaet,  chto  fajly  nakopleniya   pechatayushchego
            ustrojstva,  sozdavaemye posle vypolneniya koman-
            dy,  dolzhny   peredavat'sya   na   perfokartochnoe
            ustrojstvo   vvoda   VM,  identifikator  kotoroj
            predstavlen v opcii;

      -v    ukazyvaet,  chto  fajly  nakopleniya   pechatayushchego
            ustrojstva,  sozdavaemye posle vypolneniya koman-
            dy, dolzhny peredavat'sya na ACPU VM,  identifika-
            tor kotoroj predstavlen v opcii;

      -t    prednaznachena dlya zaneseniya predstavlennoj v op-
            cii informacii v teg fajla nakopleniya;

      -T    zagolovok,  formiruemyj   razdelitel'   pechatnyh


                            69
                   APK.00210-01 33 01-5

            fajlov;

      fajl  imya fajla v DEMOS.

FAJLY:
      /etc/passwd
            poisk identifikatora VM

      /tmp/opr????
            vremennyj fajl

DOPOLNITELXNYE SSYLKI:
      qprt

ZAMECHANIYA:
      Rabota VM DEMOS v mnogopol'zovatel'skom rezhime  prois-
      hodit  s  otsoedinennym  pul'tom VM, poetomu izmenenie
      rezhimov  nakopleniya  dlya  konkretnogo  fajla  vozmozhno
      tol'ko komandoj opr.

      Sobstvenno operaciyu peresylki fajla v oblast' nakople-
      niya i postanovki ego v ochered' k real'nomu pechatayushchemu
      ustrojstvu     osushchestvlyaet     sleduyushchij      process
      /rtc/spooler/opred, iniciiruemyj komandoj opr.





                            70
                   APK.00210-01 33 01-5

IMYA:
      passwd - izmenit' vhodnoj parol'.

FORMAT
      passwd [imya]

OPISANIE:
      Dannaya komanda izmenyaet  (ili  ustanavlivaet)  parol',
      sootvetstvuyushchij   ukazannomu  imeni  pol'zovatelya  (po
      umolchaniyu prinimaetsya tekushchij identifikator  pol'zova-
      telya).

      Programma zaprashivaet snachala staryj parol',  a  zatem
      novyj.  Pol'zovatel'  dolzhen ukazat' oba. Novyj parol'
      dolzhen byt' vveden dvazhdy s cel'yu predotvrashcheniya  oshi-
      bok.

      Novyj parol' dolzhen imet' dlinu po krajnej mere chetyre
      simvola,  esli  on ispol'zuet dostatochno shirokij alfa-
      vit, i po krajnej mere shest' simvolov, esli vse simvo-
      ly  ukazyvayutsya v odnom i tom zhe registre. |ti pravila
      oslablyayutsya, esli vy dostatochno nastojchivy.

      Izmenit' parol' mogut tol'ko  vladelec  dannogo  imeni
      ili  super-pol'zovatel'; vladelec dolzhen dokazat', chto
      on znaet staryj parol'.

DOPOLNITELXNYE SSYLKI :
      login, crypt


                            71
                   APK.00210-01 33 01-5

IMYA:
      PC  - vyzov kompilyatora s yazyka Paskal'

FORMAT:
      PC [klyuch]...fajl...

OPISANIE:
      Komanda RS prednaznachena dlya vyzova kompilyatora s yazy-
      ka Paskal'. Ona vosprinimaet parametry treh tipov: pa-
      rametry, imena kotoryh zakanchivayutsya na '.R', schitayut-
      sya  ishodnymi programmami na yazyke Paskal'; oni kompi-
      liruyutsya , i kazhdaya  ob'ektnaya  programma  ostaetsya  v
      fajle,  imya  kotorogo poluchaetsya iz imeni sootvetstvu-
      yushchego ishodnogo fajla posle zameny ".R" na ".O".  Fajl
      ".O" udalyaetsya, esli odna Paskal'-programma kompiliru-
      etsya i zagruzhaetsya v odnom prohode.

      Ob'ektnye programmy,poluchennye posle dejstviya  komandy
      RS  sovmestimy s ob'ektnymi programmami, poluchennymi s
      pomoshch'yu komandy  SS  (t.e.  programmy  Paskalya  i  Si-
      programmy  mogut vzaimno vyzyvat' drug druga  bez spe-
      cial'nogo interfejsa).

      Soobshcheniya ob oshibkah kompilyacii i vypolneniya pomeshchayut-
      sya  v fajl s suffiksom ".L".

      V komande RS mogut zadavat'sya sleduyushchie klyuchi:

      -C    otmenyaet  fazy  cbopki  i   vyzyvaet   genepaciyu
            ob'ektnogo  koda dazhe togda, kogda kompilipyetcya
            tol'ko odna ppogpamma;


                            72
                   APK.00210-01 33 01-5

      -Dimya=opr  -Dimya

            oppedelyaet ykazannoe  "imya"  dlya  ppeppoceccopa.
            Ecli   oppedelenie   ne   zadano,   dannoe   imya
            oppedelyaetcya kak "1";

      -S    kompilipyet  pepechiclennye  Packal'-ppogpammy  i
            octavlyaet  pezyl'tat paboty v vide accemblepnogo
            tekcta v  cootvetctvyyushchix  fajlax  c  cyffikcami
            ".S";

      -N    vydaet cpicok komand,  genepipyemyx  PC,  no  ne
            vypolnyaet ix;

      -P    zapyckaet tol'ko ppeppoceccop dlya  pepechiclennyx
            Packal'-ppogpamm,  pezyl'tat raboty kotorogo po-
            meshchaetsya v fajl  s sootvetstvuyushchim imenem i suf-
            fiksom ".I".

      -Uimya ydalyaet  vce  nachal'nye  oppedeleniya  ykazannogo
            imeni;

      -Isprav
            poick fajlov "#include" v  cppavochnike  "cppav",
            ecli  oni  ne byli najdeny v tekyshchem cppavochnike
            ili v /usr/src/include;

      octal'nye  papametpy  yavlyayutcya  libo  covmectimymi   c
      Packalem  ili  Ci ob'ektnymi programmami , poluchennymi
      obychno v rezul'tate predshestvuyushchih  vypolnenij  komand
      RS  ili SS, libo programm,sovmestimyh s Paskalem i Si.

                            73
                   APK.00210-01 33 01-5

      |ti programmy , vmeste s rezul'tatami ukazannyh kompi-
      lyacij,  zagruzhayutsya  (  v  zadannom poryadke ), davaya v
      rezul'tate vypolnyaemuyu programmu s imenem a.out;

      kompilyatop Packalya-8000  vepcii  1.0  imeet  nekotopye
      otlichiya  ot ctandaptnogo Paskalya: mnozhestva ogranicheny
      64 elementami , rutiny leksicheskogo  urovnya n  ograni-
      cheny razmerom  v (7-n)*4K bajtov, gde 1<n<6 (redko vy-
      zyvaet problemu),  chislo  otkpytyx  fajlov  ne  dolzhno
      ppevyshat' 15. Mozhet icpol'zovat'cya pazdel'naya kompilya-
      ciya. Obespechen vyzov preprocessora, kak v komande SS.

FAJLY:
      Fajl.R       vyhodnoj fajl

      Fajl.L       fajl oshibok

      Fajl.O       ob'ektnyj fajl

      a.out          zagruzochnyj vyhod

      /tmp/pcc??????    vremennyj vyhod preprocessora

      /tmp/pcc??????.s  vremennyj vhod assemblera

      /lib/pasc         kompilyator Paskalya

      /lib/pmp          preprocessor

      /lib/prt0.0       dinamicheskij starter Paskalya

      /lib/crt0.0       dinamicheskij starter

      /lib/libp.a       biblioteka Paskalya


                            74
                   APK.00210-01 33 01-5

      /lib/libc.a       biblioteka Si

Dopolnitel'nye ssylki :
      CC,LD

      Imeetsya otdel'noe opisanie yazyka Paskal'.

DIAGNOSTIKA:
      Diagnosticheskie soobshcheniya, vydavaemye  samim  kompilya-
      torom  Paskalya, yavlyayutsya dostatochno ponyatnymi. V neko-
      toryh sluchayah soobshcheniya mogut generirovat'sya Assemble-
      rom ili redaktorom svyazej.

      Oshibki vypolneniya diagnostiruyutsya  s  ukazaniem  togo,
      chto  vyzvalo ih i vydachej dampa vseh programm Paskalya,
      rabotavshih v moment vozniknoveniya oshibki. Damp vklyucha-
      et  v  sebya  imya  programmy, tochku vyzova ee, znacheniya
      vseh lokal'nyh skalyarnyh peremennyh. Damp dolzhen ogra-
      nichivat' neobhodimost' vyzova otladchika dcon.







                            75
                   APK.00210-01 33 01-5

IMYA:
      pif - formatirovanie teksta.

FORMAT:
      pif [klyuch] ... [fajl] ...

OPISANIE:
      Komanda pif formatiruet tekst iz ukazannyh fajlov  dlya
      pechati na ustrojstvah tipa pishushchej mashinki.

      Esli net ni odnogo argumenta "fajl" ili zadan parametr
      "-",  chitaetsya  standartnyj  fajl vvoda. Do argumentov
      "fajl" mogut v  lyubom  poryadke  vstretit'sya  sleduyushchie
      klyuchi:

      -ospisok
            Pechatayutsya stranicy, nomera kotoryh  perechisleny
            v  "spiske"  v  vide chisel ili diapazonov chisel,
            razdelennyh  zapyatymi.  Diapazon  N-M   oznachaet
            stranicy s nomerami ot N do M; zapis' -N v nacha-
            le "spiska" oznachaet stranicy  s  pervoj  po  N;
            zapis'  N-  v konce "spiska" oznachaet stranicy s
            nomerom ot N i do konca;

      -nN   Nomer pervoj generiruemoj stranicy N;

      -sN   Ostanovka posle kazhdyh N stranic. Pif budet  os-
            tanavlivat'sya  pered kazhdoj porciej iz N stranic
            (po umolchaniyu N=1) dlya togo,  chtoby  mozhno  bylo
            zapravit' ili zamenit' bumagu, i prodolzhit rabo-
            tu po poluchenii simvola novoj stroki;


                            76
                   APK.00210-01 33 01-5

      -mimya Schityvanie fajla /usr/lib/tmac/tmac.mimya, soder-
            zhashchego opredeleniya makrokomand, pered schityvani-
            em formatiruemyh fajlov;

      -ran  Ustanovka registra (odnosimvol'nogo) a v N;

      -i    Schityvanie standartnogo vvoda  posle  togo,  kak
            prochitany vvodnye fajly;

      -q    Ustanovka rezhima odnovremennogo vvoda-vyvoda  po
            zaprosu rd;

      -Timya Podgotovka vyvoda dlya  ukazannogo  terminal'nogo
            ustrojstva;

      e     Sozdanie slov s odinakovym  intervalom  v  soot-
            vetstvuyushchih  strokah,  ispol'zuya vsyu razreshayushchuyu
            sposobnost' terminala;

      h     Ispol'zovanie vyhodnoj tabulyacii vo vremya  gori-
            zontal'nogo  pozicionirovaniya  dlya  togo,  chtoby
            uvelichit' skorost' vyvoda i umen'shit'  vremya  na
            schet  vyhodnyh simvolov. Predpolagaetsya, chto ta-
            bulyacionnye ustanovki imeyut shirinu vosem'  nomi-
            nal'nyh simvolov.

FAJLY:
      /usr/lib/tmac/tmac.*
            Standartnye makrofajly

      /usr/lib/term/*
            Tablicy terminalov


                            77
                   APK.00210-01 33 01-5

      /tmp/ta*
            Vremennye fajly

DOPOLNITELXNYE SSYLKI :
      tbl, col














                            78
                   APK.00210-01 33 01-5

IMYA:
      pli - obrabotka programm PL/1.

Format:
      pli [-clgirsq ] fajl ...

OPISANIE:
      Komanda pli predstavlyaet soboj pol'zovatel'skij inter-
      fejs  s  komandoj  send.  Naznachenie komandy sostoit v
      tom, chtoby sformirovat' i peredat' zadanie v OS ES dlya
      obrabotki programmy translyatorom s yazyka PL/1. Vvodnym
      fajlom komandy  yavlyaetsya  sobstvenno  tekst  ppogpammy
      PL/1,  kotopyj  oformlyaetsya  v zadanie OS ES na osnove
      flazhkov komandy.  Oformlennoe  zadanie  pomeshchaetsya  vo
      vremennom  fajle,  icpol'zyemom v kachectve fajla vvoda
      komandy send.

      Nedostayushchie parametry dolzhny byt' vvedeny v  otvet  na
      podskazku  komandy.  Utochnennye  parametry sohranyayutsya
      mezhdu   seansami   v   fajle   profilya    pol'zovatelya
      $home/.../pli.  Komandoj obespechivayutsya sleduyushchie voz-
      mozhnosti obrabotki:

      -     kompilyaciya odnoj ili bolee programm;

      -     kompilyaciya i redaktirovanie programm;

      -     kompilyaciya, pedaktipovanie  i  vypolnenie  odnoj
            ili bolee programm;

      -     ukazanie biblioteki makroopredelenij dlya ispol'-

                            79
                   APK.00210-01 33 01-5

            zovaniya sredstv preprocessora v kompilyacii;

      -     pol'zovatel' osvobozhdaetsya, naskol'ko  eto  voz-
            mozhno  ot  sostavleniya operatorov YAUZ zadaniya OS
            ES;

      -     vydaetsya podskazka o neobhodimoj informacii, is-
            pol'zuya polnoekrannyj vvod/vyvod;

      -     vvedennaya informaciya sohranyaetsya so vremeni pos-
            lednego  vypolneniya komandy i eti dannye ispol'-
            zuyutsya v kachestve znachenij  po  umolchaniyu  (hotya
            vsegda mogut byt' perenaznacheny).

      Flazhki komandy ustanavlivayut  sledushchie  rezhimy  raboty
      komandy:

      -c    vypolnit' tol'ko kompilyaciyu fajlov  (rezhim  dej-
            stvuet po umolchaniyu);

      -l    vypolnit' kompilyaciyu i redaktirovanie fajlov;

      -g    kompilipovat', pedaktipovat' i vypolnit' sozdan-
            nuyu programmu;

      -i    raspredelit' standartnyj vvod v kachestve  istoch-
            nika vvoda PL/1 programmy;

      -r    ispol'zovat'  soderzhimoe   fajla   $home/.../pli
            vmesto podskazki pol'zovatelyu;

      -s    otobrazit' sformirovannoe zadanie dlya OS  ES  na
            ctandaptnyj vyvod, vmecto vyzova send;


                            80
                   APK.00210-01 33 01-5

      -q    vmesto vyzova komandy send vyzvat' komandu gath.

      Trebuetsya yavnoe  ukazanie  vvodnogo  fajla  v  komande
      tol'ko v tom sluchae esli ne ukazan flag i.

FAJLY:
            /usr/lib/model/jobcard model' operatora JOB  dlya
            komandy send.

            /usr/lib/model/plic model' procedury  kompilyaci-
            ii.

            /usr/lib/model/rlicl model'  procedury  kompilya-
            cii/ redaktirovaniya.

            /usr/lib/model/pliclg model' procedury  kompilya-
            cii/ redaktirovaniya/vypolneniya.

            /imp/pli* vremennyj rabochij fajl.

            $home/.../pli fajl profilya pol'zovatelya.

DOPOLNITELXNYE SSYLKI:
      send






                            81
                   APK.00210-01 33 01-5

IMYA:
      pp - vydelenie propisnyh bukv  pri pechati na ACPU

FORMAT:
      pp [-N]

OPISANIE:
      Komanda pp yavlyaetsya fil'trom  dlya  pechati  tekstov  na
      ACPU bez strochnyh bukv. Komanda vydelyaet v tekste pro-
      pisnye bukvy, ispol'zuya nalozhenie simvolov.  Predpola-
      gaetsya,  chto  pechatayushchee ustrojstvo pravil'no ponimaet
      upravlyayushchij simvol "7" - vozvrat karetki. CHislo nalo-
      zhenij mozhet byt' ukazano v parametre. Primer ispol'zo-
      vaniya komandy:
             pr -2 text " pp -3 >/dev/lp

ZAMECHANIYA:
      Vozmozhno, chto pri pechati na matrichnoe ustrojstvo  tipa
      DZM  bylo by effektivnee ispol'zovat' dlya pechati s na-
      lozheniem opepaciyu "vozvpat na shag nazad", odnako takaya
      vozmozhnost' ne predusmotrena.





                            82
                   APK.00210-01 33 01-5

IMYA:
      pr - pechat' fajlov.

FORMAT:
      pr [klyuchi]...[fajl]...

OPISANIE:
      Komanda pr pechataet soderzhimoe odnogo  ili  neskol'kih
      fajlov. Vyvod razdelyaetsya na stranicy, zagolovok koto-
      ryh soderzhit datu, imya fajla ili ukazannyj zagolovok i
      nomer  stranicy. Esli parametr "fajl" otsutstvuet, ko-
      manda pr raspechatyvaet standartnyj vvod.

      Klyuchi otnosyatsya ko vsem posleduyushchim fajlam i mogut pe-
      reustanavlivat'sya mezhdu fajlami:

      -n  V nachale kazhdoj stroki  pechatat' ee nomer v fajle;

      -iN V nachale kazhdoj  stroki   pechatat'  ee  "skvoznoj"
          nomer  (nachinaya  ot  pervoj stroki pervogo fajla).
          Esli posle klyucha zadano chislo (N), numeraciya nachi-
          naestsya s N;

      -ns Sgenerirovat' vyvod, sostoyashchij iz "ns" stolbcov;

      +ns Nachat' pechat' so stranicy "ns";

      -h  Sleduyushchij parametr schitaetsya zagolovkom stranic;

      -wN Dlya celej mnogokolonochnogo vyvoda, prinyat'  shirinu
          stranicy ravnoj N simvolov vmesto 72 po umolchaniyu;

      -f  Dlya dopolneniya stranicy do zadannogo razmera lista


                            83
                   APK.00210-01 33 01-5

          ispol'zovat' kod "perehod na novyj list" (po umol-
          chaniyu vydaetsya neobhodimoe chislo kodov "perehod na
          novuyu stroku");

      -lN Prinyat' dlinu stranicy ravnoj N strok vmesto 66 po
          umolchaniyu;

      -t  Ne pechatat' po 5 strok v nachale i v  konce  kazhdoj
          stranicy, kotorye obychno vstavlyayutsya;

      -sC Razdelyat' stolbcy odinochnym simvolom "C", a ne so-
          otvetstvuyushchim  kolichestvom probelov. Otsutstvuyushchij
          simvol "C" rassmatrivaetsya kak simvol tabulyacii;

      -m  Raspechatat' vse fajly odnovremenno, kazhdyj v svoem
          stolbce.

DOPOLNITELXNYE SSYLKI :
      cat, more

DIAGNOSTIKA:
      Vo vremya vyvoda na terminal s pomoshch'yu komandy pr diag-
      nosticheskie soobshcheniya ne vyvodyatsya.






                            84
                   APK.00210-01 33 01-5

IMYA:
      PRETTYP-krasivaya pechat' programmy na Paskale

OPISANIE:
      SH pefopmatipyet ppogpammy na Packale co  ctandaptnogo
      vxoda, pezyl'tat podaetsya na standartnyj vyhod,

DIAGNOSTIKA:
      Diagnosticheskie soobshcheniya otsutstvuyut

PRIMECHANIE:

      *Ne dopuskaetsya tabulyaciya.

      *Nepredskazuemyj rezul'tat v sluchae sintaksicheski  ne-
      vernoj programmy.

      *Vstavlyaetsya stroka probelov v nachalo vyhoda.

      *Esli chiclo cimvolov v  ctpoke  ppevyshaet  72,  ctpoka
      pazbivaetcya  i  pepenocitcya,  chto  samo  po sebe mozhet
      vyzvat' nezhelaemyj rezul'tat.






                            85
                   APK.00210-01 33 01-5

IMYA:
      ps - opros sostoyaniya processov.

FORMAT:
      ps [acgklrstuvwx# [spisok-imen]]

OPISANIE:
      Komanda ps vydaet informaciyu  ob  aktivnyh  processah.
      Dlya polucheniya naibolee podrobnoj informacii ispol'zuj-
      te komandu "ps axlgw". Dlya polucheniya bystroj  fotogra-
      fii raboty sistemy rekomenduetsya ispol'zovat' "ps au".
      Parametram mozhet predshestvovat' znak minus, ne  okazy-
      vayushchij  nikakogo  vliyaniya. Mogut byt' zadany sleduyushchie
      klyuchi (po umolchaniyu, ustanavlivaetsya rezhim "cx"):

      a     Zaprashivaet informaciyu obo vseh processah s ter-
            minalami (obychno otobrazhayutsya tol'ko sobstvennye
            processy);

      c     Privodit k tomu, chto vmesto parametrov otobrazha-
            etsya  tol'ko  pole comm. (pole comm predstavlyaet
            soboj okonchanie polnogo imeni poslednego  fajla,
            vypolnennogo processom). |tot klyuch neskol'ko us-
            koryaet vypolnenie komandy ps i  umen'shaet  ob'em
            vyvoda.  |to takzhe bolee nadezhno, poskol'ku pro-
            cess ne mozhet izmenit' ego vershinu;

      e     Vydaet ne tol'ko komandy no i kontekst v kotorom
            oni  zapushcheny, (t.e. so znacheniyami vseh peremen-
            nyh yazyka upravleniya zadaniyami);

                            86
                   APK.00210-01 33 01-5

      g     Vydaet informaciyu obo vseh processah. Bez  etogo
            klyucha  komanda ps raspechatyvaet tol'ko "interes-
            nye" processy. Processy schitayutsya  "neinteresny-
            mi",  esli  oni yavlyayutsya golovnymi v gruppe pro-
            cessov ili ih parametry nachinayutsya  s  "-".  |to
            obychno  pozvolyaet  ustranit' vydachu informacii o
            processah interpretatorov komand i getty;

      k     |tot klyuch ispol'zuetsya dlya posleschetnoj  otladki
            sistemy;

      l     Zadaet "dlinnyj" format vyvoda.  Korotkaya  forma
            soderzhit tol'ko imya pol'zovatelya, indentifikator
            processa, terminal, vremya vypolneniya processa  i
            sokrashchennuyu zapis' komandnoj stroki;

      r<t>-<string>-
            Ciklicheskij rezhim raboty ps.  Komanda  povtoryaet
            vydachu  na  ekran  terminala  kazhdye <t> sekund,
            prichem pered vydachej  posylaetsya  posledovatel'-
            nost'  simvolov  <string>  dlya  ochistki  ekrana.
            Vydaetsya informaciya tol'ko o processah,  nahodya-
            shchihsya v operativnoj pamyati. Dannyj rezhim ispol'-
            zuetsya v komandnoj procedure "/etc/psloop",  ko-
            toraya  periodicheski  otobrazhaet na ekrane sosto-
            yanie operacionnoj sistemy;

      s     Vydavat' razmer steka yadra dlya kazhdogo processa.
            |tot klyuch mozhet ispol'zovat'sya tol'ko s korotkoj
            formoj listinga i prednaznachen dlya razrabotchikov


                            87
                   APK.00210-01 33 01-5

            sistemy;

      t imya-terminala
            Ogranichivaet vyvod processami,  ch'i  upravlyayushchie
            terminaly  imeyut  ukazannoe  imya (kotoroe dolzhno
            zadavat'sya tak, kak oni pechataeyutsya komandoj ps,
            naprimer,  t3 dlya tty3, tc0 dlya konsoli, td0 dlya
            ttyd0, t? dlya processov, ne imeyushchih  terminalov,
            i t.d.). |ta opciya dolzhna zadavat'sya poslednej;

      u     Generiruetsya vyvod, orientirovannyj na pol'zova-
            telya.  On vklyuchaet imya vladel'ca processa, iden-
            tifikator processa, procent nedavno ispol'zovan-
            nogo vremeni central'nogo processora (eshche ne re-
            alizovano), znachenie prioriteta, razmer,  razmer
            rezidentnoj chasti, terminal, ispol'zovannoe vre-
            mya central'nogo processora i komandu;

      v     Vydaetsya versiya vyvoda,  soderzhashchaya  statistiku,
            otnosyashchuyusya  k virtual'noj pamyati. Polyami vyvoda
            yavlyayutsya flagi, identifikator  processa,  termi-
            nal,  vremya central'nogo processora, vremya rezi-
            dentnogo  sostoyaniya,  vremya  ozhidaniya,   mladshaya
            chast'  sbrosov  stranic,  starshaya  chast' sbrosov
            stranic, virtual'nyj razmer processa, razmer re-
            zidentnoj  chasti,  razmer  rezidentnoj chasti pri
            podkachke, virtual'nyj  razmer  tekstovoj  chasti,
            razmer  rezidentnoj  chasti teksta, srednee koli-
            chestvo sbrosov stranic v  sekundu  za  poslednie

                            88
                   APK.00210-01 33 01-5

            neskol'ko  sekund, a takzhe komanda. Ispol'zuyutsya
            sleduyushchie flagi: r oznachaet rabotu,  s  oznachaet
            ozhidanie, w oznachaet vygruzku, d oznachaet ozhida-
            nie diska (vvod-vyvod), i  p  oznachaet  ozhidanie
            stranicy.  Rezidentnoe  vremya  -  eto promezhutok
            vremeni v pamyati ili na diske; v nastoyashchee vremya
            "127"  yavlyaetsya maksimal'nym. Rezidentnyj razmer
            - eto kolichestvo vydelennyh  stranic  fizicheskoj
            pamyati;

      w     Soobshchaet komande ps o tom,  chto  vy  ispol'zuete
            terminal  s dlinnoj stroki 132 simvola. Po umol-
            chaniyu  schitaetsya,  chto  vash  terminal  imeet  80
            stolbcov.  |ta informaciya ispol'zuetsya dlya opre-
            deleniya togo, kakaya dlina komand dolzhna raspecha-
            tyvat'sya.  Klyuch w mozhet byt' povtoren: "ww", pri
            etom vsya komanda, do 128 simvolov, budet  raspe-
            chatyvat'sya nezavisimo ot dliny stroki terminala;

      x     Zaprashivaet informaciyu dazhe o processah, ne ime-
            yushchih terminalov;

      #     Mozhet ukazyvat' nomer processa (ukazannyj  zdes'
            kak #), pri etom vyvod ogranichivaetsya dannymi ob
            etom processe. |tot klyuch takzhe dolzhen byt'  pos-
            lednim.

      Vtoroj parametr soobshchaet komande ps o tom, gde  iskat'
      obraz  pamyati pri ukazanii opcii "k". Po umolchaniyu is-
      pol'zuetsya imya iz peremennoj sredy  "KERNEL",  a  esli


                            89
                   APK.00210-01 33 01-5

      ona  ne  najdena,  to  imya  "/demos".  Tretij parametr
      predstavlyaet soboj imya fajla svopinga. Esli zadan chet-
      vertyj  parametr, on schitaetsya fajlom, soderzhashchim spi-
      sok imen sistemy.

      Vyvod sortiruetsya po terminalam, a zatem - po  identi-
      fikatoram processov.

      Dlinnaya forma listinga pechataetsya stolbcami  i  soder-
      zhit:

      F     Flagi, svyazannye s processom;

      S     Sostoyanie processa:  o  -  nesushchestvuyushchij,  s  -
            "spyashchij",  w  -  ozhidayushchij, r - vypolnyayushchij, i -
            promezhutochnyj, z - zavershennyj, t -  ostanovlen-
            nyj;

      UID   Identifikator pol'zovatelya vladel'ca processa;

      PID   Identifikator dannogo processa; v nekotoryh slu-
            chayah  mozhno  udalit' process, esli vy znaete ego
            istinnoe imya;

      PPID  Identifikator porozhdayushchego processa;

      CPU   Ispol'zovanie processa dlya planirovaniya;

      PRI   Prioritet processa; bol'shie chisla oznachayut men'-
            shie prioritety;

      NICE  Ispol'zuetsya dlya vychisleniya prioriteta;

                            90
                   APK.00210-01 33 01-5

      ADDR  Adres pamyati processa, esli  on  yavlyaetsya  rezi-
            dentnym, v protivnom sluchae - adres na diske;

      SZ    Razmer obraza pamyati processa v blokah;

      RSS   Razmer rizidentnoj chasti (chast' stranic, k koto-
            rym  process  mozhet obratit'sya bez sbrosov) pro-
            cessa;

      WCHAN Sobytie, kotoroe ozhidaet process;  esli  probel,
            process  vypolnyaetsya. tty - upravlyayushchij terminal
            dlya dannogo processa;

      TIME  Summarnoe vremya vypolneniya dlya dannogo processa;

      COMAND
            Komanda i ee parametry.

      Process, kotoryj uzhe zavershilsya, imeet, odnako, porozh-
      dayushchij  process, kotoryj eshche ne ozhidal ego, otmechaetsya
      <defunct>(<zakonchivshijsya>). Komanda ps staraetsya opre-
      delit'  imya  fajla i parametry, ukazannye pri sozdanii
      processa, putem issledovaniya pamyati ili  oblasti  svo-
      pinga.  |tot metod v svoej sushchnosti yavlyaetsya neskol'ko
      nenadezhnym, i v lyubom sluchae process  mozhet  razrushit'
      etu  informaciyu,  tak  chto na eti imena nel'zya slishkom
      polagat'sya.

DOPOLNITELXNYE SSYLKI :
      kill

ZAMECHANIYA:


                            91
                   APK.00210-01 33 01-5

      Vo vremya raboty komandy ps situaciya mozhet  izmenit'sya;
      poluchennaya kartina yavlyaetsya lish' nekotorym priblizheni-
      em k real'noj.













                            92
                   APK.00210-01 33 01-5

IMYA:
      pwd - vydat' imya rabochego spravochnika

FORMAT:
      pwd

OPISANIE:
      Komanda pwd  vydaet  polnoe  imya  rabochego  (tekushchego)
      spravochnika.

DOPOLNITELXNYE SSYLKI :
      cd










                            93
                   APK.00210-01 33 01-5

IMYA:
      PXREF  - perekrestnye ssylki Paskalya

FORMAT:
      PXREF

OPISANIE:
      PXREF komanda prinimaet ishodnyj  tekst  programmy  na
      Paskale  so  standartnogo   vhoda   i vyvodit na stan-
      dartnyj vyhod perekrestnye ssylki. Informaciya o perek-
      restnyh ssylkah delitsya na tri chasti: listing ob'yavle-
      nij, perekrestnye ssylki rutin i  perekrestnye  ssylki
      vsego  ostal'nogo.  Kazhdyj  identifikator perekrestnoj
      ssylki soprovozhdaetsya imenem rutiny i nomerom  stroki,
      gde on vstretilsya.








                            94
                   APK.00210-01 33 01-5

IMYA:
      q, ind, autolog, mo - vypolnit' komandu MVM.

FORMAT:
      q argument...

      ind [user]

      autolog idvm parol' [dannye]

      mo

OPISANIE:
      Komandy MVM q, ind, autolog, mo  (bez  parametrov)  ne
      okazyvayut  vliyanie na rabotu virtual'noj mashiny DEMOS,
      poetomu oni dostupny  ryadovomu  pol'zovatelyu.  Vyhodom
      etih komand raspredelyaetsya fajl standartnogo vyvoda.

      Komanda montirovaniya mo s parametrami dostupna  tol'ko
      super-pol'zovatelyu.

FAJLY:
      /dev/vcf?

DOPOLNITELXNYE SSYLKI:
      vcf, cpcmd, cpmode

      Format i parametry etih komand privodyatsya v dokumentah
      SVM  "Komandy  monitora  VM ", "Upravlenie virtual'noj
      mashinoj".

DIAGNOSTIKA:
      Soobshchenie 'command too long' oznachaet  prevyshenie  132


                            95
                   APK.00210-01 33 01-5

      simvolov vvodnoj strokoj parametrov komandy.















                            96
                   APK.00210-01 33 01-5

IMYA:
      ranlib - sozdanie kataloga bibliotechnogo arhiva

FORMAT:
      ranlib arhiv1 ...

OPISANIE:
      Komanda ranlib prednaznachena dlya zapisi ili obnovleniya
      kataloga  vhodov v arhivah ob'ektnyh fajlov (to est' v
      bibliotekah programm). Po komande  "ranlib"  v  nachalo
      arhiva,  sformirovannogo  komandoj  "ar", zapisyvaetsya
      fajl "__.SYMDEF", soderzhashchij katalog biblioteki.  Zag-
      ruzchik "ld" ispol'zuet katalog dlya uskoreniya zagruzki;
      krome togo, v etom sluchae zagruzhayutsya srazu vse  prog-
      rammy  iz  dannoj  biblioteki  (nezavisimo  ot togo, v
      kakom poryadke oni zapisany). Dlya  zapisi  ispol'zuetsya
      komanda  "ar", pri etom dolzhno byt' dostatochno svobod-
      nogo mesta v spravochnike "/tmp".

ZAMECHANIYA:
      Esli kakoj libo ob'ektnyj fajl byl zapisan v bibliote-
      ku  posle sozdaniya kataloga komandoj "ranlib", to est'
      biblioteka obnovlyalas' posle zapisi "__.SYMDEF",  zag-
      ruzchik    "ld"   vydaet   predupreditel'noe  soobshchenie
      "__.SYMDEF out of date" i ignoriruet fajl "__.SYMDEF".
      Pri  etom  vozmozhno  poyavlenie  neopredelennyh vneshnih
      imen iz za togo, chto pri zagruzke  iz  biblioteki  bez
      kataloga "__.SYMDEF" biblioteka prosmatrivaetsya posle-
      dovatel'no, prichem tol'ko odin raz. Takaya zhe  situaciya

                            97
                   APK.00210-01 33 01-5

      vozniknet,  esli prosto perepisat' biblioteku komandoj
      "cp". Dlya  yctpaneniya  necootvetctviya  dat  neobxodimo
      povtopit' komandy "ranlib".













                            98
                   APK.00210-01 33 01-5

IMYA:
      red - poliekpannyj pedaktop tekctov.

FORMAT:
       red [-klyuchi] imya_fajla [nomep_ctpoki]
       red [-klyuchi]
       red [-klyuchi] -
       red [-klyuchi] -r fajl_ppotokol

OPISANIE:
      Pedaktop  red  ppednaznachen   dlya   pedaktipovaniya   i
      ppocmotpa   fajlov   v   ekpannom   pezhime  c  pomoshch'yu
      tepminalov EC-7920 i covmectimyx c nimi. On  pozvolyaet
      ppocmatpivat'  na  ekpane tepminala odin ili neckol'ko
      fajlov, pedaktipovat' fajly c icpol'zovaniem  yppavlya-
      yushchix  klavish  tepminala i komand pedaktopa, pepenocit'
      infopmaciyu iz fajla v fajl i ppovodit' dpygie opepacii
      pedaktipovaniya.   Pedaktop   analogichen   po  fynkciyam
      pedaktopy "red" dlya OC DEMOC/CM i  podpobno  opican  v
      pykovodctve ppogpammicta ("Dialogovaya edinaya mobil'naya
      opepacionnaya cictema. Pykovodctvo ppogpammicta.  Poli-
      ekpannyj pedaktop tekctov RED.").

      Pedaktop vyzyvaetcya c pomoshch'yu komandy "red" v odnom iz
      cledyyushchix fopmatov:

      red [-klyuchi] imya_fajla [nomep_ctpoki]
            Hachat'   pedaktipovanie    fajla    "imya_fajla",
            yctanoviv  okno  na  ctpoky "nomep_ctpoki"; ecli
            nomep ne ykazan, vycvechivaetcya nachalo fajla.


                            99
                   APK.00210-01 33 01-5

      red [-klyuchi]
            Ppodolzhit' pedaktipovanie c  togo  coctoyaniya,  v
            kotopom  byl  zavepshen ppedydyshchij ceanc paboty c
            dannogo tepminala.

      red [-klyuchi] -
            Povtopit' ceanc pedaktipovaniya fajlov pocle cboya
            cictemy ili pedaktopa.

      red [-klyuchi] -r fajl_ppotokol
            Povtopit' ceanc pedaktipovaniya, cchitav  ppotokol
            iz ykazannogo fajla.

      Pezhim  paboty  pedaktopa  zadaetcya  c  pomoshch'yu  nabopa
      "klyuchej",   kazhdomy   iz  kotopyx  cootvetctvyet  odna
      latinckaya bykva. Klyuchi  izmenyayutcya  c  pomoshch'yu  ctpoki
      opicaniya  klyuchej  vida  "-nabop_bykv+nabop_bykv",  gde
      lyubaya polovina ctpoki  mozhet  otcytctvovat'.  Opicanie
      klyuchej mozhet zadavat'cya:

      1.    v apgymente  komandy  v  vide  "red  --l+s  ..."
            (obpatite  vnimanie,  chto  pepvyj  "-"  yavlyaetcya
            ppiznakom cootvetctvyyushchego apgymenta komandy,  a
            vtopoj oznachaet "otmena klyucha l");

      2.    c pomoshch'yu pepemennoj csh REDKEYS, nappimep:

             setenv REDKEYS "+l"

      3.    c pomoshch'yu komandy pedaktopa, nappimep:

                           100
                   APK.00210-01 33 01-5

             <APG>-w<BBOD>

             chto oznachaet:

             (PF7)-W(BBOD)

      Bozmozhnye klyuchi:

        l - pabotat' tol'ko c bol'shimi bykvami (pezhim LCASE)

        s - ppi vyvode na tepminal cimvoly "{", "}"  i  t.p.
      izobpazhat'  c  pomoshch'yu papy cimvolov (vvodyatcya oni tak
      vcegda);

        t - ne vctavlyat' tabylyacii vmecto ppobelov.

        w - pazpeshenie zapici v tekyshchij fajl.

        z - ne intepppetipovat' pyctye cimvoly na ekpane kak
      ppobely  (po  ymolchaniyu  nylevye  cimvoly  vvodyatcya  c
      tepminala kak ppobely);

        S - ne vycvechivat' ekpan ppi  povtope  ceanca  pocle
      cboya.

      Po ymolchaniyu  yctanavlivaetcya  pezhim  "-ls";  ecli  na
      tepminale  ne  yctanovlen  pezhim  "lcase",  i  "+ls" v
      ppotivnom clychae. Cledyet imet' v vidy, chto ppi  cmene
      pezhimov   "l"  i  "s"  v  ppocecce  paboty  neobxodimo
      pepevydat' ekpan, nazhav "CTPH |KP".

      Bvod komand ocyshchectvlyaetcya  c  pomoshch'yu  fynkcional'nyx

                           101
                   APK.00210-01 33 01-5

      klavish  tepminala  EC-7920.  Pazmeshchenie komand vybpano
      tak,  chto  ono  ppaktichecki  covpadaet  c  pazmeshcheniem
      komand na dopolnitel'noj cifpovoj klaviatype tepminala
      "|lektponika-15-I|"  na  CM  |BM.  Hekotopye   otlichiya
      cvyazany  c  tem,  chto  kazhdaya  klavisha mozhet vvodit' 3
      paznye komandy, v  zavicimvoti  ot  "pegictpa  vvoda",
      kotopyj yctanavlivaetcya c pomoshch'yu klavish "PD2" i "PD3"
      (dlya covmectimocti c CM |BM mozhno  takzhe  icpol'zovat'
      dlya etoj celi "PF8"). Tablica komand ppivedena v fajle
      "/usr/lib/re.std", kotopyj vycvechivaetcya  ppi  nazhatii
      klavishi "PF10" (komanda "yctanovi_fajl").






              Pazmeshchenie komand na klaviatypy 7920

 -----pd2--------pf1---------pf2---------pf3------pegictp:
 ! pegictp 2 ! +lict     ! vctavit'  !  vzyat'    !  - 1
 ! pegictp 1 ! -lict     ! ybpat'    !  polozhit' !  - 2
 ! pegictp 1 ! tab nazad ! - ctpoki  ! tab vpeped!  - 3


                           102
                   APK.00210-01 33 01-5

 -----pd3--------pf4---------pf5---------pf6------
 ! registr 3 ! podvecti k! vct ppobel! ybp cimvol!  - 1
 ! fikcaciya 3! cozd okno ! yct tab   !  zap fajl !  - 2
 ! pegictp 1 ! okno vlevo! v nachalo  !okno vppavo!  - 3
 ----------------pf7---------pf8---------pf9------
 !           ! apgyment  ! pegictp 2 ! + poick   !  - 1
 !           !           ! pegictp 1 ! - poick   !  - 2
 !           !           ! + ctpoki  !   ***     !  - 3
 ----------------pf10--------pf11--------pf12-----
 !           ! ped fajl  !  ybpat'   ! polozhit'  !  - 1
 !           ! cled okno !  payza    ! otvet     !  - 2
 !           ! vypolni   !   ***     !  ***      !  - 3
 -------------------------------------------------
   --ctipanie---
   ! ochictit' i!
   ! povtopit' !
   ! dvizhenie  !
   !   okna    !
   --vyz.tecta--
   !           !
   ! vyxod     !
   !           !
   -------------

                             Pic. 1.

      Ocnovnye otlichiya pedaktopa ot vepcii dlya CM |BM:

      1.    Bmecto komandy "pezhim vctavki"  vvedena  komanda

                           103
                   APK.00210-01 33 01-5

            "vctavit'  ppobely", kotopaya vctavlyaet v tekyshchee
            mecto  ctpoki  ppobely  (po  ymolchaniyu  4,   dlya
            izmeneniya    chicla    ppobelov    nyzhno   vvecti
            <APG>chiclo<BCTABITX>).   Dlya    vctavki/ydaleniya
            cimvolov   iz  ctpoki  mozhno  pol'zovat'cya  libo
            avtonomnymi   vozmozhnoctyami   tepminala,    libo
            komandami "vct ppobel", "ybp. cimvol", kotopye v
            otlichie   ot   avtonomnyx    komand    tepminala
            vdvigayut/vydvigayut  tekct  iz  za ppavoj gpanicy
            ekpana tepminala.

      2.    Dlya pepexoda k pezhimy ykazaniya kypcopom iz vvoda
            apgymenta  nazhmite  "BBOD"  ili  vvedite odny iz
            komand yppavleniya kypcopom

      3.    Obpatnyyu  chepty  ppi  vvode  neobxodimo   vcegda
            ydvaivat'.

      4.    Dlya vvoda/vyvoda  netekctovyx  cimvolov  icpol'-
            zyetcya kombinaciya cimvolov vida " 07".

      5.    Ecli apgyment komandy ne ymeshchaetcya v pole vvoda,
            ego  mozhno  vvecti  za  neckol'ko  paz,  nazhimaya
            "<APG>" pocle vvoda ochepednoj chacti papametpa.

      6.    Dlya pepemeshcheniya okna vvepx/vniz ili vppavo/vlevo
            doctatochno  podvecti  kypcop  k  cootvetctvyyushchej
            gpanice ekpana i nazhat' "BBOD".

      B pedaktop vvedeny komandy "payza" i "otvet",  kotopye
      pozvolyayut  zapicat'  v  ppotokol ceanca payzy 5 cekynd


                           104
                   APK.00210-01 33 01-5

      ili ozhidanie nazhatiya klavishi  "vvod"  i  ppednaznacheny
      dlya napicaniya ychebnogo ppotokola paboty pedaktopa.

DOPOLNITELXNYE SSYLKI :
      rpl(1)

ZAMECHANIYA:
      Dlya povtopa ceanca  pocle  cboya  neobxodimo,  chtoby  v
      cppavochnike  "/tmp"  byli  octavleny  fajly  c imenami
      "rett*" i "resv*". B imena  pabochix  fajlov  pedaktopa
      dobavlyaetcya  imya  pol'zovatelya,  vzyatoe  iz pepemennoj
      "USER", libo nomep pol'zovatelya, ecli  eta  pepemennaya
      ne zadana..

FAJLY
       /tmp/rett*.imya - ppotokol paboty pedaktopa;
       /tmp/resv*.imya - coctoyanie pedaktopa  ppi  vyxode  iz
      nego;
       /tmp/retm*.imya - pabochij fajl.







                           105
                   APK.00210-01 33 01-5

IMYA:
      refft, crreff - poluchenie tablicy ispol'zovaniya  iden-
      tifikatorov.

FORMAT:
      refft <spisok fajlov>
      crreff <fajl>

OPISANIE:
      Komandy refft i crreff sluzhat  dlya  polucheniya  tablicy
      ispol'zovaniya identifikatorov v programme ili komplek-
      se programm na Si. Parametrom komandy crreff  yavlyaetsya
      imya fajla, soderzhashchego ishodnuyu programmu na yazyke Si,
      esli imya fajla ne zadano, chitaetsya  standartnyj  vvod.
      Komanda chitaet ishodnyj tekst programmy na Si i vydaet
      tablicu identifikatorov v sleduyushchem formate:

           chislo imya fajl stroka stroka ...

      Dlya kazhdogo identifikatora, vydaetsya  "chislo"  vhozhde-
      nij,  ego "imya", "fajl" i spisok "strok", v kotoryh on
      vstrechaetsya.

      Komanda refft sostavlyaet analogichnuyu tablicu dlya prog-
      rammy,  zanimayushchej neskol'ko fajlov; v etom sluchae dlya
      kazhdogo  identifikatora  vydaetsya  neskol'ko   spiskov
      strok, po odnomu dlya kazhdogo fajla.

DOPOLNITELXNYE SSYLKI :
      ctags

                           106
                   APK.00210-01 33 01-5

ZAMECHANIYA:
      Komanda refft na samom dele yavlyaetsya komandnym  fajlom
      na SHELL i ispol'zuet komandu crreff v special'nom re-
      zhime (flag "-j").














                           107
                   APK.00210-01 33 01-5

IMYA:
      rev - perevernut' stroki fajla

FORMAT:
      rev [fajl]...

OPISANIE:
      Komanda rev kopiruet  ukazannye  fajly  v  standartnyj
      fajl vyvoda, menyaya na protivopolozhnyj poryadok sledova-
      niya simvolov v kazhdoj stroke. Esli ne ukazan  ni  odin
      fajl, informaciya beretsya iz standartnogo fajla vvoda.










                           108
                   APK.00210-01 33 01-5

IMYA:
      rline - chtenie odnoj stroki

FORMAT:
      rline

OPISANIE:
      Komanda rline schityvaet odnu  stroku  iz  standartnogo
      vvoda i vydaet ee v standartnyj vyvod. Komanda ispol'-
      zuetsya v CSHELL dlya vvoda s terminala, naprimer:

       #
       echo "Enter devise type       set dev=`rline`









                           109
                   APK.00210-01 33 01-5

IMYA:
      rm, rmdir - ydalit' fajly (cppavochniki)

FORMAT:
      rm [-f] [-r] [-i] [-] fajl...
      rmdir spravochnik ...

OPISANIE:
      Komanda rm udalyaet iz spravochnika ssylki na  odin  ili
      neskol'ko fajlov.

      Esli nekotoraya ssylka yavlyaetsya  poslednej  ssylkoj  na
      dannyj  fajl,  etot  fajl  unichtozhaetsya.  Dlya udaleniya
      fajla iz spravochnika trebuetsya pravo zapisi  v  dannyj
      spravochnik,  no  ne trebuyutsya ni pravo zapisi v dannyj
      fajl, ni pravo chteniya fajla.

      Esli pol'zovatel' ne imeet  prava  zapisi  v  fajl,  a
      standartnym  fajlom  vvoda yavlyaetsya terminal, vydaetsya
      zapros na podtverzhdenie operacii i schityvaetsya  stroka
      standartnogo  vvoda. Esli eta stroka nachinaetsya simvo-
      lom "y", fajl udalyaetsya, v protivnom sluchae fajl osta-
      etsya.  Nikakie  voprosy  ne  zadayutsya, esli zadan klyuch
      "-f".

      Esli ukazannyj fajl yavlyaetsya spravochnikom,  pechataetsya
      soobshchenie  ob oshibke. Pri ispol'zovanii klyucha "-r" re-
      kursivno unichtozhayutsya fajly iz etogo spravochnika i sam
      spravochnik.

      Pri ukazanii klyucha "-i" (interaktivno) komanda rm  za-


                           110
                   APK.00210-01 33 01-5

      daet  vopros o neobhodimosti udaleniya kazhdogo fajla, a
      vmeste s klyuchom "-r" - nuzhno li proveryat' kazhdyj spra-
      vochnik.

      Komanda rmdir udalyaet ssylki na ukazannye spravochniki.
      Pri etom spravochniki dolzhny byt' pustymi.

DOPOLNITELXNYE SSYLKI :
      unlink

ZAMECHANIYA:
      Mogut vozniknut' vrednye posledstviya pri  neumyshlennom
      vypolnenii chego-nibud' vrode "rm .*"

      Glubina vlozhennosti spravochnikov pri ispol'zovanii "rm
      -r" ne dolzhna byt' slishkom bol'shoj.








                           111
                   APK.00210-01 33 01-5

IMYA:
      rpl - kontekstnaya zamena

FORMAT:
      rpl shablon zamena

OPISANIE:
      Komanda rpl schityvaet stroki  iz  standartnogo  vvoda,
      zamenyaet  vse  vhozhdeniya stroki - pervogo argumenta na
      vtoroj argument,  i  vydaet  rezul'tat  v  standartnyj
      vyvod.  Raspoznayutsya regulyarnye vyrazheniya v pervom ar-
      gumente po tem zhe pravilam, kakie dejstvuyut v redakto-
      re "ed" v kontekste poiska, s tem otlichiem, chto vmesto
      simvola "." dlya oboznacheniya odnogo proizvol'nogo  sim-
      vola ispol'zuetsya simvol "@".

      Primer:
             rpl "^ *" ":" <a >b

      Schityvaetsya fajl "a", vse  gruppy  probelov  v  nachale
      strok zamenyayutsya na dvoetochie, i rezul'tat zapisyvaet-
      sya v fajl "b".

      Komanda rpl prednaznachena  glavnym  obrazom  dlya  kon-
      tekstnoj  zameny v redaktore red, hotya mozhet ispol'zo-
      vat'sya i samostoyatel'no.



                           112
                   APK.00210-01 33 01-5

IMYA:
      sed - paketnyj redaktor

FORMAT:
      sed [-n] [-e kom.] [-f kom._fajl] [fajl]...

OPISANIE:
      Redaktor sed perepisyvaet po umolchaniyu  informaciyu  iz
      fajla  standartnogo  vvoda v fajl standartnogo vyvoda,
      izmenyaya ih v sootvetstvii  s  programmoj  redaktirova-
      niya.

      Esli pri vyzove sed zadan argument pri klyuche "-f",  to
      programma redaktirovaniya beretsya iz fajla "kom._fajl";
      fajlov s programmami redaktirovaniya  mozhet  byt'  nes-
      kol'ko. Esli pri vyzove zadan tol'ko argument pri klyu-
      che "-e" i ne zadano  ni  odnogo  argumenta  pri  klyuche
      "-f",  to  klyuch  "-e"  mozhet byt' opushchen. Argument pri
      klyuche "-n" ukazyvaet fajl, v kotoryj zapisyvaetsya  re-
      zul'tat  redaktirovaniya. Programma redaktirovaniya sos-
      toit iz komand, raspolagayushchihsya po odnoj na stroke,  i
      imeyushchih sleduyushchij format:

            [adres [, adres]] imya_komandy [argumenty]

      Poryadok raboty redaktora: sed kopiruet stroki  iz  re-
      daktiruemogo  fajla v rabochuyu oblast', posledovatel'no
      vypolnyaya vse komandy v oblast' dejstviya kotoryh vhodyat
      stroki,  nahodyashchiesya  v rabochej oblasti; po zaversheniyu
      programmy redaktirovaniya rabochaya oblast' kopiruetsya  v

                           113
                   APK.00210-01 33 01-5

      standartnyj fajl vyvoda (krome sluchaya, kogda zadan ar-
      gument pri klyuche -n). Posle chego rabochaya oblast' unich-
      tozhaetsya.

      Oblast'yu dejstviya komandy yavlyaetsya:

      -     desyatichnoe  chislo,  sootvetstvuyushchee  poryadkovomu
            nomeru  vvedennoj stroki (bez obnuleniya schetchika
            strok pri perehode k  sleduyushchemu  redaktiruemomu
            fajlu);

      -     simvol "$" -  sootvetstvuyushchij  poslednej  stroke
            redaktiruemogo fajla;

      -     "regulyarnoe  vyrazhenie"  prakticheski   polnost'yu
            sovpadayushchee s regulyarnym vyrazheniem, primenyaemym
            v ed s tem otlichiem, chto posledovatel'nost' sim-
            volov  "0  sootvetstvuet simvolu novoj stroki,
            vvedennomu v rabochuyu oblast'.

      Esli pri komande ne zadana oblast' dejstviya, to koman-
      da obrabatyvaet vsyu rabochuyu oblast'.

      Esli pri komande zadana oblast' dejstviya,  to  komanda
      obrabatyvaet  kazhduyu stroku, sootvetstvuyushchuyu ukazannoj
      oblasti dejstviya.

      Esli pri komande zadan  diapazon  (t.e.  dva  obrazca,
      razdelennye  zapyatoj), to ona primenima k pervoj stro-
      ke, kotoraya sootvetstvuet pervomu obrazcu i vsem  pos-
      leduyushchim  strokam vklyuchaya stroku, sootvetstvuyushchuyu vto-

                           114
                   APK.00210-01 33 01-5

      romu obrazcu. Posle etogo v sleduyushchih strokah  obraba-
      tyvaemogo  fajla  delaetsya popytka snova najti stroku,
      kotoraya sootvetstvuet pervomu obrazcu, i process  pov-
      toryaetsya.

      Ispol'zovanie komandy otricaniya "!" privodit  k  tomu,
      chto  sleduyushchaya  za  nej komanda (zapicannaya na odnoj c
      nej ctpoke),  ppimenyaetcya tol'ko k tem strokam,  koto-
      rye ne sootvetstvuyut ukazannoj oblasti dejstviya.

      Argument, oboznachaemyj text, sostoit iz strok,  kazhdaya
      iz kotoryh, isklyuchaya poslednyuyu, zakanchivaetsya simvolom
      '/ ,  neobhodimym  dlya  togo,  chtoby  skryt'  escape-
      posledovatel'nost' "novaya stroka". Simvoly '/ traktu-
      yutsya redaktorom libo  kak  simvoly  '/  v  zameshchayushchej
      stroke  komandy  s, libo ispol'zuyutsya dlya vyvoda v re-
      zul'tiruyushchij  fajl  prisutstvovavshih  v  redaktiruemom
      tekste simvolov probela i tabulyacii (simvol '/ dolzhen
      stoyat' pered znakom  tabulyacii  ili  trebuemym  chislom
      probelov);  v protivnom sluchae probely i simvoly tabu-
      lyacii unichtozhayutsya.

      Argument, oboznachaemyj rfile ili wfile, dolzhen  stoyat'
      poslednim v stroke, soderzhashchej komandu redaktirovaniya;
      komandu i etot argument dolzhen  razdelyat'  tochno  odin
      probel.  Kazhdyj argument wfile sozdaetsya pered nachalom
      obrabotki. Komandam  odnovremenno mozhet byt' zadano ne
      bolee desyati razlichnyh argumentov wfile.

      (1)a         text


                           115
                   APK.00210-01 33 01-5

            Dobavit'. Pomeshchaet text  v  rezul'tiruyushchij  fajl
            pered  chteniem  sleduyushchej  stroki redaktiruemogo
            fajla.

      (2)b label
            Perehod na komandu  ":"  s  metkoj  label.  Esli
            "label" otsutstvuet, to perehodyat na konec prog-
            rammy redaktirovaniya.

      (2)c         text

            Izmenit'. Komanda "s" udalyaet stroki,  vybrannye
            po  zadannoj  oblasti  dejstviya,  i  zameshchaet ih
            strokami argumenta text.

      (2)d  Unichtozhit' rabochuyu oblast'.

      (2)D  Unichtozhit' nachal'nyj segment rabochej oblasti  do
            pervoj escape-posledovatel'nosti "novaya stroka".

      (2)g  Zamenit' soderzhimoe rabochej  oblasti  soderzhimym
            sohranyaemogo bufera.

      (2)G  Dobavit' soderzhimoe sohranyaemogo bufera k soder-
            zhimomu rabochej oblasti.

      (2)h  Zamenit' soderzhimoe sohranyaemogo bufera  na  so-
            derzhimoe rabochej oblasti.

      (2)H  Dobavit' soderzhimoe rabochej oblasti  k  sohranya-
            emomu buferu.

      (1)i         text


                           116
                   APK.00210-01 33 01-5

            Vvesti. Pomestit' text v standartnyj  fajl vyvo-
            da.

      (2)n  Skopirovat' rabochuyu oblast' v  standartnyj  fajl
            vyvoda.  Zamenit' rabochuyu oblast' sleduyushchej vvo-
            dimoj strokoj.

      (2)N  Dobavit' sleduyushchuyu vvodimuyu stroku k rabochej ob-
            lasti,  soderzhashchej  simvoly "'0. Nomer tekushchej
            stroki izmenitsya.

      (2)p  Napechatat'. Zapisat'  rabochuyu  oblast'  v  stan-
            dartnyj fajl vyvoda.

      (2)P  Zapisat' nachal'nyj segment  rabochej  oblasti  do
            pervogo  simvola novoj stroki v standartnyj fajl
            vyvod.

      (1)q  Vyjti. Perejti na konec  programmy  redaktirova-
            niya.

      (1)r rfile
            Prochest' soderzhimoe rfile. Pomestit' ego  v  re-
            zul'tiruyushchij  fajl pered prochteniem novoj vvodi-
            moj stroki.

      (2)s/ regulyarnoe vyrazhenie / zamena / flagi
            Podstavit' stroku zameny iz regulyarnogo  vyrazhe-
            niya  vmesto  sootvetstvuyushchih  obrazcov v rabochuyu
            oblast'. Kak i v redaktore ed ,  vmesto  simvola
            '/' mozhet stoyat' lyuboj simvol. Kolichestvo flagov

                           117
                   APK.00210-01 33 01-5

            mozhet byt' lyubym. Oni imeyut sleduyushchie znacheniya:

            g     Global'nyj. Podstavit' vmesto vseh vhozhde-
                  nij  nesovpadayushchih regulyarnyh vyrazhenij, a
                  ne tol'ko vmesto pervogo;

            p     Raspechatat' rabochuyu oblast'  pri  uslovii,
                  chto podstanovka byla vypolnena;

            w file
                  Zapisat'. Esli byla provedena zamena,  do-
                  bavit' k file rabochuyu oblast';

      (2)t label
            Proverit'. Esli posle samogo  poslednego  chteniya
            ili  ispolneniya  komandy  t byla provedena lyubaya
            podstanovka perejti  na  komandu  ":"  s  metkoj
            label.  Esli metka otsutstvuet, perejti na konec
            programmy redaktirovaniya;

      (2)w file
            Zapisat'. Dobavit' rabochuyu oblast' k file;

      (2)x  Pomenyat' soderzhimoe rabochej oblasti na  soderzhi-
            moe sohranyaemogo bufera;

      (2)y/stroka1/stroka2/
            Preobrazovat'. Zamenit' vse vhozhdeniya  simvolov,
            obrazuyushchih  stroku1,  na sootvetstvuyushchie simvoly
            iz stroki2. Dliny stroki1 i stroki2 dolzhny  sov-
            padat';

                           118
                   APK.00210-01 33 01-5

      (2)! komanda
            Otricanie. Primenenie komandy otricaniya "!" pri-
            vodit  k tomu, chto sleduyushchaya za nej komanda (ili
            gruppa komand, esli komandoj yavlyaetsya  {...}  ),
            zapisannaya  na  odnoj s nej stroke,  primenyaetsya
            tol'ko k tem strokam, kotorye  ne  sootvetstvuyut
            ukazannoj oblasti dejstviya;

      (0):metka
            Po etoj komande nikakih dejstvij ne  proizvodit-
            sya.  Pri etoj komande stoit metka na kotoruyu pe-
            rehodyat po komandam t i b;

      (1)=  Ravenstvo. Po komande "=" v standartnyj fajl vy-
            voda  zapisyvaetsya nomer stroki, imeyushchej ukazan-
            nuyu pri komande oblast' dejstviya;

      (2){  Ispolnit' sleduyushchie komandy do simvola }  tol'ko
            posle vybora rabochej oblasti.

      Pustaya komanda propuskaetsya.

DOPOLNITELXNYE SSYLKI :
      ed, grep, awk, lex





                           119
                   APK.00210-01 33 01-5

IMYA:
      send - peredat' zadanie na obrabotku v OS ES

FORMAT:
      send [-klyuchi] [fajl ...]

      gath [-klyuchi] [fajl ...]

OPISANIE:
      Komandoj send formiruetsya i peresylaetsya fajl,  soder-
      zhashchij zadanie dlya OS ES. Zadanie dolzhno byt' oformleno
      v sootvetstvii trebovanij YAUZ OS ES.  Peresylka  fajla
      zadaniya  komandoj send ispol'zuet mehanizm modelirova-
      niya ustrojstv edinichnyh  zapisej  metodom  nakopleniya,
      rezhimy  dejstviya kotorogo ustanavlivayutsya komandoj MVM
      SPOOL. Takim obrazom sozdannyj fajl komanda send  per-
      foriruet na virtual'nom perfokartochnom vyvode komandoj
      vmpunch v fajl nakopleniya dlya VM OS ES.

      Sostoyanie zadaniya dlya OS ES mozhno poluchit' posredstvom
      ispol'zovaniya komandy st.

      Komanda send obespechivaet fajl zadaniya v vide sbornogo
      vvodnogo  potoka  iz neskol'kih istochnikov vvoda. Voz-
      mozhnymi istochnikami vvoda yavlyayutsya:

      - obychnye fajly DEMOS;

      - standartnyj vvod;

      - vyvodnye fajly komand DEMOS.

                           120
                   APK.00210-01 33 01-5

      Formiruemyj vvodnoj potok napravlyaetsya send vo vremen-
      nyj  fajl,  v kotorom posle zameny i podstanovki pere-
      mennyh soderzhitsya sobstvenno zadanie OS  ES.  Ukazanie
      dejstvuyushchih  opcij  komandy  send, istochnikov vvoda, a
      takzhe dejstvitel'nyh  znachenij  peremennyh  v  obrazah
      kart fajla zadaniya osushchestvlyaetsya s pomoshch'yu vnutrennih
      komand. Stroki, nachinayushchiesya s ~, interpretiruyutsya kak
      vnutrennie  komandy,  kontroliruyushchie  vypolnenie send.
      Oni mogut ustanavlivat',  ili  povtorno  ustanavlivat'
      spisok    dejstvuyushchih    opcij,    opredelyat'   zameny
      pepemennyx, otkpyvat' novye istochniki vvoda vnutri te-
      kushchego istochnika.

      send upravlyaetsya sleduyushchimi vnutrennimi komandami:

      ^-flags
            spisok opcij ustanavlivaet rezhimy funkcionirova-
            niya send;

      ^+flags
            spisok opcij pereustanavlivaet rezhimy, ranee us-
            tanovlennye dlya send;

      ^+:promt
            raspechatat' podskazku na terminale;

      ^-:promt
            pacpechatat' podckazky, tol'ko  esli  v  kachestve
            standartnogo vvoda raspredelen terminal;

      ^!command


                           121
                   APK.00210-01 33 01-5

            vypolnit'  ukazannuyu   komandu   DEMOC,   vyzvav
            intepppetatop  SHELL.  Po  umolchaniyu  v kachestve
            fajla standartnogo vvoda opredelyaetsya /dev/null.
            Standartnyj  vyvod  komandy DEMOS opredelyaetsya v
            kachestve vvoda komandy send;

      ^^comment
            ispol'zuetsya  dlya   vozmozhnosti   kommentirovat'
            programmu,  ne  popadaet  v formiruemyj komandoj
            send vvodnoj potok;

      ^=:keyword;default
            rezul'tatom obrabotki  etoj  vnutrennej  komandy
            yavlyaetsya   raspredelenie  terminala  v  kachestve
            fajla vvoda, v celyah ispol'zovat' vvodnuyu stroku
            v  vide dejstvitel'nogo znacheniya klyuchevogo para-
            metra, imya kotorogo ukazano v komande.  Prinima-
            etsya znachenie po ymolchaniyu, ecli vvoditcya pyctaya
            ctpoka;

      ^keyword=string
            zamena peremennoj v klyuchevom opepande;

      ^file raspredelit' v kachestve vvoda fajl  s  ukazannym
            imenem dlya formirovaniya vvodnogo potoka send;

      ^*file
            raspredelit' v kachestve vvoda fajl  s  ukazannym
            imenem, ne proizvodya translyaciyu registra ili za-
            meshchenie klyuchevogo slova i schitaya stroki s  vnut-

                           122
                   APK.00210-01 33 01-5

            rennimi  komandami obychnym tekstom. Edinstvennoj
            obrabotkoj dannyh budet proverka  na  prevyshenie
            kazhdoj strokoj makcimal'nogo pazmepa;

      ^?file
            raspredelit' v kachestve vvoda fajl  s  ukazannym
            imenem  ne proizvodya translyaciyu registra ili za-
            meshchenie klyuchevogo slova i schitaya stroki s  vnut-
            rennimi  komandami obychnym tekstom. Edinstvennoj
            obrabotkoj  dannyh  budet  ih   blokirovanie   v
            80-bajtnye zapici;

      ^==keyword;n
            peredat' sleduyushchie n strok iz upravlyayushchego fajla
            v vvodnoj potok, esli ne vvedeno imya peremennogo
            klyuchevogo parametra, ili esli eto imya vvedeno, a
            s terminala, raspredelennogo v kachestve istochni-
            ka znachenij peremennyh, vvoditsya pustaya  stroka.
            n po umolchaniyu prinimaet znachenie=1;

      -uUSER
            imya pol'zovatelya DEMOS, kotoromu  raspredelyayutsya
            vyvodnye  fajly  (po  umolchaniyu ispol'zuetsya imya
            pol'zovatelya, poslavshego komandy send);

      -cLINK
            imya linii v PDP, na kotoroj  raspredelyaetsya  vy-
            vodnoj  fajl  (tekushchee imya po ymolchaniyu 'COMPLEX
            1');

                           123
                   APK.00210-01 33 01-5

      -l    raspredelit' fajl standartnogo vyvoda i  otobra-
            zit' na nem obrazy kart fajla zadaniya;

      -q    ne peredavat' v fajle zadaniya operatory  YAUZ  OC
            EC;

      -f    proizvesti translyaciyu ctpochnyx bykv v ppopicnye;

      -t    vosproizvesti v raspechatke generaciyu  operatorov
            YAUZ OS ES pered i posle zameshcheniya;

      -k    vyklyuchit' zameshchenie klyuchevyh slov dlya neyppavlya-
            yushchix ctpok;

      -r    vypolnit' perekodirovku koda KOI-8 v DKOI;

      -e    steret'  vse  predydushchie  oppedeleniya  klyuchevogo
            clova;

      -i    ne intepppetipovat' stroki vnutrennih komand  vo
            vklyuchaemyh  istochnikah,  schitaya ih tekstom. Pre-
            duprezhdenie:  ustanovlennyj  flag  ne   podlezhit
            pepeyctanovke;

      -s    proizvesti  zameshchenie  klyuchevogo   slova   pered
            intepppetaciej yppavlyayushchix ctpok;

      -d    vyvesti na displej tekushchie opredeleniya klyuchevogo
            slova (ispol'zuemye pepvonachal'no dlya otladki).

      Komandnye stroki (nachinayushchiesya s ^)  v dejstvuyushchem  po
      umolchaniyu pezhime +i intepppetipyyutcya v kachestve komand
      upravleniya rabotoj send. Flag -s obespechivaet operezha-


                           124
                   APK.00210-01 33 01-5

      yushchuyu  zamenu  klyuchevyh  clov otdeleniyu i intepppetacii
      vnutrennih komand send. send obychno ne soderzhit speci-
      al'nyh simvolov v komandnyh strokah. Odnako oni dopus-
      kayutsya. Togda podskazki, klyuchevye slova,  znacheniya  po
      umolchaniyu i stroki zameny, soderzhashchie special'nye sim-
      voly dolzhny zaklyuchat'sya v kavychki ("  ").

      send obespechivaet gibkost' formirovaniya operatorov YAUZ
      OS ES na osnove sostavlennyh zagotovok s pomoshch'yu meha-
      nizma podskazki i opredeleniya  klyuchevyh  slov.  Obychno
      send vyzyvaetsya v komandnom fajle SHELL ili v program-
      me C. V programme proizvoditsya sborka opredelenij klyu-
      chevyh slov v fajl, a zatem vyzyvaetsya send s peredachej
      imeni fajla, soderzhashchego eti opredeleniya. Fajl oprede-
      lenij  klyuchevyh  slov  ostaetsya aktivnym na protyazhenii
      obrabotki vsego vhodnogo potoka. Tak chto skanirovaniem
      vyyavlyayutsya stroki s klyuchevymi clovami, kotopym oprede-
      leny znacheniya. Nesootvetstvuyushchie simvoly  vyvodyatsya  v
      tom  vide,  v kotorom oni nahodyatsya (ili perevodyatsya v
      verhnij registr, esli ustanovlen  flag  -f).  Klyuchevym
      parametrom  yavlyaetsya  proizvol'naya  stroka  simvolov v
      KOI-8, dlya kotoroj byla opredelena  stroka  zameshcheniya.
      Dlya naglyadnosti rekomenduetsya vydelyat' peremennye klyu-
      chevye parametry lidiruyushchim ampersandom (&),  hotya  eto
      ne obyazatel'no.

      Obrabotkoj send peremennye klyuchevye parametry  zamenya-
      yutsya  sootvetstvuyushchej strokoj zameshchenij, kotoraya zatem
      posimvol'no vyvoditsya. Proverka razmera strok  (napri-


                           125
                   APK.00210-01 33 01-5

      mer po ^*file) otkladyvaetsya do okonchaniya proizvodstva
      v nej vseh zameshchenij.

      Zameshchenie klyuchevogo slova mozhet byt' vremenno vyklyuche-
      no putem ustanovki flaga -k. Esli proishodit pereopre-
      delenie klyuchevogo slova, zameshchaetsya  znachenie  zameshche-
      niya. Predydushchie opredeleniya klyuchevogo slova mogut byt'
      polnost'yu sterty putem ispol'zovaniya flaga -e.

      send ne proveryaet  sintaksis  generiruemyh  operatorov
      YAUZ.  Odnako ona proveryaet, chtoby razmer stroki teksta
      posle  zameshcheniya  ne  prevyshal  80   bajtov.   Drugimi
      procedurnymi  oshibkami yavlyayutsya: oshibki otkrytiya i za-
      pisi v fajly, a  takzhe  anomal'nye  vyhody  iz  SHELL.
      Oshibki  sobirayutsya v fajl diagnostiki, a o predstavle-
      nii vhodnogo potoka zadanij na obrabotku v OS ES  send
      signaliziruet na terminal utverditel'nym soobshcheniem.

      Kogda komanda vyzyvaetsya pod imenem gath ona  ustanav-
      livaet  flag -lq. Rezul'tat vypolneniya zadanij v OS ES
      mozhno vozvratit' v DEMOS, ispol'zuya  komandu  demsend.
      Listing  operatorov  YAUZ  mozhno  vozvratit'  v  DEMOS,
      Ispol'zuya kartu DEMROUTE.

FAJLY:
      usr/spool/send *
            vremennyj fajl dlya formirovaniya vhodnogo potoka.

DOPOLNITELXNYE SSYLKI:
      sh, st, vmread, demsend

                           126
                   APK.00210-01 33 01-5

DIAGNOSTIKA:
      Otmechaetsya prevyshenie stroki vhodnogo potoka 80 simvo-
      lov,  posle  podstanovki znachenie peremennoj klyuchevogo
      parametra. Vyvoditsya predlozhenie: vvesti simvol y  dlya
      raspechatki kakih-libo oshibok.













                           127
                   APK.00210-01 33 01-5

IMYA:
      sendmvt - skopirovat' fajl DEMOS v nabor dannyh OS ES.

FORMAT:
      sendmvt [demos_fajl [os_es_fajl [fajl_vyvoda]]]

OPISANIE:
      sendmvs  pozvolyaet pol'zovatelyu kopirovat' fajl  DEMOS
      v  posledovatel'nyj nabor dannyh ili razdel biblioteki
      OS ES. |to osushchestvlyaetsya formirovaniem zadaniya  kopi-
      rovaniya  i peredachej ego v sredu paketnoj obrabotki OS
      ES.

      Parametry komandy  sendmvt  ispol'zuyutsya  v  komandnyh
      strokah,  upravlyayushchih  zamenoj  peremennyh  v klyuchevyh
      papametpax opepatopov YAUZ formiruemogo zadaniya. Sposob
      ih  zadaniya  mozhet  byt' yavnym, v sostave komandy, ili
      oni vvodyatsya v otvet na podskazku.

      Imya "os_es_fajl" mozhet byt' prostym ili sostavnym,  na
      osnove  trebovanij specifikacii imen naborov dannyh OS
      ES. Esli fajl DEMOS dolzhen stat' razdelom bibliotechno-
      go  nabora  dannyh,  imya razdela ukazyvaetsya za imenem
      nabora v kavychkah.

      Kopirovanie  osushchestvlyaetsya  kak  v  uzhe  sushchestvuyushchij
      nabor  dannyh, tak i novyj nabor dannyh. Poetomu vyda-
      etsya zapros sushchestvuet-li uzhe nabor OS ES.  Esli  vvo-
      ditsya y, to schitaetsya, chto nabor uzhe sushchetvuet i kata-
      logizirovan v sisteme OS ES. Na  otvet  n,  oznachayushchij

                           128
                   APK.00210-01 33 01-5

      sozdanie  vnov' nabora, vydaetsya podskazka o neobhodi-
      mosti vvesti informaciyu harakteristik budushchego nabora.

      "fajl_vyvoda" yavlyaetsya imenem fajla DEMOS.  |tot  fajl
      budet  ispol'zovat'sya  utilitoj  vmread dlya vyvoda re-
      zul'tatov vypolneniya zadaniya kopirovaniya.

FAJLY:
      /usr/lib/model/sendmvt
            obrazec zadaniya dlya OS ES

      /tmp/sendmvt.*
            vpemennyj yppavlyayushchij fajl send

DOPOLNITELXNYE SSYLKI:re
      send ,vmread








                           129
                   APK.00210-01 33 01-5

IMYA:
      sh, for, case, if, while, :, ., break,  continue,  cd,
      eval,   exec,   exit,  export,  login,  newgrp,  read,
      readonly, set, shift, times, trap, umask, wait  -  ko-
      mandnyj yazyk.

FORMAT:
      sh [-ceiknrstuvx] [par] ...

OPISANIE:
      Komanda sh vyzyvaet interpretator yazyka upravleniya za-
      daniyami  SHELL, kotoryj yavlyaetsya osnovnym yazykom obshche-
      niya pol'zovatelya s sistemoj. Krome  togo  SHELL  ochen'
      shiroko primenyaetsya i v kachestve yazyka razrabotki prog-
      ramm.

      KOMANDY:

      Prostaya komanda predstavlyaet soboj  posledovatel'nost'
      slov,  razdelennyh "probelami" (probelami, znakami ta-
      bulyacii ili simvolami novoj stroki). Pervoe slovo  op-
      redelyaet  imya  komandy, kotoraya dolzhna byt' vypolnena.
      Ostal'nye slova peredayutsya v kachestve parametrov vyzy-
      vaemoj  komandy. Imya komandy yavlyaetsya nulevym paramet-
      rom . "Znacheniem" prostoj komandy yavlyaetsya ee kod  za-
      versheniya,  esli ona vypolnena uspeshno, ili 200+kod - v
      protivnom sluchae.

      Neskol'ko komand, razdelennyh simvolom "|",  predstav-
      lyayut  soboj kanal mezhprocessnoj svyazi. Informaciya, vy-


                           130
                   APK.00210-01 33 01-5

      davaemaya v standartnyj  fajl  vyvoda  odnoj  komandoj,
      mozhet  peredavat'sya  drugoj  komande  v kachestve stan-
      dartnogo fajla vvoda. Pri etom sozdaetsya cepochka  pro-
      cessov  - konvejer. Kazhdaya komanda vypolnyaetsya kak ot-
      del'nyj process; sh zhdet okonchaniya translyacii  posled-
      nej iz vypolnyaemyh komand.

      Spisok_komand predstavlyaet soboj posledovatel'nost' iz
      odnoj  ili neskol'kih prostyh komand, razdelennyh sim-
      volami ";", "&", "&&" ili "||", i mozhet  zakanchivat'sya
      simvolami  ";"  ili "&". Simvoly ";", "&" i "&&", "||"
      poparno imeyut odinakovyj prioritet, odnako,  prioritet
      pary  "&" i "|" nizhe, chem u "&&" i "||". Tochka s zapya-
      toj, stoyashchaya v konce spiska_komand, vyzyvaet  posledo-
      vatel'noe  vypolnenie ukazannyh komand; ampersand uka-
      zyvaet na to, chto sleduyushchaya komanda mozhet byt'  vypol-
      nena  bez ozhidaniya zaversheniya predydushchej (fonovyj pro-
      cess). Simvol "&&" ("||") razreshaet vypolnenie  posle-
      duyushchej  komandy tol'ko v tom sluchae, esli kod zavershe-
      niya predydushchej raven nulyu (ne raven nulyu). V  kachestve
      razdelitelej  v  spiskah komand vmesto tochki s zapyatoj
      mogut ispol'zovat'sya simvoly novoj stroki.

      Kod zaversheniya spiska_komand raven znacheniyu  koda  za-
      versheniya poslednej prostoj komandy spiska.

      Posledovatel'nost' komand mozhno zapisat' v fajl i  vy-
      polnit', ukazav imya etogo fajla. Dalee perechisleny os-
      novnye konstrukcii komandnogo yazyka sh.

                           131
                   APK.00210-01 33 01-5

      for imya [in slovo ...]
      do spisok_komand
      done

            Pri kazhdom povtorenii cikla for "imya" ustanavli-
            vaetsya  na  sleduyushchee  znachenie  v spiske "slovo
            ...". Esli konstrukciya "in slovo ..." otsutstvu-
            et, to po umolchaniyu predpolagaetsya "in $@" (t.e.
            cikl vypolnyaetsya odin raz dlya kazhdogo  zadannogo
            parametra).

      case slovo in
           [obr1 [|obr2]...) spisok_komand;;]
            ...
      esac

            Pri obnaruzhenii sootvetstviya "slova"  odnomu  iz
            obrazcov,  vypolnyaetsya zadannyj "spisok_komand".
            Obrazec "*" sootvetstvuet lyuboj stroke.

      if spisok_komand1
      then spisok_komand2
      [elif spisok_komand3 then spisok_komand4]
      [else spisok_komand5]

            Esli kod zaversheniya "spiska_komand1" raven nulyu,
            vypolnyaetsya   "spisok_komand2",  inache  -  "spi-
            sok_komand3" i, esli ego  kod  zaversheniya  raven
            nulyu,  vypolnyaetsya "spisok_komand4". V protivnom
            sluchae vypolnyaetsya "spisok_komand5".

                           132
                   APK.00210-01 33 01-5

      while spisok_komand1
      [do spisok_komand2]
      done

            Esli kod zaversheniya "spiska_komand1" raven nulyu,
            vypolnyaetsya "spisok_komand2" i cikl povtoryaetsya,
            inache - vypolnenie cikla zakanchivaetsya.

      until spisok_komand1
      [do spisok_komand2]
      done

            Esli kod zaversheniya  "spiska_komand1"  ne  raven
            nulyu, vypolnyaetsya "spisok_komand2" i cikl povto-
            ryaetsya, inache - vypolnenie cikla zakanchivaetsya.

      (spisok_komand)
            Vypolnit' "spisok_komand",  zapustiv  sh  v  ka-
            chestve podprocessa.

      {spisok_komand;}
            vypolnit' "spisok_komand".

      K zarezervirovannym slovam interpretatora sh otnosyatsya
      sleduyushchie  slova:  "if", "then", "else", "elif", "fi",
      "case", "in", "esac", "for", "while",  "until",  "do",
      "done",  "{",  "}". Oni raspoznayutsya tol'ko v tom slu-
      chae, esli yavlyayutsya pervym slovom komandy i ne zaklyuche-
      ny v kavychki.

      PODSTANOVKA REZULXTATOV VYPOLNENIYA KOMAND:

                           133
                   APK.00210-01 33 01-5

      Esli komanda zaklyuchena v obratnye apostrofy (``),  ona
      vypolnyaetsya  i zameshchaetsya v komandnoj stroke rezul'ta-
      tom svoego vypolneniya. |tot rezul'tat mozhet  ispol'zo-
      vat'sya  kak  chast'  slova ili kak celoe slovo; simvoly
      novoj stroki otbrasyvayutsya.

      PODSTANOVKA ZNACHENIJ PARAMETROV:

      Simvol "$" ukazyvaet na vypolnenie podstanovki  znache-
      nij parametrov. Komanda set prisvaivaet znacheniya pozi-
      cionnym parametram. Peremennye ustanavlivayutsya  sledu-
      yushchim obrazom:

               imya = znachenie [imya = znachenie] ...

      ${parametr}
            "Parametr" mozhet byt' treh vidov: 1)  posledova-
            tel'nost'  bukv, cifr ili simvolov podcherkivaniya
            (t.e. opredelennoe "imya"), 2) cifra, 3) odin  iz
            simvolov  * @ # ? - $ !. V rezul'tate vypolneniya
            dannogo makrovyzova  osushchestvlyaetsya  podstanovka
            znacheniya parametra (esli ono opredeleno). Figur-
            nye skobki ispol'zuyutsya tol'ko v tom sluchae, es-
            li  posle  "parametra"  sleduet bukva, cifra ili
            simvol podcherkivaniya, ne yavlyayushchiesya  chast'yu  ego
            imeni. Esli "parametr" predstavlyaet soboj cifru,
            to on schitaetsya pozicionnym.  Esli  "parametrom"
            yavlyaetsya  simvol * ili @, podstavlyayutsya znacheniya
            vseh pozicionnyh parametrov (krome 0), razdelen-

                           134
                   APK.00210-01 33 01-5

            nye probelami.

      ${parametr-slovo}
            Esli "parametr" opredelen, podstavit' ego znache-
            nie, inache podstavit' "slovo".

      ${parametr=slovo}
            Esli "parametr" ne opredelen, prisvoit' emu zna-
            chenie "slova" i vypolnit' podstanovku etogo zna-
            cheniya.  Znacheniya  pozicionnyh  parametrov  takim
            sposobom opredelyat'sya ne mogut.

      ${parametr?slovo}
            Esli "parametr" opredelen, podstavit' ego znache-
            nie;  inache  napechatat' "slovo" i prekratit' vy-
            polnenie  komandnogo  fajla.  Esli  "slovo"  ot-
            sutstvuet,  pechataetsya standartnoe diagnostiches-
            koe soobshchenie.

      ${parametr+slovo}
            Esli "parametr" opredelen, podstavit' "slovo", v
            protivnom sluchae nichego ne podstavlyat'.

      V  privedennyh   konstrukciyah  komanda,   opredelyaemaya
      "slovom",  ne budet vypolnyat'sya, esli "slovo" ne yavlya-
      etsya podstavlyaemym znacheniem. (Takim obrazom, v prime-
      re  "echo  {d-`pwd`}"  komanda  pwd  budet vypolnyat'sya
      tol'ko v tom sluchae esli parametr d ne opredelen).

      Sleduyushchie "parametry" avtomaticheski  opredelyayutsya  in-
      terpretatorom sh:


                           135
                   APK.00210-01 33 01-5

      #     Kolichestvo pozicionnyh parametrov;

      -     Klyuchi, kotorye vvodyatsya pri vyzove ili s pomoshch'yu
            komandy set;

      ?     Kod zaversheniya poslednej vypolnennoj komandy;

      $     Nomer tekushchego processa;

      !     Nomer processa poslednej fonovoj komandy.

      Sleduyushchie "parametry" ispol'zuyutsya, no ne opredelyayutsya
      interpretatorom:

      HOME  Parametr soderzhit  polnoe  imya  spravochnika  (po
            umolchaniyu  -  imya  registracionnogo spravochnika)
            dlya komandy cd, vyzyvaemoj bez parametrov;

      PATH  Spisok imen spravochnikov, v kotoryh proizvoditsya
            poisk komand, otsutstvuyushchih v tekushchem spravochni-
            ke;

      MAIL  Esli eta peremennaya  opredelyaet  imya  fajla  dlya
            priema  pochty, to sh budet informirovat' pol'zo-
            vatelya o postuplenii pochty v ukazannyj fajl;

      PS1   Podskazka interpretatora pri vvode  komandy,  po
            umolchaniyu "$";

      PS2   Podskazka interpretatora dlya  prodolzheniya  vvoda
            (esli  komanda  ne  byla zavershena na predydushchej
            stroke), po umolchaniyu ">";

                           136
                   APK.00210-01 33 01-5

      IFS   Simvoly-razdeliteli  komandnoj  stroki;   obychno
            probel, znak tabulyacii i simvol novoj stroki.

      INTERPRETACIYA RAZDELITELEJ:

      V strokah, poluchennyh posle podstanovki znachenij para-
      metrov i rezul'tatov vypolneniya komand, osushchestvlyaetsya
      poisk simvolov-razdelitelej (opredelennyh v  $IFS).  V
      mestah nahozhdeniya takih simvolov stroki razbivayutsya na
      otdel'nye parametry.  Pustye  parametry,  opredelennye
      yavno  (" " ili ' '), sohranyayutsya. Pustye stroki, polu-
      chennye v rezul'tate vypolneniya parametrov,  u  kotoryh
      net znachenij, otbrasyvayutsya.

      GENERACIYA IMEN FAJLOV:

      Posle   podstanovok    i    interpretacii    simvolov-
      razdelitelej  v  kazhdom  slove  komandy osushchestvlyaetsya
      poisk simvolov *, ?, i [.  Esli  vstrechaetsya  odin  iz
      etih  simvolov,  to  dannoe slovo schitaetsya obrazcom i
      zamenyaetsya sootvetstvuyushchim spiskom imen fajlov, raspo-
      lozhennyh  v  alfavitnom poryadke. Esli obrazcu ne soot-
      vetstvuet ni odno iz ukazannyh  imen  fajlov,  to  eto
      slovo  ostaetsya  neizmennym. Simvol "." v nachale imeni
      fajla dolzhen ukazyvat'sya yavno.

      *     Sootvetstvuet lyuboj stroke, v tom chisle pustoj;

      ?     Sootvetstvuet lyubomu odinochnomu simvolu;

      [...] Sootvetstvuet lyubomu iz perechislennyh  simvolov.

                           137
                   APK.00210-01 33 01-5

            Para  simvolov,  razdelennaya simvolom "-", soot-
            vetstvuet lyubomu simvolu iz ukazannogo leksiches-
            kogo promezhutka.

      |KRANIROVANIE:

      Sleduyushchie simvoly imeyut special'noe znachenie  dlya  in-
      terpretatora  sh  i vyzyvayut preryvanie vypolneniya ko-
      mandy, esli oni ne byli ekranirovany: ";",  "&",  "(",
      ")", "|", "<", ">", novaya_stroka, probel, tabulyaciya.

      Simvol mozhet byt' ekranirovan, esli  emu  predshestvuet
      .  Dlya  zapisi  dlinnyh konstrukcij bolee chem v odnoj
      stroke, special'noe znachenie simvola novoj stroki "0
      otmenyaetsya.  Vse  simvoly,  zaklyuchennye v apostrofy ('
      '), za isklyucheniem samogo apostrofa, yavlyayutsya  ekrani-
      rovannymi. Podstanovka znachenij parametrov i rezul'ta-
      tov vypolneniya komand vypolnyaetsya  vnutri  kavychek  ("
      "). Simvol  ekraniruet simvoly , `, " i $.

      "$*" ekvivalentno "$1 $2 ..."
      "$@" ekvivalentno "$1" "$2" ... .

      PODSKAZKI:

      V interaktivnom rezhime, pered schityvaniem komandy,  sh
      pechataet  znachenie  peremennoj PS1 (po umolchaniyu - $).
      Esli vvedennaya stroka soderzhit sintaksicheski  nezaver-
      shennuyu konstrukciyu, to dlya prodolzheniya vvoda interpre-
      tator vydaet v kachestve podskazki znachenie  peremennoj
      PS2 (po umolchaniyu - simvol >).


                           138
                   APK.00210-01 33 01-5

      VVOD-VYVOD:

      Dlya zadaniya fajlov vvoda/vyvoda ispol'zuyutsya special'-
      nye  konstrukcii.  Oni  mogut nahodit'sya v lyubom meste
      prostoj  komandy.  Pered  ispol'zovaniem  "slova"  ili
      "cifry" vypolnyayutsya vse neobhodimye podstanovki.

      <slovo
            Fajl "slovo" naznachaetsya standartnym fajlom vvo-
            da (deskriptor fajla 0).

      >slovo
            Fajl "slovo" naznachaetsya standartnym fajlom  vy-
            voda  (deskriptor  fajla  1).  Esli  fajl ne su-
            shchestvuet, on sozdaetsya; v  protivnom  sluchae  on
            usekaetsya do nulevoj dliny.

      >>slovo
            Fajl "slovo" naznachaetsya standartnym fajlom  vy-
            voda. Esli fajl sushchestvuet, vyvodimaya informaciya
            dobavlyaetsya k ego soderzhimomu; v protivnom  slu-
            chae fajl sozdaetsya.

      <<slovo
            Vvod osushchestvlyaetsya do teh por, poka ne vstrecha-
            etsya  posledovatel'nost' simvolov "slovo". Polu-
            chennyj  lokal'nyj  fajl   yavlyaetsya   standartnym
            fajlom vvoda. Esli kakoj-libo simvol "slova" ek-
            ranirovan, ne proizvoditsya nikakoj interpretacii
            simvolov  lokal'nogo  fajla;  v protivnom sluchae

                           139
                   APK.00210-01 33 01-5

            proizvoditsya podstanovka znachenij  parametrov  i
            rezul'tatov   vypolneniya  komand,  simvol  novoj
            stroki  ignoriruetsya, a  znak    ispol'zuetsya
            dlya  ekranirovaniya  simvolov  ,  $, ` i pervogo
            simvola "slova".

      <&cifra
            Informaciya, zapisyvaemaya v fajl  s  deskriptorom
            "cifra", peredaetsya v standartnyj fajl vyvoda.

      >&cifra
            Standartnym  fajlom  vvoda   yavlyaetsya   fajl   s
            deskriptorom "cifra".

      <&-   Standartnyj fajl vvoda zakryt na zapis'.

      >&-   Standartnyj fajl vyvoda zakryt na chtenie.

      Esli kakoj-libo iz ukazannyh konstrukcij  predshestvuet
      cifra,  to  deskriptor sozdavaemogo fajla opredelyaetsya
      etoj cifroj (vmesto 0 ili 1 po umolchaniyu).

      VSTROENNYE KOMANDY:

      Vstroennye komandy prakticheski ne otlichayutsya po  svoim
      svoistvam  ot ostal'nyh komand sistemy, za isklyucheniem
      togo, chto dlya nih obychno nel'zya  pereopredelit'  stan-
      dartnye fajly vvoda/vyvoda.

      :     Komanda  ne  proizvodit  nikakih  dejstvij,   za
            isklyucheniem  podstanovki  znachenij makroperemen-
            nyh. Kod zaversheniya raven nulyu.


                           140
                   APK.00210-01 33 01-5

      . fajl
            Vypolnit' komandnyj  "fajl"  v  ramkah  tekushchego
            processa.

      cd [spravochnik]
            Ob'yavit' ukazannyj  "spravochnik"  tekushchim.  Esli
            parametr  ne zadan, v kachestve imeni spravochnika
            ispol'zuetsya znachenie makroperemennoj HOME.

      eval [komanda ...]
            Provesti vse makropodstanovki i  vypolnit'  "ko-
            mandu ...".

      exec [komanda ...]
            Tekushchij process  zamenit'  processom  vypolneniya
            "komandy ...". Dopuskaetsya pereopredelenie stan-
            dartnyh fajlov vvoda/vyvoda.

      exit [N]
            Preryvanie vypolneniya tekushchego processa s  kodom
            zaversheniya N. Esli N otsutstvuet, kod zaversheniya
            opredelyaetsya kodom zaversheniya  poslednej  vypol-
            nennoj komandy.

      export [imya...]
            Ukazannye makroperemennye avtomaticheski vvodyatsya
            v  sredu  vypolnyaemyh  vposledstvii komand. Esli
            parametry  ne  zadany,  vydaetsya   spisok   imen
            eksportiruemyh makroperemennyh.

      login [par ...]


                           141
                   APK.00210-01 33 01-5

            Registraciya pol'zovatelya v sisteme bez  sozdaniya
            novogo  processa (ekvivalent komandy "exec login
            par...").

      newgrp [par ...]
            Zamena tekushchego identifikatora gruppy  pol'zova-
            telej (ekvivalent komandy "exec newgrp par...").

      read imya ...
            Iz standartnogo  fajla  vvoda  schityvaetsya  odna
            stroka. Zatem makroperemennym "imya ..." posledo-
            vatel'no prisvaivayutsya znacheniya slov,  sostavlya-
            yushchih  etu  stroku.  Kod zaversheniya komandy raven
            nulyu vo vseh sluchayah, krome  teh,  kogda  spisok
            parametrov  dlinnee,  chem chislo slov v schitannoj
            stroke.

      readonly imya ...
            Zapreshchaetsya    pereopredelenie     perechislennyh
            makroperemennyh. Esli parametry ne zadany, vyda-
            etsya spisok vseh  makroperemennyh,  opredelennyh
            kak "readonly" (tol'ko dlya chteniya).

      set [-eknptuvx [par ...]]
            Ustanavlivaet rezhimy raboty  interpretatora  sh.
            Mogut zadavat'sya sleduyushchie klyuchi:

            -e    V neinteraktivnom rezhime  vyzyvaet  nemed-
                  lennoe preryvanie pri obnaruzhenii oshibki v
                  vypolnenii komandy;

                           142
                   APK.00210-01 33 01-5

            -k    Vse opredelennye makroperemennye eksporti-
                  ruyutsya v sredu zapuskaemyh processov;

            -n    Proizvodit tol'ko sintaksicheskuyu  proverku
                  komand;

            -t    Preryvaet vypolnenie processa posle  togo,
                  kak  budet schitana i vypolnena odna koman-
                  da;

            -u    Ustanavlivaet rezhim diagnostiki oshibki pri
                  popytke  ispol'zovat' neopredelennye pere-
                  mennye;

            -v    Ustanavlivaet rezhim pechati vvodimyh  strok
                  po mere ih schityvaniya;

            -x    Raspechatyvaet komandy i  ih  parametry  po
                  mere vypolneniya;

            -     Otmenyaet klyuchi -x i -v.
      Ustanovlennye klyuchi soderzhatsya v makroperemennoj  "-".
      Ostal'nym  parametram prisvaivayutsya znacheniya pozicion-
      nyh parametrov "1, 2, ...". Esli parametry ne  zadany,
      pechataetsya spisok znachenij vseh makroperemennyh;

      shift Pozicionnym parametram "2, 3, ..." prisvaivayutsya
            znacheniya parametrov "1, 2, ..." sootvetstvenno;

      times Vydaetsya vremya, zatrachennoe pol'zovatelem i sis-
            temoj na vypolnenie processa;

                           143
                   APK.00210-01 33 01-5

      trap [komanda] [N ...]
            Pri poluchenii perechislennyh signalov vypolnyaetsya
            ukazannaya "komanda";

      umask [ddd]
            Maske sozdaniya fajlov pol'zovatelya prisvaivaetsya
            vos'merichnyj kod ddd . Esli parametr ddd opushchen,
            vydaetsya tekushcheee znachenie maski;

      wait [n]
            Ozhidaet okonchaniya vypolneniya processa s  nomerom
            n i prisvaivaet ego kod zaversheniya makroperemen-
            noj "?".

      VYZOV INTERPRETATORA:

      Esli pervym simvolom parametra "0" yavlyaetsya znak  "-",
      to  komandy  schityvayutsya iz fajla .profile. Pri vyzove
      mogut ukazyvat'sya sleduyushchie klyuchi:

      -c stroka
            Komandy schityvayutsya iz "stroki";

      -s    Komandy schityvayutsya iz standartnogo fajla vvoda.
            Soobshcheniya  interpretatora  zapisyvayutsya  v stan-
            dartnyj fajl diagnostik (fajl s deskriptorom 2);

      -i    Interaktivnyj rezhim raboty interpretatora.

FAJLY:
      $HOME/.profile
      /tmp/sh*


                           144
                   APK.00210-01 33 01-5

      /dev/null

DOPOLNITELXNYE SSYLKI :
      csh, test, exec

DIAGNOSTIKA:
      Oshibki, obnaruzhennye interpretatorom  (naprimer,  sin-
      taksicheskie oshibki), privodyat k tomu, chto sh vozvrashcha-
      et kod zaversheniya, ne ravnyj nulyu. Esli pri etom rezhim
      raboty  -  neinteraktivnyj,  to  vypolnenie komandnogo
      fajla prekrashchaetsya. Esli zhe rezhim  raboty  interaktiv-
      nyj,  sh vozvrashchaet kod zaversheniya poslednej vypolnen-
      noj komandy.










                           145
                   APK.00210-01 33 01-5

IMYA:
      size - soobshchit' razmer ob'ektnogo fajla

FORMAT:
      size [obfajl...]

OPISANIE:
      Komanda size pechataet (desyatichnoe) chislo bajtov, zani-
      maemoe  tekstovym segmentom, segmentom dannyh i bss, a
      takzhe ih summu v desyatichnom i  vos'merichnom  kode  dlya
      kazhdogo  ob'ektnogo fajla "obfajl", ukazannogo v para-
      metrah.









                           146
                   APK.00210-01 33 01-5

IMYA:
      sleep - zaderzhat' vypolnenie na zadannyj interval

FORMAT:
      sleep vremya

OPISANIE:
      Komanda  sleep  zaderzhivaet  vypolnenie   na   "vremya"
      sekund.  Ona ispol'zuetsya dlya vypolneniya komandy cherez
      opredelennyj promezhutok vremeni, naprimer:

            (sleep 105; komanda)

      ili dlya vypolneniya komandy vremya ot vremeni, naprimer,

         while true
         do
         komanda
         sleep 37
         done

ZAMECHANIYA:
      "vremya" dolzhno byt' men'she 2 147 483 647 sekund.






                           147
                   APK.00210-01 33 01-5

IMYA:
      soelim - fil'tr dlya tekstovyh fajlov v formate pif.

FORMAT:
      soelim [fajl...]

OPISANIE:
      Komanda perepisyvaet fajly (po  umolchaniyu  standartnyj
      fajl  vvoda) v standartnyj fajl vyvoda, zamenyaya direk-
      tivy pif vida:

            .so nekotoryj_fajl

      soderzhimym ukazannyh fajlov. Poskol'ku takie  program-
      my,  kak  tbl,  obychno ne delayut etogo, komanda soelim
      neobhodima, kogda trebuetsya raspolagat' otdel'nye tab-
      licy dokumenta v razlichnyh fajlah.

      Zamet'te, chto eto  vklyuchenie  mozhet  podavlyat'sya  pos-
      redstvom ispol'zovaniya "'" vmesto ".", t.e.

            'so /usr/lib/tmac.s

      Primer ispol'zovaniya komandy soelim:

            soelim exum?.n | tbl | pif -ms | col | lpr

DOPOLNITELXNYE SSYLKI :
      colcrt, more

ZAMECHANIYA:
      Pered imenem fajla dolzhen byt' rovno  odin  probel,  a
      posle nego ne dolzhno byt' probelov.


                           148
                   APK.00210-01 33 01-5

IMYA:
      sort - sortirovka i sliyanie fajlov

FORMAT:
      sort [-mubdfinrtxz] [ +poz1 [-poz2] ]...
           [-o imya] [-T spravochnik] [imya]...

OPISANIE:
      Komanda sort sortiruet sovmestno stroki vseh ukazannyh
      fajlov i zapisyvaet rezul'tat v standartnyj fajl vyvo-
      da. Esli vhodnye fajly  ne  zadany  (ili  ukazan  klyuch
      "-"),  sortiruetsya  informaciya  iz  standartnogo fajla
      vvoda.

      Po umolchaniyu pri sortirovke rassmatrivaetsya vsya  stro-
      ka.  Standartnym poryadkom sortirovki yavlyaetsya aflavit-
      nyj (dlya bukv russkogo i latinskogo alfavita) i leksi-
      kograficheskij  pobajtnyj  v  sootvetstvii s chislennymi
      znacheniyami kodov KOI-8 (dlya vseh ostal'nyh  simvolov).
      Dlya izmeneniya pravil sortirovki ispol'zuetsya klyuch, ko-
      toryj mozhet soderzhat' sleduyushchie simvoly:

      b     Ignorirovat' vedushchie probely i simvoly tabulyacii
            pri sravnenii polej;

      d     "Slovarnyj poryadok": pri  sravnenii  uchityvayutsya
            tol'ko bukvy, cifry i probely;

      f     Ne razlichat' strochnye i propisnye bukvy;

      i     Ignorirovat' simvoly KOI-8 s kodami vne diapazo-

                           149
                   APK.00210-01 33 01-5

            nov 040-0176 i 0300-0376 pri tekstovyh sravneni-
            yah;

      n     Stroki nachinayushchiesya s chisel  (vozmozhno  s  pred-
            shestvuyushchimi probelami), sortiruyutsya po arifmeti-
            cheskomu znacheniyu. Klyuch "n"  podrazumevaet  usta-
            novku klyucha "b";

      r     Izmenit' poryadok sortirovki na obratnyj;

      tx    "Simvolom tabulyacii", razdelyayushchim polya, yavlyaetsya
            simvol "x";

      z     Sortirovat' v sootvestvii s chislennym  znacheniem
            bajtov.

      Zapis' "+poz1 -poz2" opredelyaet chast' stroki,  kotoraya
      rassmatrivaetsya  pri sortirovke. Sortirovka nachinaetsya
      s pozicii  "poz1"  i  zakanchivayushchimsya  pered  poziciej
      "poz2". Kazhdyj iz parametrov "poz1" i "poz2" imeet vid
      "m.n", posle chego mogut sledovat' odin  ili  neskol'ko
      flagov bdfinr, prichem m oznachaet kolichestvo polej, ko-
      toroe dolzhno byt' propushcheno s nachala stroki, a n ozna-
      chaet kolichestvo simvolov, kotoroe dolzhno byt' propushche-
      no posle etogo. Esli  prisutstvuyut  kakie-libo  flagi,
      oni   otmenyayut  global'nye  klyuchi  uporyadochivaniya  dlya
      dannoj chasti stroki.  Esli  dejstvuet  klyuch  "b",  "n"
      otschityvaetsya ot pervogo (otlichnogo ot probela) simvo-
      la  polya;  "b"  dobavlyaetsya   nezavisimo   k   "poz2".
      Otsutstvie ".n" oznachaet ".o", otsutstvie "poz2" ozna-

                           150
                   APK.00210-01 33 01-5

      chaet konec stroki. Pri nalichii klyucha "-tx" polyami schi-
      tayutsya posledovatel'nosti simvolov, razdelyaemye simvo-
      lom "x", esli klyuch "-tx" ne  zadan  v  kachestve  polej
      rassmatrivayutsya    posledovatel'nosti    otlichnyh   ot
      probelov simvolov, razdelennye probelami.

      Esli imeyutsya neskol'ko klyuchej sortirovki,  posleduyushchie
      klyuchi  sravnivayutsya  tol'ko posle togo, kak predydushchie
      klyuchi okazalis' ravny. Stroki, kotorye  pri  sravnenii
      okazalis' ravny, uporyadochivayutsya s uchetom vseh bajtov.

      Raspoznayutsya takzhe sleduyushchie neobyazatel'nye parametry:

      c     Proverit', yavlyaetsya li vhodnoj  fajl  otsortiro-
            vannym  v  sootvetstvii  s  zadannymi  pravilami
            uporyadochivaniya; ne vydavat' rezul'tat, esli fajl
            ne otsortirovan;

      m     Tol'ko sliyanie, vhodnye fajly uzhe otsortirovany;

      o     Sleduyushchij parametr predstavlyaet soboj imya vyhod-
            nogo fajla, kotoryj dolzhen ispol'zovat'sya vmesto
            standartnogo fajla vyvoda. |tot fajl mozhet  sov-
            padat' s odnim iz vhodnyh fajlov;

      T     Sleduyushchij parametr predstavlyaet soboj imya  spra-
            vochnika,  v kotorom dolzhny sozdavat'sya vremennye
            fajly;

      u     Iz  kazhdoj  gruppy  odinakovyh  strok   ostavit'
            tol'ko odnu. Ignoriruemye bajty i bajty vne klyu-

                           151
                   APK.00210-01 33 01-5

            chej ne uchastvuyut v sravnenii.

PRIMERY:
      Vydat' v alfavitnom  poryadke  vse  razlichnye  slova  v
      fajle  "spisok". Slova s propisnymi bukvami otlichayutsya
      ot slov so strochnymi bukvami.

            sort -u +0f +0 spisok

      Vydat' soderzhimoe fajla  /etc/passwd,  otsortirovannoe
      po  nomeram  identifikatorov  pol'zovatelej (tret'e iz
      razdelennyh dvoetochiyami polej):

            sort -t: +2n /etc/passwd

      Vydat' pervoe vhozhdenie kazhdogo mesyaca v uzhe  otsorti-
      rovannom  fajle  (dates).  Klyuchi  "-um" s edinstvennym
      vhodnym fajlom  obespechivayut  vybor  predstavitelya  iz
      kazhdoj gruppy odinakovyh strok.

            sort -um +0 -1 dates

DOPOLNITELXNYE SSYLKI :
      uni, comm, rev, join

DIAGNOSTIKA:
      Vydaetsya soobshchenie i nenulevoj kod vozvrata  pri  raz-
      lichnyh  oshibochnyh  situaciyah  i pri neuporyadochennosti,
      obnaruzhennoj pri nalichii klyucha "-c".

ZAMECHANIYA:
      Slishkom dlinnye stroki usekayutsya bez preduprezhdeniya.

                           152
                   APK.00210-01 33 01-5

IMYA:
      split - razbit' fajl na chasti

FORMAT:
      split [-n] [fajl [imya]]

OPISANIE:
      Komanda split schityvaet  "fajl"  i  razbivaet  ego  na
      fajly,  soderzhashie  po  n strok ishodnogo fajla kazhdyj
      (po umolchaniyu - 1000).  Esli  ishodnyj  fajl  soderzhit
      chislo  strok  ne  kratnoe  n, poslednij rezul'tiruyushchij
      fajl mozhet byt' koroche. Imya  pervogo  vyhodnogo  fajla
      predstavlyaet  soboj "imya" s dobavkoj "aa", i tak dalee
      v leksikograficheskom poryadke. Esli vyhodnoe imya ne za-
      dano, po umolchaniyu prinimaetsya h.

      Esli vhodnoj fajl ne ukazan ili vmesto nego ukazyvaet-
      sya "-", ispol'zuetsya standartnyj fajl vvoda.








                           153
                   APK.00210-01 33 01-5

IMYA:
      st -  vydat' na displej informaciyu o sostoyanii zadaniya
            OS ES.

FORMAT:
      st [idvm] imya_zadaniya

OPISANIE:
      Komanda st posylaet zapros OS ES cherez PDP dlya poluche-
      niya  informacii o sostoyanii zadaniya, imya kotorogo uka-
      zano v  parametre  "imya_zadaniya".  Virtual'naya  mashina
      identificiruetsya  parametrom "idvm", znachenie po umol-
      chaniyu complex1.

      Komanda ne  snizhaet  interaktivnosti  raboty  za  schet
      togo, chto formiruet zapros k PDP v fonovom rezhime, ko-
      toryj v svoyu ochered' ozhidaet obratnoj svyazi v  techenii
      minuty.  Esli za eto vremya otveta iz PDP ne postupaet,
      vydaetsya diagnosticheskoe soobshchenie i komandu st  nuzhno
      povtorit' vnov'.

FAJLY:
      /dev/smsg?





                           154
                   APK.00210-01 33 01-5

IMYA:
      strip - udalit' tablicu simvolov.

FORMAT:
      strip imya ...

OPISANIE:
      Komanda strip udalyaet tablicu simvolov i bity  pereme-
      shcheniya,  kotorye  obychno  prisoedinyayutsya  k  vyvodu as-
      semblera i redaktora svyazej. |to polezno dlya  ekonomii
      mesta posle togo, kak programma byla otlazhena.

      Dejstvie komandy strip  takoe  zhe,  kak  ispol'zovanie
      klyucha "-s" v komande ld.

DOPOLNITELXNYE SSYLKI :
      ld







                           155
                   APK.00210-01 33 01-5

IMYA:
      stty - ustanovit' rezhim raboty terminala.

FORMAT:
      stty [rezhim ...]

OPISANIE:
      Komanda stty ustanavlivaet  opredelennye  rezhimy  vvo-
      da/vyvoda  dlya  terminala pol'zovatelya. Pri otsutstvii
      parametrov  ona  soobshchaet  tekushchee  sostoyanie  rezhima.
      Komandoj ustanavlivayutsya  sleduyushchie rezhimy:

      even     razreshit' kontrol' po chetnosti;

      -even    zablokirovat' kontrol' po chetnosti;

      odd      razreshit' kontrol' po nechetnosti;

      -odd     zablokirovat' kontrol' po nechetnosti;

      Dlya polnogo otklyucheniya nuzhno ukazat' "-even -odd".

      raw   rezhim neposredstvennogo vvoda (net zaboya (kill),
            udaleniya (erase), preryvaniya (quit), konca pere-
            dachi (EOT); bit kontrolya po paritetu vozvrashchaet-
            sya nazad);

      -raw  otmena rezhima neposredstvennogo vvoda;

      cbreak
            delat' kazhdyj simvol dostupnym read(2)  po  mere
            postupleniya;   net   zaboya   (kill)  i  udaleniya
            (erase);


                           156
                   APK.00210-01 33 01-5

      -cbreak
            delat' simvoly dostupnymi dlya read tol'ko  posle
            polucheniya simvola novoj stroki;

      -crmod
            stroki na ekrane zakanchivayutsya tol'ko  simvolami
            novoj stroki;

      crmod dopuskaetsya upotreblenie simvola vozvrata karet-
            ki (CR) vmesto simvola novoj stroki (NL); vmesto
            vozvrata karetki ili novoj stroki vyvodyatsya sim-
            voly vozvrat karetki - perevod stroki (CR-NL);

      echo  otobrazhat' v eho-rezhime vvodimyj simvol;

      -echo ne otobrazhat' simvoly v eho-rezhime;

      lcase preobrazovyvat' simvoly verhnego registra v sim-
            voly nizhnego registra;

      -lcase
            ne vypolnyat' preobrazovaniya registra simvolov;

      -tabs zamenyat' pri pechati simvoly tabulyacii probelami;

      tabs  sohranyat' simvoly tabulyacii;

      cyrill
            terminal imeet russkie simvoly;

      -cyrill
            terminal ne imeet russkih simvolov;

                           157
                   APK.00210-01 33 01-5

      icyrill
            rezhim raboty klaviatury (russkij/latinskij)  us-
            tanavlivaetsya  ot  samoj klaviatury (|lektronika
            15 I| 0013, klaviatura v "testovom" rezhime);

      -icyrill
            rezhim raboty klaviatury (russkij/latinskij)  us-
            tanavlivaetsya  ot linii (|lektronika 15 I| 0013,
            klaviatura v  "normal'nom"  rezhime);  Klaviaturu
            rekomenduetsya pereklyuchat' v "testovyj" rezhim.

      dec   ustanovit' simvoly zaboya, udaleniya i  preryvaniya
            v  stile OS RSX-11, RT-11: ("zaboj", <control>u,
            <control>c).

      ek    to zhe, chto "dec".

      unix  ustanovit' simvoly zaboya, udaleniya i  preryvaniya
            v  stile  OS UNIX: ("#", "@", <zaboj>). Simvolom
            "quit" ustanavlivaetsya <control> .

      erase c
            rassmatrivat' simvol c kak  simvol  unichtozheniya.
            Simvol unichtozheniya mozhet takzhe imet' vid ^x, chto
            analogichno <ctrl>x;

      kill c
            rassmatrivat' simvol c kak simvol zaboya  stroki.
            Zdes' takzhe dejstvitel'na forma  ^h;

      intr c

                           158
                   APK.00210-01 33 01-5

            rassmatrivat' simvol  c  kak  simvol  preryvaniya
            "interrupt".  Zdes'  takzhe  dejstvitel'na  forma
            ^h;

      quit c
            rassmatrivat' simvol c kak simvol  preryvaniya  s
            sozdaniem obraza pamyati "core". Zdes' takzhe dej-
            stvitel'na forma  ^h;

      nl cr ht vt n
            ustanovit'  zaderzhku  sootvetstvuyushchego  dvizheniya
            kursora na n tikov;

      width n
            ustanovit' shirinu stranicy (dlinu  stroki)  v  n
            simvolov dlya avtomaticheskogo perenosa stroki;

      lengh n
            ustanovit' dlinu stranicy v n strok,  tak  chtoby
            vyvod  byl  postranichnym;  esli zadano length 0,
            delenie na stranicy prekrashchaetsya;

      score stiranie simvolov s ekrana pri  zaboe  (kill)  i
            udalenii (erase);

      -score
            otmena rezhima score;

      indctl
            vydavat'  control-simvoly  v   eho-rezhime,   kak
            ^<char + 0141>;

                           159
                   APK.00210-01 33 01-5

      -indctl
            otmena rezhima indctl;

      hup   prekrashchaet peredachu dannyh po telefonnomu kanalu
            svyazi pri zavershenii seansa;

      -hup  ne prekrashchaet peredachu dannyh po telefonnomu ka-
            nalu svyazi pri zavershenii seansa;

      0     nemedlenno prekrashchaet telefonnuyu svyaz';

      extb speed
            ustanavlivaet skorost' linii svyazi s  terminalom
            v  bodah  ravnuyu "speed". Argument "speed" mozhet
            prinimat' znacheniya: 75, 110, 134, 150, 200, 300,
            600,  1200,  1800, 2400, 4800, 9600 (dannye sko-
            rosti podderzhivayutsya interfejsami dh i dz);

      cro cr1 cr2 cr3
            vybiraet vremya zaderzhki dlya vozvrata karetki;

      nl0 ln1 nl2 nl3
            vybiraet vremya zaderzhki dlya podachi na stroku.

DOPOLNITELXNYE SSYLKI :
      tty, ioctl, tabs.




                           160
                   APK.00210-01 33 01-5

IMYA:
      su - vremenno zamenit' identifikator pol'zovatelya.

FORMAT:
      su [identifikator_pol'zovatelya]

OPISANIE:
      Komanda su porozhdaet novyj process interpretatora  ko-
      mandnogo  yazyka s novym znacheniem identifikatora pol'-
      zovatelya. Esli u pol'zovatelya s zakazannym identifika-
      torom  sushchestvuet  parol',  on zaprashivaetsya i komanda
      vypolnyaetsya tol'ko v  sluchae  udachnogo  otveta.  Novyj
      identifikator  pol'zovatelya ispol'zuetsya poka ne okon-
      chen seans raboty s porozhdennym interpretatorom komand.

      Esli identifikator pol'zovatelya v komande su  ne  uka-
      zan,  to ispol'zuetsya identifikator super-pol'zovatelya
      (root). Dlya togo, chtoby kak-to vydelit' rabotu v  pri-
      velegirovannom rezhime, sh menyaet podskazku na "#".

DOPOLNITELXNYE SSYLKI :
      sh






                           161
                   APK.00210-01 33 01-5

IMYA:
      sum - kontrol'naya summa i chislo blokov fajla

FORMAT:
      sum file ...

OPISANIE:
      Sum vychislyaet i vydaet 16-bitovuyu kontrol'nuyu summu  i
      razmer v blokah dlya zadannyh fajlov. |ta komanda obych-
      no ispol'zuetsya dlya obnaruzheniya nevernyh mest ili  op-
      redeleniya  dostovernosti fajla, peredavaemogo po linii
      peredachi.

DOPOLNITELXNYE SSYLKI :
      wc

DIAGNOSTIKA:
      read error
            Oshibka chteniya. Pri rabote so special'nymi fajla-
            mi  mozhet  vydavat'sya pri dostizhenij konca fajla
            (naprimer, pri popytke chteniya bloka, nesushchestvu-
            yushchego  dlya  dannogo  tipa diska). V etom sluchae,
            poyavleniya podobnoj diagnostiki ne yavlyaetsya  sig-
            nalom o neuspeshnom zavershenii komandy.




                           162
                   APK.00210-01 33 01-5

IMYA:
      svc - vydat' chislo sistemnyh vyzovov.

FORMAT:
      svs programma [argumenty]

OPISANIE:
      svc vypolnyaet programmu "programma" s argumentami "ar-
      gumenty"  i vydaet vremya nachala raboty kazhdogo sistem-
      nogo vyzova.

      Rezul'tat zapisyvaetsya v standartnyj fajl oshibok,  dlya
      togo, chtoby ego mozhno bylo prosmotret' posle okonchaniya
      ppogpammy.

      Programma time soobshchaet pol'zovatel'skoe vremya i vremya
      sistemy,  zatrachennoe na vypolnenie programmy. Komanda
      svc daet bolee polnoe predstavlenie o tom, na chto  eto
      vpemya bylo potpacheno. Komanda mon ispol'zuetsya dlya po-
      lucheniya bolee polnoj informacii o vremeni  pol'zovate-
      lya.





                           163
                   APK.00210-01 33 01-5

IMYA:
      sysname - vydat' imya yadra sistemy.

FORMAT:
      sysname

OPISANIE:
      Komanda sysname pechataet  imya aktivnogo  yadra  sistemy
      DEMOS.

DOPOLNITELXNYE SSYLKI:
      ipl










                           164
                   APK.00210-01 33 01-5

IMYA:
      tail - vydacha chasti fajla

FORMAT:
      tail [+-chislo[lbc]] [fajl]

OPISANIE:
      Komanda tail vydaet ukazannyj fajl v standartnyj  fajl
      vyvoda, nachinaya s zadannogo mesta. Esli ne ukazano imya
      fajla, ispol'zuetsya standartnyj fajl vvoda.

      Kopirovanie nachinaetsya s tochki, nahodyashchejsya na  rasto-
      yanii  "+chislo"  ot nachala ili "-chislo" ot konca vvoda.
      "CHislo" vyrazhaetsya v edinicah strok, blokov ili simvo-
      lov  v  sootvetstvii  s zadannymi parametrami "l", "b"
      ili "c". Esli edinicy ne  ukazany,  otschet  vedetsya  v
      strokah.

DOPOLNITELXNYE SSYLKI :
      dd

ZAMECHANIYA:
      Ostavshiesya  chasti  fajlov,  otschityvayushchiesya  ot  konca
      fajla, hranyatsya v bufere i poetomu ogranicheny v dline.

      Razlichnye oshibki mogut proishodit' pri rabote so  spe-
      cial'nymi fajlami.




                           165
                   APK.00210-01 33 01-5

IMYA:
      tape - zakreplenie i osvobozhdenie magnitnyh lent

FORMAT:
      tape  [-muwq] [-nl] [-blp]
            [-sl  nomer_fajla]  [-d   plotnost']   [-c   ko-
            mandnaya_stroka] serijnyj_nomer

OPISANIE:
      Komanda ispol'zuetsya dlya peredachi harakteristik lenty,
      ispol'zuemoj  v  obmene dannymi. Operacii vvoda-vyvoda
      modeliruyutsya fajlami nakopleniya,  kuda  predvaritel'no
      postutayut  dannye, schitannye s lenty drajverom ustroj-
      stva ili v ozhidanii osvobozhdeniya drajvera  dlya  zapisi
      na lentu.

      opcii komandy:

      -m    smontirovat' lentu. Dejstvie rezhima  po  umolcha-
            niyu, esli otsutstvuet opciya -u;

      -u    demontirovat' lentu. Rezhim otmenyaet zapros  mon-
            tirovaniya, esli lenta eshche ne smontirovana. Opciya
            ne sovmestima so vsemi ostal'nymi;

      -w    smontirovat' lentu dlya zapisi. Otsutstvie  opcii
            montiruet lentu tol'ko v rezhime chteniya;

      -q    opciya vyklyuchaet rezhim uvedomleniya raspredeleniem
            ustrojstv;

      -nl   dolzhna ispol'zovat'sya lenta bez metok.  Lenty  s


                           166
                   APK.00210-01 33 01-5

            metkami budut razgruzhat'sya;

      -blp  opciya zadaet rezhim  obhoda  obrabotki  metok  na
            lente. Metki lenty rassmatrivayutsya kak sobstven-
            no fajly;

      -sl   lenta dolzhna imet' standartnye metki  v  formate
            OS  ES,  "nomer_fajla"  ukazyvaet nomer fajla na
            lente;

      -d    ustanavlivaet  plotnost'  zapisi  na  lentu.  Po
            umolchaniyu 63 zn/mm;

      -c    vypolnit' komandu DEMOS, zapisannuyu vmesto para-
            metra  "komandnaya-stroka"  Komanda vypolnyaetsya v
            fonovom rezhime. Prisutstvie simvol'noj  posledo-
            vatel'nosti  %s  v  komandnoj stroke vyzyvaet ee
            zamenu serijnym nomerom  lenty  "serijnyj-nomer"
            Naprimer  tape  -m-c"cat %s>blot" GLOP84 komanda
            kopiruet lentu GLOP84 v fajl blot.

ZAMECHANIYA:
      Lentochnyj cledyashchij ppocecc i drajver  ustrojstva  pod-
      derzhivayut obrabotku metok lent, tem samym predotvrashcha-
      etsya porcha lent. Rezhimy obrabotki metok -nl, -sl, -blp
      opisyvayut harakteristiku lenty na vhode.

      Rezhim -nl otnositsya  k  lentam,  ne  soderzhashchim  metki
      fajlov i serijnyj nomer toma.

      Rezhim -sl harakterizuet lentu s serijnym nomerom  toma

                           167
                   APK.00210-01 33 01-5

      v pervoj zapisi i metkami dlya lentochnyh fajlov.

      Rezhim -blp ustanavlivaet obrabotku s vyklyuchennoj obra-
      botkoj  metok  lenty.  Metki lenty rassmatrivayutsya kak
      sobstvenno fajly.

FAJLY:
      /usr/spool/out/t*
            spool fajla lenty

      /usr/spool/out/.spoolpid
            identifikator processa spool

      /dev/tape/??????
            zakreplenie ustrojstva dlya pol'zovatelya

      /dev/mt?
            zakreplenie ustrojstva dlya sistemy

      /dev/tape/lock18

DOPOLNITELXNYE SSYLKI:
      opr, vmpunch, label, spooler, tm





                           168
                   APK.00210-01 33 01-5

IMYA:
      tar - vedenie arhiva na magnitnyh lentah

FORMAT:
      tar klyuch [imya ...]

OPISANIE:
      S pomoshch'yu komandy tar sohranyayutsya i  vosstanavlivayutsya
      fajly v arhive na magnitnoj lente. Rezhim raboty koman-
      dy opredelyaetsya s  pomoshch'yu  argumenta  "klyuch".  "Klyuch"
      predstavlyaet soboj odin iz priznakov operacii (r,x,t,u
      ili  c),  i   vozmozhno,   odin   ili   bolee   klyuchej-
      modifikatorov. Ostal'nymi argumentami komandy yavlyayutsya
      imena fajlov ili katalogov, kotorye dolzhny byt' sohra-
      neny ili vosstanovleny.

      Tar vypolnyaet sleduyushchie operacii:

      r     Perechislennye fajly dozapisyvayutsya  v  arhiv  na
            lente. Zapis' vedetsya v konec arhiva;

      h     Perechislennye fajly schityvayutsya  s  lenty.  Esli
            zadano  imya  kataloga,  soderzhimoe kotorogo bylo
            zapisano na lentu, schityvayutsya  fajly  iz  etogo
            kataloga (nachinayushchiesya s ukazannogo imeni). Vla-
            delec i status  fajlov  vosstanavlivayutsya  (esli
            eto  vozmozhno). Esli ne zadaetsya ni odnogo argu-
            menta  "imya",  vosstanavlivayutsya  vse  fajly   s
            lenty.  Esli  na  lente  imeetsya neskol'ko imen,
            specificiruyushchih tot zhe samyj fajl, to schityvayut-

                           169
                   APK.00210-01 33 01-5

            sya vse varianty fajla i ostaetsya poslednij;.

      t     Vydayutsya  imena  ukazannyh  fajlov  kazhdyj  raz,
            kogda  oni  poyavlyayutsya  na lente. Esli argumenty
            "imya" ne zadany, vydayutsya imena vseh  fajlov  na
            lente;

      u     Perechislennye fajly dozapisyvayutsya  v  arhiv  na
            lente,  esli ih tam ne bylo ili oni byli modifi-
            cirovany s momenta poslednej zapisi na lentu;

      c     Sozdaet novyj arhiv na lente. Zapis'  vedetsya  s
            nachala, a ne v konec arhiva.

      Sleduyushchie simvoly modificiruyut zadannuyu operaciyu:

      1,2     |tot modifikator zadaet  lentoprotyazhnyj  meha-
              nizm, na kotorom montiruetsya lenta (po umolcha-
              niyu 12, esli ne zadana peremennaya "TAPE";  is-
              pol'zuetsya  imya iz peremennoj "TAPE", esli ono
              zadano. Peremennaya "TAPE" ispol'zuetsya dlya pe-
              redachi  imeni  lenty  komandami  "tar",  "mt",
              "ardos" i zadaetsya v interpretatore  "sh"  tak
              (naprimer       ,      lenta      /dev/mt580):
              "TAPE=/dev/mt580; export TAPE"; v  "csh"  tak:
              "setenv  TAPE /dev/mt580". Imya mozhno takzhe za-
              davat' klyuchom "f".);

      v       Pri ispol'zovanii klyucha v komanda tar pechataet
              imya  kazhdogo  obrabatyvaemogo  fajla  i  soot-
              vetstvuyushchuyu bukvu-funkciyu. V  sluchae  operacii


                           170
                   APK.00210-01 33 01-5

              t,  vydayutsya  ne tol'ko imena fajlov na lente,
              no i drugaya informaciya;.

      w       Zastavlyaet komandu tar pechatat' prinimaemoe  k
              ispolneniyu dejstvie, a zatem zhdat' podtverzhde-
              niya pol'zovatelya. Vozmozhny sleduyushchie  varianty
              otveta:  "y"  - vypolnit' dejstvie, "n" - pro-
              pustit' dejstvie, "=imya" - vypolnit'  dejstvie
              bez  zaprosa  dlya  vseh  fajlov, imena kotoryh
              sovpadayut ili nachinayutsya  s  "imya",  "#imya"  -
              propuskayutsya  fajly,  imena  kotoryh sovpadayut
              ili nachinayutsya s "imya";.

      f       Zastavlyaet komandu tar ispol'zovat'  sleduyushchij
              argument   v   kachestve  imeni  arhiva  vmesto
              /dev/mt?. Esli imenem fajla  sluzhit  "-",  tar
              pishet na standartnyj vyvod ili chitaet iz stan-
              dartnogo vvoda. Takim obrazom, mozhno ispol'zo-
              vat'   tar   kak  nachalo  ili  okonchanie  cepi
              fil'tra. Tar mozhno takzhe ispol'zovat' dlya  pe-
              resylki  ierarhicheskih  struktur s pomoshch'yu ko-
              mandy

              cd from; tar cf - * | (cd to; tar xf -);

      b       Zastavlyaet komandu tar ispol'zovat'  sleduyushchij
              argument  v kachestve koefficienta blokirovaniya
              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


Last-modified: Mon, 29 Jun 1998 13:53:10 GMT
Ocenite etot tekst: