4

                   АПК 00210-01 33 01-4



               1. КОМАНДЫ ОБЩЕГО НАЗНАЧЕНИЯ


Структура описания каждой команды имеет следующий формат:

имя:           приводятся имена команд и краткая информация

               о их назначении;


формат:        приводится формат команды. Параметры, взятые

               в  квадратные  скобки,  могут  быть опущены;

               многоточие после параметра указывает на  то,

               что  данный  параметр может быть многократно

               повторен.


описание:      содержит подробное описание команды;


файлы:         перечисляются имена файлов, которые  исполь-

               зуются данной командой;


диагностика:   перечисляются диагностические сообщения, ко-

               торые могут выдаваться в процессе выполнения

               данной команды;


замечания:     приводятся ограничения на область применения

               команд;


дополнительные ссылки:

     делаются ссылки на  сопряженные  команды. Для удобства

     работы в скобках приводится  номер  части  руководства

     программиста где  описаны сопряженные команды

   Описание команд общего назначения приведено в  приложе-

   нии.




                            5

                   АПК 00210-01 33 01-4



                                             ПРИЛОЖЕНИЕ





























                            6

                   АПК 00210-01 33 01-4

ИМЯ:

      apropos - поиск компонентов в справочнике по системе.


ФОРМАТ:

      apropos ключ ...


ОПИСАНИЕ:

      Команда apropos просматривает  краткий  справочник  по

      системе и выдает все записи, содержашие вхождения эле-

      мента, указанного в списке ("ключ"). Поскольку  каждая

      запись краткого каталога содержит номер раздела и наз-

      вание документа, эту команду удобно  использовать  для

      получения  информации  о компонентах, которые нe имеют

      отдельного  документа,  но  упоминаются  при  описании

      какого-либо другого компонента.


ПРИМЕРЫ

      При использовании команды:


      apropos  time


      может  быть  получена   следующая   последавательность

      строк:


      alarm  -    выполнить команды в указанное время;


      time   -    команда выдачи времени работы команды.






                            7
                   АПК 00210-01 33 01-4

ИМЯ:
      ar - программа обслуживания архивов и библиотек.

ФОРМАТ:
      ar ключ [позимя] архив имя ...

ОПИСАНИЕ:
      Команда ar обслуживает группы файлов,  об'единенных  в
      единый  архивный файл. Основным применением этой прог-
      раммы является  создание  и  модификация  библиотечных
      файлов,  используемых редактором связий ld. Тем не ме-
      нее, она может  быть  использована  в  любых  подобных
      целях.

      "Ключ" представляет собой один  из  символов  drqtpmx,
      который  может об'единяться с одним или несколькими из
      символов vuaibcl (последние могут быть опущены). Аргу-
      мент  "архив"  задает  имя  архивного  файла. Аргумент
      "имя" представляет собой имя файла, который необходимо
      занести  в архив или имя файла, уже входящего в состав
      архива. Ключи задают следующие режимы работы:

      d -   Удаление файлов с указанными именами из архива;

      r -   Запись перечисленных файлов в архив.  Если  файл
            уже  входит  в архив, то он заменяется на новый.
            Если вместе с ключом "r"  используется  необяза-
            тельный  ключ "u", то в архиве заменяются только
            те файлы, которые имеют более поздние даты моди-
            фикации,  чем  одноименные файлы, входящие в ар-

                            8
                   АПК 00210-01 33 01-4

            хив. Если используется один из ключей позициони-
            рования  "abi" и присутствует параметр "позимя",
            новые файлы помещаются после (a)  или  перед  (b
            или i) файлом "позимя". В противном случае новые
            файлы помещаются в конец;

      q -   Быстрое добавление перечисленных файлов в  конец
            архива. Ключи позиционирования не допускаются. В
            этом режиме не проверяется, находятся ли  уже  в
            архиве файлы с заданными именами. Этот режим по-
            лезен только при  создании  больших  архивов  по
            частям для устранения лишних действий;

      t -   Получение имен файлов, входящих  в  архив.  Если
            имена  файлов  не  заданы,  выдается список имен
            всех файлов архива, в противном случае выводится
            список  имен только заданных файлов. Если файл с
            заданным именем отсутствует в  архиве,  выдается
            соответствующая диагностика;

      p -   Выдача в стандартный файл  вывода  перечисленных
            файлов из архива. Содержимое архива не изменяет-
            ся;

      m -   Перемещение  перечисленных  файлов.  Если   при-
            сутствует  ключ позиционирования и параметр "по-
            зимя", файлы перемещаются в указанное место, как
            и в режиме "r", иначе файлы перемещаются в конец
            архива;

                            9
                   АПК 00210-01 33 01-4

      x -   Перечисленные файлы выделяются из архива  в  от-
            дельные файлы. Если не заданы имена файлов, рас-
            паковывается весь архив. Ни в коем случае коман-
            да х не изменяет архивный файл;

      v -   Если указан данный ключ, команда ar выдает  под-
            робный  протокол своих действий. При использова-
            нии  совместно  с  ключем  "t",  выдается  более
            подпробная  информация  о файлах, входящих в ар-
            хив. Когда данный ключ используется совместно  с
            ключем  "p", перед каждым файлом указывается его
            имя;

      c -   Создает новый архив,  даже  если  архивный  файл
            "архив" уже существует;

      l -   Обычно команда ar помещает свои временные  файлы
            в  каталоге /tmp. Задание данного ключа приводит
            к тому, что они размещаются в текущем каталоге.

ФАЙЛЫ:
      /tmp/v*   временные файлы

ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
      ld, ar, lorder, ranlib

ЗАМЕЧАНИЯ:
      Если в списке параметров один и  тот  же  файл  указан
      дважды, он может быть дважды помещен в архив.


                            10
                   АПК 00210-01 33 01-4

ИМЯ:
      as, newas - ассемблер

ФОРМАТ:
      as [-] [-o обфайл] [имя...]

ОПИСАНИЕ:
      Команда as ассемблирует файлы с указанными именами или
      стандартный  файл  ввода, если имена файлов не заданы.
      Если задан ключ "-", все неопределенные при  ассембли-
      ровании символы считаются внешними.

      Результат работы команды as помещается в файл "обфайл"
      или,  если не задан ключ "-o", используется файл a.out
      в текущем справочнике.

      Команда newas вызывает новый вариант ассемблера, в ко-
      тором  улучшены  диагностики,  введена возможность ис-
      пользовать русские буквы в идентификаторах, но имеются
      некоторые  ограничения на порядок описания идентифика-
      торов (все переменные в правой  части  операторов  "="
      должны быть определены).

ФАЙЛЫ:
      /tmp/as2        второй проход ассемблера
      /tmp/atm[1-3]?  временные файлы
      a.out           об'ектный файл

ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
      ld, nm, adb, a.out.

                            11
                   АПК 00210-01 33 01-4

      Имеется отдельное описание ассемблера.

ДИАГНОСТИКА:
      Если входной файл не доступен для  чтения  -  выдается
      знак  вопроса  "?", за которым следует имя файла. Если
      ассемблируемая программа содержит ошибки, то  выдается
      один  символ  диагностики, имя файла и номер строки, в
      которой была  обнаружена  ошибка.  Возможно  следующие
      символы диагностики:

      )     Нарушен баланс скобок;

      ]     Нарушен баланс скобок;

      <     Незавершенная строка;

      *     Некорректная косвенная ссылка;

      .     Некорректное изменение текущего адреса;

      a     Ошибка в адресе;

      b     Переход на нечетный либо слишком большой адрес;

      e     Ошибка в выражении;

      f     Неверный локальный символ (типа 'f' или 'b');

      g     Неизвестный символ;

      i     Конец файла в кострукции "if";

      m     Символ многократно определен как метка;

      o     Нечетный адрес;


                            12
                   АПК 00210-01 33 01-4

      p     "." различается в 1-ом и 2-ом проходе;

      r     Ошибка размешения;

      u     Неопределенный символ;

      x     Синтаксическая ошибка.

ЗАМЕЧАНИЯ:
      При диагностике синтаксических  ошибок  номер  строки,
      где произошла ошибка, может указываться невернo.











                            13
                   АПК 00210-01 33 01-4

ИМЯ:
      at - выполнить команды в указанное время.

ФОРМАТ:
      at время [день] [файл]

ОПИСАНИЕ:
      Команда at сохраняет копию файла "файл" (по  умолчанию
      - стандартный файл ввода) для запуска в указанное вре-
      мя. Предполагается, что "файл" содержит  программу  на
      языке  SHELL  (или CSHELL). В начало файла вставляется
      команда перехода в справочник (cd), который был  теку-
      щим  в  момент  выполнения команды at. За этим следует
      определение всех макропеременных "среды". При  запуске
      подобного командного файла используются идентификаторы
      группы (GID) и пользователя (UID) создателя.

      Аргумент "время" представляет собой от 1 до 4 цифр, за
      которыми  могут  следовать  символы  "a", "p", "n" или
      "m", означающие "до полудня", "после полудня",  "днем"
      и  "ночью" соответственно. Одна или две цифры рассмат-
      риваются как часы. Три или четыре цифры рассматривают-
      ся как часы и минуты. Если буквы после цифр отсутству-
      ют, подразумевается 24-часовое суточное время.

      Необязательный параметр "день" используется для  зада-
      ния  либо  названия  месяца, за которым следует число,
      либо - дня  недели.  Если  присутсвует  слово  "week",
      вызов  откладывается  на семь дней. Названия месяцев и
      дней могут усекаться до распознаваемой величины.  При-


                            14
                   АПК 00210-01 33 01-4

      ведем примеры допустимых команд:

      at 8am jan 24
      at 1530 fr week

      Программы at  выполняются  посредством  периодического
      запуска  команды  /usr/lib/atrun из cron. Дискретность
      at зависит от того, как часто выполняется atrun.

ФАЙЛЫ:
      /usr/spool/at/гг.ддд.чччч.нн
            Работа должна быть выполнена в "чччч" часу "ддд"
            дня  "гг" года; "нн" представляет собой уникаль-
            ный номер.

      /usr/spool/at/lasttimedone
            Содержит "чччч" для последнего часа работы.

      /usr/spool/at/past
            Каталог работ, которые выполняются  в  настоящее
            время.

      /usr/lib/atrun
            Программа,  которая  выполняет  работы  в  соот-
            ветствии с расписанием.

ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
      calendar, cron

ДИАГНОСТИКА:
      Сообщения о различных синтаксических ошибках и  указа-
      ниях времени вне допустимого диапазона.


                            15
                   АПК 00210-01 33 01-4

ЗАМЕЧАНИЯ:
      Вследствие  дискретности   выполнения   /usr/lib/atrun
      могут происходить ошибки в планировании работы с опоз-
      данием до 24 часов.














                            16
                   АПК 00210-01 33 01-4

ИМЯ:
      awk - язык сканирования и обработки текста

ФОРМАТ:
      awk [-fc] [прог] [файл]...

ОПИСАНИЕ:
      Команда  awk  является  интерпретатором  своеобразного
      языка,   предназначенного  для  обработки  текстов.  В
      каждом  входном  файле  "файл"  осуществляется   поиск
      строк,  которые  соответствуют одному из набора шабло-
      нов, заданных в аргументе "прог". С каждым шаблоном  в
      "прог"  может быть связано некоторое действие, которое
      будет выполнено когда установится  соответствие  между
      строкой файла "файл" и данным шаблоном. Набор шаблонов
      может  задаваться  либо  непосредственно  в  параметре
      "прог", либо указываться как "-f файл".

      Файлы считываются по порядку.Если файлы не указаны или
      задан параметр "-", используется стандартный файл вво-
      да. Каждая строка сравнивается с шаблоном каждого опе-
      ратора "шаблон-действие". Для каждого соответствующего
      шаблона выполняется связанное с ним действие.

      Входная строка состоит  из  полей,  которые  разделены
      пробелами (это умолчание может быть изменено с помощью
      FS). Поля обозначаются  $1,$2,...;.  $0  относится  ко
      всей строке.

      Оператор "шаблон-действие" имеет следующий вид:

                            17
                   АПК 00210-01 33 01-4

            шаблон {действие}

      Отсутствие части "{действие}"  означает  печать  соот-
      ветствующих  "шаблону" строк. Отсутствие "шаблона" оз-
      начает, что "действие" выполняется над каждой вводимой
      строкой.

      Действие представляет собой последовательность  опера-
      торов.

      Имеются следующие операторы:
      if(условие) оператор [else оператор]
      while (условие) оператор
      for (выр; условие; выр) оператор
      break
      continue
      { [оператор]... }
      переменная = выр
      print [список-выр] [>выр]
      printf формат [,список-выр] [>выр]
      next # пропустить остальные шаблоны
           # для этой входной строки
      exit # пропустить остальной ввод.

      Операторы заканчиваются  точкой  с  запятой,  символом
      новой строки или правой скобкой. Пустой список выраже-
      ний относится ко всей строке.  Выражения  представляют
      собой  строку  или  числовые значения и строятся с по-
      мощью операций +, -, *, /, % и конкатенация  (указыва-
      емая  пробелом). В выражениях допускаются также опера-


                            18
                   АПК 00210-01 33 01-4

      ции языка Си ++, --, +=, -=, *=, /= и  %=.  Переменные
      могут  представлять  собой  скаляры, элементы массивов
      (обозначаемые x[i]) или  поля.  Начальными  значениями
      переменных  являются пустые строки. Индексами массивов
      могут быть любые строки, не обязательно числовые - это
      позволяет организовать некоторую разновидность ассоци-
      ативной памяти. Строковые константы заключаются в  ка-
      вычки "...".

      Оператор print выдает  свои  параметры  в  стандартный
      вывод  (или  в файл, если задано ">файл"), разделяя их
      текущим разделителем выходных полей и завершая  разде-
      лителем  выходных записей. Оператор printf форматирует
      свой список выражений в соответствии с форматом.

      Встроенная функция length возвращает длину своего  па-
      раметра, рассматриваемого как строку, или всей строки,
      если параметр отсутствует.  Имеются  также  встроенные
      функции ехр, log, sqrt и int, последняя усекает значе-
      ние своего параметра до целого. Функция  substr(s,m,n)
      возвращает n-символьную подстроку строки s, начинающу-
      юся с m-ой позиции.  Функция  sprintf(фмт,выр,выр,...)
      форматирует  выражения  в соответствии с printf форма-
      том, заданным посредством "фмт",и возвращает результи-
      рующую строку.

      Шаблоны представляют собой произвольные булевы  комби-
      нации  (!, ||, && и скобки) регулярных выражений и вы-
      ражений отношения. Регулярные выражения должны  обрам-

                            19
                   АПК 00210-01 33 01-4

      ляться знаками "/". Изолированные регулярные выражения
      в шаблоне относятся ко всей строке. Регулярные выраже-
      ния  могут присутствовать также и в выражениях отноше-
      ния.

      Шаблон может состоять из  двух  шаблонов,  разделенных
      запятой  (в  этом случае действие выполняется для всех
      строк между  строкой,  в  которой  встречается  первый
      шаблон   и   строкой,  в  которой  встречается  второй
      шаблон).

      Выражение отношения  может  иметь  одну  из  следующих
      форм:

      выражение опподб регулярное-выражение

      выражение опотн выражение

      где "опотн" представляет собой одну из шести  орераций
      отношения языка Си, а "опподб" представляет собой либо
      знак ^ ("входит"),  либо  !^  ("не  входит").  Условие
      представляет собой арифметическое выражение, выражение
      отношения либо их булеву комбинацию.

      Специальные шаблоны BEGIN и END  могут  использоваться
      для  получения  управления  перед  считыванием  первой
      входной строки и  после  считывания  последней.  BEGIN
      должен быть первым шаблоном, а END - последним.

      Отдельный символ "c" может использоваться для разделе-
      ния полей путем указания в начале программы:

                            20
                   АПК 00210-01 33 01-4

            BEGIN {FS="c"}

      либо путем использования ключа "-fc".

      К именам переменных со специальным значением  относят-
      ся:

      NF       - количество полей в текущей записи;

      NR       - порядковый номер текущей записи;

      FILENAME - имя текущего входного файла;

      FS       - разделитель входных полей (по  умолчанию  -
                 пробел);

      RS       - разделитель входных записей (по умолчанию -
                 символ новой строки);

      OFS      - разделитель выходных полей (по умолчанию  -
                 пробел);

      ORS      - разделитель выходных записей (по  умолчанию
                 - символ новой строки);

      OFMT     - выходной формат для чисел (по  умолчанию  -
                 "%.6g");

      $0       - обрабатываемая строка;

      $i       - i-тое поле обрабатываемой строки.

ПРИМЕРЫ:
      Печать строк с длиной более 72 символов:

                            21
                   АПК 00210-01 33 01-4

            length > 72

      Печать первых двух полей в обратном порядке:

            {print $2, $1}

      Печать полей в обратном порядке:

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

      Печать всех строк, начиная со строки, содержащей слово
      "start" до строки со словом "stop" включительно:

            /start/,/stop/

      Печать всех строк, у которых первое поле отличается от
      первого поля предыдущей строки:

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

ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
      lex, sed.

      Имеется отдельное описание awk.

ДИАГНОСТИКА:
      В версии awk для машин с ограниченным размером адресу-
      емой  памяти (порядка 64Кбайт на процесс) основные ди-
      агностические сообщения заменены номерами ошибок.  При
      этом  часть  дигностической  информации  теряется  для
      пользователя. Далее приводится список  диагностических
      сообщений  выдаваемых полной версией awk с их номерами
      (потерянная информация обозначается (?)):

                            22
                   АПК 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
                   АПК 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 (?)

ЗАМЕЧАНИЯ:
      Не существует явного преобразования  между  числами  и
      строками. Для того, чтобы выражение обрабатывалось как
      число, добавьте к нему 0, а для того, чтобы оно  обра-
      батывалось как строка, об'едините его с "".







                            24
                   АПК 00210-01 33 01-4

ИМЯ:
      bas - интерпретатор языка BASIC.

ФОРМАТ:
      bas [file]

ОПИСАНИЕ:
      Команда bas является интерпретатором одного из диалек-
      тов  языка  BASIC.  Если в командной строке задано имя
      файла "file", то  перед  вызовом  интерпретатора  этот
      файл  считывается  (предполагается,  что  он  содержит
      программу на языке BASIC). Bas допускает строки следу-
      ющего вида:

      оператор
      метка оператор

      В  качестве  метки  используется  целое  положительное
      число.  Помеченные операторы запоминаются для последу-
      ющего выполнения и сортируются в  порядке  возрастания
      значений меток. Непомеченные операторы выполняются не-
      медленно. Если оператор содержит вычисляемое выражение
      без присваивания, результат выдается сразу.

      СИНТАКСИС ОПЕРАТОРОВ:

      выражение
            Выражение выполняется для  достижения  желаемого
            эффекта  (присваивание или вызов фукции) или для
            печати.В дальнейшем выражение будет обозначаться
            символом V;


                            25
                   АПК 00210-01 33 01-4

      comment ...
            Этот  оператор  игнорируется,  применяется   для
            включения комментария в программу;

      done  Выход из интерпретарора обратно в систему;

      dump  Вызывает печать имени и текущего  значения  всех
            переменных в процессе выполнения программы;

      edit  Вход в редактор ed. В качестве имени  файла  ре-
            дактору ed передается параметр file. После выхо-
            да из редактора происходит возврат в интерпрета-
            тор,  причем программа находящаяся в файле file,
            компилируется заново.

      for идентификатор = V V оператор
      for идентификатор = V V
      группа операторов
      next

            Оператор for порождает  многократное  выполнение
            оператора  (первая форма записи) или группы опе-
            раторов (вторая форма записи), контролируя коли-
            чество  итераций  по  значению  переменной name.
            Этой переменной присваивается  значение  первого
            выражения,   которое  увеличивается  на  единицу
            после каждого шага выполнения цикла.  Цикл  про-
            должается  до  тех пор пока, значение переменной
            не превышает значения второго выражения.

      goto V


                            26
                   АПК 00210-01 33 01-4

            Выражение  вычисляется,  переводится  в   целое,
            после чего происходит переход к оператору, метка
            которого  равна  значению  выражения.  Программа
            продолжает выполнятся с этого места. Если данный
            оператор не помечен, то перед его интерпретацией
            компилируются операторы накопленные ранее.

      if V оператор
      if V
      группа операторов
      [ else
      группа операторов ]
      fi

            Оператор (первая форма)  или  группа  операторов
            (вторая  форма) выполняется, если значение выра-
            жения не равно нулю. Во второй форме допускается
            наличие альтернативной группы операторов.

      list [V [V]]
            Этот оператор применяется для  просмотра  текста
            программы.  Если отсутствуют аргументы, выдается
            вся программа. Если присутствует один  аргумент,
            то выдается только один оператор, метка которого
            равна значению заданного выражения. Если  заданы
            два аргумента, то выдаются операторы в указанном
            диапазоне.

      print список
            "Список" включает в себя выражения, переменные и


                            27
                   АПК 00210-01 33 01-4

            текстовые константы (текстовые константы берутся
            в кавычки (")). Оператор print  выдает  значения
            перечисленных выражений или переменных совместно
            с текстом.

      prompt список
            Действует  аналогично  оператору  print,  только
            после  выдачи  последнего  символа не происходит
            перехода на новую строку.

      return [V]
            Выражение вычисляется и его значение использует-
            ся   в  качестве  значения,  которое  возвращает
            функция. Если аргумент отсутствует, возвращается
            ноль.

      run   Программа компилируется, датчику случайных чисел
            устанавливается  стартовое  значение. Управление
            передается  оператору  с  наименьшим   значением
            метки.

      save [V [V]]
            Оператор  save  работает  аналогично   оператору
            list, только вывод идет не на терминал, а в файл
            file. Если команда bas была вызвана без аргумен-
            та, используется файл b.out в текущем каталоге.

      СИНТАКСИС ВЫРАЖЕНИЙ:

      идентификатор
            Идентификатор может содержать произвольное коли-


                            28
                   АПК 00210-01 33 01-4

            чество символов, однако значимыми считаются пер-
            вые четыре. Идентификатор  должен  начинаться  с
            буквы  и  может  состоять  только  из  латинских
            строчных букв и цифр.

      число Число определяет числовую константу и  записыва-
            ется  в  традиционном фортрановском стиле. Число
            состоит из цифр  и  может  содержать  десятичную
            точку  или знак порядка "e" с последующей экспо-
            нентой. Например: 4, -15, 0.34, 1.2e+5.

      (V)   Скобки применяются для изменения старшинства вы-
            полнения операций.

      _V    Инверсия значения выражения.

      V операция V
            Выполнение операции.

      V( [V[, V]] )
            Вызов функции с заданным числом аргументов. Зна-
            чение  первого выражения используется в качестве
            метки оператора, с которого начинается  функция.
            Если  значение  выражения получается отрицатель-
            ным,   вызывается   соответствующая   встроенная
            функция (правда, неизветно какая именно).

      идентификатор [ V[, V]]
            Значение выражения, переведенное  в  целое,  ис-
            пользуется  для индексации массивов. Запись вида
            a[1,2] равносильна записи вида a[1][2]. Значения


                            29
                   АПК 00210-01 33 01-4

            индексов усекаются до диапазона от 0 до 32767.

      СПИСОК ОПЕРАЦИЙ:

      =    Операция присваивания. Левый операнд должен  быть
           идентификатором  или  элементом массива. Значение
           правого операнда присваивается левому.

      & |  Операция логическое "И" (&) дает результат  ноль,
           если  какой-либо  из  операндов  равен нулю, и не
           ноль,  если оба операнда не равны нулю.  Операция
           логическое  "ИЛИ"  (|)  дает результат ноль, если
           оба операнда равны нулю, и не ноль,  если  какой-
           либо из них не равен нулю.

      < <= > >= <>
           Операции отношения:

           <     меньше;

           <=    не больше;

           >     больше;

           >=    не меньше;

           <>    не равно;
      возвращают значение одного из аргументов если  отноше-
      ние соблюдается, в противном случае возвращается ноль.
      Оперции отношения одного уровня допускают  вложенность
      следующего  вида: результат операции a>b>c, будет ана-
      логичен результату операции a>b&b>c;

                            30
                   АПК 00210-01 33 01-4

      + -  Сложение и вычитание;

      * /  Умножение и деление;

      ^    Возведение в степень;

      ВСТРОЕННЫЕ ФУНКЦИИ:

      arg(i)
            Получение  i-того  параметра   текущего   вызова
            функции;

      exp(x)
            Экспонента от x;

      log(x)
            Натуральный логарифм от x;

      sqr(x)
            Квадратный корень от x;

      sin(x)
            Синус от x (радианы);

      cos(x)
            Косинус от x (радианы);

      atn(x)
            Арктангенс от x. Возвращает значения в диапазоне
            от -J/2 до J/2;

      rnd() Датчик случайных чисел,  возвращает  значения  в
            диапазоне от 0 до 1;

                            31
                   АПК 00210-01 33 01-4

      expr()
            Программный ввод. Строка читается из стандартно-
            го  файла ввода и рассматривается как выражение.
            Программа получает значение этого выражения;

      abs() Абсолютное значение;

      int(x)
            Перевод x в целое;

ФАЙЛЫ:
      /tmp/btm*  временные файлы
      b.out      файл для сохранения программы
      /bin/ed    редактор

ДИАГНОСТИКА:
      Синтаксические ошибки приводят к  выдаче  некорректной
      строки.








                            32
                   АПК 00210-01 33 01-4

ИМЯ:
      basename - отбросить суффиксы и префиксы имени файла.

ФОРМАТ:
      basename строка [суффикс]

ОПИСАНИЕ:
      Команда basename удаляет  из  "строки"  все  префиксы,
      оканчивающиеся  символом  "/", а также "суффикс", если
      он присутствует в строке, и выдает результат  в  стан-
      дартный файл вывода. Эта команда обычно используется в
      программах написанных на языке SHELL.

ПРИМЕРЫ:
      Приведеm   процедуру,    вызываемую    с    параметром
      /usr/src/cmd/cat.c, которая компилирует файл с указан-
      ным именем и помещает результат в файл cat  в  текущем
      каталоге:

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

ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
      sh





                            33
                   АПК 00210-01 33 01-4

ИМЯ:
      bc - интерпретатор языка BC.

ФОРМАТ:
      bc [-c] [-l] [файл...]

ОПИСАНИЕ:
      Команда bc представляет собой интерактивный  процессор
      для  языка,  который по синтаксису напоминает язык Cи,
      но позволяет выполнять арифметические операции с  про-
      извольной  точностью. Программа на данном языке считы-
      вается из стандартного файла ввода. Если заданы  аргу-
      менты  типа  "файл",  то предполагается, что это имена
      файлов, содержащих рабочие подпрограммы на  языке  BC.
      Эти файлы считываются перед выполнением основной прог-
      раммы. Если задан параметр "-l", то используется стан-
      дартная  библиотека  функций  произвольной точности. В
      приводимом кратком описании синтаксиса языка  BC,  ис-
      пользуются следующие сокращения:

      B     последовательность символов от "a" до "z";

      V     выражение;

      OP    оператор.

КОММЕНТАРИИ:
      ограничиваются последовательностями  символов  "/*"  и
      "*/"

ИМЕНА:

                            34
                   АПК 00210-01 33 01-4

      простые переменные: B
      элементы массива: B[V]
      слова "ibase", "obase" и "scale"

ПРОЧИЕ ОПЕРАНДЫ:
      числа произвольной длины
      (возможно со знаком и десятичной точкой).
      (V)
      sqrt(B)    квадратный корень
      length(B)  число значащих десятичных цифр
      scale(B)   точность
      B(V,...,V) вызов подпрограммы

ОПЕРАЦИИ:
      + - * / % ^ (% - остаток, ^ - степень)
      ++ --       (префикс и постфикс,
                 применяются к именам)
      == <= >= != < >
      = =+ =- =* =/ =% =^

ОПЕРАТОРЫ:
      V
      {OP; ... ;OP}
      if(V) OP
      while(V) OP
      for(V;V;V) OP
      пустой оператор
      break
      quit

                            35
                   АПК 00210-01 33 01-4

ОПРЕДЕЛЕНИЯ ФУНКЦИЙ:
      define  B(B, ... ,B){
            auto B, ... ,B
            OP; ... OP
            return(B)
      }

      Функции из стандартной библиотеки:
      s(x)    - синус;
      c(х)    - косинус;
      e(х)    - экспонента;
      l(x)    - логарифм;
      a(х)    - арктангенс;
      j(n,x)  - функция Бесселя

      Все параметры функций передаются по значению.

      Значение оператора, являющегося выражением, распечаты-
      вается, если основной операцией не является присваива-
      ние. Операторы могут разделяться либо точками с  запя-
      той,  либо  символами новой строки. Присваивание пере-
      менной scale влияет на количество цифр,  получаемых  в
      результате  арифметических  операций  по  правилам dc.
      Присваивания переменным ibase  и  obase  устанавливает
      входное и выходное основания соответственно.

      Одна и та же буква  может  использоваться  в  качестве
      массива,  функции  и  простой переменной одновременно.
      Все переменные в программе являются глобальными. Пере-
      менные  "auto"  при  вызове функций помещаются в стек.


                            36
                   АПК 00210-01 33 01-4

      При  использовании  массивов  в  качестве   параметров
      функции  и при определении их как автоматических пере-
      менных,  имя  массива  должно  сопровождаться  пустыми
      квадратными скобками.

      Например, подпрограмма:

      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
          }
      }
      определяет функцию для вычисления приближенного значе-
      ния показательной функции, а

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

      выдает приближенные значения показательной функции для
      первых десяти целых чисел.

      Команда bc фактически представляет собой  препроцессор

                            37
                   АПК 00210-01 33 01-4

      для dc, который вызывается автоматически, если не при-
      сутствует ключ "-c" (только компиляция). В этом случае
      результат  направляется не на вход dc, а в стандартный
      файл вывода.

ФАЙЛЫ:
      /usr/lib/lib.b   математическая библиотека

ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
      dc

      Имеется отдельное описание bc.

ЗАМЕЧАНИЯ:
      Отсутствуют операции &&, || и !. Оператор  for  должен
      иметь все три выражения. Оператор quit срабатывает при
      считывании, а не при выполнении.







                            38
                   АПК 00210-01 33 01-4

ИМЯ:
      cal - печать календаря

ФОРМАТ:
      cal [месяц] год

ОПИСАНИЕ:
      Команда cal выдает  календарь  указанного  года.  Если
      задан год и месяц, выдается календарь только для этого
      месяца. "год" может быть в пределах от 1 до 9999. "ме-
      сяц" является числом от 1 до 12.

ЗАМЕЧАНИЯ:
      Использование данной команды для получения ответов  на
      вопросы  типа: "На какой день недели приходильсь 2 ян-
      варя 1928 года?" может  оказаться  неправомерным,  так
      как  в программе не учитываются некоторые исторические
      факты.

      Будьте внимательны: "cal 78" относится к ранней  хрис-
      тианской эре, а не к XX столетию.





                            39
                   АПК 00210-01 33 01-4

ИМЯ:
      calendar - "электронный" ежедневник

ФОРМАТ:
      calendar [-]

ОПИСАНИЕ:
      Команда calendar просматривает файл "calendar" в теку-
      щем справочнике и выдает все строки, содержашие сегод-
      няшнюю или завтрашнюю дату. Даты  могут  задаваться  в
      виде:  "месяц.день", например, "12/7", но не "7 декаб-
      ря" или "7/12". В конце недели понятие "завтра"  вклю-
      чает и понедельник.

      Когда присутствует ключ "-", команда calendar проделы-
      вает  указанную  работу для каждого пользователя, име-
      ющего  в  своем   регистрационном   справочнике   файл
      "calendar", и посылает ему результат, если он имеется,
      с помощью mail. Обычно  это  делается  в  ночные  часы
      ежедневно под управлением cron.

ФАЙЛЫ:
      calendar          ежедневник
      /usr/lib/calendar генератор поисковых ключей
      /etc/passwd
      /tmp/cal*         временный файл
      Используются: egrep, sed, mail

ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
      at, cron, mail

                            40
                   АПК 00210-01 33 01-4

ЗАМЕЧАНИЯ:
      Расширение понятия "завтра" в команде calendar не  от-
      носится к дням, идущим после праздников.













                            41
                   АПК 00210-01 33 01-4

ИМЯ:
      cat - выдача содержимого файлов.

ФОРМАТ:
      cat [-] [-u] файл...

ОПИСАНИЕ:
      Команда cat последовательно считывает каждый "файл"  и
      записывает  результат  в стандартный файл вывода. Так,
      команда:

      cat file

      распечатывает указанный файл, а команда

      cat file1 file2 > file3

      об'единяет первые два файла  и  помещает  результат  в
      третий файл.

      Если входные файлы не указаны или задан ключ "-",  ис-
      пользуется  стандартный файл ввода. Необязательный па-
      раметр  "-u"  указывает  на  необходимость  подавления
      обычно выполняемой cat буферизации.

ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
      pr, cp

ЗАМЕЧАНИЯ:
      Будьте осторожны и не используйте команд вида "cat a b
      > a" и "cat" a b > b", которые разрушают входные файлы
      перед считыванием.

                            42
                   АПК 00210-01 33 01-4

ИМЯ:
      cb - оформление Си-программ

ФОРМАТ:
      cb

ОПИСАНИЕ:
      Команда cb переписывает  копию  C-программы  из  стан-
      дартного  файла ввода в стандартный файл вывода с про-
      белами и отступами, отображающими структуру программы.











                            43
                   АПК 00210-01 33 01-4

ИМЯ:
      cc - вызов компилятора с языка Си

ФОРМАТ:
      cc [ключ]... файл...

ОПИСАНИЕ:
      Команда cc предназначена для вызова компилятора с язы-
      ка Си. Она воспринимает параметры нескольких типов.

      Параметры, имена которых заканчиваются на ".c", счита-
      ются  исходными программами на языке Си.Они компилиру-
      ются и каждая об'ектная программа  остается  в  файле,
      имя  которого получается из имени соответствующего ис-
      ходного файла после замены ".c"  на  ".o".  Файл  ".o"
      удаляется, если одна Си-программа компилируется и заг-
      ружается в одном проходе.

      Аналогично параметры, чьи имена заканчиваются на ".s",
      считаются  исходными программами на языке ассемблера и
      ассемблируются, в  результате  чего  получаются  файлы
      ".o".

      В команде cc могут задаваться следующие ключи:

      -c    Отменяет  фазу  сборки  и   вызывает   генерацию
            об'ектного  кода даже тогда, когда компилируется
            только одна программа;

      -f    Указание о том, что на машине  отсутствует  FPP-
            процессор.  В  этом  случае  вместе с программой

                            44
                   АПК 00210-01 33 01-4

            загружаются необходимые подпрограммы  из  библи-
            отеки эмуляции FPP-процессора;

      -p    Включение профилирования программы.  Стандартная
            программа запуска заменяется программой, которая
            при запуске автоматически вызывает monitor (2) и
            организует  вывод  файла  mon.out при нормальном
            завершении выполнения об'ектной программы. После
            этого  может  быть  построен график выполнения с
            помощью команды prof;

      -d    Генерация кода и дополнительной  информации  для
            отладчика "cdeb";

      -O    Включение фазы оптимизации об'ектного кода;

      -S    Компилирует перечисленные Си-программы и  остав-
            ляет   результат  работы  в  виде  ассемблерного
            текста в  соответствующих  файлах  с  суффиксами
            ".s";

      -e    Запускает только макропроцессор для  перечислен-
            ных Си-программ и выдает результат в стандартный
            файл вывода. Для использования результата в пос-
            ледующих вызовах "cc" нужно обработать результат
            редактором "sed" по следующей  программе:  "s/^#
            /# line/";

      -a    Блокируется вызов  макропроцессора  "cpp".  Флаг
            используется,  если входной текст уже прошел об-
            работку препроцессором;


                            45
                   АПК 00210-01 33 01-4

      -P    Каждый файл, имя которого имеет суффикс ".c" об-
            рабатывается   только   макропроцессором  "cpp",
            результат работы которого помещается  в  файл  с
            соответствующим  именем  и  суффиксом  ".i", при
            этом подавляется вывод строк вида "#line ...";

      -C    Обычно макропроцессор "cpp" убирает  комментарии
            из  своего вывода. Флаг -C блокирует уничтожение
            комментариев, что бывает необходимо для программ
            "xstr" или "lint";

      -o выход
            Помещает окончательный результат в файл с именем
            "выход".   Если  используется  этот  ключ,  файл
            "a.out" не будет изменен.

      -Dимя=опр
      -Dимя

            Определяет указанное "имя" для препроцессора, по
            аналогии  с "#define". Если определение не зада-
            но, данное имя определяется как "1";

      -Uимя Удаляет  все  начальные  определения  указанного
            имени;

      -Iкат Поиск файлов "#include", чьи имена не начинаются
            с символа "/", всегда производится сначала в те-
            кущем справочнике, затем в  справочниках  "кат",
            перечисленных  при ключе -I, а затем - в катало-
            гах стандартного списка;


                            46
                   АПК 00210-01 33 01-4

      -B строка
            Ищет заменяющие фазы компилятора в файлах с име-
            нем "строка" с суффиксами ccp, c0, c1 и c2. Если
            "строка" пустая,  используется  стандартная  ре-
            зервная версия;

      -t[p012]
            Ищет только указанные фазы компилятора в файлах,
            имена  которых  строятся в соответствии с ключем
            -B. При отсутствии ключа -B подразумевается сле-
            дующая "строка": "/usr/c/".

      -T[al]имя
            Ассемблер (если указано "a") или редактор связей
            ("l")  вызываются  из файла "имя" вместо вызыва-
            емых по умолчанию.

      Остальные параметры являются  либо  ключами  редактора
      связей, либо совместимыми с Си об'ектными программами,
      полученными обычно в результате предшествующих  выпол-
      нений cc, либо библиотеками совместимых с Си программ.
      Эти программы, вместе с результатами указанных  компи-
      ляций  загружаются  (в  заданном порядке), давая в ре-
      зультате выполняемую программу с именем a.out.

ФАЙЛЫ:
      файл.c         Входной файл
      файл.o         Об'ектный файл
      a.out          Загрузочный выход
      /tmp/ctm?      Временный


                            47
                   АПК 00210-01 33 01-4

      /lib/cpp       препроцессор
      /lib/c0        компилятор 0 проход
      /lib/c1        компилятор 1 проход
      /lib/fc1       1 проход при флаге "-f"
      /usr/c/oc[01]  резервный компилятор
      /usr/c/ocpp    резервный препроцессор
      /lib/c2        необязательный оптимизатор
      /lib/crt0.o    Динамический стартер
      /lib/mcrt0.o   Стартер для профилирования
      /lib/lib[aс].a Стандартные библиотеки
      /usr/include   стандартный каталог для
                   файлов "#include".
      /lib/fcrt0.0   Стартер для флага "-f"

ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
      cdeb, prof, adb, ld

      Имеется отдельное описание языка Си.

ДИАГНОСТИКА:
      Диагностические сообщения, генерируемые самим компиля-
      тором  си,  являются достаточно понятными. В некоторых
      случаях сообщения могут генерироваться ассемблером или
      редактором связей.




                            48
                   АПК 00210-01 33 01-4

ИМЯ:
      ccat - выдача содержимого компрессированных файлов.

ФОРМАТ:
      ccat [файл ...]

ОПИСАНИЕ:
      Команда ccat выдает содержимое файлов, "сжатых" с  по-
      мощью команды compact. Файл не изменяется.

ДИАГНОСТИКА:
      Сообщения о файлах, которые не могут быть  открыты,  и
      т.п.

ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
      compact, uncompact








                            49
                   АПК 00210-01 33 01-4

ИМЯ:
      cd - сменить рабочий справочник

ФОРМАТ:
      cd dirname

ОПИСАНИЕ:
      Команда cd задает справочник с именем "dirname" в  ка-
      честве  текущего  рабочего  справочника. Для изменения
      текущего  справочника  необходимо   чтобы   справочник
      "dirname"  имел  разрешение на поиск в нем для данного
      пользователя.

      Поскольку  для  выполнения  каждой  команды  создается
      новый  процесс, команда cd была бы неэффективной, если
      бы она была написана как обычная команда. Поэтому  она
      является встроенной функцией языков управления задани-
      ями SHELL и CSHELL.

ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
      csh, sh, pwd, chdir.





                            50
                   АПК 00210-01 33 01-4

ИМЯ:
      chmod - изменить статус файла

ФОРМАТ:
      chmod статус файл ...

ОПИСАНИЕ:
      Статус каждого из перечисленных  файлов  изменяется  в
      соответствии  со значением параметра "статус", которое
      может быть абсолютным  или  символическим.  Абсолютное
      значение   статуса   представляет  собой  восьмеричное
      число, строящееся по правилу "или" из следующих значе-
      ний:

      4000  установить идентификатор хозяина файла  при  вы-
            полнении;

      2000  установить идентификатор группы по группе  хозя-
            ина файла при выполнении;

      1000  бит сохранения образа текста;

      0400  разрешение на чтение файла владельцу;

      0200  разрешение на запись файла владельцу;

      0100  разрешение  выполнения  (поиска  в  справочнике)
            владельцу;

      0070  разрешение чтения, записи,  выполнения  (поиска)
            группе;

      0007  разрешение  чтения,  записи,  выполнения  прочим


                            51
                   АПК 00210-01 33 01-4

            пользователям.

      Символическое значение "статус" имеет следующий вид:

      [кто] оп полномочие [оп полномочие] ...

      Поле "кто" представляет собой комбинацию букв "u" (для
      полномочий  пользователя), "g" (группа), "o" (прочие).
      Буква "a" заменяет сочетание "ugo".  Если  поле  "кто"
      опущено, по умолчанию принимается значение "a", однако
      принимается во  внимание  маска  создания  файла  (см.
      umask).

      Поле "оп" может представлять собой "+" - для  добавле-
      ния  полномочия в режим файла, "-" - для удаления пол-
      номочия и "=" для абсолютного присваивания  полномочия
      (все остальные биты будут сброшены).

      "Полномочие" представляет собой произвольную  комбина-
      цию букв "r" (чтение), "w" (запись), "x" (выполнение),
      "s" (установление идентификации пользователя или груп-
      пы)  и  "t"  (сохранение  текстов  после  выполнения).
      Отсутствие поля полномочия полезно использовать только
      с символом "=" для удаления всех полномочий.

ПРИМЕРЫ:
      Первый из приведенных ниже примеров  запрещает  запись
      "прочим" пользователям, а второй делает указанный файл
      выполняемым.

      chmod o-w файл

                            52
                   АПК 00210-01 33 01-4

      chmod +x файл

ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
      ls, chown, stat, umask.

ЗАМЕЧАНИЯ:
      Может быть указано  несколько  символических  режимов,
      разделенных  запятыми. Операции выполняются в заданном
      порядке. Букву "s"  имеет  смысл  использовать  только
      совместно с "u" или "g".

      Только владелец файла (или  супер-пользователь)  может
      изменить его режим.









                            53
                   АПК 00210-01 33