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 01-4
ИМЯ:
clear - очистить экран терминала.
ФОРМАТ:
clear
ОПИСАНИЕ:
Команда clear стирает экран терминала, используя ин-
формацию об особенностях данного устройства из файла
описаний характеристик терминалов (/etc/termcap).
ФАЙЛЫ:
/etc/termcap описание характеристик терминалов раз-
личных типов.
54
АПК 00210-01 33 01-4
ИМЯ:
cmp - сравнение двух файлов.
ФОРМАТ:
cmp [-l] [-s] файл1 файл2
ОПИСАНИЕ:
Два указанных файла сравниваются. (если параметр
"файл1" представляет собой "-", используется стан-
дартный файл ввода). Без параметров команда cmp не вы-
дает никаких сообщений, если файлы одинаковы,или ука-
зывает номер байта и строки, где произошло несовпаде-
ние, если они отличаются. Если один из файлов является
началом другого, об этом сообщается.
-l печатает номер байта (десятичный) и отличающиеся
байты (восьмеричные) для каждого несовпадения;
-s для отличающихся файлов ничего не печатается,
возвращается только код.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
diff, comm
ДИАГНОСТИКА:
Возвращается выходной код, равный 0 для идентичных
файлов, 1 для отличающихся файлов и 2 для недоступных
или пропущенных параметров.
55
АПК 00210-01 33 01-4
ИМЯ:
col - уничтожить обратные переводы строки.
ФОРМАТ:
col [-bfx]
ОПИСАНИЕ:
Команда col читает стандартный файл ввода и производит
запись в стандартный файл вывода. Она выполняет нало-
жение строк, подразумеваемое обратными переводами
строки (ESC-7 в коде КОИ-8) и прямыми и обратными пе-
реводами строки на полшага (ESC-8 и ESC-9). Команда
col особенно полезна для фильтрации многоколоночного
вывода, полученного командой ".rt" из pif и вывода,
получаемого в результате использования препроцессора
tbl.
Хотя команда col воспринимает на вводе переводы строки
на полшага, она обычно не передает их на вывод. Вместо
этого текст, который должен был появиться между строк,
сдвигается к следующей нижней границе полной строки.
Этот режим может быть отменен ключем -f (точно).В этом
случае выход col может содержать переводы строки на
полшага вперед, однако какие-либо переводы строки
назад всегда отсутствуют.
Если задан ключ -b, col предполагает, что используемое
устройство вывода не имеет возможности возврата на
шаг. В этом случае, если несколько символов должны по-
явиться на одном и том же месте, будет выдан только
56
АПК 00210-01 33 01-4
последний считанный символ.
Управляющие символы SI (017 в коде КОИ-8) и SO (016)
считаются началом и концом текста с альтернативным на-
бором символов. Набор символов (исходный или альтерна-
тивный), связанный с каждым считанным печатным симво-
лом, запоминается. При вводе символы SI и SO вставля-
ются в нужных местах, чтобы обеспечить соответствующую
обработку каждого символа.
Команда col обычно преобразует пробелы в символы табу-
ляции, чтобы сократить время печати. Если указан ключ
-x, это преобразование отменяется.
Из входного потока удаляются все управляющие символы,
за исключением символов пробела (SP-040), возврата на
шаг (BS-010), табуляции (HT-011), возврата каретки
(CR-015), новой строки (LF-012), за которым следует
один из символов ESC-7, ESC-8, ESC-9, SI, SO. Все ос-
тальные непечатаемые символы игнорируются.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
pif, tbl, greek
ЗАМЕЧАНИЯ:
Нельзя возвратиться назад более, чем на 128 строк.
В строке не должно быть более 800 символов, включая
символы возврата на шаг.
57
АПК 00210-01 33 01-4
ИМЯ:
colcrt - фильтр для файлов в формате pif.
ФОРМАТ:
colcrt [-] [-2] [файл ...]
ОПИСАНИЕ:
Команда colcrt обеспечивает виртуальные возможности
перевода строки на полшага на половину межстрочного
интервала и обратного перевода строки для терминалов,
не имеющих указанных средств и на которых повторный
вывод символа в одну и ту же позицию разрушает имев-
шийся в ней символ. Сдвинутые на полстроки символы и
символы подчеркивания (замененные на тире "-") распо-
лагаются на новых строках между обычными выходными
строками.
Необязательный параметр "-" подавляет все подчеркива-
ния. Это особенно полезно для просмотра полностью
окаймленных таблиц после tbl.
Ключ -2 вызывает печать сдвинутых на полстроки симво-
лов, фактически удваивая интервал вывода. Обычно ис-
пользуется минимальный интервал выводного формата, ко-
торый подавляет печать пустых строк. Однако данная
программа никогда не подавляет печать двух последова-
тельных пустых строк. Ключ -2 полезен при выводе на
АЦПУ, когда вывод содержит надстрочные и подстрочные
индексы, которые иначе не были бы видны.
58
АПК 00210-01 33 01-4
Типичное использование команды colcrt следующее:
tbl exum2.n | pif -ms | colcrt - | more
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
pif, col, more, ul.
ЗАМЕЧАНИЯ:
Нельзя вернуться более чем на 102 строки.
В общем случае при повторном выводе в одну и ту же по-
зицию происходит потеря символа.Как специальный слу-
чай, в результате наложения "|" и "-" или подчерки-
вания получается "+".
Длина строки ограничиваются 132 символами.
Требуется определенная осторожность при обработке
надстрочных и подстрочных индексов в документах, кото-
рые уже имеют двойной интервал.
59
АПК 00210-01 33 01-4
ИМЯ :
colrm - удалить указанные колоноки.
ФОРМАТ:
colrm [начстлб [констлб]]
ОПИСАНИЕ:
Команда colrm удаляет из файла указанные столбцы.
Информация читается из стандартного файла ввода и
после обработки записывается в стандартный файл выво-
да.
Если при вызове указан только один параметр, в каждой
строке будут удалены все позиции, начиная с указанного
столбца. Если указаны два параметра, будут удалены все
позиции от начального столбца до конечного столбца.
Нумерация столбцов начинается со столбца 1.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
expand
ЗАМЕЧАНИЯ
Символы табуляции рассматриваются как один символ и
один столбец.
60
АПК 00210-01 33 01-4
ИМЯ:
comm - выбрать (отбросить) одинаковые строки файлов.
ФОРМАТ:
comm [-[123]] файл1 файл2
ОПИСАНИЕ:
Команда comm считывает файлы "файл1" и "файл2", кото-
рые должны быть отсортированы в соответствии с после-
довательностью кодов КОИ-8, и генерирует три столбца
вывода: строки, входящие только в "файл1", строки,
входящие только в "файл2" и строки, входящие в оба
файла. Ключ "-" означает использование стандартного
файла ввода.
Флаги 1, 2 и 3 подавляют печать соответствующих
столбцов. Таким образом, команда "comm -12" печатает
только строки, общие для обоих файлов. "Comm -23" пе-
чатает только строки, которые входят в первый файл, но
не входят во второй, а команда "comm -123" символизи-
рует отсутствие операции.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
cmp, diff, uniq
61
АПК 00210-01 33 01-4
ИМЯ:
compact - компрессия файла
ФОРМАТ:
compact [файл ...]
ОПИСАНИЕ:
Команда compact компрессирует перечисленные файлы.
Если имена файлов не указаны, компрессируется информа-
ция, поступающая из стандартного файла ввода, резуль-
тат выдается в стандартный файл вывода. Как только
считывается очередной байт, он немедленно кодируется в
соответствии с текущим кодом. Этот код представляет
собой оптимальный код Хаффмана для набора частот, вы-
численных по уже введенной информации. Нет необходи-
мости в добавлении к сжатому файлу дерева декодирова-
ния, поскольку шифратор (compact) и дешифратор
(uncompact) начинают работать с одного и того же сос-
тояния и остаются синхронными. Более того, compact и
uncompact могут работать в качестве фильтров. В
частности,
... | compact | uncompact | ...
Работает как очень медленная команда, не выполняющая
никакой операции.
Если указан параметр "файл", этот файл сжимается и ре-
зультат помещается в файл с именем "файл.C", "файл"
удаляется. Последние два байта сжатого файла (".C")
62
АПК 00210-01 33 01-4
указывают, что этот файл сжат. Этот код используется
для предотвращения повторной компрессии.
Ожидаемая степень сжатия зависит от типа исходного
файла. Типичные значения степени сжатия следующие:
38% текст;
43% исходная программа на паскале;
36% исходная программа на языке Си;
19% модуль загрузки.
Эти значения представляют собой процент байтов, на ко-
торые уменьшен файл.
ЗАМЕЧАНИЯ:
Последняя часть имени файла должна содержать менее
13-ти символов, чтобы оставалось место для суффикса
".C". Каталоги не могут (и не должны) сжиматься.
ДИАГНОСТИКА:
Команда compact не сжимает каталоги. Выдаются также
сообщения о файлах, которые не могут быть открыты, и
т.п.
ФАЙЛЫ:
Создаваемые файлы имеют суффикс ".C". Исходные файлы
удаляются (если они не были защищены).
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
uncompact, ccat
63
АПК 00210-01 33 01-4
ИМЯ:
convert - преобразователь об'ектного кода ОС ЕС в
a.out
ФОРМАТ:
convert [-e] файл1 файл2
ОПИСАНИЕ:
Команда convert служит для преобразования об'ектного
кода в "файл1" из формата ОС ЕС в об'ектный код форма-
та ДЕМОС "файл2".
-e флаг устанавливает при преобразовании перекоди-
ровку кода ДКОИ в КОИ-8 для символьных имен сло-
варя внешних имен ESD. Символы имени, кроме
того, преобразуются в строчные буквы.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
a.out
ЗАМЕЧАНИЯ:
1. Правильнее использовать "файл2" в качестве о.тип
для обработки его редактором связей.
2. Не обрабатываются внешние фиктивные секции DSECT
команды ассемблера DXD.
3. Не обрабатываются слабые внешние имена операто-
ров ассемблера WXTRN.
4. Не обрабатывается об'ектная карта SYM.
64
АПК 00210-01 33 01-4
5. Не поддерживается операционное перемещение.
65
АПК 00210-01 33 01-4
ИМЯ:
cp - создать копию файла.
ФОРМАТ:
cp [-i] файл1 файл2
cp [-i] файл ... справочник
ОПИСАНИЕ:
"Файл1" копируется в "файл2". Если "файл2" существует,
режим и владелец сохраняются, в противном случае ис-
пользуется режим исходного файла.
Вторая форма данной команды копирует один или несколь-
ко указанных файлов в "справочник" с исходными имена-
ми.
Команда cp отвергает запрос на копирование файла в са-
мого себя.
Если задан параметр -i и копирование производится в
уже существующий файл, от пользователя требуется
подтверждение. Если пользователь подтверждает запрос,
выдавая ответ "y", команда cp продолжает работу. При
выдаче любого другого символа предыдущее содержимое
файла сохраняется.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
cat, pr, mv
66
АПК 00210-01 33 01-4
ИМЯ:
crypt - зашифровать/расшифровать.
ФОРМАТ:
crypt [ключ]
ОПИСАНИЕ:
Команда crypt осуществляет чтение из стандартного
файла ввода и запись в стандартный файл вывода. Аргу-
мент "ключ" представляет собой ключ, который задает
конкретное преобразование информации. Если "ключ" не
задан, команда crypt требует ввод ключа с терминала,
не выдавая символов на экран терминала во время ввода
ключа. Две команды crypt с одним и тем же значением
ключа (ключ1):
crypt ключ1 <исходный >зашифрованный
crypt ключ1 <зашифрованный | pr
зашифруют исходный файл и, расшифровав, распечатают
исходный текст.
Файлы, зашифрованные с помощью crypt, совместимы с
теми файлами, с которыми работает редактор ed в режиме
шифрования.
Защита зашифрованных файлов основана на трех факторах:
1) лежащий в основе метод должен быть трудным для
разгадки;
67
АПК 00210-01 33 01-4
2) прямой просмотр пространства ключей должен быть
невозможен;
3) обходные пути, позволяющие получить ключи или
исходный текст, должны быть минимизированы.
Команда crypt реализует однороторную шифровальную ма-
шину с 256-элементным ротором. Методы борьбы с такими
машинами известны, однако не очень широко. Более того,
для расшифровки необходимо проделать достаточно боль-
шую работу.
Преобразование ключа во внутренние установки машины
умышленно сделано сложным. Однако, если ключи ограни-
чены, например, тремя малыми буквами, зашифрованные
файлы могут быть прочитаны с затратами не более пяти
минут машинного времени.
Поскольку ключ является параметром команды crypt, он
является потенциально видимым для пользователей, вы-
полняющих команду ps или ее производную. Для уменьше-
ния этой возможности crypt разрушает любую запись клю-
ча сразу же после входа. Несомненно, выбор ключей и их
защищенность представляют собой наиболее уязвимое
место.
ФАЙЛЫ:
/dev/tty для напечатанного ключа
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
ed, makekey
68
АПК 00210-01 33 01-4
ИМЯ:
csh - интерпретатор командного языка с Си-подобным
синтаксисом.
ФОРМАТ:
csh [-cefinstvVxX] [параметр...]
ОПИСАНИЕ:
Команда csh представляет собой интерпретатор командно-
го языка CSHELL, который, в отличие от языка SHELL,
имеет более широкий набор встроенных команд, поддержи-
вает некоторый контекст работы и имеет Си-подобный
синтаксис.
Функционирование csh начинается с выполнения командно-
го файла ".cshrc" в регистрационном справочнике поль-
зователя. Если csh используется в качестве интерпрета-
тора основного командного языка, при регистрирации в
системе выполняется командный файл ".login" в том же
справочнике. После этого интерпретатор начинает считы-
вать команды с терминала, выдавая в качестве подсказки
символ "%". При завершении работы выполняется ко-
мандный файл ".logout" в регистрационном справочнике
пользователя.
ЛЕКСИЧЕСКАЯ СТРУКТУРА:
Командой в языке CSHELL считается набор параметров.
Параметром является произвольная последовательность
символов, не содержащая символов пробела, табуляции и
69
АПК 00210-01 33 01-4
новой строки. Первый параметр в строке рассматривается
как имя команды, которую необходимо выполнить.
Существует набор символов, которые имеют специальное
значение в языке CSHELL, и обрабатываются особым обра-
зом. Такие символы в дальнейшем будут называться мета-
символами. К их числу относятся "&", "|", ";", "<",
">", "(", ")", "*" и некоторые другие.
В неинтерактивном режиме символ "#" указывает на нача-
ло комментария. Он теряет свое специальное значение
при использовании любого из существующих механизмов
экранирования.
КОМАНДЫ:
Простая команда представляет собой последовательность
слов, первое из которых - имя выполняемой команды, а
остальные передаются в качестве параметров. Последова-
тельность простых команд, разделенных символами "|",
образует канал межпроцессной связи (вывод предыдущей
команды является вводом следующей). Цепочки команд,
образующих межпроцессные каналы (конвейеры), могут
разделяться с помощью символа ";", при этом они выпол-
няются последовательно. В фоновом режиме, когда после-
довательность команд завершается символом "&", csh
может не дожидаясь окончания трансляции перейти к вы-
полнению следующей команды. В таком режиме существует
автоматическая защита от сигнала останова; следова-
тельно, нет необходимости в использовании команды
70
АПК 00210-01 33 01-4
"nohup".
Список команд, заключенный в скобки (), рассматривает-
ся как простая команда, которая может являться частью
конвейера. Символы "||" и "&&", используемые в ка-
честве разделителей, указывают (как и в языке Си), что
второй конвейер должен запускаться только в случае за-
вершения первого.
МЕХАНИЗМ ПОДСТАНОВКИ ПРЕДШЕСТВУЮЩИХ КОМАНД:
Csh запоминает командные строки, которые вводил поль-
зователь в процессе работы, и позволяет осуществлять
их повторный ввод.
Указателем выполнения подстановки команд является
символ "!". Подстановка может начинаться в любом месте
входного потока. Символ "!" теряет свое специальное
значение, если он экранирован с помощью символа "
также если за ним следует пробел, знак табуляции,
символ новой строки, "=" или "(". Подстановка команд
производится также в том случае, когда входная строка
начинается символом "^".
Команды нумеруются последовательно, начиная с 1. Коли-
чество запоминаемых csh командных строк определяется
переменной history. Ссылки на предыдущие команды из
текущей команды могут быть осуществлены следующим об-
разом:
!N по номеру команды;
71
АПК 00210-01 33 01-4
!-n на n команд раньше относительно текущей команды;
!c по первой букве команды;
!?...?!
по строке "...", содержащейся в некотором слове
команды;
!! повторное выполнение последней команды.
Для выбора из команды отдельных параметров, после спе-
цификации команды нужно указать ":" и определитель
требуемых параметров. Слова входной строки нумеруются,
начиная с 0: 0 - обычно имя команды, 1 - первый пара-
метр и т.д. Основными определителями являются:
0 имя команды;
n n-ый параметр;
^ первый параметр;
$ последний параметр;
% слово, которое соответствует (непосредственно
предшествующему) образцу ?...?;
х-y диапазон слов;
-y соответствует "0-y";27
* выбрать все параметры, начиная с первого ("%-$");
х* выбрать все параметры, начиная с n-го ("х-$");
72
АПК 00210-01 33 01-4
х- то же, что "х*", но не включая последний параметр
"$".
Символ ":" может быть опущен, если определитель начи-
нается одним из символов "^", "$", "*", "-" или "%".
После необязательного определителя могут указываться
модификаторы. Каждому из них предшествует двоеточие
":". Определены следующие модификаторы:
g применить модификацию во всех словах;
h удалить имя файла, оставляя имена справочников,
ведущих к нему;
р распечатать новую команду, но не выполнять ее;
q заключить модифицируемое слово в кавычки, пре-
дотвращая его дальнейшую модификацию;
r удалить расширение имени файла, указанное через
точку ".";
s/l/r заменить l на r. В качестве разделителя вместо
"/" может быть использован любой символ.В стро-
ках l и r разделитель должен экранироваться
символом "
ся предыдущая строка либо из l, либо из строки
контекстуального поиска s в "!?s?". Если строка
r пуста, то l удаляется;
t удалить имена всех справочников, ведущих к
файлу, оставляя имя файла;
73
АПК 00210-01 33 01-4
x то же, что и q, но разбить на слова в местах
наличия пробелов, знаков табуляции и символов
новой строки;
& повторить предыдущую модификацию.
Csh ппредоствляет удобный способ модификации последней
строки. Для этих целей используется конструкция "^об-
разец^замена".
ПСЕВДОНИМЫ:
С помощью команд alias и unalias интерпретатор csh
составляет список псевдонимов, которые могут устанав-
ливаться, отображаться и модифицироваться. После прос-
мотра командной строки она разбивается на отдельные
команды, и первое слово каждой команды проверяется
(слева направо), чтобы выяснить, имеет ли оно псевдо-
ним. Если имеет, то текст, который является псевдони-
мом данной команды, считывается с помощью механизма
history так, как если бы эта команда была предыдущей
входной строкой. Полученные слова заменяют команду и
список параметров. Этот механизм позволяет вводить
новый синтаксис команд.
ПОДСТАНОВКА ПЕРЕМЕННЫХ:
После подстановки псевдонимов и грамматического разбо-
ра входной строки и перед выполнением каждой команды
производится подстановка переменных, обозначаемая сим-
волом "$".
74
АПК 00210-01 33 01-4
Существуют следующие конструкции:
$имя
${имя}
Подставить значение переменной. Фигурные скобки
отделяют "имя" от символов, которые к нему не
относятся. Имена переменных могут содержать до
20 букв и символов подчеркивания;
$имя[селектор]
${имя[селектор]}
Подставить значение слова, выбранного "селекто-
ром" из множества значений переменной "имя";
$#имя
${#имя}
Подставить количество слов, хранящихся в пере-
менной;
$0 Подставить имя стандартного файла ввода. Если
это имя неизвестно, возникает ошибка;
$число
${число}
Эквивалентно "$argv [число]";
$* Эквивалентно "$argv [*]";
С помощью модификатора ":" не могут быть произведены
75
АПК 00210-01 33 01-4
следующие подстановки:
$?имя
${?имя}
Подставить "1", если "имя" определено, или "0" -
если не определено.
$?0 Подставить "1", если стандартный файл ввода оп-
ределен, или "0" - в противном случае.
$$ Подставить номер процесса csh.
ПОДСТАНОВКА ВЫВОДА КОМАНД:
При подстановке команды, ее заключают в обратные
апострофы `...`. Эта команда выполняется, а ее стан-
дартный вывод разбивается на отдельные слова в местах
наличия пробелов, знаков табуляции и символов новой
строки, причем пустые слова отбрасываются, и этот
текст затем заменяет исходную строку в "`". Внутри
строк, заключенных в кавычки "...", только символ
новой строки выделяет новые слова.Пробелы и символы
табуляции сохраняются.
При помощи подстановки вывода команды может быть соз-
дана только часть слова, даже если команда выдает це-
лую строку.
ПОДСТАНОВКА ИМЕН ФАЙЛОВ:
Если слово содержит любой из символов "*", "?", "[",
76
АПК 00210-01 33 01-4
"{" или начинается с "^ ", то в нем может быть осу-
ществлена подстановка имени файла. При этом данное
слово является образцом, который заменяется соот-
ветствующим списком файлов, отсортированных в алфавит-
ном порядке. Если в списке имен файлов не найдено ни
одного соответствия заданному образцу, возникает ошиб-
ка. Следующие символы имеют специальное значение:
* Соответствует любой последовательности символов,
в том числе пустой;
? Соответствует любому одиночному символу;
[...]
Соответствует любому из перечисленных символов.
Пара символов, разделенная знаком "-", соот-
ветствует любому символу из указанного лексичес-
кого промежутка;
~ Регистрационный справочник, являющийся значением
переменной home;
~имя Регистрационный справочник пользователя с именем
"имя";
[a,b,...,n]
Соответствует любому из перечисленных символов.
Для указания самих символов "[" и "]" в списке
перед ними должен ставиться символ "
a{b,c,d}e
77
АПК 00210-01 33 01-4
Соответствует "abe ace ade". Использование пробе-
лов не допускается.
При подборе имен файлов символ ".", находящийся в на-
чале имени файла или непосредственно после "/", а
также символ "/" должны быть указаны явно и точно на
своих местах.
ВВОД/ВЫВОД
Для задания файлов ввода/вывода используются следующие
конструкции:
<имя Использовать файл "имя" в качестве стандартного
файла ввода;
<<слово
Считать ввод интерпретатора до строки, которая
идентична указанному "слову". Полученный времен-
ный файл использовать в качестве стандартного
файла ввода;
>имя
>!имя
>&имя
>&!имя
Использовать файл "имя" в качестве стандартного
файла вывода. Содержимое файла усекается до ну-
левой длины. Если определена переменная
noclobber, файл не должен существовать, иначе
78
АПК 00210-01 33 01-4
возникает ошибка. Для предотвращения непреднаме-
ренного разрушения файлов используются конструк-
ции с "!". Конструкции, использующие "&", нап-
равляют в стандартный файл вывода также диагнос-
тические сообщения;
>>имя
>>&имя
>>!имя
>>&!имя
Использовать файл "имя" в качестве стандартного
файла вывода; выходная информация дописывается к
содержимому файла "имя". Если определена пере-
менная noclobber, а файл не существует, то ис-
пользование конструкций, не содержащих "!",
приводит к возникновению ошибки.
В фоновом режиме стандартным файлом вывода по умолча-
нию является пустой файл "/dev/null". Диагностика
может быть выведена по каналу межпроцессной связи. Для
этого используется конструкция "|&".
ВЫРАЖЕНИЯ:
Некоторые из встроенных команд могут содержать выраже-
ния, в которых имеются операции, аналогичные операциям
в языке Си, с таким же приоритетом. Эти выражения
могут появляться в командах @, exit, if и while. Раз-
решены следующие операции: "||", "&&", "|", "~", "&",
79
АПК 00210-01 33 01-4
"==", "!=", "<=", ">=", "<", ">", "<<", ">>", "+",
"-", "*", "/", "%", "!", "^", "(", ")".
Старшинство операций в этом ряду возрастает слева нап-
раво; внутри следующих групп операции имеют одинаковый
приоритет:
== !=
<= >= < >
<< >>
+ -
* / %
В операциях сравнения "==", "!=", операндами являются
строки; остальные оперируют с числами. Логическими
значениями являются: 0 - "ложь", 1 (или любое число,
отличное от нуля) - "истина". Все знаки операций
должны отделяться от операндов пробелами. В одном сло-
ве не должны встречаться два компонента выражений, за
исключением случаев использования следующих знаков
операций: "&", "|", "<", ">", "(", ")".
Имеющиеся в csh операции присваивания аналогичны опе-
рациям присваивания языка Си. К ним относятся: "=",
"+=", "-=", "*=", "/=", "%=".
Постфиксные операции "++" и "--" соответственно инкре-
ментируют и декрементируют "имя" (например, "@i++").
В качестве простых операндов в выражениях могут ис-
пользоваться команды, заключенные в фигурные скобки
80
АПК 00210-01 33 01-4
"{...}".
В csh имеются операции опроса свойств файла вида "-l
имя", где l может принимать следующие значения:
r разрешение чтения;
w разрешение записи;
х разрешение выполнения;
е существование;
о владелец;
z нулевой размер;
f незашифрованный файл;
d справочник.
В указанном файле осуществляются подстановки перемен-
ных и имен файлов. Если файл обладает требуемым
свойством, то возвращается значение 1 (истина), иначе
- 0 (ложь).
КОМАНДЫ УПРАВЛЕНИЯ:
К командам управления относятся следующие конструкции:
foreach имя (слово ...)
список_команд
end
Переменной "имя" последовательно присваиваются
значения "слово ..." и выполняется "список_ко-
манд".
switch( строка )
81
АПК 00210-01 33 01-4
case слово:
...
breaksw
...
default:
...
breaksw
endsw
"Строка" последовательно сравнивается со всеми
"словами". Если соответствие не обнаружено, вы-
полнение продолжается после default. Команда
breaksw приводит к тому, что выполнение продол-
жается после endsw.
if( выр1 ) then список_команд1
else if( выр2 ) then список_команд2
else список_команд3
endif
Если значение первого выражения истинно (отлично
от нуля), выполняется "список_команд1". В про-
тивном случае проверяется "выражение2": если оно
истинно, выполняется "список_команд2" и т.д.
while( выражение )
...
end
Цикл выполняется, пока истинно значение "выраже-
82
АПК 00210-01 33 01-4
ния".
В операторах управления csh ключевое слово (if, else и
др.) должно быть первым слово в строке.
ВСТРОЕННЫЕ КОМАНДЫ:
alias
alias имя
alias имя список_слов
Первая форма распечатывает все псевдонимы. Вто-
рая форма распечатывает псевдоним указанного
"имени". Последняя форма определяет "спи-
сок_слов" как псевдоним "имени". В "списке_слов"
осуществляется подстановка команд и имен файлов.
В качестве "имен" нельзя использовать "alias" и
"unalias".
alloc Выдает размер используемой динамической памяти,
включая используемую и свободную память, а также
адрес последней ячейки памяти.
break Вызывает возобновление выполнения после end бли-
жайшей внешней конструкции foreach или while.
Если в одной строке указывается несколько команд
break, разделенных точкой с запятой, то переход
осуществляется через столько же уровней.
breaksw
Вызывает выход из команды switch, возобновляя
83
АПК 00210-01 33 01-4
выполнение после endsw.
case метка:
"Метка" - один из вариантов оператора switch.
cd
cd имя
chdir
chdir имя
заменяет текущий справочник на справочник "имя".
Если параметр отсутствует, то по умолчанию при-
нимается регистрационный справочник.
continue
Продолжает выполнение ближайшего внешнего while
или foreach. Остальные команды текущей строки
выполняются.
default:
Метка, обозначающая вариант по умолчанию в опе-
раторе switch.Должна располагаться после всех
меток case.
echo список_слов
Указанные слова записываются в стандартный файл
вывода. Символ " на новую строку.
else
end
endif
84
АПК 00210-01 33 01-4
endsw
Используются в операторах foreach, if, switch и
while.
ехес команда
"Команда" запускается вместо csh. Работа csh за-
вершается.
exit
exit( выр )
Производится выход из csh либо со значением пе-
ременной status (первая форма), либо со значени-
ем указанного выражения "выр" (вторая форма);
glob список_слов
Эта команда аналогична команде echo, за исключе-
нием того, что при выводе слова разделяются про-
белами, так как символ "
goto слово
Команда безусловного перехода на метку.
Выполнение продолжается со строки, идущей после
указанной метки. Метка должна завершаться симво-
лом ":".
hashstat
Распечатывает статистику, определяющую, насколь-
ко эффективно внутренняя таблица хэширования
размещает команды.
85
АПК 00210-01 33 01-4
history
Отображает список предшествующих команд.
if (выр) команда
Если значение указанного выражения истинно, вы-
полняется "команда". Команда должна быть одна.
Использование конвейеров не допускается.
login
login имя
По команде login завершается работа csh и иници-
ализируется программа init для данного дисплея.
Команда может использоваться без параметра "имя"
и с ним. Во втором случае сразу же будет запро-
шен входной пароль пользователя.
logout
Прерывает работу csh. Если определена переменная
ignoreeof, то сигнал конца файла <CTRL/D> игно-
рируется.
nice
nice +число
nice команда
nice +число команда
Первая форма устанавливает приоритет csh равным
4. Вторая форма устанавливает приоритет равным
указанному числу. Последние формы выполняют ко-
манду с приоритетом 4 и "число" соответственно.
86
АПК 00210-01 33 01-4
Используя конструкцию "nice -число ...", супер-
пользователь может установить отрицательный при-
оритет. Команда выполняется в подпроцессе
csh.Использование конвейеров не допускается.
nohup
nohup команда
Команда предотвращает реакцию csh на сигналы
прерывания. При использовании без параметров
действие nohup распространяется на все строки
командого файла, указанные за ней. Во второй
форме сигналы прерывания игнорируются только при
выполнении указанной "команды". Для всех фоновых
процессов, nohup выполняется автоматически.
onintr
onintr -
onintr метка
Управляет реакцией csh на прерывания. Первая
форма восстанавливает стандартную реакцию csh на
прерывания, которая заключается в завершении вы-
полнения командных файлов csh или возврате в ин-
терактивный режим. Вторая форма вызывает игнори-
рование любых сигналов прерывания. Последняя
форма при получении сигнала прерывания вызывает
выполнение команды "goto метка".
rehash
87
АПК 00210-01 33 01-4
Создает хэш-таблицу команд, содержащихся в спра-
вочниках, которые указаны в переменной path.
repeat счетчик команда
Повторяет выполнение "команды" "счетчик" раз.
Стандартные файлы ввода/вывода задаются только
один раз.
set
set имя
set имя=слово
set имя[индекс]=слово
set имя=(список_слов)
Первая форма данной команды выводит значения
всех переменных csh. Переменные, которые имеют
несколько значений, выводятся в виде списка,
заключенного в скобки. Вторая форма присваивает
указанному "имени" строку нулевой длины. Третья
форма присваивает "имени" значение "слова". Чет-
вертая форма присваивает компоненту имени с но-
мером "индекс" значение "слова". Последняя форма
присваивает "имени" значения из "списока_слов".
setenv
setenv имя значение
Первая форма выводит значения переменных среды
процесса, вторая их устанавливает.
shift
88
АПК 00210-01 33 01-4
shift переменная
Члены переменной argv сдвигаются влево, при этом
argv[1] (левый элемент списка) отбрасывается.
Если элемент списка не определен или имеет менее
одного значения, то возникает ошибка. Вторая
форма команды выполняет эти же действия над ука-
занной "переменной".
source имя
Csh считывает команды из файла "имя". Командa
source может быть вложенной.Если глубина вложе-
ния слишком велика, то может не хватить дескрип-
торов файлов. Ошибка в команде source на любом
уровне прерывает выполнение остальных вложенных
команд source. Ввод команд, произведенный в про-
цессе выполнения команды source не фиксируется в
списке предшествующих команд.
time
time команда
При отсутствии параметров сообщает время, затра-
ченное интерпретатором csh и порожденными про-
цессами. Если параметр задан, выдается время,
затраченное указанной "командой".
umask
umask значение
Маска доступа к файлу сообщается (первая форма)
89
АПК 00210-01 33 01-4
или устанавливается равной указанному значению
(вторая форма). Значение маски указывается в
восьмеричном коде. Самыми распространенными зна-
чениями маски являются 022 (по умолчанию), кото-
рое задает любой доступ для пользователей своей
группы и доступ для чтения и выполнения другим
пользователям, и 002, определяющее любой доступ,
за исключением записи, для пользователей своей
группы и всех прочих;
unalias образец
Все псевдонимы, имена которых соответствуют ука-
занному образцу, отбрасываются. Следовательно,
команда "unalias *" удаляет все псевдонимы. Если
псевдонимы не удалились, это не считается ошиб-
кой.Использование команды без параметров приво-
дит к возникновению ошибки.
unhash
Запрещает использование хэш-таблицы для ускоре-
ния нахождения выполняемых программ.
unset образец
Все переменные, имена которых соответствуют ука-
занному образцу, удаляются. Таким образом, ко-
манда "unset *" удаляет все переменные, опреде-
ленные командой set. Попытка удалить неопреде-
ленную переменную не приводит к возникновению
ошибки.
90
АПК 00210-01 33 01-4
wait Происходит ожидание всех порожденных процессов.
В интерактивном режиме сигнал прерывания может
прервать и выполнение команды wait.При этом csh
печатает имена и номера всех незавершенных про-
цессов.
@
@имя=выражение
@имя[индекс]=выражение
Первая форма распечатывает значения всех пере-
менных csh. Вторая форма присваивает параметру
"имя" значение "выражения". Если часть выражения
содержит символы "<", ">", "&" или "|", то она
должна быть заключена в круглые скобки (...).
Третья форма присваивает компоненту"имя" с номе-
ром "индекс" значение "выражения". "Имя" и его
компонент с номером "индекс" должны существо-
вать.
ВНУТРЕННИЕ ПЕРЕМЕННЫЕ:
argv Определяет значения параметров csh. К ней приме-
нимы подстановки позиционных параметров (напри-
мер, "$1" заменяется на "$argv[1]").
child Номер процесса.Выводится при запуске параллель-
ного процесса. По завершении процесса значение
переменной сбрасывается (unset).
echo Устанавливается, если в командной строке указы-
91
АПК 00210-01 33 01-4
вается флаг "-х". Вызывает печать каждой команды
и ее параметров перед выполнением. Все расшире-
ния выполняются перед выводом.
history
Определяет размер списка предшествующих команд.
Слишком большое значение переменной может при-
вести к нехватке памяти. Оптимальное число - 22
строки.
home Определяет имя регистрационного справочника
пользователя.
ignoreeof
Предотвращает случайное завершение csh при при-
еме сигнала "конец файла" <CTRL/D>.
mail Содержит имена файлов, которые проверяются ин-
терпретатором csh на наличие почты после завер-
шения каждой команды.
noclobber
Устанавливает защиту файлов от случайного разру-
шения и обеспечивает существование файлов вывода
при использовании конструкции ">>".
noglob
Запрещает расширение имен файлов.
nonomatch
Если расширение имен файлов не соответствует ни
92
АПК 00210-01 33 01-4
одному из существующих файлов, то при установке
данной переменной возвращается исходный образец.
Однако, если исходный образец неверен (например,
"есно ["), то возникает ошибка.
path Определяет список имен справочников для поиска
выполняемых команд.
prompt
Определяет строку-приглашение интерпретатора для
ввода команд. Если в этой строке присутствует
указатель "!", которому не предшествует символ
"
Стандартными значениями являются "%" - для обыч-
ного пользователя и "#" - для суперпользователя.
shell Если командный файл является выполняемым (имеет-
ся бит "x") и начинается с символа "#", то он
выполняется интерпретатором csh.Если символ "#"
отсутствует - интерпретатором sh. Переменная
shell определяет файл, который должен выполнять
интерпретатор csh.
status
Определяет код завершения последней команды (0 -
при успешном выполнении команды, 1 - при неус-
пешном).
time Хронометрирует команды, если их действие продол-
жалось более указанного времени.
93
АПК 00210-01 33 01-4
verbose
Устанавливается флагом "-v" и вызывает распечат-
ку каждой командной строки перед ее выполнением.
ФЛАГИ CSH:
-c Считать команду из единственного параметра, ука-
занного сразу после "-c". Все остальные
параметры размещаются в переменной argv;
-e Прекратить работу csh, если любая вызванная ко-
манда выполнена неуспешно или если код заверше-
ния команды не равен нулю;
-f Запретить чтение файла ".cshrc" для обеспечения
более быстрого запуска интерпретатора csh;
-i Устанавливает интерактивный режим работы ин-
терпретатора;
-n Осуществляет только синтаксическую проверку
команд;
-s Считывать входную информацию из стандартного
файла ввода;
-t Считывать и выполнять только одну командную
строку. Эта строка может содержать в конце
символ продолжения строки "
-v Вызывает установку переменной verbose, в резуль-
тате чего вводимые команды распечатываются после
94
АПК 00210-01 33 01-4
подстановки предшествующих команд;
-V Вызывает установку переменной verbose перед вы-
полнением файла ".cshrc";
-x Вызывает распечатку команд перед их выполнением;
-X Устанавливает флаг "-x" при интерпретации файла
".cshrc".
ОБРАБОТКА СИГНАЛОВ:
Интерпретатор команд обычно игнорирует сигналы выхода
(quit). Команды, выполняемые в фоновом режиме, обычно
игнорируют сигналы прерывания (interrupt) и выхода. В
обычном режиме эти сигналы имеют значения, наследуемые
от предыдущего процесса. Реакция csh на прерывания
может устанавливаться командой onintr. Интерпретаторы,
устанавливаемые непосредственно при регистрации поль-
зователя в системе, воспринимают сигнал завершения
(terminate); в остальных случаях состояние сигнала
прерывания передается из текущего процесса в порожда-
емый. Во время считывания файла ".logout", сигналы
прерывания не воспринимаются.
ФАЙЛЫ:
^/.cshrc считывается csh в начале
выполнения.
^/.login считывается csh после ".cshrc"
при регистрации.
^/.logout считывается csh при выходе.
95
АПК 00210-01 33 01-4
/bin/sh стандартный shell для командных
файлов, которые начинаются не с
"#".
/tmp/sh* временный файл для "<<".
/dev/null источник для пустого файла.
/etc/passwd регистрационный справочник для
"^имя".
ОГРАНИЧЕНИЯ:
Слова не могут быть длинее, чем 512 символов. Коли-
чество символов в параметрах зависит от системы.
Предел составляет от 512 до 5120 символов. Количество
параметров команды, включающих расширения имен файлов,
ограничено 1/6-ой числа символов, разрешенных в списке
параметров. При подстановке команд количество подстав-
ляемых символов не должно превышать числа, указанного
в списке параметров. Для предотвращения зацикливания
csh ограничивает количество подстановок псевдонимов в
одной строке до 20-ти.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
sh, environ.
ЗАМЕЧАНИЯ:
Команды управления должны подвергаться грамматическому
разбору, а не распознаваться в качестве встроенных
команд. Это позволило бы размещать их в любом месте,
об'единять с помощью символа "|", а также использовать
с метаобозначениями "&" и ";".
96
АПК 00210-01 33 01-4
Команды, содержащиеся внутри циклов с подсказкой "?",
не помещаются в список предшествующих команд.
Должна существовать возможность использования модифи-
каторов ":" при выводе подстановок команд. В макровы-
зовах "$" должно допускаться более одного модификатора
":".
Некоторые команды не должны изменять значения перемен-
ной status, иначе она будет так часто меняться, что
может оказаться почти бесполезной. Установка бита 0200
в переменной status при ненормальном завершении свиде-
тельствует об ошибке.
Чтобы сохранить возможность восстановления после не-
удачного выполнения команд ехес, новая команда насле-
дует несколько открытых файлов, отличных от стан-
дартных файлов ввода, вывода и диагностических сообще-
ний. Если файлы ввода/вывода заданы и новая команда не
закрывает их, то некоторые файлы напрасно остаются
открытыми.
97
АПК 00210-01 33 01-4
ИМЯ:
ctags - построение файла ссылок для программ на Си
ФОРМАТ:
ctags [-auw] файл ...
ОПИСАНИЕ:
Команда ctags создает таблицу ссылок (файл с именем
tags) для программ на языке Си, записанных в указанных
файлах. Файл ссылок содержит указания о местонахожде-
нии определенных об'ектов (в данном случае - функций)
в группе файлов. Каждая строка файла ссылок содержит:
имя функции, имя файла (в котором она определена), ре-
гулярное выражение, используемое для поиска определе-
ния функции. Эти данные приводятся в отдельных полях
строки и разделяются пробелами или символами табуля-
ции.
В командной строке могут указываться следующие ключи:
-a Приводит к тому, что результат дописывается в
файл tags;
-x В этом режиме ctags выдает для каждой функции ее
имя, номер строки в которой она определена, имя
файла и содержимое строки с определением данной
функции. Результат выдается в стандартный файл
вывода;
-v Получение списка имен функций с указанием стра-
ниц на которых они определены (предполагается,
98
АПК 00210-01 33 01-4
что страница содержит 64 строки);
-u Вызывает обновление признаков для указанных
файлов, т.е. все ссылки на них удаляются, и к
файлу добавляются новые значения. Подразумевает-
ся задание ключа "-a";
-w Подавляет предупредительную диагностику.
Имя головной программы (main) обрабатывается особым
образом. Вместо имени функции создается некоторое ус-
ловное имя, которое формируется путем добавления "M" к
имени файла и удаления суффикса ".c", если он имеется,
а также удаления первых компонентoв полного имени. Это
позволяет использовать ctags в каталогах с более, чем
одной программой.
ФАЙЛЫ:
tags выходной файл ссылок.
99
АПК 00210-01 33 01-4
ИМЯ:
date - печать даты.
ФОРМАТ :
date
ОПИСАНИЕ:
Выдается текущая дата и время в виде ггммддччмм. Поле
"гг" задает последние две цифры года, "мм" - месяц,
"дд" - день, "чч" - час (по 24-часовой системе), вто-
рое "мм" задает минуты.
ФАЙЛЫ
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
utmp
100
АПК 00210-01 33 01-4
ИМЯ:
dc - настольный калькулятор.
ФОРМАТ:
dc [файл]
ОПИСАНИЕ:
Представляет собой пакет для выполнения арифметических
операций с произвольной точностью. Обычно он оперирует
с десятичными целыми числами, однако можно задавать
входное и выходное основания системы счисления и коли-
чество обрабатываемых дробных цифр. С точки зрения об-
щей структуры dc представляет собой стековый калькуля-
тор (с использованием обратной польской записи). Если
задан параметр, ввод осуществляется из указанного
файла (до тех пор, пока он не закончится), а затем -
из стандартного файла ввода. Распознаются следующие
конструкции:
число значение числа помещается в стек. Число
представляет собой непрерывную строку цифр 0-9.
Ему может предшествовать символ подчеркивания
"_", который служит для ввода отрицательных
чисел. Числа могут содержать десятичную точку;
+ - / * % ^
Два верхних значения стека складываются (+), вы-
читаются (-), умножаются (*), делятся (/), опре-
деляется остаток (%) или возводятся в степень
(^). Два этих значения выталкиваются из стека;
101
АПК 00210-01 33 01-4
на их место в стеке помещается результат. Дроб-
ная часть в показателе стека игнорируется;
sx Вершина стека извлекается и запоминается в ре-
гистре с именем "x", где в качестве "x" может
использоваться любой символ. Если буква S заг-
лавная, "x" рассматривается как стек, и в него
помещается данное значение;
lx Значение регистра "x" помещается в стек. Содер-
жимое регистра "x" не изменяется. Начальные зна-
чения всех регистров нулевые. Если буква L заг-
лавная, регистр "x" рассматривается как стек, и
его верхнее значение помещается в основной стек;
d Верхнее значение стека удваивается;
p Верхнее значение стека распечатывается. Верхнее
значение остается неизменным. "P" рассматривает
вершину стека как строку символов КОИ-8, удаляет
и распечатывает эту строку;
f Распечатываются все значения, находящиеся в сте-
ке и в регистрах;
q Производится выход из программы. При выполнении
строки уровень рекурсии уменьшается на два. Если
буква Q заглавная, из стека извлекается верхнее
значение и уровень выполнения строки Изменяется
на это значение;
102
АПК 00210-01 33 01-4
x Рассматривает верхний элемент стека как строку
символов и выполняет ее как строку команд dc;
X Заменяет число в вершине стека на его масштабный
множитель;
[...] Помещает строку символов КОИ-8 в скобках в вер-
шину стека;
<x >x =x
Верхние два элемента стека извлекаются и сравни-
ваются. Если они удовлетворяют указанному отно-
шению, выполняется регистр "x";
v Заменяет верхний элемент стека его квадратным
корнем. Существующая дробная часть параметра
учитывается, иначе масштабный множитель игнори-
руется;
! Остальная часть строки рассматривается как ко-
манда системы ДЕМОС;
c Из стека извлекаются все значения;
i Верхнее значение стека извлекается и использует-
ся в качестве основания чисел для последующего
ввода. Заглавное I помещает в вершину стека
входное основание;
o Верхнее значение стека извлекается и использует-
ся в качестве основания чисел для последующего
вывода. Заглавное O помещает в вершину стека вы-
103
АПК 00210-01 33 01-4
ходное основание;
k Извлекается верхнее значение стека, которое ис-
пользуется в качестве неотрицательного масштаб-
ного множителя: соответствующее количество пози-
ций печатается при выводе и обрабатывается при
умножении, делении и возведении в степень. Вза-
имовлияние масштабного множителя, входного осно-
вания и выходного основания будут иметь смысл,
если все они изменяются одновременно;
z Уровень стека помещается в стек. Заглавное Z за-
меняет число в вершине стека его длиной;
? Из источника ввода (обычно терминал) вводится и
выполняется входная строка;
; : Используется командой bc для операций с массива-
ми.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
bc - препроцессор для dc, обеспечивающий инфиксное
представление и напоминающий язык Си, синтаксис кото-
рого реализует функции и удобные структуры управления
для программ.
Имеется отдельное описание dc.
ДИАГНОСТИКА:
"x is unimplemented" ("x не помещается"), где x -
восьмеричное число.
104
АПК 00210-01 33 01-4
"stack empty" ("стек пуст"), если в стеке недостаточно
элементов для выполнения требуемых функций.
"out of space" ("не хватает места"), когда исчерпан
список свободного пространства (слишком много цифр).
"out of headers" ("не хватает заголовков"), когда од-
новременно обрабатывается слишком много чисел.
"out of pushdown" ("исчерпан стек"), если в стеке
слишком много элементов.
"Nesting Depth" ("глубина вложения"), если слишком
много уровней вложенного выполнения.
105
АПК 00210-01 33 01-4
ИМЯ:
dcon - отладчик
ФОРМАТ:
dcon файл [ имя списка ]
ОПИСАНИЕ:
Dcon является отладчиком ДЕМОС. Команда позволяет как
проверять содержимое файлов, так и динамически тести-
ровать программу. Обычно, когда используется операнд
"файл", проверяется файл или программа (выходной фор-
мати производится дамп памяти с ошибкой или распечатка
нужного файла (находящегося, например на диске).
"Имя списка" - используется, если файл содержит сим-
вольную таблицу. Если этот операнд отсутствует, табли-
ца символов выбирается из самого файла, имя которого
использовано в команде. Если нет возможности найти
список имен, dcon может быть использована, но уже без
возможности работы с символьными данными.
Далее приводится краткое описание вариантов использо-
вания команд dcon. Большинство команд dcon включают
адреса операндов и режимы печати. Адреса выражений,
которые могут быть использованы, приведены ниже:
source_name
адрес имени-источника (source_name), определен-
ного в программе;
;r0...;r15
106
АПК 00210-01 33 01-4
просмотр регистров с 0 по 15;
;fr0...;fr6
просмотр содержимого регистров с плавающей
точкой 0,2,4,6;
local_name
имя отладчика, начинается с "#";
number
восьмеричный, десятичный, шестнадцатеричный
номер использования "С" вводного формата (Оn, n,
Oxn);
. размещение наиболее "свежих" результатов тести-
рования;
.. размещение текущей команды;
$ конец файла;
expr обычное выражение, исключающее использование
"//" в качестве разделителя;
name=expr
об'ем памяти для expr;
function:variable
относится к локальной переменной (variable) в
функции (function);
*expr косвенное выражение через expr;
107
АПК 00210-01 33 01-4
enter(name)
начало имени функции;
exit(name)
конец имени функции;
Содержимое адресов, представленных в выражениях, выво-
дится согласно следующим режимам. Режим вывода специ-
фицируется двумя параметрами: длиной символов и формой
представления.
Длины могут быть представлены в виде:
-b для адресуемого байта;
-h для адресуемого полуслова;
-w для адресуемого слова;
-l для адресуемого двойного слова;
-a для адреса самого выражения.
Режимы вывода:
-d для десятичных данных;
-o для восьмеричных данных;
-x для шестнадцатеричных данных;
-c для символьных данных;
-s для строки символов (не указателей);
108
АПК 00210-01 33 01-4
-i для мнемоники команды;
-ix для режимов i и x;
-v для символов, значение которых связано с адре-
сом.
Могут быть также следующие варианты:
(new-line)
выводит ".+длина печати";
expr1,expr2[print-option]
печатает размещение выражений от expr1 до expr2;
+expr[print-option]
выводит ".+выражение";
-expr[print-option]
выводит ".-выражение";
?[print-option]
выводит "след" стока;
*[print-option]
выводит '*';
;psw[print-option]
выводит psw;
!ДЕМОС-command
посылает команды ДЕМОС интертритатору shell;
{command_list}
109
АПК 00210-01 33 01-4
список команд;
;if(expr)command
если выражение имеет ненулевое значение, command
выполняется;
;bp expr[command_command][/*comment]
точка прерывания в выражении;
;macro name(arg)command
определяет локальное имя макроопределения, кото-
рое, когда используется, подставляет значение
аргумента (arg);
;go [arg1 arg2...]
начинает выполнение программы, используя указан-
ные аргументы;
;cont [expr]
продолжает выполнение выражения (expr);
;brks выводит текущие точки прерывания;
;clr [expr]
расставляет точки прерывания в выражении;
;quit эквивалентно ЕОТ (выйти из отладчика);
;do file
взять команды из файла "file";
;out [file]
начать косвенный вывод файла "file";
110
АПК 00210-01 33 01-4
;save [expr][/*comment]
осуществляет непрерывное изменениe выражения.
Если выражение не специфицировано, все изменения
происходят непрерывно. Изменения, дата, время,
имя модификации записываются в файл file.cmt.
;rst [expr]
сохраняет значение в expr относительно его зна-
чений на входе команды dcon. Если expr не указа-
но, сохраняется размещение изменений;
;copy file
подобно ;save исключает сохранение изменяемого
файла в file;
;ss [n[command]]
один шаг программы, где "n" -номер команды,
после которой необходимо остановить программу.
111
АПК 00210-01 33 01-4
ИМЯ:
dd - преобразовать и скопировать файл.
ФОРМАТ:
dd [ключ = значение] ...
ОПИСАНИЕ:
Команда dd копирует заданный входной файл в заданный
выходной файл с возможными преобразованиями. По умол-
чанию используются стандартный файл ввода и стан-
дартный файл вывода. Может быть задан размер блока при
вводе и выводе, чтобы использовать преимущества прямо-
го физического ввода-вывода.
Параметр значение
if= Имя входного файла (по умолчанию - стандартный
файл ввода).
of= Имя выходного файла (по умолчанию - стандартный
файл вывода).
ibs=n
Устанавливает размер блока при вводе равным n байт
.
obs=n
Устанавливает размер блока при выводе равным n
байт .
bs=n
Устанавливает размер блока как для ввода, так и
112
АПК 00210-01 33 01-4
для вывода, отменяя ibs и obs. Особенно эффекти-
вен, если не задано преобразование (не требуется
создание копии).
cbs=n
Размер буфера преобразования.
skip=n
Пропускает n входных записей перед началом копиро-
вания.
files=n
Пропускает n входных файлов перед началом копиро-
вания.
seek=n
Пропускает n записей от начала выходного файла
перед копированием.
count=n
Копирует только n входных записей.
conv=ascii
Выполняет преобразование из кода ДКОИ в код КОИ-8.
conv=ebcdic
Выполняет преобразование из кода КОИ-8 в код ДКОИ.
conv=ibm
Несколько отличающееся преобразование КОИ-8 в
ДКОИ.
113
АПК 00210-01 33 01-4
conv=lcase
Преобразует алфавитные символы в нижний регистр.
conv=ucase
Преобразует алфавитные символы в верхний регистр.
conv=swab
Переставляет каждую пару байтов.
conv=noerror
Не прекращает обработку при обнаружении ошибки
чтения.
conv=sync
Дополняет каждую входную запись до размера ibs.
conv=...,...
Несколько преобразований, разделенных запятой.
Там, где определяются размеры, предполагается указание
числа байтов. Число может оканчиваться символами "k",
"b" или "w", что означает умножение на 1024,4096 или 2
соответственно.Для обозначения произведения пара чисел
может разделяться символом "x".
Параметр "cbs=n" используется только тогда, когда за-
даны преобразования ascii или ebcdic. В первом случае
cbs символов помещаются в буфер преобразования, преоб-
разуются в код КОИ-8 и перед помещением этой строки в
выходной файл заключительные пробелы отбрасываются и
добавляется символ новой строки. Во втором случае сим-
114
АПК 00210-01 33 01-4
волы КОИ-8 считываются в буфер преобразования, преоб-
разуются в код ДКОИ и дополняются пробелами, чтобы по-
лучить выходную запись размером cbs.
После завершения dd сообщает количество полных и не-
полных введенных и выведенных блоков.
ПРИМЕР:
Следующая команда переписывает ленту ДКОИ, которая со-
держит по десять 80-байтных образов карт ДКОИ в блоке,
в файл с именем x:
dd if=/dev/mt580 of=х ibs=800 cbs=80 conv=ascii,lcase
Обратите внимание на использование небуферизированного
обмена с магнитной лентой (rmt). Команда dd особеннно
подходит для небуферизированного ввода-вывода, так как
позволяет считывать и записывать записи произвольного
размера.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
cp, tr
ДИАГНОСТИКА:
"f+p records in (out)" ("f+p записей введено (выведе-
но)"): количество полных и неполных считанных (запи-
санных) записей.
ЗАМЕЧАНИЯ:
Символы новой строки вставляются только при преобразо-
вании в код КОИ-8.Дополнение выполняется только при
115
АПК 00210-01 33 01-4
преобразовании в код ДКОИ. Это следовало бы сделать
отдельными параметрами.
116
АПК 00210-01 33 01-4
ИМЯ:
ddutok - перекодировка из кода "u-cod" МНОС.
ФОРМАТ:
ddutok файл ...
ОПИСАНИЕ :
Команда ddutok последовательно перекодирует каждый
"файл" из кода "u-cod" и записывает результат под
прежним именем. Команда работает таким образом, что
файлы, содержащие нетекстовые символы или не содержа-
щие русских букв остаются неизмененными.
"u-cod" - это нестандартная кодировка, отличающаяся от
КОИ-8 тем, что русские буквы упорядочены по алфавиту,
строчные буквы начинаются с кода 0340, прописные -
0300.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
dd
117
АПК 00210-01 33 01-4
ИМЯ
demsend - перфорация данных для системы ДЕМОС.
ОПИСАНИЕ
demsend называется загрузочный модуль программы на
языке pl/1. Результатом выполнения этой программы в
среде ОС ЕС или ПДО является перфорация файла вирту-
альным перфокарточным устройством вывода с направлени-
ем перфорации на виртуальный перфокарточный ввод ВМ
ДЕМОС. Чтение с перфокарточного ввода и размещение в
файле ДЕМОС перфорированных данных выполняет утилита
vmread. Управляющие параметры программы dемsend запи-
сываются в поле РАRМ оператора EXEC и имеют состав
аналогичный составу заголовка утилиты vmread:
/modes; userid; destfile.
Где
modes поле управляющих ключей vmread;
userid
имя пользователя ДЕМОС
destfile
имя файла ДЕМОС
Следующий пример показывает операторы ЯУЗ ОС ЕС для
выполнения программы demsend:
//name job ...
118
АПК 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
Для получения эффекта работы программы demsend в среде
системы ПДО имеется файл ПДО названия demsend module и
командная процедура demsend exec, обеспечивающие поль-
зовательский интерфейс с перфорацией.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ
vmread, send
119
АПК 00210-01 33 01-4
ИМЯ:
deroff - удалить конструкции pif, troff, tbl и eqn.
ФОРМАТ:
deroff [-w] файл ...
ОПИСАНИЕ:
Команда deroff поочередно считывает каждый файл и уда-
ляет все командные строки pif, troff, конструкции с
обратной косой чертой, макроопределения, конструкции
eqn (между строками ".eq" и ".en" или между ограничи-
телями), а также описания таблиц, и записывает остаток
в стандартный файл вывода. Команда deroff следует по
цепочкам включенных файлов (команды ".so" и
".nx").Eсли файл уже был включен, ".so" игнорируется,
а ".nx" завершает выполнение. Если входной файл не
указан, deroff осуществляет чтение из стандартного
входного файла.
Если указан флаг "-w", выход представляет собой список
слов, по одному "слову" (строка букв, цифр и апостро-
фов, начинающаяся буквой; апострофы удаляются) в стро-
ке, все остальные символы игнорируются. В остальных
случаях выход соответствует оригиналу, с учетом исклю-
чения вышеупомянутых конструкций.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
pif, eqn, tbl
ЗАМЕЧАНИЯ:
120
АПК 00210-01 33 01-4
Команда deroff не является полным интерпретатором pif,
вследствие чего утонченные конструкции могут приводить
к ошибкам. Большинство ошибок приводят к слишком боль-
шому, а не слишком малому выводу.
121
АПК 00210-01 33 01-4
ИМЯ:
diff - сравнение файлов и справочников.
ФОРМАТ:
diff [-l] [-r] [-s] [-cefh] [-b] спр1 спр2
diff [-cefh] [-b] файл1 файл2
diff [-dстрока] [-b] файл1 файл2
ОПИСАНИЕ:
Если оба параметра являются справочниками, diff сос-
товляет списки имен содержащихся в них файлов (отсор-
тировав их в алфавитном порядке) и выполняет регуляр-
ную процедуру сравнения над текстовыми файлами. Если в
справочниках содержатся несовпадающие подсправочники
или нетекстовые файлы с одинаковыми именами, они прос-
то перечисляются. Так же перечисляются файлы, встреча-
ющиеся только в одном из справочников. При сравнении
справочников можно задавать следующие ключи:
-l "длинный формат выдачи" - каждый текстовый файл
выводится с помощью команды pr.Oтличия в файлах
других типов накапливаются и выдаются после со-
общений о всех текстовых файлах;
-r команда diff выполняется рекурсивно для всех
подсправочников с одинаковыми именами;
-s команда сообщает только о совпадающих файлах;
-sname
сравнение содержимого справочников начинается с
122
АПК 00210-01 33 01-4
имени name.
Команда diff сообщает, какие строки должны быть изме-
нены в двух файлах, чтобы они совпали. Если вместо
"файл1" ("файл2") указан "-", используется стандартный
файл ввода. Если один из параметров указывает на спра-
вочник, используется тот файл в этом справочнике, чье
имя совпадает с именем файла "файл2" ("файл1"). Нор-
мальный вывод содержит строки следующего вида:
n1 a n3, n4
n1, n2 d n3
n1, n2 с n3, n4
Эти строки соответствуют командам ed для преобразова-
ния "файла1" в "файл2". Числа после букв относятся к
файлу "файл2". На самом деле, меняя "a" на "d" и про-
изводя чтение в обратном порядке, можно также опреде-
лить, как преобразовать "файл2" в "файл1". Как и в ed,
одинаковые пары, в которых n1=n2 или n3=n4 сокращаются
до одного числа.
После каждой из этих строк следуют все соответствующие
строки первого файла, отмеченные "<", а затем все со-
ответствующие строки второго файла, отмеченные ">".
Ключ "-b" приводит к игнорированию заключительных про-
белов и символов табуляции, а также к тому, что раз-
личные последовательности пробелов считаются эквива-
лентными.
123
АПК 00210-01 33 01-4
Следующая группа ключей является взаимоисключающей:
-e Приводит к созданию списка команд a, c и d для
редактора ed, который воссоздает "файл2" из
"файла1". Следующая программа для интерпретатора
команд совместно с опцией "-е" помогает сопро-
вождать несколько версий файла. Под руками нужно
иметь только исходную версию файла ($1) и цепоч-
ку списков команд ed для перехода от одной вер-
сии к другой, полученных с помощью ed ($2, &3,
...). "последняя версия" помещается в стан-
дартный файл вывода:
(shift; cat $*; echo '1,$p') ! ed -$1 ;
-f Генерирует список аналогичный "-e", не использу-
емый с ed, и в обратном порядке;
-c Выдает контекст,в котором встречаются измененные
строки. По умолчанию выдается три строки до и
три строки после различающихся строк. Число до-
полнительно выдаваемых строк можно задавать. Так
команда с ключом "-c10", будет выдавать 10 строк
до и 10 строк после каждой различающейся стро-
ки. Кроме того, при задании "-c" выдаются имена
сравниваемых файлов с датами их создания. Сооб-
щения о каждом изменении разделяются строками
"**********". Строки,отсутствующие в файле1,мар-
кируются символом "-".Строки,добавленные в фай-
л2,символом "+". измененные строки символом "!";
124
АПК 00210-01 33 01-4
-Dстрока
Создает об'единенную версию файлов (файл1 и
файл2), окружая все различающиеся строки дирек-
тивами условной компиляции препроцессора языка
Си. При этом "строка" используется в качестве
аргумента директив препроцессора. Так, если в
файлax file1 и file2 различается строка:
long int k=1000000 /* строка из file1 */
int k=1000000 /* строка из file2 */
команда:
diff -DLONGINT file1 file2
проводит выдачу в стандартный вывод файла, в ко-
тором данная строка будет заменена на следующую
конструкцию:
#ifndef LONGINT
long int k=1000000 /* строка из file1 */
#else
int k=1000000 /* строка из file2 */
#endif
-h Выполняет свою работу быстро и грубо. Она рабо-
тает только в тех случаях, когда участки измене-
ний малы и хорошо отделены друг от друга, однако
может обрабатывать файлы неограниченной длины. С
ключом "-h" не допускаются ключи "-e" и "-f".
За исключением редких случаев, diff находит наименьший
125
АПК 00210-01 33 01-4
достаточный набор различий файлов.
ФАЙЛЫ:
/tmp/d?????
/usr/lib/diffh для ключа "-h".
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
cmp, comm, ed
ДИАГНОСТИКА:
Код возврата равен:
0 - если нет различий;
1 - если различия есть;
2 - если выполение команды неудачно.
ЗАМЕЧАНИЯ:
Списки редактирования, генерируемые с ключами "-e" и
"-f", не создают строк, состоящих из одной ".".
126
АПК 00210-01 33 01-4
ИМЯ:
diff3 - сравнение трех файлов.
ФОРМАТ:
diff3 [-ех3] файл1 файл2 файл3
ОПИСАНИЕ:
Команда diff3 сравнивает три версии файла и сообщает
степени рассогласования текстов, отмечаемые следующими
кодами:
==== все три файла различны;
====1 отличается "файл1";
====2 отличается "файл2";
====3 отличается "файл3".
Вид изменения, позволяющий преобразовать данный учас-
ток данного файла, указывается одним из следующих спо-
собов:
f:n1 a
текст должен быть добавлен после строки с номе-
ром n1 в файле "f", где f=1, 2 или 3.
f:n1,n2 c
Текст должен быть изменен на участке от строки
n1 до строки n2. Если n1=n2, участок может быть
сокращен до n1.
Исходное содержимое участка приводится сразу же после
127
АПК 00210-01 33 01-4
указания "c". Если содержимое двух файлов одинаково,
содержимое файла с меньшим номером не выводится.
С ключoм "-e" diff3 создает командный файл для редак-
тора ed, который включит в "файл1" все изменения между
файлами "файл2" и "файл3", т.е. изменения, которые
нормально были бы помечены "====" и "====3". Опция
"-x" ("-3") создает командный файл для включения
только изменений, отмечаемых "====" ("====3"). Следу-
ющая команда применит полученный в результате ко-
мандный файл (script) к файлу "файл1":
(cat script; echo '1,$p') | ed - файл1
ФАЙЛЫ:
/tmp/d3?????
/usr/lib/diff3
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
diff
ЗАМЕЧАНИЯ:
Строки текста, состоящие из одной ".", нарушают работу
"-e".
Файлы, длина которых превышает 64K байт, не обрабаты-
ваются.
128
АПК 00210-01 33 01-4
ИМЯ:
du - печать сведений об использовании дисков.
ФОРМАТ:
du [-s] [-a] [имя...]
ОПИСАНИЕ:
Команда du выдает число блоков, занимаемых всеми фай-
лами и справочниками (рекурсивно), содержащмися внутри
каждого заданного справочника или файла "имя". Если
"имя" отсутствует, используется ".".
Ключ "-s" вызывает выдачу только общего итога. Ключ
"-a" вызывает вывод сообщения по каждому файлу. При
отсутствии ключа сообщения генерируются только по
справочникам.
Файлы, которые имеют несколько альтернативных имен,
учитываются только один раз.
ЗАМЕЧАНИЯ:
Если в качестве параметров заданы не справочники и не
указан ключ "-a", то они не распечатываются.
Если имеется слишком много различных альтернативных
имен файлов, команда du учитывает избыточные файлы по
несколько раз.
129
АПК 00210-01 33 01-4
ИМЯ:
ЕС - построитель среды Паскаля
ФОРМАТ:
ЕС
ОПИСАНИЕ:
ЕС принимает на стандартном входе исходный текст прог-
раммы на Паскале и извлекает об'явления. Эта команда
позволяет создавать среду для $x-опции компиляции.
130
АПК 00210-01 33 01-4
ИМЯ:
echo - выдача параметров.
ФОРМАТ:
echo [-n] [парам] ...
ОПИСАНИЕ:
Команда echo записывает свои параметры, разделенные
пробелами и заканчивающиеся символом новой строки, в
стандартный файл вывода. Если используется флаг "-n",
к выводу не добавляется символ новой строки.
Команда echo используется для выдачи диагностических
сообщений в программах интерпретатора команд и для за-
писи постоянных данных в потоках. Для посылки диагнос-
тического сообщения в стандартный файл ошибок выполни-
те команду:
echo "текст сообщения" 1>&2
131
АПК 00210-01 33 01-4
ИМЯ:
ed - строчный редактор текстов.
ФОРМАТ:
ed [-] [-х] [имя]
ОПИСАНИЕ:
Для UNIX-образных систем, ed является стандартным ре-
дактором текстов. При интерактивной работе он уступает
по удобству полиэкранному редактору, но может работать
с любыми терминалами (например, с телетайпами).
Редактор ed работает с копией редактируемого файла.
Сделанные в копии изменения не влияют на исходный файл
до тех пор, пока не будет выдана команда "w" (запись).
Копия редактируемого текста размещается во временном
файле, называемом "буфером".
Если задан параметр "имя", указанный файл считывается
в буфер редактора для последующей обработки. Если ука-
зан ключ "-х", перед чтением файла выполняется команда
"x" для работы с зашифрованными файлами. Ключ "-" по-
давляет печать пояснительных сообщений и используется
при вводе инструкций редактирования из командного
файла.
Команды редактора ed имеют простую и регулярную струк-
туру: 0 или несколько "указателей", за которыми следу-
ет односимвольное "имя команды" и, возможно, парамет-
ры. "Указатели" определяют одну или несколько строк в
132
АПК 00210-01 33 01-4
буфере. Пропущенные адреса дополняются по умолчанию.
Во время работы ed может находиться либо в командном
режиме (когда вводимые строки рассматриваются как
инструкции редактирования), либо в режиме ввода (т.е.
набираемая информация просто переписывается в файл). В
начале сеанса редактор находится в командном режиме.
Если был переход в режим ввода, редактор воспринимает
только одну команду - выход из данного режима (точка в
первой позиции строки).
В редакторе ed в ограниченном виде используется поня-
тие "регулярного выражения". Регулярное выражение оп-
ределяет множество строк символов. Говорят, что член
этого множества соответствует этому регулярному выра-
жению. В приведенном определении регулярных выражений
слово "символ" означает любой символ, за исключением
символа новой строки:
1) Любой символ, за исключением специальных симво-
лов, соответствует самому себе. Специальными сим-
волами являются разделитель регулярных выражений,
знаки "[." и, иногда "^*$";
2) "." соответствует любому символу;
3) "
нием цифры или "()", соответствует этому символу;
4) Непустая строка "s", заключенная в квадратные
скобки ([s] или [^s]), сответствует любому симво-
133
АПК 00210-01 33 01-4
лу,входящему (или не входящему) в строку "s".
Внутри строки "s" символ "
го значения, а "]" может появляться только в ка-
честве первой буквы. Подстрока "a-b", где "a" и
"b" расположены в возрастающем порядке относи-
тельно русского или латинского алфавитов (для
специальных символов относительно кода КОИ-8),
обозначает диапазон символов от "a" до "b", вклю-
чительно;
5) Регулярное выражение вида 1-4, за которым следует
"*", определяет последовательность из 0 или более
соответствий этому регулярному выражению;
6) Регулярное выражение "x", находящееся между "
и ")", соответствует тому же, что и "x";
7) Знак "
той же строке, что и находящееся в скобках регу-
лярное выражение, начинающееся с n-ой "
8) Регулярное выражение "x" вида 1-8, за которым
следует регулярное выражение "y" вида 1-7, соот-
ветствует соответствие для "x", за которым следу-
ет соответствие для "y", причем соответствие для
"x" выбирается как можно большим, однако допуска-
ющим соответствие для "y";
9) Регулярное выражение вида 1-8, которому пред-
шествует "^" (или за которым следует "$"), огра-
134
АПК 00210-01 33 01-4
ничено соответствиями, начинающимися в левом (или
заканчивающимися в правом) конце строки;
10) Регулярное выражение вида 1-9 выбирает самое
длинное и крайнее слева соответствие в строке;
11) Пустое регулярное выражение заменяет последнее
встреченное регулярное выражение.
Регулярные выражения используются в адресах для опре-
деления строк, а также в одной команде (s) для опреде-
ления части строки, которую нужно заменить. Если тре-
буется использовать один из метасимволов регулярных
выражений в качестве обычного символа, этому символу
должна предшествовать "
лам, связывающим регулярные выражения (часто "/"), так
и к самому символу "
Для понимания системы адресации в редакторе ed необхо-
димо представлять себе, что в каждый момент времени
существует "текущая строка". Вообще говоря, текущая
строка представляет собой последнюю строку, обработан-
ную некоторой командой, однако точное влияние на поло-
жение текущей строки рассматривается в описании
команд. Адреса строятся следующим образом.
1) Символ "." адресует текущую строку;
2) Символ "$" адресует последнюю строку буфера;
3) Десятичное число "n" адресует n-ую строку буфера;
135
АПК 00210-01 33 01-4
4) "/x" указывает строку, помеченную именем "x", ко-
торое должно представлять собой малую букву.
Строки помечаются с помощью команды "k", которая
описана ниже;
5) Регулярное выражение, заключенное в символы "/",
указывает строку, которая определяется путем по-
иска вперед от текущей строки до первой строки,
содержащей последовательность символов, соот-
ветствующую данному регулярному выражению. При
необходимости после достижения конца буфера поиск
продолжается с его начала;
6) Регулярное выражение, заключенное в вопроситель-
ные знаки "?", адресует строку, которая определя-
ется путем поиска назад от текущей строки до
первой строки, содержащей последовательность сим-
волов, соответствующую данному регулярному выра-
жению. При необходимости после достижения начала
буфера поиск продолжается с его конца;
7) Адрес, за которым следует знак "+" или знак "-" и
десятичное число, определяет этот адрес плюс (или
минус) указанное количество строк. Знак плюс
может быть опущен;
8) Если адрес начинается со знака "+" или "-", вы-
полняется сложение или вычитание по отношению к
текущей строке. Например, "-5" означает ".-5".
136
АПК 00210-01 33 01-4
9) Если адрес заканчивается знаком "+" или "-", к
нему добавляется (или вычитается) 1. Как
следствие этого правила и правила 8, адрес "-"
относится к строке, которая предшествует текущей
строке. Более того, знаки "+" и "-" в конце обла-
дают эффектом накопления, так что "--" относится
к текущей строке минус 2.
10) Символ "^" в адресах эквивалентен символу "-".
Команды могут требовать ни одного, один или два адре-
са. Команды, в которых не требуется адрес, рассматри-
вают наличие адреса как ошибку. Если в командах, где
требуется один или два адреса, указано недостаточное
количество адресов, принимаются стандартные адреса.
Если в команде указано больше адресов, чем требуется,
используются последние один или два адреса (в зависи-
мости от того, сколько нужно).
Обычно адреса отделяются друг от друга с помощью запя-
той ",". Они могут разделяться также точкой с запятой
";". В этом случае текущая строка "." устанавливается
на первый адрес перед тем, как интерпретируется следу-
ющий. Эта особенность может быть использована при оп-
ределении начальной строки для прямого и обратного по-
иска ("/", "?"). Второй адрес любой двухадресной пос-
ледовательности должен соответствовать строке, следу-
ющей за строкой, которая соответствует первому адресу.
В приведенном списке команд редактора ed стандартные
137
АПК 00210-01 33 01-4
адреса указаны в скобках. Скобки не являются частью
адреса, а используются лишь для того, чтобы показать,
что данные адреса являются стандартными.
Как отмечалось ранее, появление в одной строке нес-
кольких команд в общем случае является ошибкой. Одна-
ко, к большинству команд могут быть добавлены команды
"p" или "l", которые вызывают распечатку текущей стро-
ки в одном из двух форматов.
К командам может также добавляться команда "n", кото-
рая вызывает печать номера строки в выводе команды.
Эти суффиксы могут об'единяться в любом порядке.
(.)a
<текст>
.
Команда дозаписи - считывает указанный текст и
добавляет его после строки с указанным адресом.
"." остается в последней введенной строке, если
она имеется, в противном случае - в адресуемой
строке. В этой команде допускается адрес "0",
при этом текст помещается в начало буфера.
(.,.)c
<текст>
.
Команда замены удаляет адресуемые строки, затем
считывает вводимый текст, который заменяет эти
138
АПК 00210-01 33 01-4
строки. "." остается в последней введеной стро-
ке; если таковых не было, она остается в строке,
предшествовавшей удаленным строкам.
(...) d
Команда удаления удаляет адресуемые строки из
буфера. Текущей становится строка, первоначально
находившаяся после последней удаленной строки.
Если удаленные строки располагались в конце, те-
кущей строкой становится новая последняя строка.
e имя_файла
Команда редактирования вызывает удаление всего
содержимого буфера и последующее считывание в
него файла с указанным именем. "." устанавлива-
ется на последней строке буфера. Печатается ко-
личество считанных символов. "имя_файла" запоми-
нается для возможного использования в качестве
стандартного имени файла в последующих командах
r или w. Если "имя_файла" отсутствует, использу-
ется запомненное имя.
E имя_файла
Эта команда выполняет те же действия, что и ко-
манда "e", за исключением того, что не выдается
диагностических сообщений, если после последнего
изменения буфера не была выдана команда "w".
f имя_файла
Команда печати имени файла распечатывает текущее
139
АПК 00210-01 33 01-4
запомненное имя файла. Если указывается
"имя_файла", текущее запомненное имя файла заме-
няется на "имя_файла".
(1,$) g/регулярное выражение/список команд
В этой команде на первом шаге помечаются все
строки, которые соответствуют заданному регуляр-
ному выражению. После этого для каждой такой
строки выполняется заданный список команд, при-
чем "." первоначально устанавливается в этой
строке. Одна команда или первая из нескольких
команд располагается в той же строке, что и ко-
манда "g". Все строки списка, состоящие из нес-
кольких строк, должны заканчиваться символом
"
ребление команд "a", "i" "c" и связанного с ними
ввода. ".", завершающая режим ввода, может быть
опущена, если она находится в последней строке
списка команд. Команды "g" и "v" в списке команд
не допускаются.
(.)i
<текст>
.
Эта команда вставляет заданный текст перед адре-
суемой строкой. "." остается в последней вводи-
мой строке или, если ее нет, в строке перед ад-
ресуемой строкой. Эта строка отличается от ко-
140
АПК 00210-01 33 01-4
манды а только местом, куда помещается текст.
(.,.+1)j
Эта строка об'единяет адресуемые строки в одну
строку. Промежуточные символы новой строки прос-
то исчезают. "." остается в результирующей стро-
ке.
(.)kh Команда маркирования присваивает адресуемой
строке имя "х", которое должно представлять
собой малую букву. Впоследствии данная строка
может адресоваться с помощью формы адреса "'х".
(.,.)l
Эта команда распечатывает адресуемые строки под-
робным образом: неграфические символы печатаются
в виде двух восьмеричных цифр, а длинные строки
переносятся. Команда "l" может располагаться в
одной и той же строке после любой не связанной с
вводом-выводом команды.
(.,.)ma
Команда пересылки перемещает адресуемые строки и
помещает их после строки, адресуемой с помощью
"a". Последняя из перемещенных строк становится
текущей строкой.
(.,.)n
Команда нумерации распечатывает адресуемые стро-
ки вместе с номерами строк и символом табуляции
141
АПК 00210-01 33 01-4
слева.
(.,.)p
Эта команда распечатывает адресуемые строки. "."
остается в последней распечатанной строке.
Команда p может располагаться в одной и той же
строке после любой не связанной с вводом-выводом
команды.
(.,.)P
Эта команда является синонимом команды "p".
q Команда выхода вызывает выход из редактора ed.
Автоматическая запись в файл не производится.
Q Эта команда аналогична команде "q", за исключе-
нием того, что не выдается диагностических сооб-
щений, если после последнего изменения буфера не
была выдана команда "w".
($)r имя_файла
Команда чтения считывает указанный файл и поме-
щает результат после адресуемой строки. Если имя
файла не указано, используется запомненное имя
файла, если таковое имеется (см. команды "l" и
"f"). Имя файла запоминается, если уже не было
запомненного имени файла. Для команды "r" допус-
кается адрес "0", который приводит к тому, что
файл считывается в начало буфера. Если считыва-
ние прошло успешно, печатается количество счи-
142
АПК 00210-01 33 01-4
танных символов. "." остается в последней счи-
танной из файла строке.
(.,.)s/регулярное выражение/замена/ или
(.,.)s/регулярное выражение/замена/g
Команда подстановки просматривает каждую адресу-
емую строку на предмет соответствия заданному
регулярному выражению. Если после команды указан
индикатор глобального замещения "g", в каждой
строке, в которой обнаружено соответствие, все
соответствующие последовательности символов за-
мещаются указанной "заменой". Если индикатор
глобального замещения отсутствует, заменяется
только первая соответствующая последовательность
символов. Если подстановка не выполняется ни в
одной из адресуемых строк, это является ошибкой.
Для разделения регулярного выражения и замены
вместо "/" может использоваться любой символ
пунктуации. "." остается в последней строке, где
была выполнена подстановка. Амперсанд "&",
встречающийся в замене, заменяется строкой сим-
волов, соответствующей регулярному выражению.
Специальное значение символа "&" в указанном
контексте может быть отменено посредством указа-
ния перед ним "
замещаются текстом, соответствующим n-ому регу-
лярному выражению, заключенному между " и
")". Если имеются вложенные подвыражения в
143
АПК 00210-01 33 01-4
скобках, "n" определяется путем подсчета случаев
употребления " начиная слева. Строки могут
быть разделены посредством подстановки в них
символов новой строки. Символы новой строки в
строке замены должны быть выделены посредством
указания перед ними символа "
заключительных разделителя могут быть опущены,
подразумевая суффикс "p". Специальная форма ко-
манды "s" без последующих разделителей повторяет
последнюю команду подстановки для адресуемых
строк. После "s" могут следовать буквы "r" (ис-
пользовать последнее регулярное выражение в
левой стороне вместо последней команды подста-
новки в левой стороне), "p" (дополняет установку
суффикса "p" для предыдущей установки) и g (до-
полняет установку суффикса "g"). Эти буквы могут
об'единяться в любом порядке.
(.,.)t a
Эта команда работает аналогично команде "m", за
исключением того, что копия адресуемых строк по-
мещается после адреса "a" (который может быть
0). "." остается в последней строке копии.
(.,.)u
Команда аннулирования восстанавливает буфер,
возвращая его в состояние, которое он имел перед
последней командой модификации буфера. Положение
текущей строки также восстанавливается. Команда-
144
АПК 00210-01 33 01-4
ми, модифицирующими буфер, являются "a, c, d, g,
i, k и v". При анулировании "g" и "v" рассматри-
ваются как одиночные команды модификации буфера.
Команда анулирования является инверсной по
отношению к самой себе. Когда редактору ed не
хватает памяти, полное аннулирование невозможно,
и команда "u" может аннулировать только влияние
последней подстановки в текущей строке. Такое
ограниченное аннулирование относится также и к
командным файлам редактора, когда ed вызывается
с ключем "-".
(1,$)v/регулярное выражение/список команд
Эта команда аналогична команде "g", за исключе-
нием того, что список команд выполняется при на-
чальной установке "." на каждую строку кроме
тех, которые соответствуют регулярному выраже-
нию.
(1,$)w имя_файла
Команда записи записывает адресуемые строки в
указанный файл. Если файл не существует, он соз-
дается. Имя файла запоминается, если еще не было
запомненного имени. Если имя файла не задается,
используется запомненное имя файла, если оно
имеется (см. команды "е" и "f"). Положение "."
не изменяется. Если данная команда выполнилась
успешно, печатается количество записанных симво-
лов.
145
АПК 00210-01 33 01-4
(1,$)W имя_файла
Эта команда аналогична команде "w", за исключе-
нием того, что адресуемые строки добавляются к
файлу.
(1,$)WQ имя_файла
Эта команда аналогична команде "w", за исключе-
нием того, что затем выполняется команда "q",
осуществляющая выход из редактора после записи
файла.
x Из стандартного ввода запрашивается строка с
ключом. Впоследствии команды "r", "e" и "w"
будут зашифровывать и расшифровывать текст с по-
мощью алгоритма "crypt", используя этот ключ.
Пустой ключ отменяет режим шифрации.
(.+1)z
или
(.+1)zn
Эта команда используется для просмотра буфера,
начиная с исходной строки. Распечатывается 22
(или "n", если указано) строки. Последняя напе-
чатанная строка становится текущей строкой. Зна-
чение "n" запоминается, т.е. оно становится
стандартным для последующих команд "z".
($)= Распечатывается номер строки для адресуемой
строки. Эта команда не меняет положения ".".
146
АПК 00210-01 33 01-4
!<команда языка управления заданиями>
Часть строки после "!" передается sh для выпол-
нения в качестве команды. Положение "." не меня-
ется.
(.+1,.+1) <конец строки>
Одиночный адрес в строке вызывает распечатку ад-
ресуемой строки. Пустая строка эквивалентна
".+1р". Это полезно для прохода по тексту. Если
указывается два адреса, не разделяемые точкой с
запятой, редактор ed распечатывает указанный ди-
апазон строк. Если они разделены точкой с запя-
той, распечатывается вторая строка.
Если посылается сигнал прерывания, редактор ed печата-
ет "?interrupted" ("?прерван") и возвращается в ко-
мандный режим.
Некоторые размерные ограничения: 512 символов в стро-
ке, 256 символов в списке команд для команды "g", 64
символа в имени файла. Предел количества строк зависит
от размера оперативной памяти: каждая строка занимает
2 слова.
При чтении файла ed отбрасывает символы nul кода КОИ-8
и все символы после последнего символа новой строки.
ФАЙЛЫ:
/tmp/e*
edhup
147
АПК 00210-01 33 01-4
При зависании терминала здесь сохраняется протокол вы-
полненной работы.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
sed, crypt
ДИАГНОСТИКА:
"?name" для недоступного файла.
"?" при прочих ошибках.
Для предотвращения потери ценной информации команды
"q" и "е" считаются ошибочными, если после последней
модификации буфера не была выдана команда "w". Повтор-
ная команда "q" или "е" выполняется всегда.
ЗАМЕЧАНИЯ:
Команда "l" неправильно обрабатывает символ "del"
("забой").
Команда аннулирования приводит к потере меток в
восстановленных строках.
148
АПК 00210-01 33 01-4
ИМЯ:
expand, unexpand - развернуть (свернуть) символы табу-
ляции.
ФОРМАТ:
expand [-табстоп] [-таб1, таб2, ..., табN] [файл ... ]
unexpand [-a] [файл ... ]
ОПИСАНИЕ:
Команда expand обрабатывает указанные файлы или стан-
дартный ввод и производит запись в стандартный вывод,
заменяя символы табуляции на пробелы. Символы возврата
на шаг в выводе сохраняются и уменьшают счетчик пози-
ций для связанных с табуляцией расчетов. Команда
expand полезна для предварительной обработки символь-
ных файлов, содержащих символы табуляции (перед сорти-
ровкой, просмотром определенных столбцов и т.п.).
Если задан единственный параметр "табстоп", размер та-
буляции устанавливается равным "табстоп" пробелам
вместо стандартного значения 8. Если задано несколько
табуляционных остановов, позиции табуляции устанавли-
ваются в указанных столбцах.
Команда unexpand заменяет последовательности пробелов
на символы табуляции, читая исходные данные из стан-
дартного ввода или (если заданы файлы) из указанных
файлов. Если задан ключ "-a", символы табуляции встав-
ляются везде,где это возможно. По умолчанию unexpand
заменяет на символы табуляции только первые пробелы.
149
АПК 00210-01 33 01-4
ИМЯ:
expr - вычисление параметров как выражения.
ФОРМАТ:
expr парам ...
ОПИСАНИЕ:
Параметры рассматриваются как выражение. После вычис-
ления результат записывается в стандартный вывод.
Каждый член выражения представляет собой отдельный па-
раметр.
Oперации и ключевые слова. Этот список составлен в по-
рядке возрастания старшинства операций.Oперации с оди-
наковым старшинством сгруппированы:
Выр ! выр
Выводит первое выражение "выр", если оно не пус-
тое и не равно "0", в противном случае выводит
второе выражение;
Выр & выр
Если ни одно из выражений не является пустым или
"0", выводит первое выражение, в противном слу-
чае выводит "0";
Выр опотн выр
"Опотн" представляет собой одну из операций от-
ношения <, <=, =, !=, >=, >. Выводит "1", если
указанное сравнение верно, и "0", если оно оши-
бочно. Если оба выражения являются целыми, срав-
150
АПК 00210-01 33 01-4
нение является численным, иначе оно является
лексикографическим;
выр + выр
выр - выр
Сложение или вычитание параметров;
Выр * выр
выр / выр
выр % выр
Умножение, деление или вычисление остатка от де-
ления параметров;
Выр : выр
Операция сравнивает строку, содержащуюся в
первом параметре, с регулярным выражением, со-
держащимся во втором параметре. Синтаксис регу-
лярного выражения такой же, как в редакторе ed.
Символы шаблона .) могут использоваться для вы-
бора части первого параметра. В остальных случа-
ях выводится количество символов, соответству-
ющих шаблону ("0", если сравнение неудачно);
( Выр )
Скобки для группировки.
ПРИМЕРЫ:
Увеличение на "1" переменной A языка управления зада-
ниями:
151
АПК 00210-01 33 01-4
A=`expr $A + 1`
Нахождения части имени файла (младшей части) из полно-
го имени файла, хранящегося в переменной A, которая
может содержать или не содержать "/":
expr $A : '.*/)' '|' $A
В последнем примере сдледует обратить внимание на то,
что операции команды expr, совпадающие с метасиволами
языка управления заданиями, взяты в апострофы.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
ed, sh, test
ДИАГНОСТИКА:
Команда expr возвращает следующие выходные коды:
0 - если выражение не пустое и не равно "0";
1 - если выражение пустое или "0";
2 - для неверных выражений.
152
АПК 00210-01 33 01-4
ИМЯ:
f77 - компилятор с языка ФОРТРАН-77.
ФОРМАТ:
f77 [ключ] ... Файл ...
ОПИСАНИЕ:
Команда f77 представляет собой компилятор с языка
ФОРТРАН-77. Распознаются параметры следующих типов:
- Параметры, имена которых заканчиваются на ".f",
считаются исходными программами на языке
ФОРТРАН-77.Oни компилируются, и каждая об'ектная
программа помещается в файл текущего справочника
под именем, которое получается из имени исходно-
го файла путем замены ".f" на ".o";
- Параметры, имена которых заканчиваются на ".r"
или ".e", считаются исходными программами на
языках RATFOR или EFL соответственно.Oни сперва
преобразуются соответствующим препроцессором, а
затем компилируются с помощью f77;
- Аналогично, параметры, имена которых заканчива-
ются на ".c" или ".s", считаются исходными прог-
раммами на языке Си или ассемблере.Oни компили-
руются или ассемблируются, создавая файлы ".o".
Приведенные ключи имеют то же самое значение, что и в
команде cc. Описание ключей, задающих режимы загрузки
содержится в ld:
153
АПК 00210-01 33 01-4
-c Подавляет загрузку и создает файл ".o" для каж-
дого исходного файла;
-d Компилятор формирует дополнительные команды и
информацию в об'ектном файле для символьного от-
ладчика cdebug.
-p Подготовить об'ектные файлы для профилирования
(см. команду prof);
-O Вызвать оптимизатор об'ектного кода;
-S Скомпилировать указанные программы и оставить
ассемблерный выход в соответствующих файлах с
суффиксами ".s". (файлы ".o" не создаются);
-f Использовать интерпретатор плавающей запятой,
кроме того, подключается вариант компилятора,
который может работать на машинах без процессора
плавающей запятой.
-o вывод
Присваивает выходному файлу редактора связей ld
имя "вывод" вместо "a.out";
Следующие ключи являются специфическими для f77:
-onetrip
Компилирует циклы do, которые, получив управле-
ние, выполняются по крайней мере один раз. (В
ФОРТРАНе-77 циклы do вообще не выполняются, если
верхняя граница меньше, чем нижняя);
154
АПК 00210-01 33 01-4
-u Устанавливает тип неопределенных переменных
"undefined" вместо использования стандартных
правил языка ФОРТРАН;
-w Подавляет все предупредительные сообщения. Если
этот ключ имеет вид "-w66", подавляются только
предупредительные сообщения относительно совмес-
тимости с языком ФОРТРАН-66. Ключ "-wki" подав-
ляет предупредительные сообщения о русских
буквах в идентификаторах;
-U По умолчанию прописные буквы в идентификаторах и
в ключевых словах переводятся в строчные. Ключ
"-U" блокирует перевод, что позволяет различать
прописные и строчные буквы в идентификаторах.
Ключевые слова в этом случае записываются про-
писными буквами;
-O<цифра>
Разрешить вынесение переменных циклов на ре-
гистры с целью оптимизации. Одновременно включа-
ется режим "-O". <цифра> определяет число ре-
гистров: 1 или 2;
-I2 -I4 -Is
Флаги влияют на размер целых переменных: флаг
"-I2" устанавливает тип "integer" эквивалентным
"integer*2", "-I4" - "integer*4". По умолчанию
установлен режим "-I4" (в соответствии со стан-
дартом переменные типов "integer" и "real"
155
АПК 00210-01 33 01-4
должны занимать одинаковую память). Режим "-Is"
разрешает компилятору в режиме "-I4" вычислять
индексы в предположении, что они находятся в ди-
апазоне чисел типа "integer*2";
-v В этом режиме компилятор сообшает об начале оче-
редных этапов трансляции(F77PASS, PASS1, AS, LD,
C), а также выдает версию компилятора;
-V Отладочный режим работы компилятора. Распечаты-
ваются команды "shell", запускаемые в процессе
трансляции вместе со своими параметрами;
-T<символ><имя-компоненты>
Заменить какой то проход компилятора на указан-
ную программу. Служит для отладки компилятора
или вызова других его версий. <символ> обознача-
ет следующие компоненты транслятора:
"0" - f77 проход 0;
"1" - f77 проход 1;
"2" - c1 (си-компилятор, проход 1);
"o" - c2 (оптимизатор кода);
"a" - as (ассемблер);
"l" - ld (редактора связей);
"f" - головной раздел (вместо /lib/crt0);
"m" - макропроцессор m4.
Следует иметь в виду, что флаг "-f" переназнача-
ет компоненты "1" и "f".
156
АПК 00210-01 33 01-4
-F Обработать соответствующие файлы препроцессорами
RATFOR и EFL, поместить результат в файл с суф-
фиксом ".f", но не компилировать результат;
-m Применить к каждому файлу ".r" или ".e"
препроцессор м4 перед обработкой его препроцес-
сорами RATFOR и EFL;
-ex Использовать строку "x" как ключ для EFL при об-
работке файлов ".e";
-rx При обработке файлов с суффиксом ".r" использо-
вать строку "x" как ключ для препроцессора
RATFOR.
Прочие параметры считаются либо ключами загрузчика,
либо об'ектными программами, совместимыми с f77, либо
библиотеками программ. Эти программы вместе с резуль-
татами указанных компиляций загружаются (в заданном
порядке) для получения выполняемой программы с именем
"a.out".
Компилятор реализует полный Фортран-77 с некоторыми
расширениями, сделанными как для более эффективного
использования ЭВМ, так и для лучшей совместимости с
другими диалектами Фортрана. В версии компилятора для
ЭВМ без раздельных адресных пространств команд и
данных (а к ним относятся почти все отечественные ЭВМ,
за исключением Электроники-79) существуют некоторые
ограничения:
157
АПК 00210-01 33 01-4
- Не реализованы режимы "-Is" и "-C";
- В константных выражениях (размерности массивов и
т.д.) можно использовать только целые числа и
выражения целого типа (но не реальные или
комплексные);
- В списках ввода/вывода и параметрах циклов "do"
запрещено использование встроенных арифметичес-
ких функций и выражений, содержащих операции с
комплексными числами. Это требование распростра-
няется не на все случаи, но его нарушение может
приводить к сбою компилятора с диагностикой "не
найден сегмент ...".
- Компилятор работает довольно медленно, и исполь-
зует большие рабочие файлы в справочнике "/tmp".
- При работе на ЭВМ без процессора плавающей точки
усиливаются количественные ограничения на коли-
чество идентификаторов, плавающих констант, ко-
личество размерностей массивов в программах на
Фортране, причем превышение этих ограничений
может приводить к диагностике "out of memory" на
этапе трансляции. При работе на
ЭВМ с процессором плавающей точки эти ограниче-
ния уменьшаются.
Язык расширен по сравнению с Фортраном-77 следующим
образом:
158
АПК 00210-01 33 01-4
- Введены новые описатели размещения локальных пе-
ременных: "static", "automatic", "undefined"
(для оператора "implicit");
- В качестве ограничителя строк можно использовать
как одиночные, так и двойные кавычки.При этом
закрывающая кавычка должна быть такой же, как и
открывающая;
- В строках можно использовать обозначения управ-
ляющих символов, принятые в языке Си: 0 ,
- Введен оператор вставки текста include 'имя-
файла';
- Введены битовые, восьмеричные и шестнадцатерич-
ные константы, например:
b'001' - битовые;
o'725' - восьмеричные;
x'af5' - шестнадцатеричные;
- Введены операторы "accept" - эквивалентно
"read", "type" - эквивалентно "print", "byte" -
эквивалентно "character", для совместимости с
некоторыми диалектами языка Фортран-4;
- Введены функции "or", "and", "xor", "not" для
работы с целыми числами, функции "getarg" и
"iargc" для связи с системой;
159
АПК 00210-01 33 01-4
- По умолчанию каналы ввода/вывода настроены сле-
дующим образом:
0 - stderr (канал диагностик);
5 - stdin (стандартный ввод);
6 - stdout (стандартный вывод).
Остальные каналы связаны с файлами "fort.n", где
"n" - номер канала. Могут использоваться каналы
с номерами 0 - 9.
Существует два формата входного текста. Если в колон-
ках 1-6 стоит символ табуляции или в качестве признака
продолжения используется "&" в первой позиции, длина
входной строки может быть произвольной. Иначе исполь-
зуются только первые 72 символа входной строки. Символ
"!" является признаком внутристрочного комментария,
текст между "!" и концом строки пропускается. Однако
"!" не может быть единственным символом в строке.
Программы на Фортране-77 могут использоваться сов-
местно с программами на Си. Оператор Фортрана-77 call
x(a,b,c) эквивалентен (если a,b,c - простые перемен-
ные) оператору языка Си: x_(&a,&b,&c), то есть внешние
имена дополняются символом подчеркивания в конце, а
параметры передаются по адресу (если это не символьные
переменные и не функции). Подробнее см.описание языка
(86.24247-01 35 01).
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
160
АПК 00210-01 33 01-4
prof, cc, ld, adb, cdeb.
ДИАГНОСТИКА:
Диагностические сообщения, выдаваемые непосредственно
компилятором f77, не требуют пояснений. Иногда могут
выдаваться сообщения загрузчика. Некоторые сообщения
об ошибке компилятора могут вызываться ошибками в
программах или превышением количественных ограничений.
ЗАМЕЧАНИЯ:
При работе на ЭВМ с малым об'емом адресуемой памяти
возникают некоторые ограничения на допустимый размер
программы. Кроме того, необходимость деления
компилятора на динамически загружаемые сегменты приво-
дит к увеличению времени его работы.
Отсутствие на установке команд плавающей арифметики не
является препятствием для использования компилятора,
но не следует удивляться, если время работы программы
резко возрастет (как и в программах на Си).
Большие программы (содержашие большое количество
меток) могут не пройти через оптимизатор об'ектного
кода (предупредительное сообщение "optimizer out of
space"). Система ввода/вывода языка Фортран довольно
велика и занимает около 050000(8) байтов оперативной
памяти. Для уменьшения размера программ и ускорения их
работы рекомендуется использовать флаги "-O1 -I2"
всегда, когда это возможно.
161
АПК 00210-01 33 01-4
Для отладки программ на Фортране могут использоваться
те же средства, что и для программ на Си : отладчики
"adb" и "cdeb". Отладчик "cdeb" понимает типы перемен-
ных в Фортране-77.
ФАЙЛЫ:
/usr/f77lib/f77pass0 - проход 0;
/usr/f77lib/f77p1 - проход 1;
/usr/f77lib/f77p1f - проход 1 для машин без процес-
сора плавающей точки;
/usr/f77lib/lib?77.a - библиотеки Фортран-77 на счете;
/tmp/f???.? - рабочие файлы.
162
АПК 00210-01 33 01-4
ИМЯ:
fc - компилятор ФОРТРАН.
ФОРМАТ:
fc [ -c ] sfile1.f ... ofile1 ...
ОПИСАНИЕ:
При вызове компилятора можно задавать параметры трех
типов:
- имена файлов с суффиксом ` .f' являются исходны-
ми текстами на ФОРТРАНЕ. Об'ектные файлы выво-
дятся (или читаются) в файл с суффиксом ` .o';
- Другие параметры (кроме ключа -c) рассматривают-
ся либо как ключи редактора связей, либо как
об'ектные программы, обычно создаваемые на пред-
шествующих проходах fc, либо как совместимые с
ФОРТРАНОМ программы. Эти программы, вместе сo
скомпилированными программами, обрабатываются
после чего получается исполняемый файл с именем
a.out;
- Задание ключа -c и любая синтаксическая ошибка
при трансляции приводит к тому, что сборка не
выполняется.
Приводим список различий между fc и стандартным
ФОРТРАНОМ-4:
1) В выражениях допустимо произвольное смешение
163
АПК 00210-01 33 01-4
типов. Но в настоящее время возможны не все комби-
нации типов. Допустимы все обычные преобразования,
включающие целый, действительный, двойной точности
и комплексный типы;
2) Возможны два варианта оператора implicit:
implicit integer /i-n/, либо implicit integer
(i-n);
3) Возможны типы doublecomplex, logcal*1, integer*2,
и real*8;
4) Символ "&" в первой позиции указывает на то, что
за ним следует продолжение оператора;
5) Символ "c" в первой позиции указывает на то, что
за ним следует комментарий;
6) Все операторы пишутся строчными буквами;
7) Понятие "седьмая колонка" не используется;
8) При использовании спецификации формата "g", ввод
производится в "свободном" формате.Предшествующие
пробелы пропускаются, первый пробел после числа
заканчивает поле;
9) При вводе, запятая является разделителем цифровых
или логических полей;
10) Управление переводом строки при выводе отсутству-
ет;
164
АПК 00210-01 33 01-4
11) Последовательность из N символов, заключенная в
двойные кавычки ` " ', эквивалентна Nh, за которы-
ми следуют эти символы;
12) В операторе data символьная строка может инициали-
зировать массив элементов или последовательность
элементов массива;
13) Число блоков памяти, запрашиваемых бесформатным
оператором read, должно совпадать с числом, содер-
жащимся в читаемой записи.
Для операторов ввода/вывода доступны номера устройств
с 0 по 19. Устройство номер N указывает на файл
fortNN. (например, устройству номер 9 соответствует
файл `fort09'). Читаемые файлы должны существовать-
.Если вывод производится в отсутствующий файл, файл
создается. Устройство номер 5 постоянно закреплено за
стандартным файлом ввода. Устройство номер 6 постоянно
закреплено за стандартным файлом вывода.
ФАЙЛЫ:
a.out результат работы;
f.tmp[123] временные файлы;
/usr/fort/fc1 собственно компилятор;
/lib/fr0.o старт прогона;
/usr/fort/filib.a библиотека интерпретатора ;
/usr/fort/libf.a встроенные функции;
/usr/fort/liba.a системная библиотека
165
АПК 00210-01 33 01-4
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
ld, ierror, getarg, setfil
ДИАГНОСТИКА:
При компиляции, диагностика выдается по-английски.
Возможно указание номера ошибочной строки и номера
строки исходной программы, в которой имеется ошибка.
При выполнении программы выдается номер ошибки:
1 неверно задан аргумент функции log;
2 несоответствие количества аргументов в функции
amod;
3 несоответствие количества аргументов в функции
atan2;
4 лишний аргумент при cabs;
5 задан слишком большой экспонент в cexp;
6 несоответствие количества аргументов в функции
cmplx;
7 несоответствие количества аргументов в функции
dim;
8 лишний аргумент при exp ;
9 несоответствие количества аргументов в функции
idim;
10 несоответствие количества аргументов в функции
166
АПК 00210-01 33 01-4
isign;
11 несоответствие количества аргументов в функции
mod;
12 несоответствие количества аргументов в функции
sign;
13 недопустимый аргумент при sqrt;
14 неправильный переход по вычисляемому goto;
15 subscript out of range;
16 переполнение при вычислении real**real;
17 (отрицательный real)**real;
100 неверно задан номер устройства ввода/вывода;
101 неправильное использование устройства ввода/выво-
да;
102 не можем создать файл вывода;
103 не можем открыть файл ввода;
104 конец файла ввода;
105 неверный символ в операторе format;
106 оператор format не может начинаться с символа `('
;
107 не пустой список ввода/вывода при отсутствии спе-
167
АПК 00210-01 33 01-4
цификаций преобразования в формате;
108 лишние скобки в формате ;
109 неправильное определение формата;
110 запрещенный символ в поле ввода;
111 конец оператора format в h-спецификации;
112 неверный аргумент при setfil;
120 неверный аргумент при ierror ;
999 запрещенное преобразование ввода.
ЗАМЕЧАНИЯ:
В данной версии компилятора не реализованы следующие
возможности:
оператор-функция;
масштабный множитель в спецификции формата опе-
ратора ввода;
оператор backspace.
168
АПК 00210-01 33 01-4
ИМЯ:
file - определить тип файла.
ФОРМАТ:
file файл ...
ОПИСАНИЕ:
Команда file выполняет серию проверок для каждого па-
раметра и пытается классифицировать его. Если оказыва-
ется, что файл состоит из символов кода КОИ-8, команда
file исследует первые 512 байтов и пытается угадать
язык.
ЗАМЕЧАНИЯ:
Данная команда часто совершает ошибки. В частности,
она часто предполагает, что командные файлы являются
программами, написанными на языке Си.
169
АПК 00210-01 33 01-4
ИМЯ:
find - поиск файлов.
ФОРМАТ:
find список_полных_имен выражение
ОПИСАНИЕ:
Команда find рекурсивно понижает иерархию каталогов
для каждого имени пути в "списке_полных_имен" (т.е.
одно или несколько полных имен) и ищет файлы, которые
соответствуют булеву "выражению", записанному с по-
мощью элементов. В этих описаниях параметр n использу-
ется как десятичное целое, причем +n означает более
чем n, -n означает менее чем n, а n означает точно n.
-name имя_файла
Истина, если параметр "имя-файла" соответствует
текущему имени файла. Может использоваться обыч-
ный синтаксис параметров интерпретатора команд,
если он скрыт (будьте осторожны с символами "[,
"?" и "*");
-perm вчис
Истина, если статус файла точно соответствуют
восьмеричному числу "вчис" (см. chmod). Если
"вчис" имеет перед собой знак минус, становятся
значимыми большее количество битов статуса
(017777, см. stat);
-type X
170
АПК 00210-01 33 01-4
Истина, если файл имеет тип "X", где "X"
представляет собой один из символов b, c, d или
f - для специального блочного файла; специально-
го сиMвольного файла; каталога или простого
файла соответственно;
-links n
Истина, если файл имеет n связей;
-user имяп
Истина, если файл принадлежит пользователю
"имяп" (регистрационное имя или числовой иденти-
фикатор пользователя);
-group имяг
Истина, если файл принадлежит группе "имяг" (имя
группы или числовой идентификатор группы);
-size n
Истина, если длина файла составляет n блоков;
-inum n
Истина, если номер i-узла файла равен n;
-atime n
Истина, если доступ к файлу производился в тече-
ние последних n дней;
-mtime n
Истина, если файл модифицировался в течение пос-
ледних n дней;
171
АПК 00210-01 33 01-4
-exec команда
Истина, если выполненная "команда" возвращает
код возврата нуль. Конец команды должен быть
обозначен скрытой точкой с запятой ";". Пара-
метр команды "()" заменяется текущим именем;
-ok команда
Аналогично "-exec", за исключением того, что
сгенерированная команда записывается в стан-
дартный вывод, затем считывается стандартный
ввод и команда Выполняется только в случае отве-
та "y";
-print
Всегда истина. Вызывает печать текущего полного
имени;
-newer файл
Истина, если текущий файл был модифицирован
позднее, чем указанный "файл".
Эти элементы могут об'единяться с помощью следующих
операций (операции перечислены в порядке уменьшения
старшинства):
1) Заключение группы элементов и операций в скобки
(скобки служат специальными символами для ин-
терпретатора команд и должны быть скрыты);
2) Отрицание элемента ("!" представляет собой унар-
ную операцию "нет");
172
АПК 00210-01 33 01-4
3) Конкатенация элементов (операция "-a" подразуме-
вается непосредственным соседством двух элемен-
тов);
4) Альтернативность элементов ("-o" представляет
собой операцию "или").
ПРИМЕР:
Следующая команда предназначается для удаления всех
файлов с именами "a.out", доступ к которым не произво-
дился в течение недели:
find / -name a.out -atime +7 -ok rm() ;
ФАЙЛЫ:
/etc/passwd
/etc/group
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
sh, test
ЗАМЕЧАНИЯ:
Синтаксис данной команды слишком сложен.
173
АПК 00210-01 33 01-4
ИМЯ
fls - полноэкранная (full screen) функция ls
ФОРМАТ
fls [режим][файл...]
ОПИСАНИЕ
fls расширяет функции команды ls для указанных коман-
дой file файлов и выводит результаты на полный экран
7920. Типичные режимы ls (например, -l, -t и т.д.)
также могут быть использованы.
Для этой команды используются функциональные клавиши:
pf1 выводится вспомогательный (help) экран.
pf2 курсором отмечается файл для стирания. Строка
***DELETED*** подводится к имени следующего
файла. Файл не будет уничтожен без нажатия кла-
виш pf3, pf9 или pf12.
pf3 уничтожает файлы, отмеченные для стирания и за-
канчивает команду (fls).
pf5 переносит функции команды ned на файл, указанный
курсором.
pf6 исключает из обработки файл, отмеченный курсо-
ром, т. е. противоположно pf2.
pf7 сдвиг вверх на 1/2 экрана.
pf8 сдвиг вниз на 1/2 экрана.
174
АПК 00210-01 33 01-4
pf9 изменяет оглавление и снова выполняет команду
ls.
pf11 выполняет команду file и выводит результат на
экран.
pf12 меняет оглавление на оглавление, указанное кур-
сором и выполняет ls.
вызов теста
немедленно заканчивает выполнение fls без унич-
тожения файлов.
Пользователь также может вводить команды с правой
части экрана; имя файла, высвеченное с левой стороны
экрана связывается с вводимой командой и передается
программе shell для выполнения команды. Только клавиши
pf9 и pf12 moгут служить причиной повторного выполне-
ния команды ls.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ
Dred - описание команды.
175
АПК 00210-01 33 01-4
ИМЯ:
from - посмотр полученной почты.
ФОРМАТ:
from [ -s отправитель] [пользователь]
ОПИСАНИЕ:
Команда from выдает строки заголовков почты в вашем
почтовом ящике, чтобы показать, от кого она получена.
Если задан ключ -s, то выдается информация только о
почте, поступившей от пользователя, имя которого опре-
делено параметром "отправитель".
Если задан параметр "пользователь", то команда from
просматривает почтовый ящик указанного пользователя и
сообщает от кого поступила для него почта.
ФАЙЛЫ:
/usr/spool/mail/*
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
mail
176
АПК 00210-01 33 01-4
ИМЯ:
grep, egrep, fgrep - поиск в файле по шаблону.
ФОРМАТ:
grep [ключ ... ] Выражение [файл] ...
egrep [ключ ... ] [выражение] [файл] ...
fgrep [ключ ... ] [строки] [файл]
ОПИСАНИЕ:
Команды семейства grep осуществляют поиск строк во
входных файлах (по умолчанию - стандартный ввод), со-
ответствующих шаблону. Обычно каждая обнаруженная
строка копируется в стандартный вывод. Шаблоны команды
grep представляют собой ограниченные регулярные выра-
жения по типу используемых в комаде еd. Используется
компактный недетерминированный алгоритм. Шаблоны ко-
манды egrep являются полными регулярными выражениями.
Эта команда использует быстрый детерминированный алго-
ритм и иногда требует экспоненциального пространства.
Шаблонами команды fgrep являются фиксированные стро-
ки.Oна является быстрой и компактной. Распознаются
следующие ключи:
-v Печатаются все строки, кроме соответствующих
шаблону;
-x Печатаются только строки, (точно) соответству-
ющие целиком (только fgrep);
-c Печатается только счетчик соответствующих строк;
177
АПК 00210-01 33 01-4
-l Печатаются имена файлов (по одному разу), в ко-
торых имеются соответствующие строки, разделен-
ные символами новой строки;
-n Каждой строке предшествует ее относительный
номер в файле;
-b Каждой строке предшествует номер блока, в кото-
ром она была найдена. Это иногда полезно для на-
хождения номеров дисковых блоков по их содержа-
нию;
-i При сравнении игнорируется регистр символов
(другими словами, верхний и нижний регистры счи-
таются одинаковыми). (только grep);
-s Немой режим. Ничего не печатается (за исключени-
ем сообщений об ошибках). Это полезно для про-
верки ошибочного состояния;
-w Выражение ищется как слово (только grep);
-e выражение
То же, что и просто параметр "выражение", однако
используется тех случаях, когда "выражение" на-
чинается с "-";
-f файл
Регулярное выражение (egrep) или список строк
(fgrep) берутся из файла "файл".
Во всех случаях имя файла изображается так, как будто
178
АПК 00210-01 33 01-4
имеется более одного входного файла. Требуется осто-
рожность при использовании в "выражении" символов $,
*, [, ^, ! , (, ) и , так как они являются значимыми и
для языка управления заданиями sh. Самым надежным спо-
собом является заключение всего "выражения" в апостро-
фы '...'.
Команда fgrep ищет строки, которые содержат одну из
последовательностей символов "строки" (разделенных
символами новой строки).
Команда egrep работает с расширенными регулярными вы-
ражениями. В следующем описании "символ" не включает в
себя символ новой строки:
Символ " отличающийся от символа новой строки,
соответствует этому символу. Символ ^ ($) соот-
ветствует началу (концу) строки. Символ "." со-
ответствует любому символу. Одиночный символ, не
имеющий специального значения, соответствует
этому символу;
Строка символов, заключенная в квадратные скобки
[ ], соответствует любому одиночному символу из
этой строки. Группы символов кода КОИ-8 могут
быть сокращенно обозначены в виде "a-z0-9".
Символ "]" может встречаться только в качестве
первого символа строки.
Литерал "-" может располагаться только в тех
179
АПК 00210-01 33 01-4
местах, где он не может быть спутан с указателем
диапазона символов. Регулярное выражение, за ко-
торым стоит символ "*" ("+", "?"),определяяет
последовательность из 0 или более (1 или более,
0 или 1) соответствий для этого регулярного вы-
ражения. Два об'единенных регулярных выражения
определяют соответствие для первого, за которым
следует соответствие для второго. Два регулярных
выражения, разделенные символом "!" или символом
новой строки, определяет либо соответствие для
первого, либо соответствию для второго. Регуляр-
ное выражение, заключенное в скобки, соот-
ветствует соответствию для этого регулярного вы-
ражения..lin Порядок старшинства операций на од-
ном и том же уровне скобок следующий: [ ], затем
*, + и ?, затем конкатенация, затем ! И символ
новой строки.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
еd, sed, sh
ДИАГНОСТИКА:
Код возврата равен:
0 - если соответствия были найдены,
1 - если соответствия не были обнаружены,
2 - если имеется синтаксическая ошибка или файлы не-
доступны.
180
АПК 00210-01 33 01-4
ЗАМЕЧАНИЯ:
В идеальном случае должна была быть только одна коман-
да grep, однако неизвестен единственный алгоритм, ко-
торый характеризуется достаточно хорошим отношением
память/время.
Длина строк ограничена 256 символами, более длинные
строки усекаются.
181
АПК 00210-01 33 01-4
ИМЯ:
head - выдача первых строк файлов
ФОРМАТ:
head [-число] [файл ...]
ОПИСАНИЕ:
Команда выдает указанное "число" первых строк каждого
из перечисленных файлов, или (если файлы не заданы)
стандартного файла ввода. Если значение "число" опуще-
но, выдаются первые десять строк.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
tail
182
АПК 00210-01 33 01-4
ИМЯ:
hed - шестнадцатеричный текстовый редактор.
ФОРМАТ:
hed [-e][-r][-t] файл
ОПИСАНИЕ:
hed - полноэкранный текстовый редактор для использова-
ния на терминалах типа 7920. Операнд "файл" указывает
имя редактируемого файла данных.
-e используется для вывода в коде ДКОИ;
-r toлько для чтения;
-t для использования /tmp/hed xxxxx в качестве бу-
ферного файла (для большинства файлов).
hed оперирует с копией файла в памяти, если не задан
режим "-t". В этом случае в качестве буферного файла
используется /temp/hed xxxxx файл. Данные, изменяемые
на экране дисплея, меняются и в памяти (или в /tmp/hed
xxxxx файле). Основные команды q(quit) или е(edit) не
меняют файл-оригинал. Когда меняются шестнадцатеричные
данные, стираемые метки конца файла(еоf) заполняются
нулями. Можно изменять любые текстовые данные, при
этом неизмененные данные сохраняются. Стирание eof в
тексте заполняется нулями.
ОСНОВНЫЕ КОМАНДЫ:
Основные команды hed вводятся с командной строки в
183
АПК 00210-01 33 01-4
конце экрана. Команда t переключает состояние дисплея.
Таких состояний может быть два: ДКОИ и КОИ-8.
хххххххх - изменить смещение дисплея на хххххххх. Зна-
чение должно быть дополнено слева нулями до 8-ми зна-
ков; и вы не сможете работать далее пока не будет дос-
тигнут конец файла. Значением хххххххх д.б. правильные
шестнадцатеричные данные.
(+/-)хххххххх - изменить смещение дисплея по отношению
к текущему смещению "+" или "-" хххххххх. Значение
хххххххх должно быть слева дополнено нулями. Работа не
может быть возобновлена только по концу файла до нача-
ла обработки следующего файла.
/xxxxxxxx/c - разместить строку шестнадцатеричных сим-
волов (до 28 шестнадцатеричных цифр). Если строка ука-
зана неверно, данные будут преобразованы в символьный
формат и выведены на экран. Остальные шестнадцатерич-
ные цифры заполняются нулями до конца строки.
d - граница двойного слова.
f - граница полного слова.
h - граница полуслова.
c - oбработка данных как символьных. (null) - граница,
выровненная на 1 байт.
?хххххххх?с - разместить строку шестнадцатеричных сим-
волов (до 28 шестнадцатеричных цифр), двигаясь в об-
184
АПК 00210-01 33 01-4
ратном направлении. Если строка хххххххх указана не-
верно, данные будут преобразованы в символьный формат
и выведены на экран как строка символов. Остальные
шестнадцатеричные цифры заполняются нулями до конца
строки.
d - граница двойного слова;
f - граница полного слова;
h - граница полуслова;
c - обработка данных как символьных;
(null)
- граница, выравненная на 1 байт;
e (-e) (-r) имя файла (только чтение)
w[файл]
- запись файла;
q - выход из редактора без записи изменений;
t - перекодировка в ДКОИ или КОИ-8;
nodup - отмена высвечивания повторяющихся строк;
dup - высвечивание всех строк;
f[файл]
- высвечивание или смена имени файла;
$ - переход на конечный блок файла;
185
АПК 00210-01 33 01-4
! - выполнение команд интертретатора;
xd, dx, od, do, xo, ox
- преобразования: восьмеричные, десятичные,
шестнадцатеричные;
insert/delete<позиция> <число байт>
- вставка/удаление.
ФУНКЦИОНАЛЬНЫЕ КЛАВИШИ ПФ.
ПФ1 - справка;
ПФ2 - перемещение текста с текущей строки в первую;
ПФ3 - запись результатов редактирования;
ПФ4,ПФ5
- повтор поиска;
ПФ9 - копирование экрана (добавление) в файл
hed.out;
ПФ10, ПФ11, (ПФ7, ПФ8)
- перемещение на полный экран (на полэкрана)
вниз и вверх;
ПФ12 - установить курсор в начало;
вызов теста
- выход из редактора.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
xd
186
АПК 00210-01 33 01-4
2
АПК 00210-01 33 01-4
АННОТАЦИЯ
Данный документ содержит команды общего назначения
системы демос, предназначенные для непосредственного вызо-
ва пользователем. Приводимые в приложении команды отражают
текущее состояние стандартной оперативной справочной доку-
ментации системы. Все команды в документе упорядочены в
алфавитном порядке. Для удобства работы описание каждой
команды начинается с нобого листа.
3
АПК 00210-01 33 01-4
СОДЕРЖАНИЕ
1. КОМАНДЫ ОБЩЕГО НАЗНАЧЕНИЯ......................... 4
ПРИЛОЖЕНИЕ............................................ 5
4
AПK.00210-01 33 01-5
1. КОМАНДЫ ОБЩЕГО НАЗНАЧЕНИЯ
Структура описания каждой команды имеет следующий формат:
имя: приводятся имена команд и краткая информация
о их назначении;
формат: приводится формат команды. Параметры, взятые
в квадратные скобки, могут быть опущены;
многоточие после параметра указывает на то,
что данный параметр может быть многократно
повторен.
описание: содержит подробное описание команды;
файлы: перечисляются имена файлов, которые исполь-
зуются данной командой;
диагностика: перечисляются диагностические сообщения, ко-
торые могут выдаваться в процессе выполнения
данной команды;
замечания: приводятся ограничения на область применения
команд;
дополнительные ссылки:
делаются ссылки на сопряженные команды. В скобках
приводится номер раздела оперативного руководства.
Описание команд общего назначения приведено в приложении.
5
AПK.00210-01 33 01-5
ПРИЛОЖЕНИЕ
6
AПK.00210-01 33 01-5
ИМЯ:
join - операция для реляционных баз данных.
ФОРМАТ:
join [ключи] файл1 файл2
ОПИСАНИЕ:
Команда join формирует в стандартном файле вывода со-
единение двух отношений, заданных строками файлов
"файл1" и "файл2". Если вместо файла "файл2" указано
"-", используется стандартный файл ввода.
"Файл1" и "файл2" должны быть отсортированы в возрас-
тающей последовательности в соответствии с кодом КОИ-8
по полям, по которым они должны сливаться. (Обычно по
первым полям в каждой строке).
Для каждой пары строк в файлах "файл1" и "файл2", ко-
торые имеют идентичные поля слияния, создается одна
выходная строка. Выходная строка обычно состоит из об-
щего поля, после которого следует остальная часть
cтpoки из фaйлa "фaйл1", a зaтeм - из фaйлa "фaйл2".
Поля обычно разделяются пробелами, символами табуляции
и новой строки. В данном случае несколько разделителей
рассматриваются как один, а передние разделители
отбрасываются.
Распознаются следующие опции:
-aN в дополнение к обычному выводу генерируется
7
AПK.00210-01 33 01-5
строка для каждой непарной строки в файле N, где
N равно 1 или 2;
-e S заменяет пустые выходные поля строкой "S";
-jN M слияние производится по M-ому полю файла N. Если
N отсутствует, в каждом файле используется M-ое
поле;
-o cпиcoк
кaждaя выxoднaя cтpoкa cocтoит из пoлeй, указан-
ных в "списке", каждый элемент которого имеет
вид N.M, где N - это номер файла, а M - номер
поля;
-t C использовать символ "C" в качестве разделителя
(символа табуляции). Каждое появление "C" в
строке является значимым;
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
sort, comm, awk
ЗАМЕЧАНИЯ:
При стандартном разделителе полей сортирующая последо-
вательность такая же, как в команде "sort -b"; с клю-
чем -t последовательность такая же, как при простой
сортировке.
Соглашения, принятые в командах join, sort, comm, и
awk, несовместимы.
8
AПK.00210-01 33 01-5
ИМЯ:
kill - завершить процесс.
ФОРМАТ:
kill [-сигном] идентификатор-процесса ...
ОПИСАНИЕ:
Команда kill посылает сигнал завершения (SIGTERM-15)
заданным процессам. Если задан параметр "сигном",
данный сигнал посылается вместо сигнала завершения.
Это свойство команды kill можно использовать для инте-
рактивного управления ходом выполнения фоновых процес-
сов или для уничтожения процессов игнорирующих сигнал
завершения. В любом случае команда "kill -9" гаранти-
рует завершение процесса.
В соответствии с принятым соглашением, если задан
номер процесса 0, сигнал будет послан всем членам,
входящим в данную группу процессов. Завершаемые про-
цессы должны принадлежать текущему пользователю, если
он не является супер-пользователем.
Интерпретатор команд сообщает номера асинхронных про-
цессов, запущенных посредством "&".
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
ps, kill, signal
9
AПK.00210-01 33 01-5
ИМЯ:
label - обработка меток на мл.
ФОРМАТ:
label [-w] [-i метка] имя
ОПИСАНИЕ:
Командой label можно прочитать и записать метку маг-
нитной ленты, адресуемой спец-файлом в параметре
"имя".
Команда распознает метки МЛ в формате ОС ЕС, где метка
должна располагаться в 6-ти байтовом поле первой 80-ти
байтовой записи. Эта запись начинается символами VOL1,
за которыми следует метка МЛ и пробелы в оставшейся
части. Операция чтения-запись метки сопровождается пе-
рекодировкой из кода ДКОИ в КОИ-8 или наоборот соот-
ветственно.
Команда label без опционных параметров приводит к
отображению метки МЛ на терминале.
Опции таковы:
-w записать метку МЛ. В виде метки используется имя
спец-файла;
-i записать метку МЛ. Меткой ленты становится уни-
кальное имя из поля "метка".
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
tape, tm
10
AПK.00210-01 33 01-5
ИМЯ:
ld - редактор связей
ФОРМАТ:
ld [ключ] файл ...
ОПИСАНИЕ:
Команда ld об'единяет несколько об'ектных программ в
одну, разрешает внешние ссылки и производит поиск в
библиотеках. В простейшем случае задаются несколько
об'ектных файлов, и ld об'единяет их, создавая
об'ектный модуль, который может либо выполняться, либо
являться входным для последующих запусков ld (в пос-
леднем случае должен задаваться ключ "-r" для сохране-
ния разрядов перемещения). Результат работы ld помeща-
ется в файл с именем a.out. Этот файл делается выпол-
няемым, если в процессе загрузки не было ошибок.
Указанные параметрами программы об'единяются в задан-
ной последовательности. Точкой входа для выходного мо-
дуля является начало первой программы (если не исполь-
зуется опция "-e").
Если какой-либо из параметров представляет собой биб-
лиотеку, эта библиотека просматривается только один
раз в тот момент, когда она встречается в списке пара-
метров. Загружаются только те программы, которые опре-
делены как неразрешенные внешние ссылки. Если подпрог-
рамма из библиотеки ссылается на другую подпрограмму
из той же библиотеки, то последняя должна находится в
11
AПK.00210-01 33 01-5
библиотеке после подпрограммы, которая на нее ссылает-
ся. Если первый член библиотеки имеет имя __.SYMDEF,
то считается, что он содержит каталог библиотеки, по-
лученный с помощью команды ranlib. В этом случае, все
ссылки будут успешно разрешены.
Символы "_etext", "_edata" и "_end" ("etext", "edata"
и "end" в языке Си) зарезервированы и, если на них
имеются ссылки, устанавливаются на первую ячейку над
программой, первую ячейку над инициализированными дан-
ными и первую ячейку над всеми данными соответственно.
Попытка переопределить эти символы приводит к ошибке.
Команда ld распознает несколько ключей. За исключением
ключа "-l", все они должны находится перед именами
файлов:
-d Вызывает определение общей памяти, даже если ус-
тановлен флaг "-r";
-a Следующий параметр рассматривается как имя точки
входа зaгpyжaeмoй пpoгpaммы; пo yмoлчaнию
иcпoльзyeтcя ячeйкa 0;
-l Этoт ключ являeтcя coкpaщeниeм имeни библиoтeки
/lib/libX.a, где "X" - строка. Если она не су-
ществует, команда ld пытается отыскать библиоте-
ку /usr/lib/libX.a. Поскольку осуществляется
пoиcк, мecтoнaxoждeниe "-l" являeтcя
cyщecтвeнным;
12
AПK.00210-01 33 01-5
-n Приводит к тому, что при выполнении выходного
файла тeкcтoвaя чacть бyдeт дocтyпнoй тoлькo для
чтeния и paздeлятьcя мeждy вceми пoльзoвaтeлями,
выпoлняющими этoт фaйл. Сегмент данных
перемещается на границу первых 4K, следующих за
тeкcтoвым ceгмeнтoм;
-o Параметр "имя" после опции "-o" используется в
качестве имeни выxoднoгo фaйлa ld вмecтo
"a.out";
-r Генерирует биты перемещения в выходном файле,
так что он может участвовать в последующем про-
гоне ld. Этот флаг предотвращает также оконча-
тельное определение общих символов и подавляет
диагностические сообщения относительно
нeoпpeдeлeнныx cимвoлoв;
-s Удаляет из результирующего файла таблицу симво-
лов и биты перемещения с целью экономии места
(ценой снижения полезности отладчиков). Эта ин-
формация может быть удалена также с помощью
кoмaнды strip;
-u Рассматривает следующий параметр как символ, ко-
торый вводится в качестве неопределенного в таб-
лицу символов. Это удобно для загрузки целиком
из библиотеки, поскольку первоначально таблица
символов пуста, а для загрузки первой пpoгpaммы
тpeбyeтcя нepaзpeшeннaя ccылкa;
13
AПK.00210-01 33 01-5
-X Сохраняет локальные символы, за исключением тех,
чьи имена начинаются с буквы "$". Этот ключ ис-
пользуется командой cc для отбрасывания сгенери-
рованных при обработке меток с сохранением при
этом символов, локальных для программы. B
тaблицy cимвoлoв пoмeщaютcя тoлькo внeшниe
cимвoлы;
-x Не помещает локальные (не .globl) символы в вы-
ходной файл. Эта опция экономит определенное
место в выходном файле.
ФАЙЛЫ:
/lib/lib*.a библиотеки
/usr/lib/lib*.a дополнительные библиотеки
a.out выходной файл
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
as, ar, cc, ranlib, ldover
14
AПK.00210-01 33 01-5
ИМЯ:
learn - обучение работе с системой.
ФОРМАТ:
learn [-справ.] [курс [урок [скор.]]]
ОПИСАНИЕ:
Команда learn предоставляет возможность теоретического
и практического обучения использованию системы ДЕМОС c
помощью ЭВМ. Для начала просто введите "learn". Прог-
рамма будет задавать вопросы, чтобы выяснить, чего вы
хотите. Вопросов можно избежать, указав название "кур-
са" обучения и номер последнего "урока", который вы
выполнили во время предыдущего сеанса. Вы можете также
указать параметр "скорость", который вам постоянно со-
общает learn вместе с номером выполненного урока. Если
в качестве "урока" указан "-", команда learn запраши-
вает к какому уроку следует перейти; это полезно при
отладке курсов обучения.
В настоящее время доступны следующие "курсы":
keyboard
работа с функциональной клавиатурой;
files основные команды ОС ДЕМОС;
morefiles
продолжение изучения команд ОС ДЕМОС;
C программирование на языке Си.
15
AПK.00210-01 33 01-5
Специальная команда "пока" завершает сеанс связи с
learn.
Ключ "-справочник" позволяет работать с курсами обуче-
ния, размещенными не в стандартном справочнике системы
learn.
ФАЙЛЫ:
/mnt/learn
ЗАМЕЧАНИЯ:
Основной эффект команды learn, заключается в том, чтo
oбyчeниe пpoвoдитcя нa мoдeли OC,нa тoй ee вepcии,
кoтopaя ceйчac установлена на ЭВМ. Во время первого
сеанса очень полезно, ocoбeннo для нeпpoгpaммиcтoв,
ecли pядoм бyдeт нaxoдитьcя специалист по системе.
При составлении некоторых уроков могли быть допущены
ошибки, иногда компонента в конкретной версии ОС рабо-
тает по-другому; такие уроки могут быть пропущены,
хотя требуется определенный навык для того, чтобы от-
личить допущенную обучаемым ошибку от "разночтения"
компонент.
16
AПK.00210-01 33 01-5
ИМЯ:
lex - генератор программ лексического анализа.
ФОРМАТ:
lex [-tvfn] [файл]...
ОПИСАНИЕ:
Команда lex генерирует программы, которые могут ис-
пользоваться для простого лексического анализа текста.
Входные файлы (по умолчанию - стандартный ввод) содер-
жат регулярные выражения, которые должны отыскиваться,
и действия, записанные на языке Си, которые должны вы-
полняться при нахождении этих выражений.
Генерируется исходная программа "lex.yy.с" на языке
Си, которая должна компилироваться следующим образом:
cc lex.yy.c -ll
При работе этой программы производится копирование не-
распознанных порций входных данных на выход, а также
выполнение соответствующих действий, описанных на язы-
ке Си, для каждого регулярного выражения, которое было
распознано.
Приведенная ниже программа на языке lex выполняет пре-
образование из верхнего регистра в нижний, удаляет
пробелы в конце строк и заменяет несколько пробелов на
один:
%%
17
AПK.00210-01 33 01-5
[A-Z] putchar(yytext[0]+'a'-'A');
[ ]+$
[ ]+ putchar(' ');
Команда имеют следующие параметры:
-t поместить результат в стандартный файл вывода, а
не в файл lex.yy.с;
-v выдать размеры внутренних таблиц;
-n не выдавать размеры таблиц (устанавливается по
умолчанию);
-f "быстрая" компиляция, не проводится упаковка ре-
зультирующих таблиц. Годится только для малых
программ.
-d включение отладочного режима компилятора (ключ
может задаваться только при использовании диаг-
ностического варианта lex).
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
yacc
18
AПK.00210-01 33 01-5
ИМЯ:
ln - создание альтернативных имен.
ФОРМАТ:
ln имя1 [имя2] ...[имя n] [d2]
ОПИСАНИЕ:
Один и тот же файл (вместе со своим размером, информа-
цией, относящейся к защите, и т.д.) может иметь нес-
колько альтернативных имен. Не существует способа от-
личить альтернативное имя данного файла от его исход-
ного имени, любые изменения в файле выполняются неза-
висимо от имени, под которым известен этот файл.
Koмaндa ln coздaeт для кaждoгo yкaзaннoгo фaйлa "имя
1",...,"имя н" aльтepнaтивнoe имя в cyщecтвyющeм
cпpaвoчникe "d2". Ecли в кaчecтвe аргументов команды
заданы "имя 1" и "имя 2", то для существующего файла
"имя 1" coздaeтcя aльтepнaтивнoe имя "имя 2" в тeкyщeм
кaтaлoгe.
ЗАМЕЧАНИЯ:
Создавать альтернативные имена справочников, или по-
мещать имена файлов в разных файловых системах запре-
щается.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
rm
19
AПK.00210-01 33 01-5
ИМЯ:
lock - блокировать терминал.
ФОРМАТ:
lock
ОПИСАНИЕ:
Команда lock запрашивает у пользователя пароль, затем
печатает на терминале "Again" и блокирует этот терми-
нал до тех пор, пока пароль не будет указан повторно.
Если пользователь забудет пароль, у него нет другой
возможности, кроме как зарегистрироваться где-то в
другом месте и завершить блокирующий процесс.
20
AПK.00210-01 33 01-5
ИМЯ:
logoff - выход из системы ДЕМОС.
ФОРМАТ:
logoff
ОПИСАНИЕ:
Команда logoff предназначена для выхода пользователя
из системы ДЕМОС. Выход из системы по команде logoff
происходит из любого уровня файловой системы ДЕМОС.
Признаком выхода из системы ДЕМОС служит изображение
на экране дисплея "заставки" с идентификацией СВМ ЕС.
21
AПK.00210-01 33 01-5
ИМЯ:
look - поиск строк в отсортированном списке.
ФОРМАТ:
look [-df] строка [файл]
ОПИСАНИЕ:
Команда look просматривает отсортированный "файл" и
печатает все строки, начинающиеся символами "строка".
Используется двоичный поиск. Опции "d" и "f" влияют на
сравнение, как и в sort:
d "словарный" порядок: только буквы, цифры, симво-
лы табуляции и пробелы участвуют в сравнении;
f Игнорируется регистр символов. Большие буквы
считаются при сравнении равными малым.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
sort, grep
22
AПK.00210-01 33 01-5
ИМЯ:
lorder - определить связи об'ектных файлов.
ФОРМАТ:
lorder файл ...
ОПИСАНИЕ:
Входная информация представляет собой один или нес-
колько об'ектных библиотечных или архивных файлов. В
результате работы получается список пар имен об'ектных
файлов. Первый файл пары ссылается на внешний иденти-
фикатор, определенный во втором. Выход может быть об-
работан командой tsort для нахождения такого порядка
размещения модулей в библиотеке, который обеспечивает
однопроходный поиск для ld.
Следующая строка предназначена для построения новой
библиотеки из существующих файлов ".o":
ar cr library `lorder *.o | tsort`
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
tsort, ld, ar
ЗАМЕЧАНИЯ:
имена об'ектных файлов как внутри, так и вне библи-
отек, должны иметь окончание ".o" - в противном случае
результат будет бессмысленным.
23
AПK.00210-01 33 01-5
ИМЯ:
lpq - выдaть cocтoяниe oчepeди к AЦПУ.
ФОРМАТ:
lpq
ОПИСАНИЕ:
Команда lpq выдает соотояние очереди файлов, ожидающих
вывода на АЦПУ. Каждый элемент очереди выдается, с
указанием имени данного файла, размера файла в симво-
лах, владельца и идентификационного номера. Идентифи-
катор полезен для удаления заданного входа из очереди
с помощью команды lprm.
ФАЙЛЫ:
/usr/spool/lpd/*
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
lpr, lprm
24
AПK.00210-01 33 01-5
ИМЯ:
lpr - постановка файла в очередь на печать.
ФОРМАТ:
lpr [-m] [-c] [-r] [-b заголовок] [имя...]
ОПИСАНИЕ:
Команда lpr вызывает занесение указанных файлов в оче-
редь на печать. Если файлы не указаны, считывается
стандартный файл ввода.
Ключи определяют следующие режимы выполнения команды:
-m после завершения печати файла пользователю посы-
лается сообщение с помощью mail;
-c по умолчанию, файлы, которые требуется выдать на
АЦПУ, копируются в справочник /tmp/spool/lpd - в
этом режиме в /tmp/spool/lpd появляется только
ссылка на файл и копирования не происходит;
-r после завершения печати указанные файлы удаляют-
ся;
-b По умолчанию, перед каждым файлом печатается за-
головок, который содержит имя пользователя, за-
пустившего данную команду и время выдачи. В этом
режиме заголовок дополняется словом, определен-
ным в параметре "заголовок", которое печатается
большими буквами в середине листа. Печатается не
более 14 символов "заголовка".
25
AПK.00210-01 33 01-5
ФАЙЛЫ:
/usr/spool/lpd/*
/usr/lib/lpd "демон" печати
/usr/lib/lpf фильтр для обработки
заголовков и подчеркиваний
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
lpq, lprm
ЗАМЕЧАНИЯ:
В режиме -c, при невожможности завести ссылку (исход-
ный файл находится в другой файловой системе), файл
все-таки копируется.
В данной версии не реализовано повторение печати файла
при сбое АЦПУ.
26
AПK.00210-01 33 01-5
ИМЯ:
lprm - удалить файл из очереди к АЦПУ.
ФОРМАТ:
lprm [идентификатор...] [имя-файла...] [владельца...]
ОПИСАНИЕ:
Команда lprm удаляет файл из очереди к АЦПУ. Идeнти-
фикaтop, имя-фaйлa или влaдeльцa кoнкpeтнoгo фaйлa из
oчepeди можно узнать с помощью команды lpq. Все файлы,
удовлетворяющие заданному условию, будут удалены.
Выдается идентификатор каждого удаленного из очереди
файла.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
lpr, lpq
ФАЙЛЫ
/usr/spool/lpd/*
27
AПK.00210-01 33 01-5
ИМЯ:
ls - выдать содержимое справочника.
ФОРМАТ:
ls [-1ACFRabcdfgilmnqrstux] имя ... l [ключи ls] имя
...
ОПИСАНИЕ:
Для каждого параметра, являющегося именем справочника,
команда ls выдает список входящих в него файлов и
справочников. Для каждого параметра, являющегося
файлом, команда ls повторяет его имя и сообщает всю
остальную затребованную информацию. По умолчанию вы-
ходная информация сортируется в алфавитном порядке.
Если параметры не указаны, выдается содержимое текуще-
го справочника.
Имеется три возможных формата выдачи. Выбираемый
формат зависит от того, направляется ли вывод на тер-
минал, а также может управляться с помощью ключей.
Стандартным форматом для выдачи на терминал является
вывод в несколько столбцов .Если вывод производится не
на терминал, по умолчанию выдается по одному имени в
строке. Кроме того, с помощью ключа "-m", может зада-
ваться формат, в котором имена файлов выдаются поперек
страницы, разделяясь символами ",". При вызове "l" ,
по умолчанию подразумевается ключ "-m".
Файлы, которые рассматриваются не как содержимое спра-
вочника, всегда сортируются поперек страницы, а не в
28
AПK.00210-01 33 01-5
столбцах таблицы сверху вниз. Это связано с тем, что
имена отдельных файлов могут иметь произвольную длину.
Имеется несколько ключей:
-l Выдавать "в длинном формате", указывая для каж-
дого файла его режим, число связей, владельца,
размер в байтах и время последней модификации.
Если файл является специальным файлом, поле раз-
мера будет содержать основной и дополнительный
номера устройства;
-t Отсортировать в соответствии со временем модифи-
кации (вначале с более поздним временем модифи-
кации) вместо обычной сортировки по именам;
-a Выдавать все имена (обычно имена файлов начина-
ющиеся с точки "." не выдаются);
-s Указать размер для каждого имени в блоках, вклю-
чая блоки косвенной адресации;
-d Если параметр является именем справочника, выда-
вать только его имя, а не содержимое (использу-
ется главным образом с "-l" для получения состо-
яния справочника);
-r Изменить порядок сортировки на противоположный,
чтобы получить файлы в обратном алфавитном по-
рядке или вначале более старые файлы;
-u Использовать время последнего доступа вместо
29
AПK.00210-01 33 01-5
времени последней модификации при сортировке
(-t) или распечатке (-l);
-i Указать в первой позиции сообщения для каждого
перечисляемого файла i-номер;
-f Приводит к тому, что каждый параметр интерпрети-
руется как имя справочника, и распечатывается
имя, находящееся в каждой позиции. Этот ключ
отключает ключи "-l", "-t", "-s" и "-r", и вклю-
чает ключ "-a"; порядок такой, в котором имена
находятся в справочнике;
-g Указать идентификатор группы вместо идентифика-
тора владельца при подробной выдаче ("-l");
-m Используется потоковый выходной формат;
-1 Используется формат с одним именем в строке,
например, при выводе на терминал;
-c Используется вывод в несколько столбцов, напри-
мер, при выводе в файл или в поток (pipe);
-q Вызывает печать символа "?" вместо неизобража-
емых символов в именах файлов; это обычно произ-
водится, если выходным устройством является тер-
минал;
-x Вызывает сортировку состоящей из нескольких
столбцов выдачи поперек страницы, а не сверху
вниз; такой формат является стандартным, если
30
AПK.00210-01 33 01-5
последним символом имени, с которым была вызвана
программа, является "x";
-A Bыдaютcя вce имeнa тeкyшeгo кaтaлoгa (aнaлoгичнo
"-a") кроме '.' и '..' ;
-F К именам справочников при выдаче добавляется
символ "/"; имена исполняемых файлов дополняются
символом "*";
-R Рекурсивная выдача содержимого всех встречающих-
ся справочников.
Статус файла, выдаваемый при указании ключа "-l", сос-
тоит из 11 символов, которые интерпретируются следу-
ющим образом. Первым символом является:
d Если данный файл является справочником;
b Если данный файл является специальным файлом
блочного типа;
c Если данный файл является специальным файлом
символьного типа;
- Если данный файл является простым файлом.
Следующие 9 символов интерпретируются как три набора
по три символа в каждом. Первый набор указывает полно-
мочия владельца, следующий - полномочия других пользо-
вателей той же группы, и последний - полномочия всех
прочих пользователей. В каждом таком наборе три симво-
31
AПK.00210-01 33 01-5
ла указывают полномочия соответственно для чтения, за-
писи и выполнения данного файла как программы. Для
справочника полномочие "выполнение" интерпретируется
как разрешение поиска в каталоге заданного файла. Пол-
номочия задаются следующим образом:
r если файл доступен для чтения;
w если файл доступен для записи;
x если файл доступен для выполнения;
- если указанный вид доступа не разрешается.
Символ полномочия для выполнения группой указывается
как "s", если этот файл имеет режим установки иденти-
фикации группы; аналогично, символ полномочия для вы-
полнения пользователем указывается как "s", если файл
имеет режим установки идентификации пользователя.
Последним символом режима (обычно "x" или "-") являет-
ся "t", если установлен бит режима 1000.
Когда распечатываются размеры файлов в справочнике,
выдается общее количество блоков, включая блоки кос-
венной адресации.
ЗАМЕЧАНИЯ:
Символы табуляции и новой строки в именах файлов
рассматриваются как печатаемые символы.
Предполагается, длина строки устройства вывода равна
32
AПK.00210-01 33 01-5
80 позициям. Ширина столбцов составляет обычно 15 сим-
волов. Если заданы ключи "-i" или "-s", ширина состав-
ляет 20 символов. Если одновременно заданы ключи "-i"
и "-s", ширина составляет 25 символов. В любом слу-
чае, если задан ключ "-l" или "-n", предполагается,
что в строке помещается информация только об одном
имени.
Установка ключей в зависимости от того, является ли
выводное устройство терминалом, нежелательна, так как
ls -s ! lpr
значительно отличается от
ls -s
Выбор ширины столбцов является весьма ограниченным для
терминалов, которые могут выполнять табуляцию.
33
AПK.00210-01 33 01-5
ИМЯ:
m4 - макропроцессор.
ФОРМАТ:
m4 [файл ...]
ОПИСАНИЕ:
Макропроцессор m4 предназначен для использования в ка-
честве препроцессора языков ФОРТРАН, Си и других.Каж-
дый из файлов, указанных в параметрах, обрабатывается
по очереди. Если параметры отсутствуют или параметром
является "-", считывается стандартный файл ввода.
Обработанный текст записывается в стандартный файл вы-
вода.
Формат макровызова:
имя(пар1,пар2,...,парN)
Символ "(" должен следовать непосредственно после име-
ни макроопределения. Если символ "(" отсутствует после
имени, считается, что макро не имеет параметров. При
перечислении параметров начальные пробелы, символы та-
буляции и новой строки, не заключенные в кавычки, иг-
норируются. Имена макроопределений могут состоять из
букв, цифр и символов подчеркивания "_", причем первым
символом не должна быть цифра.
Можно отказаться от немедленной подстановки значения
макроимени. Для этой цели соответствующие последова-
тельности символов заключаются в апострофы (`'). При
34
AПK.00210-01 33 01-5
каждом просмотре макропроцессора один уровень апостро-
фов удаляется.
Когда обнаруживается имя макроопределения, его пара-
метры последовательно обрабатываются. Вычисление мак-
роопределений обычно продолжается при просмотре пара-
метров, и любые запятые или правые скобки, которые
могут появиться в значении вложенного вызова, имеют
такое же действие, как и исходный текст. После подста-
новки значение макро помещается обратно во входной
поток и просматривается повторно.
Возможно задание своих макро с совпадающими именами,
однако после этого их начальный смысл теряется. Как
правило встроенные макро выдают значение "пусто" (если
в описании не сказано иначе). Краткое описание встро-
енных макроопределений м4, которые представляют собой
входной язык макропроцессора:
define(имя,значение)
Второй параметр устанавливается в качестве зна-
чения макроимени, указаного в первом параметре.
Каждое употребление $n в замещающем тексте, где
n - цифра, заменяется на n-ый параметр. Параметр
0 представляет собой имя макро. Отсутствующие
параметры заменяются пустыми строками;
undefine(`имя')
Удаляет определение макро, указанного в парамет-
ре;
35
AПK.00210-01 33 01-5
ifdef(`имя',парам2,парам3)
Если первый параметр определен, значением явля-
ется второй параметр, если нет - третий. Если
третий параметр отсутствует, значением является
пусто;
changequote(l,r)
Заменяет символы экранирования (апострофы) на
первый и второй параметры. Вызов changequote без
параметров восстанавливает исходные значения
(т.е. `');
divert(n)
Макропроцессор обслуживает до 10 выводных
файлов, пронумерованных от 0 до 9. Конечный
вывод представляет собой конкатенацию этих
файлов в порядке их номеров. По умолчанию инфор-
мация выдается в стандартный файл вывода (файл с
номером 0). Макро divert заменяет текущий выход-
ной файл на указанный в параметре (цифровая
строка). Вывод, который направляется в файл но-
мером, не входящим в диапазон 0-9, отбрасывает-
ся;
undivert(n1,n2 ...)
Вызывает немедленный вывод текста из всех ука-
занных файлов (или из всех файлов, если парамет-
ры отсутствуют). Текст может быть выведен в дру-
гой файл. При выводе информация в файле уничто-
36
AПK.00210-01 33 01-5
жается;
divnum
Возвращает значение текущего выходного файла;
dln Считывает и отбрасывает символы до следующего
символа новой строки включительно;
ifelse(a,b,c,d)
Имеет три или более параметров. Если первый па-
раметр совпадает со вторым, третий параметр ис-
пользуется в качестве значения. Если это не так
и если имеется более четырех параметров, данный
процесс повторяется для параметров 4, 5, 6 и 7.
В противном случае значением является либо чет-
вертая строка, либо, если она отсутствует -
пусто;
incr(число)
Возвращает значение своего параметра, увеличен-
ное на 1. Исходная строка цифр рассматривается
как десятичное число;
eval(выражение)
Выдает значение указанного выражения. При вычис-
лении используется 32-разрядная целая арифмети-
ка. Операции включают в себя +, -, *, /, %, ^
(возведение в степень), отношения, скобки;
len(строка)
Возвращает количество символов в "строке";
37
AПK.00210-01 33 01-5
index(строка_1,строка_2)
Возвращает номер символа "строки_1" с которого
начинается вхождение "строки_2". Счет символов
начинается с нуля. Если в "строке_1" вхождений
"строки_2" не обнаруженно, возвращается -1;
substr(s,i,n)
Возвращает подстроку строки "s", начинающуюся с
i-той позиции, длиной в "n" символов. Счет сим-
волов начинается с нуля. Если третий параметр
отсутствует, считается, что подстрока продолжа-
ется до конца строки "s";
translit(s,f,t)
Перекодирует строку "s", заменяя символы, входя-
щие в строку "f", соответствующими символами
строки "t";
include(имя)
Заменяется на содержимое файла с указанным "име-
нем";
sinclude(имя)
Аналогично include, за исключением того, что ес-
ли файл недоступен, диагностика не выдается и
процесс работы макропроцессора не прерывается;
syscmd(команда)
Выполняет указанную "команду" системы. Значение
не возвращается;
38
AПK.00210-01 33 01-5
maketemp(...XXX...)
Заменяет символы XXX идентификатором текущего
процесса;
errprint(строка_1,строка_2,...)
Выдает указанные строки в стандартный файл диаг-
ностических сообщений;
dumpdef(имя_1,имя_2...)
Выдает текущие имена и определения для указанных
параметров (или все, если параметры отсутству-
ют);
39
AПK.00210-01 33 01-5
ИМЯ:
mail - почтoвая служба.
ФОРМАТ:
mail [+] [-i] [адресат]...
mail [+] [-i] -f файл
ОПИСАНИЕ:
команда mail предназначена для реализации обмена сооб-
щениями между пользователями посредством аппарата
"почтовых ящиков". Почтовым ящиком пользователя, обыч-
но является файл в справочнике /usr/spool/mail с име-
нем аналогичным имени пользователя, под которым тот
зарегистрирован в системе. Применяя команду mail,
пользователь получает возможность просмотреть
собственный "почтовый ящик" или дополнить чужой своим
сообщением. Если в команде не указан "адресат", выда-
ется почта пользователя, сообщение за сообщением, в
порядке "последним пришел - первым вышел". Когда пере-
числены "адресаты", mail считывает стандартный ввод до
конца файла или строки, содержащей лишь ".", и добав-
ляет его к "почтовому ящику" каждого "адресата". В на-
чале сообщения указывается имя отправителя, дата
отправления и "почтовый штемпель". В качестве "почто-
вого штемпеля" используются строки, начинающиеся сим-
волом ">". Обычно, "адресат" - имя пользователя, под
которым тот зарегистрирован в системе, если необходимо
отправить сообщение пользователю находящемуся в другой
системе (на другой машине), то перед параметром "адре-
40
AПK.00210-01 33 01-5
сат" следует указать "!имя_системы" .
Ключи задают следующие режимы работы команды:
+ изменить порядок просмотра сообщений на режим
"первым пришел - первым вышел";
-i игнорировать прерывания;
-f использовать следующий за ним параметр в ка-
честве имени файла, альтернативного "почтовому
ящику".
Во время просмотра "почтового ящика", после печати
очередного сообщения программа выдает на терминал знак
вопроса "?" и ожидает команду. Допустимы следующие от-
веты:
<return>
перейти к следующему сообщению без изменения со-
держимого почтового ящика;
d удалить сообщение и перейти к следующему;
p повторно напечатать текущее сообщение;
- вернуться к предыдущему сообщению;
s[файл]...
сохранить сообщение в файлах с указанными имена-
ми (по умолчанию, используется файл mbox в рабо-
чем справочнике пользователя);
41
AПK.00210-01 33 01-5
w[файл]...
сохранить сообщение без заголовка в файлах с
указанными именами (по умолчанию - mbox);
m[пользователь]...
направить сообщение перечисленным пользователям
(по умолчанию - себе);
EOT (<конец передачи> - <cntrl-D>)
поместить непросмотренную почту обратно в почто-
вый ящик и завершить просмотр;
q то же, что и EOT;
!команда
вызвать интерпретатор команд SHELL и выполнить
указанную команду.
Любой другой ответ приведет к выдаче приведенного выше
списка команд. Сообщение о наличии почты выдается при
регистрации.
ФАЙЛЫ:
/etc/passwd сведения о пользователях сис-
темы
/usr/spool/mail/* "почтовые ящики"
mbox сохраненная почта
/tmp/ma* временные файлы
dead.letter не отправленный по почте текст
42
AПK.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
AПK.00210-01 33 01-5
ИМЯ:
make - программа сборки компонент.
ФОРМАТ:
make [-f командный_файл] [ключ] ... Файл ...
ОПИСАНИЕ:
Команда make выполняет сборку компонент из набора ис-
ходных файлов. Результатом работы make может являться
готовая программа, получаемая из множества файлов, от-
чет или статья, создаваемая с помощью системы подго-
товки документации, библиотека функций и т.п.
Для использования make, разрабатывается специальная
программа сборки, под управлением которой выполняются
все необходимые действия для получения требуемого ре-
зультата. Программа сборки (командный файл make) со-
держит информацию о порождаемых об'ектах, дерево зави-
симостей, описывающее из каких файлов получается
об'ект, и команды языка SHELL для создания об'ектов.
Имя командного файла указывается после ключа "-f", ес-
ли вместо параметра "командный_файл" указан "-", ис-
пользуется стандартный файл ввода. При задании в вызы-
вающей строке нескольких файлов с ключами "-f" в ка-
честве описания используется конкатенация записей в
указанных файлах.
Компонента создается, если она не существует, или если
хотя бы один из файлов (от которых она прямо или кос-
44
AПK.00210-01 33 01-5
венно зависит) изменялся после последней сборки.
Командный файл содержит набор операторов, которые оп-
ределяют условия и правила порождения компонент. Опе-
ратор начинается со списка имен требуемых об'ектов,
после которого стоит один или два символа "двоеточие"
и, возможно, следует список исходных файлов. Текст
после точки с запятой, а также все последующие строки,
начинающиеся символом табуляции, представляют собой
команды языка SHELL, которые должны выполняться для
создания компоненты.
При записи имен порождаемых и требующихся файлов до-
пустимо использование регулярных выражений (использу-
ются метасимволы "*", "[-]", "?", интерпретация кото-
рых совпадает с принятой в языке SHELL; ).
Остаток строки, начинающийся символом "#", считается
комментарием и не рассматривается программой make.
Следующий командный файл содержит правила создания
программы "pgm", получаемой в результате сборки файлов
"a.o" и "b.o", которые, в свою очередь, зависят от
файлов "a.c", "b.c" и "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
AПK.00210-01 33 01-5
cc -c b.c
В данном примере каждый из порождаемых об'ектов зави-
сит от существования двух компонет, и при отсутствии
или в результате модификации любой из них, для
получения об'екта выполняются одинаковые действия.
Существует возможность задания нескольких правил по-
рождения для одного и того же об'екта. В этом случае,
в качестве разделителя можно использовать два символа
"двоеточие":
aa :: x.c y.c
echo ОБНОВЛЕН ФАЙЛ НА ЯЗЫКЕ СИ
aa :: x.y
echo ОБНОВЛЕН ФАЙЛ НА ЯЗЫКЕ YACC
Командный файл может содержать вызовы макропеременных,
для задания значений которых используются строки вида:
имя = значение
При выполнении командного файла все конструкции:
$(имя)
или
${имя}
замещаются "значением" соответствующей переменной
"имя". Если "имя" состоит из одного символа, то в мак-
ровызове скобки можно не использовать.
Значения макропеременных можно устанавливать не только
46
AПK.00210-01 33 01-5
в самом командном файле, но и при вызове make. Если
одна и та же макропеременная одновременно определяется
и в комадном файле и в вызове, используется значение,
заданное при вызове. Так, если командный файл содержит
строки:
TEXT = ЗАДАНИЕ 2
progr:
echo ${TEXT}
запуск команды make без параметров приведет к выдаче
текста "ЗАДАНИЕ 2". Если этот же командный файл запус-
кается командой:
make "TEXT = ПРИМЕР 1"
в результате ее работы будет получено сообщение
"ПРИМЕР 1".
Существует несколько специальных макропеременных, зна-
чения которых устанавливаются самой программой make:
$* Имя создаваемой компоненты без суффикса;
$? Список модифицированных файлов, приводящих к вы-
полнению команд данного правила;
$@ Полное имя создаваемого файла;
$< Список исходных файлов;
$$ Символ "$".
47
AПK.00210-01 33 01-5
Необходимый об'ект можно получить из какого-либо ис-
ходного файла одним из четырех способов:
- непосредственно задать имена и правила порожде-
ния;
- ввести общее правило для имен с указанными суф-
фиксами;
- задать правило ".DEFAULT";
- использовать стандартные соглашения о преобразо-
ваниях.
В операторе, непосредственно указывающем метод получе-
ния одного файла из другого, явно задаются полные име-
на порождаемого и исходного файлов. Например, получе-
ние файла "a.К" из "a.М":
a.К : a.М
mv a.M a.K
В общем правиле указываются суффиксы и задаются коман-
ды, преобразующие файлы с одним суффиксом в файлы с
тем же именем, но другим суффиксом. Например, правило
получения файлов с суффиксом ".o" из файлов оканчива-
ющихся на ".с" может иметь вид:
.c.o :
cc -c $<
Кроме того, в командном файле необходимо указать, что
48
AПK.00210-01 33 01-5
".o" и ".c" являются суффиксами и задать порядок при-
менения общих правил преобразования (для случаев,
когда несколько общих правил описывают переход от
разных исходных файлов к одному порожденному). Это де-
лается с помощью оператора:
.SUFFIXES: .o .c
Если в списке порождаемых об'ектов при правиле указана
конструкция ".DEFAULT", то это правило выполняется
всякий раз, когда программа make не имеет информации о
методе получения требуемого файла. Например, если в
командном файле задано правило:
.DEFAULT:
cp dummy $@
будут создаваться все недостающие файлы (каждый из ко-
торых получается с помощью копирования файла dummy).
Во время работы командного файла можно использовать
набор стандартных правил получения компонент, имеющий-
ся в системе. Так, первый из приведенных примеров
можно было зaпиcaть знaчитeльнo кopoчe:
pgm: a.o b.o
cc a.o b.o -o pgm
a.o b.o: incl.h
При использовании стандартных правил, существует воз-
можность изменения имен некоторых компиляторов и клю-
49
AПK.00210-01 33 01-5
чей, с которыми они вызываются. Имена компиляторов за-
даются макропеременными:
AS Ассемблер (as);
CC Си-компилятор (cc);
RC Фортран-77 (f77);
LEX Генератор лексических анализаторов Lex (lex);
YACC Компилятор компиляторов Yacc (yacc).
Ключи стандартных компиляторов являются значениями
следующих макропеременных:
CFLAGS Ключи Си-компилятора (cc);
FFLAGS Ключи компилятора Фортран-77 (f77);
LFLAGS Ключи генератора программ лексического ана-
лиза lex;
YFLAGS Ключи компилятора yacc;
LOADLIBES Список используемых библиотек.
При использовании стандартных правил используется сле-
дующее соглащение о трактовке суффиксов:
.out Файл вывода;
.o Об'ектный файл;
.c Исходный файл на языке Си;
50
AПK.00210-01 33 01-5
.f Исходный файл на Фортране;
.e Исходный файл на языке Efl;
.r Исходный файл на Ратфоре;
.y Исходный файл на Yacc;
.l Исходный файл на Lex;
.s Исходный файл на Ассемблере;
.p Исходный файл на Паскале.
Для выполнения каждой командной строки SHELL запуска-
ется отдельный процесс. Поэтому при использовании мак-
ропеременных требуется принимать специальные меры,
например, оформлять группы команд, использующие общие
макро в виде составной команды SHELL.
Если в командном файле не был задан специальный вход
".SILENT", или первым символом команды не был символ
"@", строка при выполнении распечатывается. Кроме
того, при вызове make для установки режима подавления
выдачи исполняемых команд можно использовать ключ
"-s".
Создание файла с помощью программы make может быть
случайно или преднамеренно прервано. Если недоделанный
файл не является справочником, и в списке порождаемых
об'ектов наряду с именем этого файла указано специаль-
ное имя ".PRECIOUS", файл уничтожается.
51
AПK.00210-01 33 01-5
Существует возможность работы с файлами записанными в
архив. При этом оценивается время последней модифика-
ции файла (а не время создания архива или время записи
файла в архив). Имя находящегося в архиве файла может
указываться, как в списке порождаемых об'ектов, так и
среди имен, от которых зависит создание об'ектов.
Кроме имени файла, при работе с библиотеками об'ектных
модулей, можно указывать имена функций. Для того, что-
бы отличать имена компонент, записанных в архив, ис-
пользуется специальная форма записи имен:
a(b) означает, что файл с именем "b" хранится в
архиве "a";
a((_b)) означает внешнее имя функции "_b" в архиве
"a".
Если код завершения какой-либо команды не равен нулю,
выполнение программы make обычно прекращается. Ошибка
такого рода может быть проигнорирована. С этой целью в
список порождаемых об'ектов вводится специальное имя
".IGNORE", либо перед выполняемой командой указывается
дефис "-".
Команда make может быть вызвана со следующими ключами:
-d Отладочный режим. В этом режиме выдается дополни-
тельная информация о выполнении командного файла;
-f Следующий параметр является именем командного
файла; по умолчанию - "makefile" или "Makefile".
52
AПK.00210-01 33 01-5
Если этот ключ не задан, а в справочнике при-
сутствуют оба имени, в качестве командного файла
используется "makefile";
-i Режим игнорирования ошибочных кодов завершения
команд. Эквивалентно специальному макро
".IGNORE:";
-k Если код возврата команды не равен нулю, прекра-
тить обработку текущей ветви, и перейти к обра-
ботке следующих ветвей дерева, не зависящих от
текущей ветви;
-n Распечатать, но не выполнять команды, предназна-
ченные для сборки программы;
-p Распечатка версии исходного дерева;
-q Осуществляет проверку указанного об'екта и
возвращает код завершения 0, если он требует мо-
дификации, или -1 в противном случае;
-r Эквивалентно заданию макро ".SUFFIXES:" без спис-
ка. Отменяет действие стандартных правил порожде-
ния;
-s Эквивалентно специальному макро ".SILENT:" - от-
мена распечатки командных строк;
-S Прервать выполнение программы при ошибочном за-
вершении какой-либо команды;
53
AПK.00210-01 33 01-5
-t Обновить дату модификации об'екта, не выполняя
каких-либо команд;
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
sh, touch
ЗАМЕЧАНИЯ:
Команды, которые выполняются языком управления задани-
ями (например cd), не должны переходить на новую
строку в командном файле.
54
AПK.00210-01 33 01-5
ИМЯ:
mesg - открыть или закрыть прием сообщений.
ФОРМАТ:
mesg [n] [y]
ОПИСАНИЕ:
Команда mesg с параметром "n" запрещает другим пользо-
вателям производить запись на терминал данного пользо-
вателя. Команда mesg с параметром "y" восстанавливает
это право. При отсутствии параметров команда mesg ин-
формирует о текущем состоянии без изменения его.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
write
ДИАГНОСТИКА:
Код возврата равен 0, если сообщения могут принимать-
ся, 1, если нет, и 2 при ошибке.
55
AПK.00210-01 33 01-5
ИМЯ:
mkdir - создать справочник.
ФОРМАТ:
mkdir имяспр ...
ОПИСАНИЕ:
Koмaндa mkdir coздaeт yкaзaнныe cпpaвoчники co
cтaтycoм 755. Стандартные входы "." для самого спра-
вочника и ".." для порождающего справочника создаются
автоматически.
Для выполнения команды mkdir требуется право записи в
порождающем каталоге.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
rm
ДИАГНОСТИКА:
Команда mkdir выдает код возврата 0, если все справоч-
ники были успешно созданы. В противном случае печата-
ется диагностика и возвращается ненулевой код.
56
AПK.00210-01 33 01-5
ИМЯ:
mv - переместить файл.
ФОРМАТ:
mv файл1 файл2
mv файл ... справочник
ОПИСАНИЕ:
Команда mv перемещает "файл1" в "файл2".
Если "файл2" уже существует, он удаляется перед пере-
писыванием "файла1". Если статус файла "файл2" запре-
щает запись, но пользователю разрешена запись в данный
справочник, кoмaндa mv пeчaтaeт peжим и cчитывaeт
cтpoкy из cтaндapтнoгo ввoдa, ecли эта строка начина-
ется символом "y", происходит перезапись. В остальных
случаях происходит выход из mv.
Вторая форма команды приводит к тому, что один или
несколько "файлов" переписываются в "справочник" под
своими исходными именами.
Команда mv отказывается переписывать файл в самого
себя.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
cp, chmod
ЗАМЕЧАНИЯ:
Если "файл1" и "файл2" расположены в разных файловых
системах, команда mv должна скопировать файл и удалить
57
AПK.00210-01 33 01-5
исходный. В этом случае именем владельца становится
имя копирующего процесса, а связи с другими файлами
(альтернативные имена) теряются.
Справочники могут перемещаться только в пределах одной
и той же файловой системы.
ЗАМЕЧАНИЯ:
Команда mv должна бы иметь флаг "-f" аналогично коман-
де rm, для подавления запроса на подтвержение в слу-
чае, если целевой файл существует и защищен от записи.
58
AПK.00210-01 33 01-5
ИМЯ:
newgrp - сменить идентификатор группы.
ФОРМАТ:
newgrp идентификатор_группы
ОПИСАНИЕ:
Команда newgrp изменяет идентификатор группы выдавшего
ее пользователя, аналогично команде login. В результа-
те выполнения команды остается зарегистрированным этот
же пользователь, его текущий справочник не изменяется,
однако определение полномочий доступа к файлам произ-
водится на основании нового идентификатора группы;
Пароль запрашивается в том случае, если группа имеет
пароль, а сам пользователь - нет;
Команда newgrp выполняется интерпретатором команд.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
login
59
AПK.00210-01 33 01-5
ИМЯ:
nice, nohup - запустить команду понизив приоритет.
ФОРМАТ:
nice [-число] команда [параметры]
nohup команда [параметры]
ОПИСАНИЕ:
Команда nice выполняет указанную команду с низким при-
оритетом. Если присутствует параметр "число", приори-
тет численно увеличивается (большие числа означают
меньшие приоритеты) на эту величину до граничного зна-
чения 20. Значение "числа" по умолчанию равно 10.
Супер-пользователь может выполнять команды с приорите-
том выше обычного посредством указания отрицательного
приоритета, например, "--10".
Nohup выполняет указанную команду, игнорируя сигналы
останова и завершения от управляющего терминала. При-
оритет увеличивается на 5. Команда nohup должна быть
вызвана с "&" для того, чтобы предотвратить ее реакцию
на прерывание или присвоение ею вводимой информации
следующего пользователя, который регистрируется на
этом же терминале.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
sh, csh
ДИАГНОСТИКА:
Команда nice возвращает код возврата входящей в нее
60
AПK.00210-01 33 01-5
команды.
ЗАМЕЧАНИЯ:
Команды nice и nohup являются специфическими для sh.
Если вы используете csh, команды, выполняемые с "&",
автоматически защищаются от сигналов останова от уп-
равляющего терминала. Имеется встроенная команда
nohup, которая обеспечивает защиту от завершения, од-
нако она не переадресовывает вывод в файл nohup.out.
Команда nice встроена в csh с синтаксисом, несколько
отличающимся от описанного здесь - "nice+10" устанав-
ливает положительный приоритет, а "nice-10" устанавли-
вает используемый супер-пользователем отрицательный
приоритет.
61
AПK.00210-01 33 01-5
ИМЯ:
nm - выдать список имен.
ФОРМАТ:
nm [-agnopru] [файл ...]
ОПИСАНИЕ:
Команда nm распечатывает список имен (таблицу симво-
лов) каждого из указанных в списке параметров
об'ектных файлов. Если параметр представляет собой ар-
хив, будет распечатываться таблица символов для каждо-
го об'ектного файла архива. Если "файл" не указан,
распечатываются символы из файла "a.out".
Каждому символическому имени предшествует его значение
(пробелы, если оно не определено) и одна из букв u
(неопределенное), a (абсолютное), t (символ текстового
сегмента), d (символ сегмента данных), b (символ сег-
мента bss) или c (общий символ). Если символ является
локальным (не внешним), эта буква печатается на нижнем
регистре. Вывод сортируется по алфавиту.
Возможны следующие опции:
-g Выдавать только глобальные (внешние) символы;
-n Отсортировать по значениям, а не по алфавиту;
-o Указывать имя файла или элемента архива в каждой
строке вывода, а не только один раз;
-p Не сортировать, печатать в порядке таблицы сим-
62
AПK.00210-01 33 01-5
волов;
-r Отсортировать в обратном порядке;
-u Печатать только неопределенные символы.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
ar, ar, a.out
63
AПK.00210-01 33 01-5
ИМЯ:
od - форматирование информации просмотра.
ФОРМАТ:
od [-format] [file] [[+]offset[.][b]
[label]]
ОПИСАНИЕ:
Команда od выдает в стандартный файл вывода содержимое
файла "file" в указанном формате. Если формат не
задан, то вывод производится по формату "o". Информа-
ция выдается с указанного места (по умолчанию - с на-
чала файла) до конца файла.
Первый параметр ("format") может содержать следующие
ключи:
a Интерпретировать байты как символы кода КОИ-8.
Неграфические символы обозначаются их именами,
все остальные байты, значения которых не входят в
код КОИ-8, выдаются в восьмеричном виде. Если од-
новременно задан ключ "p", то байты, значения ко-
торых имеют четный паритет - подчеркиваются. Если
задан ключ "P" - подчеркиваются символы имеющие
нечетный паритет;
b Выдавать восьмеричные значения байтов;
c Интерпретировать байты как символы кода КОИ-8.
Некоторые неграфические символы обозначаются так
же, как и в языке Си: - пусто; - новая
64
AПK.00210-01 33 01-5
строка; возврат на шаг;7 - возврат карет-
ки; - перевод формата; - табуляция. Все ос-
тальные байты, значения которых не входят в код
КОИ-8, выдаются в восьмеричном виде;
d Выдавать слова (short) в виде десятичных чисел
без знака;
f Выдавать длинные слова (long) в виде вещественных
чисел;
h Выдавать слова (short) в виде шестнадцатиричных
чисел без знака;
i Выдавать слова (short) в виде десятичных чисел со
знаком;
l Выдавать длинные слова (long) в виде десятичных
чисел со знаком;
o Выдавать слова (short) в виде восьмеричных чисел;
s[N] Интерпретировать последовательность байтов как
текстовую строку, завершающуюся символом "пусто"
(' '). Число N задает минимальную длину просмат-
риваемой последовательности, по умолчанию N равно
3;
v Выдавать все значения. По умолчанию, вместо пос-
ледовательности повторяющихся строк выдается
символ '*' в первой позиции;
65
AПK.00210-01 33 01-5
w[N] Этот ключ определяет для каждой входной строки
число обрабатываемых байт. Если этот ключ не
указан, то из каждой входной строки считывается
16 байт. Если N опущено используется 32 байта;
x Выдавать слова (short) в виде шестнадцатеричных
чисел.
Параметр "file" определяет имя файла, который должен
быть просмотрен. Если этот параметр не задан, исполь-
зуется стандартный файл ввода.
Параметр "offset" задает смещение в файле, откуда
должна начинаться выдача. Этот параметр обычно
рассматривается как восьмеричное число байтов. Если
после него стоит ".", смещение интерпретируется в де-
сятичном коде. Если после него стоит "b", смещение ин-
терпретируется в блоках по 512 байт. Если параметр
"file" отсутствует, параметру "offset" должен пред-
шествовать знак "+".
Аргумент "label" является псевдо-адресом для первого
просматриваемого байта. Он задается в скобках "()"
после задания смещения и имеет тот же синтаксис, что и
смещение.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
adb
ЗАМЕЧАНИЯ:
Имя файла не должно начинаться с символа "+". Допуска-
66
AПK.00210-01 33 01-5
ется только одно имя файла.
67
AПK.00210-01 33 01-5
ИМЯ:
opr - вывод файлов ДЕМОС в область накопления МВМ.
ФОРМАТ:
opr [-h] [-u идвм] [-v идвм] [-p копия] [-n имя_фай-
ла] [-c класс] [-t тег] [-Т заголовок] [файл
...]
Описание:
Командой opr обеспечивается вывод файлов ДЕМОС в оче-
редь файлов накопления.
Режимы файлов накопления для данных устройств устанав-
ливаются командой МВМ SPOOL, однако команда opr изме-
няет эти режимы на основании своих параметров для вво-
димых файлов.
Следующие режимы файлов накопления меняются командой
opr:
-h эта опция указывает, что для печатающего устрой-
ства устанавливается режим работы HOLD, при ко-
тором создаваемые на устройстве при выполнении
команды opr файлы накопления будут помещаться в
состоянии задержки;
идвм указывает идентификатор ВМ, которой предназнача-
ется файл накопления. По умолчанию идентификатор
ВМ выбирается из 5-ого поля соответствующей
пользователю записи файла /етc/passwd;
68
AПK.00210-01 33 01-5
копия определяет количество копий файлов накопления,
kоторое должно быть получено при выводе этих
файлов на реальное устройство вывода;
имя_файла
указывает, что созданному файлу накопления, для
указанных файлов ДЕМОС, следует присвоить иден-
тификатор файла в формате, принятом в ПДО или ОС
ЕС;
класс класс накопления, в который должен быть помещен
созданный файл накопления. По умолчанию файл на-
копления помещается в очередь класса А, если
задан вводной файл в команде opr, в противном
случае - в очередь класса Т;
-u указывает, что файлы накопления печатающего
устройства, создаваемые после выполнения коман-
ды, должны передаваться на перфокарточное
устройство ввода ВМ, идентификатор которой
представлен в опции;
-v указывает, что файлы накопления печатающего
устройства, создаваемые после выполнения коман-
ды, должны передаваться на АЦПУ ВМ, идентифика-
тор которой представлен в опции;
-t предназначена для занесения представленной в оп-
ции информации в teг файла накопления;
-T заголовок, формируемый разделитель печатных
69
AПK.00210-01 33 01-5
файлов;
файл имя файла в ДЕМОС.
ФАЙЛЫ:
/etc/passwd
поиск идентификатора ВМ
/tmp/opr????
временный файл
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
qprt
ЗАМЕЧАНИЯ:
Работа ВМ ДЕМОС в многопользовательском режиме проис-
ходит с отсоединенным пультом ВМ, поэтому изменение
режимов накопления для конкретного файла возможно
только командой opr.
Собственно операцию пересылки файла в область накопле-
ния и постановки его в очередь к реальному печатающему
устройству осуществляет следующий процесс
/rtc/spooler/opred, инициируемый командой opr.
70
AПK.00210-01 33 01-5
ИМЯ:
passwd - изменить входной пароль.
ФОРМАТ
passwd [имя]
ОПИСАНИЕ:
Данная команда изменяет (или устанавливает) пароль,
соответствующий указанному имени пользователя (по
умолчанию принимается текущий идентификатор пользова-
теля).
Программа запрашивает сначала старый пароль, а затем
новый. Пользователь должен указать оба. Новый пароль
должен быть введен дважды с целью предотвращения оши-
бок.
Новый пароль должен иметь длину по крайней мере четыре
символа, если он использует достаточно широкий алфа-
вит, и по крайней мере шесть символов, если все симво-
лы указываются в одном и том же регистре. Эти правила
ослабляются, если вы достаточно настойчивы.
Изменить пароль могут только владелец данного имени
или супер-пользователь; владелец должен доказать, что
он знает старый пароль.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
login, crypt
71
AПK.00210-01 33 01-5
ИМЯ:
PC - вызов компилятора с языка Паскаль
ФОРМАТ:
PC [ключ]...файл...
ОПИСАНИЕ:
Команда РС предназначена для вызова компилятора с язы-
ка Паскаль. Она воспринимает параметры трех типов: па-
раметры, имена которых заканчиваются на '.Р', считают-
ся исходными программами на языке Паскаль; они компи-
лируются , и каждая об'ектная программа остается в
файле, имя которого получается из имени соответству-
ющего исходного файла после замены ".Р" на ".О". Файл
".О" удаляется, если одна Паскаль-программа компилиру-
ется и загружается в одном проходе.
Об'ектные программы,полученные после действия команды
РС совместимы с об'ектными программами, полученными с
помощью команды СС (т.е. программы Паскаля и Си-
программы могут взаимно вызывать друг друга без спе-
циального интерфейса).
Сообщения об ошибках компиляции и выполнения помещают-
ся в файл с суффиксом ".L".
В команде РС могут задаваться следующие ключи:
-C oтмeняeт фaзy cбopки и вызывaeт гeнepaцию
oб'eктнoгo кoдa дaжe тoгдa, кoгда кoмпилиpyeтcя
тoлькo oднa пpoгpaммa;
72
AПK.00210-01 33 01-5
-Dимя=опр -Dимя
oпpeдeляeт yкaзaннoe "имя" для пpeпpoцeccopa.
Ecли oпpeдeлeниe нe зaдaнo, дaннoe имя
oпpeдeляeтcя кaк "1";
-S кoмпилиpyeт пepeчиcлeнныe Пacкaль-пpoгpaммы и
ocтaвляeт peзyльтaт paбoты в видe acceмблepнoгo
тeкcтa в cooтвeтcтвyющиx фaйлax c cyффикcaми
".S";
-N выдaeт cпиcoк кoмaнд, гeнepиpyeмыx PC, нo нe
выпoлняeт иx;
-P зaпycкaeт тoлькo пpeпpoцeccop для пepeчиcлeнныx
Пacкaль-пpoгpaмм, peзyльтaт работы которого по-
мещается в файл с соответствующим именем и суф-
фиксом ".I".
-Uимя yдaляeт вce нaчaльныe oпpeдeлeния yкaзaннoгo
имeни;
-Iсправ
пoиcк фaйлoв "#include" в cпpaвoчникe "cпpaв",
ecли oни нe были нaйдeны в тeкyщeм cпpaвoчникe
или в /usr/src/include;
ocтaльныe пapaмeтpы являютcя либo coвмecтимыми c
Пacкaлeм или Cи об'ектными программами , полученными
обычно в результате предшествующих выполнений команд
РС или СС, либо программ,совместимых с Паскалем и Си.
73
AПK.00210-01 33 01-5
Эти программы , вместе с результатами указанных компи-
ляций, загружаются ( в заданном порядке ), давая в
результате выполняемую программу с именем a.out;
кoмпилятop Пacкaля-8000 вepcии 1.0 имeeт нeкoтopыe
oтличия oт cтaндapтнoгo Паскаля: множества ограничены
64 элементами , рутины лексического уровня n ограни-
чены размером в (7-n)*4К байтов, где 1<n<6 (редко вы-
зывает проблему), число откpытыx фaйлoв нe дoлжнo
пpeвышaть 15. Moжeт иcпoльзoвaтьcя paздeльнaя компиля-
ция. Обеспечен вызов препроцессора, как в команде СС.
ФАЙЛЫ:
Файл.Р выходной файл
Файл.L файл ошибок
Файл.О об'ектный файл
a.out загрузочный выход
/tmp/pcc?????? временный выход препроцессора
/tmp/pcc??????.s временный вход ассемблера
/lib/pasc компилятор Паскаля
/lib/pmp препроцессор
/lib/prt0.0 динамический стартер Паскаля
/lib/crt0.0 динамический стартер
/lib/libp.a библиотека Паскаля
74
AПK.00210-01 33 01-5
/lib/libc.a библиотека Си
Дополнительные ссылки :
CC,LD
Имеется отдельное описание языка Паскаль.
ДИАГНОСТИКА:
Диагностические сообщения, выдаваемые самим компиля-
тороm Паскаля, являются достаточно понятными. В неко-
торых случаях сообщения могут генерироваться Ассембле-
ром или редактором связей.
Ошибки выполнения диагностируются с указанием того,
что вызвало их и выдачей дампа всех программ Паскаля,
работавших в момент возникновения ошибки. Дамп включа-
ет в себя имя программы, точку вызова ее, значения
всех локальных скалярных переменных. Дамп должен огра-
ничивать необходимость вызова отладчика dcon.
75
AПK.00210-01 33 01-5
ИМЯ:
pif - форматирование текста.
ФОРМАТ:
pif [ключ] ... [файл] ...
ОПИСАНИЕ:
Команда pif форматирует текст из указанных файлов для
печати на устройствах типа пишущей машинки.
Если нет ни одного аргумента "файл" или задан параметр
"-", читается стандартный файл ввода. До аргументов
"файл" могут в любом порядке встретиться следующие
ключи:
-oсписок
Печатаются страницы, номера которых перечислены
в "списке" в виде чисел или диапазонов чисел,
разделенных запятыми. Диапазон N-M означает
страницы с номерами от N до M; запись -N в нача-
ле "списка" означает страницы с первой по N;
запись N- в конце "списка" означает страницы с
номером от N и до конца;
-nN Номер первой генерируемой страницы N;
-sN Остановка после каждых N страниц. Pif будет ос-
танавливаться перед каждой порцией из N страниц
(по умолчанию N=1) для того, чтобы можно было
заправить или заменить бумагу, и продолжит рабо-
ту по получении символа новой строки;
76
AПK.00210-01 33 01-5
-mимя Считывание файла /usr/lib/tmac/tmac.mимя, содер-
жащего определения макрокоманд, перед считывани-
ем форматируемых файлов;
-ran Установка регистра (односимвольного) a в N;
-i Считывание стандартного ввода после того, как
прочитаны вводные файлы;
-q Установка режима одновременного ввода-вывода по
запросу rd;
-Tимя Подготовка вывода для указанного терминального
устройства;
e Создание слов с одинаковым интервалом в соот-
ветствующих строках, используя всю разрешающую
способность терминала;
h Использование выходной табуляции во время гори-
зонтального позиционирования для того, чтобы
увеличить скорость вывода и уменьшить время на
счет выходных символов. Предполагается, что та-
буляционные установки имеют ширину восемь номи-
нальных символов.
ФАЙЛЫ:
/usr/lib/tmac/tmac.*
Стандартные макрофайлы
/usr/lib/term/*
Таблицы терминалов
77
AПK.00210-01 33 01-5
/tmp/ta*
Временные файлы
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
tbl, col
78
AПK.00210-01 33 01-5
ИМЯ:
pli - обработка программ PL/1.
Формат:
pli [-clgirsq ] файл ...
ОПИСАНИЕ:
Команда pli представляет собой пользовательский интер-
фейс с командой send. Назначение команды состоит в
том, чтобы сформировать и передать задание в ОС ЕС для
обработки программы транслятором с языка PL/1. Вводным
файлом команды является собственно текст пpoгpaммы
PL/1, кoтopый оформляется в задание ОС ЕС на основе
флажков команды. Оформленное задание помещается во
временном фaйлe, иcпoльзyeмoм в кaчecтвe файла ввода
команды send.
Недостающие параметры должны быть введены в ответ на
подсказку команды. Уточненные параметры сохраняются
между сеансами в файле профиля пользователя
$home/.../pli. Командой обеспечиваются следующие воз-
можности обработки:
- компиляция одной или более программ;
- компиляция и редактирование программ;
- кoмпиляция, peдaктиpoвaниe и выполнение одной
или более программ;
- указание библиотеки макроопределений для исполь-
79
AПK.00210-01 33 01-5
зования средств препроцессора в компиляции;
- пользователь освобождается, насколько это воз-
можно от составления операторов ЯУЗ задания ОС
ЕС;
- выдается подсказка о необходимой информации, ис-
пользуя полноэкранный ввод/вывод;
- введенная информация сохраняется со времени пос-
леднего выполнения команды и эти данные исполь-
зуются в качестве значений по умолчанию (хотя
всегда могут быть переназначены).
Флажки команды устанавливают следущие режимы работы
команды:
-c выполнить только компиляцию файлов (режим дей-
ствует по умолчанию);
-l выполнить компиляцию и редактирование файлов;
-g кoмпилиpoвaть, peдaктиpoвaть и выполнить создан-
ную программу;
-i распределить стандартный ввод в качестве источ-
ника ввода PL/1 программы;
-r использовать содержимое файла $home/.../pli
вместо подсказки пользователю;
-s отобразить сформированное задание для ОС ЕС на
cтaндapтный вывoд, вмecтo вызова send;
80
AПK.00210-01 33 01-5
-q вместо вызова команды send вызвать команду gath.
Требуется явное указание вводного файла в команде
только в том случае если не указан флаг i.
ФАЙЛЫ:
/usr/lib/model/jobcard модель оператора JOB для
команды send.
/usr/lib/model/plic модель процедуры компиляци-
ии.
/usr/lib/model/rlicl модель процедуры компиля-
ции/ редактирования.
/usr/lib/model/pliclg модель процедуры компиля-
ции/ редактирования/выполнения.
/imp/pli* временный рабочий файл.
$home/.../pli файл профиля пользователя.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
send
81
AПK.00210-01 33 01-5
ИМЯ:
pp - выделение прописных букв при печати на АЦПУ
ФОРМАТ:
pp [-N]
ОПИСАНИЕ:
Команда pp является фильтром для печати текстов на
АЦПУ без строчных букв. Команда выделяет в тексте про-
писные буквы, используя наложение символов. Предпола-
гается, что печатающее устройство правильно понимает
управляющий символ "7" - возврат каретки. Число нало-
жений может быть указано в параметре. Пример использо-
вания команды:
pr -2 text " pp -3 >/dev/lp
ЗАМЕЧАНИЯ:
Возможно, что при печати на матричное устройство типа
DZM было бы эффективнее использовать для печати с на-
ложением oпepaцию "вoзвpaт нa шaг нaзaд", oднaкo такая
возможность не предусмотрена.
82
AПK.00210-01 33 01-5
ИМЯ:
pr - печать файлов.
ФОРМАТ:
pr [ключи]...[файл]...
ОПИСАНИЕ:
Команда pr печатает содержимое одного или нескольких
файлов. Вывод разделяется на страницы, заголовок кото-
рых содержит дату, имя файла или указанный заголовок и
номер страницы. Если параметр "файл" отсутствует, ко-
манда pr распечатывает стандартный ввод.
Ключи относятся ко всем последующим файлам и могут пе-
реустанавливаться между файлами:
-n В начале каждой строки печатать ее номер в файле;
-iN В начале каждой строки печатать ее "сквозной"
номер (начиная от первой строки первого файла).
Если после ключа задано число (N), нумерация начи-
наестся с N;
-nс Сгенерировать вывод, состоящий из "nс" столбцов;
+нс Начать печать со страницы "нс";
-h Следующий параметр считается заголовком страниц;
-wN Для целей многоколоночного вывода, принять ширину
страницы равной N символов вместо 72 по умолчанию;
-f Для дополнения страницы до заданного размера листа
83
AПK.00210-01 33 01-5
использовать код "переход на новый лист" (по умол-
чанию выдается необходимое число кодов "переход на
новую строку");
-lN Принять длину страницы равной N строк вместо 66 по
умолчанию;
-t Не печатать по 5 строк в начале и в конце каждой
страницы, которые обычно вставляются;
-sC Разделять столбцы одиночным символом "C", а не со-
ответствующим количеством пробелов. Отсутствующий
символ "C" рассматривается как символ табуляции;
-m Распечатать все файлы одновременно, каждый в своем
столбце.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
cat, more
ДИАГНОСТИКА:
Во время вывода на терминал с помощью команды pr диаг-
ностические сообщения не выводятся.
84
AПK.00210-01 33 01-5
ИМЯ:
PRETTYP-красивая печать программы на Паскале
ОПИСАНИЕ:
SH peфopмaтиpyeт пpoгpaммy нa Пacкaлe co cтaндapтнoгo
вxoдa, peзyльтaт подается на стандартный выход,
ДИАГНОСТИКА:
Диагностические сообщения отсутствуют
ПРИМЕЧАНИЕ:
*Не допускается табуляция.
*Непредсказуемый результат в случае синтаксически не-
верной программы.
*Вставляется строка пробелов в начало выхода.
*Если чиcлo cимвoлoв в cтpoкe пpeвышaeт 72, cтpoкa
paзбивaeтcя и пepeнocитcя, что само по себе может
вызвать нежелаемый результат.
85
AПK.00210-01 33 01-5
ИМЯ:
ps - опрос состояния процессов.
ФОРМАТ:
ps [acgklrstuvwx# [список-имен]]
ОПИСАНИЕ:
Команда ps выдает информацию об активных процессах.
Для получения наиболее подробной информации используй-
те команду "ps axlgw". Для получения быстрой фотогра-
фии работы системы рекомендуется использовать "ps au".
Параметрам может предшествовать знак минус, не оказы-
вающий никакого влияния. Могут быть заданы следующие
ключи (по умолчанию, устанавливается режим "cx"):
a Запрашивает информацию обо всех процессах с тер-
миналами (обычно отображаются только собственные
процессы);
c Приводит к тому, что вместо параметров отобража-
ется только поле comm. (поле comm представляет
собой окончание полного имени последнего файла,
выполненного процессом). Этот ключ несколько ус-
коряет выполнение команды ps и уменьшает об'ем
вывода. Это также более надежно, поскольку про-
цесс не может изменить его вершину;
e Выдает не только команды но и контекст в котором
они запущены, (т.е. со значениями всех перемен-
ных языка управления заданиями);
86
AПK.00210-01 33 01-5
g Выдает информацию обо всех процессах. Без этого
ключа команда ps распечатывает только "интерес-
ные" процессы. Процессы считаются "неинтересны-
ми", если они являются головными в группе про-
цессов или их параметры начинаются с "-". Это
обычно позволяет устранить выдачу информации о
процессах интерпретаторов команд и getty;
k Этот ключ используется для послесчетной отладки
системы;
l Задает "длинный" формат вывода. Короткая форма
содержит только имя пользователя, индентификатор
процесса, терминал, время выполнения процесса и
сокращенную запись командной строки;
r<t>-<string>-
Циклический режим работы ps. Команда повторяет
выдачу на экран терминала каждые <t> секунд,
причем перед выдачей посылается последователь-
ность символов <string> для очистки экрана.
Выдается информация только о процессах, находя-
щихся в оперативной памяти. Данный режим исполь-
зуется в командной процедуре "/etc/psloop", ко-
торая периодически отображает на экране состо-
яние операционной системы;
s Выдавать размер стека ядра для каждого процесса.
Этот ключ может использоваться только с короткой
формой листинга и предназначен для разработчиков
87
AПK.00210-01 33 01-5
системы;
t имя-терминала
Ограничивает вывод процессами, чьи управляющие
терминалы имеют указанное имя (которое должно
задаваться так, как они печатаеются командой ps,
например, t3 для tty3, tc0 для консоли, td0 для
ttyd0, t? для процессов, не имеющих терминалов,
и т.д.). Эта опция должна задаваться последней;
u Генерируется вывод, ориентированный на пользова-
теля. Он включает имя владельца процесса, иден-
тификатор процесса, процент недавно использован-
ного времени центрального процессора (еще не ре-
ализовано), значение приоритета, размер, размер
резидентной части, терминал, использованное вре-
мя центрального процессора и команду;
v Выдается версия вывода, содержащая статистику,
относящуюся к виртуальной памяти. Полями вывода
являются флаги, идентификатор процесса, терми-
нал, время центрального процессора, время рези-
дентного состояния, время ожидания, младшая
часть сбросов страниц, старшая часть сбросов
страниц, виртуальный размер процесса, размер ре-
зидентной части, размер резидентной части при
подкачке, виртуальный размер текстовой части,
размер резидентной части текста, среднее коли-
чество сбросов страниц в секунду за последние
88
AПK.00210-01 33 01-5
несколько секунд, а также команда. Используются
следующие флаги: r означает работу, s означает
ожидание, w означает выгрузку, d означает ожида-
ние диска (ввод-вывод), и p означает ожидание
страницы. Резидентное время - это промежуток
времени в памяти или на диске; в настоящее время
"127" является максимальным. Резидентный размер
- это количество выделенных страниц физической
памяти;
w Сообщает команде ps о том, что вы используете
терминал с длинной строки 132 символа. По умол-
чанию считается, что ваш терминал имеет 80
столбцов. Эта информация используется для опре-
деления того, какая длина команд должна распеча-
тываться. Ключ w может быть повторен: "ww", при
этом вся команда, до 128 символов, будет распе-
чатываться независимо от длины строки терминала;
x Запрашивает информацию даже о процессах, не име-
ющих терминалов;
# Может указывать номер процесса (указанный здесь
как #), при этом вывод ограничивается данными об
этом процессе. Этот ключ также должен быть пос-
ледним.
Второй параметр сообщает команде ps о том, где искать
образ памяти при указании опции "k". По умолчанию ис-
пользуется имя из переменной среды "KERNEL", а если
89
AПK.00210-01 33 01-5
она не найдена, то имя "/demos". Третий параметр
представляет собой имя файла свопинга. Если задан чет-
вертый параметр, он считается файлом, содержащим спи-
сок имен системы.
Вывод сортируется по терминалам, а затем - по иденти-
фикаторам процессов.
Длинная форма листинга печатается столбцами и содер-
жит:
F Флаги, связанные с процессом;
S Состояние процесса: о - несуществующий, s -
"спящий", w - ожидающий, r - выполняющий, i -
промежуточный, z - завершенный, т - остановлен-
ный;
UID Идентификатор пользователя владельца процесса;
PID Идентификатор данного процесса; в некоторых слу-
чаях можно удалить процесс, если вы знаете его
истинное имя;
PPID Идентификатор порождающего процесса;
CPU Использование процесса для планирования;
PRI Приоритет процесса; большие числа означают мень-
шие приоритеты;
NICE Используется для вычисления приоритета;
90
AПK.00210-01 33 01-5
ADDR Адрес памяти процесса, если он является рези-
дентным, в противном случае - адрес на диске;
SZ Размер образа памяти процесса в блоках;
RSS Размер ризидентной части (часть страниц, к кото-
рым процесс может обратиться без сбросов) про-
цесса;
WCHAN Событие, которое ожидает процесс; если пробел,
процесс выполняется. tty - управляющий терминал
для данного процесса;
TIME Суммарное время выполнения для данного процесса;
COMAND
Команда и ее параметры.
Процесс, который уже завершился, имеет, однако, порож-
дающий процесс, который еще не ожидал его, отмечается
<defunct>(<закончившийся>). Команда ps старается опре-
делить имя файла и параметры, указанные при создании
процесса, путем исследования памяти или области сво-
пинга. Этот метод в своей сущности является несколько
ненадежным, и в любом случае процесс может разрушить
эту информацию, так что на эти имена нельзя слишком
полагаться.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
kill
ЗАМЕЧАНИЯ:
91
AПK.00210-01 33 01-5
Во время работы команды ps ситуация может измениться;
полученная картина является лишь некоторым приближени-
ем к реальной.
92
AПK.00210-01 33 01-5
ИМЯ:
pwd - выдать имя рабочего справочника
ФОРМАТ:
pwd
ОПИСАНИЕ:
Команда pwd выдает полное имя рабочего (текущего)
справочника.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
cd
93
AПK.00210-01 33 01-5
ИМЯ:
PXREF - перекрестные ссылки Паскаля
ФОРМАТ:
PXREF
ОПИСАНИЕ:
PXREF команда принимает исходный текст программы на
Паскале со стандартного входа и выводит на стан-
дартный выход перекрестные ссылки. Информация о перек-
рестных ссылках делится на три части: листинг об'явле-
ний, перекрестные ссылки рутин и перекрестные ссылки
всего остального. Каждый идентификатор перекрестной
ссылки сопровождается именем рутины и номером строки,
где он встретился.
94
AПK.00210-01 33 01-5
ИМЯ:
q, ind, autolog, mo - выполнить команду МВМ.
ФОРМАТ:
q аргумент...
ind [user]
autolog идвм пароль [данные]
mo
ОПИСАНИЕ:
Команды МВМ q, ind, autolog, mo (без параметров) не
оказывают влияние на работу виртуальной машины ДЕМОС,
поэтому они доступны рядовому пользователю. Выходом
этих команд распределяется файл стандартного вывода.
Команда монтирования mo с параметрами доступна только
супер-пользователю.
ФАЙЛЫ:
/dev/vcf?
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
vcf, cpcmd, cpmode
Формат и параметры этих команд приводятся в документах
СВМ "Команды монитора ВМ ", "Управление виртуальной
машиной".
ДИАГНОСТИКА:
Сообщение 'command too long' означает превышение 132
95
AПK.00210-01 33 01-5
символов вводной строкой параметров команды.
96
AПK.00210-01 33 01-5
ИМЯ:
ranlib - создание каталога библиотечного архива
ФОРМАТ:
ranlib архив1 ...
ОПИСАНИЕ:
Команда ranlib предназначена для записи или обновления
каталога входов в архивах об'ектных файлов (то есть в
библиотеках программ). По команде "ranlib" в начало
архива, сформированного командой "ar", записывается
файл "__.SYMDEF", содержащий каталог библиотеки. Заг-
рузчик "ld" использует каталог для ускорения загрузки;
кроме того, в этом случае загружаются сразу все прог-
раммы из данной библиотеки (независимо от того, в
каком порядке они записаны). Для записи используется
команда "ar", при этом должно быть достаточно свобод-
ного места в справочнике "/tmp".
ЗАМЕЧАНИЯ:
Если какой либо об'ектный файл был записан в библиоте-
ку после создания каталога командой "ranlib", то есть
библиотека обновлялась после записи "__.SYMDEF", заг-
рузчик "ld" выдает предупредительное сообщение
"__.SYMDEF out of date" и игнорирует файл "__.SYMDEF".
При этом возможно появление неопределенных внешних
имен из за того, что при загрузке из библиотеки без
каталога "__.SYMDEF" библиотека просматривается после-
довательно, причем только один раз. Такая же ситуация
97
AПK.00210-01 33 01-5
возникнет, если просто переписать библиотеку командой
"cp". Для ycтpaнeния нecooтвeтcтвия дaт нeoбxoдимo
пoвтopить кoмaндy "ranlib".
98
AПK.00210-01 33 01-5
ИМЯ:
red - пoлиэкpaнный peдaктop тeкcтoв.
ФОРМАТ:
red [-ключи] имя_фaйлa [нoмep_cтpoки]
red [-ключи]
red [-ключи] -
red [-ключи] -r фaйл_пpoтoкoл
ОПИСАНИЕ:
Peдaктop red пpeднaзнaчeн для peдaктиpoвaния и
пpocмoтpa фaйлoв в экpaннoм peжимe c пoмoщью
тepминaлoв EC-7920 и coвмecтимыx c ними. Oн пoзвoляeт
пpocмaтpивaть нa экpaнe тepминaлa oдин или нecкoлькo
фaйлoв, peдaктиpoвaть фaйлы c иcпoльзoвaниeм yпpaвля-
ющиx клaвиш тepминaлa и кoмaнд peдaктopa, пepeнocить
инфopмaцию из фaйлa в фaйл и пpoвoдить дpyгиe oпepaции
peдaктиpoвaния. Peдaктop aнaлoгичeн пo фyнкциям
peдaктopy "red" для OC ДEMOC/CM и пoдpoбнo oпиcaн в
pyкoвoдcтвe пpoгpaммиcтa ("Диaлoгoвaя eдинaя мoбильнaя
oпepaциoннaя cиcтeмa. Pyкoвoдcтвo пpoгpaммиcтa. Пoли-
экpaнный peдaктop тeкcтoв RED.").
Peдaктop вызывaeтcя c пoмoщью кoмaнды "red" в oднoм из
cлeдyющиx фopмaтoв:
red [-ключи] имя_фaйлa [нoмep_cтpoки]
Haчaть peдaктиpoвaниe фaйлa "имя_фaйлa",
ycтaнoвив oкнo нa cтpoкy "нoмep_cтpoки"; ecли
нoмep нe yкaзaн, выcвeчивaeтcя нaчaлo фaйлa.
99
AПK.00210-01 33 01-5
red [-ключи]
Пpoдoлжить peдaктиpoвaниe c тoгo cocтoяния, в
кoтopoм был зaвepшeн пpeдыдyщий ceaнc paбoты c
дaннoгo тepминaлa.
red [-ключи] -
Пoвтopить ceaнc peдaктиpoвaния фaйлoв пocлe cбoя
cиcтeмы или peдaктopa.
red [-ключи] -r фaйл_пpoтoкoл
Пoвтopить ceaнc peдaктиpoвaния, cчитaв пpoтoкoл
из yкaзaннoгo фaйлa.
Peжим paбoты peдaктopa зaдaeтcя c пoмoщью нaбopa
"ключeй", кaждoмy из кoтopыx cooтвeтcтвyeт oднa
лaтинcкaя бyквa. Kлючи измeняютcя c пoмoщью cтpoки
oпиcaния ключeй видa "-нaбop_бyкв+нaбop_бyкв", гдe
любaя пoлoвинa cтpoки мoжeт oтcyтcтвoвaть. Oпиcaниe
ключeй мoжeт зaдaвaтьcя:
1. в apгyмeнтe кoмaнды в видe "red --l+s ..."
(oбpaтитe внимaниe, чтo пepвый "-" являeтcя
пpизнaкoм cooтвeтcтвyющeгo apгyмeнтa кoмaнды, a
втopoй oзнaчaeт "oтмeнa ключa l");
2. c пoмoщью пepeмeннoй csh REDKEYS, нaпpимep:
setenv REDKEYS "+l"
3. c пoмoщью кoмaнды peдaктopa, нaпpимep:
100
AПK.00210-01 33 01-5
<APГ>-w<BBOД>
чтo oзнaчaeт:
(ПФ7)-W(BBOД)
Boзмoжныe ключи:
l - paбoтaть тoлькo c бoльшими бyквaми (peжим LCASE)
s - пpи вывoдe нa тepминaл cимвoлы "{", "}" и т.п.
изoбpaжaть c пoмoщью пapы cимвoлoв (ввoдятcя oни тaк
вceгдa);
t - нe вcтaвлять тaбyляции вмecтo пpoбeлoв.
w - paзpeшeниe зaпиcи в тeкyщий фaйл.
z - нe интepпpeтиpoвaть пycтыe cимвoлы нa экpaнe кaк
пpoбeлы (пo yмoлчaнию нyлeвыe cимвoлы ввoдятcя c
тepминaлa кaк пpoбeлы);
S - нe выcвeчивaть экpaн пpи пoвтope ceaнca пocлe
cбoя.
Пo yмoлчaнию ycтaнaвливaeтcя peжим "-ls"; ecли нa
тepминaлe нe ycтaнoвлeн peжим "lcase", и "+ls" в
пpoтивнoм cлyчae. Cлeдyeт имeть в видy, чтo пpи cмeнe
peжимoв "l" и "s" в пpoцecce paбoты нeoбxoдимo
пepeвыдaть экpaн, нaжaв "CTPH ЭKP".
Bвoд кoмaнд ocyщecтвляeтcя c пoмoщью фyнкциoнaльныx
101
AПK.00210-01 33 01-5
клaвиш тepминaлa EC-7920. Paзмeщeниe кoмaнд выбpaнo
тaк, чтo oнo пpaктичecки coвпaдaeт c paзмeщeниeм
кoмaнд нa дoпoлнитeльнoй цифpoвoй клaвиaтype тepминaлa
"Элeктpoникa-15-ИЭ" нa CM ЭBM. Heкoтopыe oтличия
cвязaны c тeм, чтo кaждaя клaвишa мoжeт ввoдить 3
paзныe кoмaнды, в зaвиcимвoти oт "peгиcтpa ввoдa",
кoтopый ycтaнaвливaeтcя c пoмoщью клaвиш "ПД2" и "ПД3"
(для coвмecтимocти c CM ЭBM мoжнo тaкжe иcпoльзoвaть
для этoй цeли "ПФ8"). Taблицa кoмaнд пpивeдeнa в фaйлe
"/usr/lib/re.std", кoтopый выcвeчивaeтcя пpи нaжaтии
клaвиши "ПФ10" (кoмaндa "ycтaнoви_фaйл").
Paзмeщeниe кoмaнд нa клaвиaтypy 7920
-----пд2--------пф1---------пф2---------пф3------peгиcтp:
! peгиcтp 2 ! +лиcт ! вcтaвить ! взять ! - 1
! peгиcтp 1 ! -лиcт ! yбpaть ! пoлoжить ! - 2
! peгиcтp 1 ! тaб нaзaд ! - cтpoки ! тaб впepeд! - 3
102
AПK.00210-01 33 01-5
-----пд3--------пф4---------пф5---------пф6------
! регистр 3 ! пoдвecти к! вcт пpoбeл! yбp cимвoл! - 1
! фикcaция 3! coзд oкнo ! ycт тaб ! зaп фaйл ! - 2
! peгиcтp 1 ! oкнo влeвo! в нaчaлo !oкнo впpaвo! - 3
----------------пф7---------пф8---------пф9------
! ! apгyмeнт ! peгиcтp 2 ! + пoиcк ! - 1
! ! ! peгиcтp 1 ! - пoиcк ! - 2
! ! ! + cтpoки ! *** ! - 3
----------------пф10--------пф11--------пф12-----
! ! peд фaйл ! yбpaть ! пoлoжить ! - 1
! ! cлeд oкнo ! пayзa ! oтвeт ! - 2
! ! выпoлни ! *** ! *** ! - 3
-------------------------------------------------
--cтиpaниe---
! oчиcтить и!
! пoвтopить !
! движeниe !
! oкнa !
--выз.тecтa--
! !
! выxoд !
! !
-------------
Pиc. 1.
Ocнoвныe oтличия peдaктopa oт вepcии для CM ЭBM:
1. Bмecтo кoмaнды "peжим вcтaвки" ввeдeнa кoмaндa
103
AПK.00210-01 33 01-5
"вcтaвить пpoбeлы", кoтopaя вcтaвляeт в тeкyщee
мecтo cтpoки пpoбeлы (пo yмoлчaнию 4, для
измeнeния чиcлa пpoбeлoв нyжнo ввecти
<APГ>чиcлo<BCTABИTЬ>). Для вcтaвки/yдaлeния
cимвoлoв из cтpoки мoжнo пoльзoвaтьcя либo
aвтoнoмными вoзмoжнocтями тepминaлa, либo
кoмaндaми "вcт пpoбeл", "yбp. cимвoл", кoтopыe в
oтличиe oт aвтoнoмныx кoмaнд тepминaлa
вдвигaют/выдвигaют тeкcт из зa пpaвoй гpaницы
экpaнa тepминaлa.
2. Для пepexoдa к peжимy yкaзaния кypcopoм из ввoдa
apгyмeнтa нaжмитe "BBOД" или ввeдитe oднy из
кoмaнд yпpaвлeния кypcopoм
3. Oбpaтнyю чepтy пpи ввoдe нeoбxoдимo вceгдa
yдвaивaть.
4. Для ввoдa/вывoдa нeтeкcтoвыx cимвoлoв иcпoль-
зyeтcя кoмбинaция cимвoлoв видa " 07".
5. Ecли apгyмeнт кoмaнды нe yмeщaeтcя в пoлe ввoдa,
eгo мoжнo ввecти зa нecкoлькo paз, нaжимaя
"<APГ>" пocлe ввoдa oчepeднoй чacти пapaмeтpa.
6. Для пepeмeщeния oкнa ввepx/вниз или впpaвo/влeвo
дocтaтoчнo пoдвecти кypcop к cooтвeтcтвyющeй
гpaницe экpaнa и нaжaть "BBOД".
B peдaктop ввeдeны кoмaнды "пayзa" и "oтвeт", кoтopыe
пoзвoляют зaпиcaть в пpoтoкoл ceaнca пayзy 5 ceкyнд
104
AПK.00210-01 33 01-5
или oжидaниe нaжaтия клaвиши "ввoд" и пpeднaзнaчeны
для нaпиcaния yчeбнoгo пpoтoкoлa paбoты peдaктopa.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
rpl(1)
ЗАМЕЧАНИЯ:
Для пoвтopa ceaнca пocлe cбoя нeoбxoдимo, чтoбы в
cпpaвoчникe "/tmp" были ocтaвлeны фaйлы c имeнaми
"rett*" и "resv*". B имeнa paбoчиx фaйлoв peдaктopa
дoбaвляeтcя имя пoльзoвaтeля, взятoe из пepeмeннoй
"USER", либo нoмep пoльзoвaтeля, ecли этa пepeмeннaя
нe зaдaнa..
ФAЙЛЫ
/tmp/rett*.имя - пpoтoкoл paбoты peдaктopa;
/tmp/resv*.имя - cocтoяниe peдaктopa пpи выxoдe из
нeгo;
/tmp/retm*.имя - paбoчий фaйл.
105
AПK.00210-01 33 01-5
ИМЯ:
refft, crreff - получение таблицы использования иден-
тификаторов.
ФОРМАТ:
refft <список файлов>
crreff <файл>
ОПИСАНИЕ:
Команды refft и crreff служат для получения таблицы
использования идентификаторов в программе или комплек-
се программ на Си. Параметром команды crreff является
имя файла, содержащего исходную программу на языке Си,
если имя файла не задано, читается стандартный ввод.
Команда читает исходный текст программы на Си и выдает
таблицу идентификаторов в следующем формате:
число имя файл строка строка ...
Для каждого идентификатора, выдается "число" вхожде-
ний, его "имя", "файл" и список "строк", в которых он
встречается.
Команда refft составляет аналогичную таблицу для прог-
раммы, занимающей несколько файлов; в этом случае для
каждого идентификатора выдается несколько списков
строк, по одному для каждого файла.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
ctags
106
AПK.00210-01 33 01-5
ЗАМЕЧАНИЯ:
Команда refft на самом деле является командным файлом
на SHELL и использует команду crreff в специальном ре-
жиме (флаг "-j").
107
AПK.00210-01 33 01-5
ИМЯ:
rev - перевернуть строки файла
ФОРМАТ:
rev [файл]...
ОПИСАНИЕ:
Команда rev копирует указанные файлы в стандартный
файл вывода, меняя на противоположный порядок следова-
ния символов в каждой строке. Если не указан ни один
файл, информация берется из стандартного файла ввода.
108
AПK.00210-01 33 01-5
ИМЯ:
rline - чтение одной строки
ФОРМАТ:
rline
ОПИСАНИЕ:
Команда rline считывает одну строку из стандартного
ввода и выдает ее в стандартный вывод. Команда исполь-
зуется в CSHELL для ввода с терминала, например:
#
echo "Enter devise type set dev=`rline`
109
AПK.00210-01 33 01-5
ИМЯ:
rm, rmdir - yдaлить фaйлы (cпpaвoчники)
ФОРМАТ:
rm [-f] [-r] [-i] [-] файл...
rmdir справочник ...
ОПИСАНИЕ:
Команда rm удаляет из справочника ссылки на один или
несколько файлов.
Если некоторая ссылка является последней ссылкой на
данный файл, этот файл уничтожается. Для удаления
файла из справочника требуется право записи в данный
справочник, но не требуются ни право записи в данный
файл, ни право чтения файла.
Если пользователь не имеет права записи в файл, а
стандартным файлом ввода является терминал, выдается
запрос на подтверждение операции и считывается строка
стандартного ввода. Если эта строка начинается симво-
лом "y", файл удаляется, в противном случае файл оста-
ется. Никакие вопросы не задаются, если задан ключ
"-f".
Если указанный файл является справочником, печатается
сообщение об ошибке. При использовании ключа "-r" ре-
курсивно уничтожаются файлы из этого справочника и сам
справочник.
При указании ключа "-i" (интерактивно) команда rm за-
110
AПK.00210-01 33 01-5
дает вопрос о необходимости удаления каждого файла, а
вместе с ключом "-r" - нужно ли проверять каждый спра-
вочник.
Команда rmdir удаляет ссылки на указанные справочники.
При этом справочники должны быть пустыми.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
unlink
ЗАМЕЧАНИЯ:
Могут возникнуть вредные последствия при неумышленном
выполнении чего-нибудь вроде "rm .*"
Глубина вложенности справочников при использовании "rm
-r" не должна быть слишком большой.
111
AПK.00210-01 33 01-5
ИМЯ:
rpl - контекстная замена
ФОРМАТ:
rpl шаблон замена
ОПИСАНИЕ:
Команда rpl считывает строки из стандартного ввода,
заменяет все вхождения строки - первого аргумента на
второй аргумент, и выдает результат в стандартный
вывод. Распознаются регулярные выражения в первом ар-
гументе по тем же правилам, какие действуют в редакто-
ре "ed" в контексте поиска, с тем отличием, что вместо
символа "." для обозначения одного произвольного сим-
вола используется символ "@".
Пример:
rpl "^ *" ":" <a >b
Считывается файл "a", все группы пробелов в начале
строк заменяются на двоеточие, и результат записывает-
ся в файл "b".
Команда rpl предназначена главным образом для кон-
текстной замены в редакторе red, хотя может использо-
ваться и самостоятельно.
112
AПK.00210-01 33 01-5
ИМЯ:
sed - пакетный редактор
ФОРМАТ:
sed [-n] [-e ком.] [-f ком._файл] [файл]...
ОПИСАНИЕ:
Редактор sed переписывает по умолчанию информацию из
файла стандартного ввода в файл стандартного вывода,
изменяя их в соответствии с программой редактирова-
ния.
Если при вызове sed задан аргумент при ключе "-f", то
программа редактирования берется из файла "ком._файл";
файлов с программами редактирования может быть нес-
колько. Если при вызове задан только аргумент при клю-
че "-e" и не задано ни одного аргумента при ключе
"-f", то ключ "-e" может быть опущен. Аргумент при
ключе "-n" указывает файл, в который записываeтся ре-
зультат редактирования. Программа редактирования сос-
тоит из команд, располагающихся по одной на строке, и
имеющих следующий формат:
[адрес [, адрес]] имя_команды [аргументы]
Порядок работы редактора: sed копирует строки из ре-
дактируемого файла в рабочую область, последовательно
выполняя все команды в область действия которых входят
строки, находящиеся в рабочей области; по завершению
программы редактирования рабочая область копируется в
113
AПK.00210-01 33 01-5
стандартный файл вывода (кроме случая, когда задан ар-
гумент при ключе -n). После чего рабочая область унич-
тожается.
Областью действия команды является:
- десятичное число, соответствующее порядковому
номеру введенной строки (без обнуления счетчика
строк при переходе к следующему редактируемому
файлу);
- символ "$" - соответствующий последней строке
редактируемого файла;
- "регулярное выражение" практически полностью
совпадающее с регулярным выражением, применяемым
в ed с тем отличием, что последовательность сим-
волов "0 соответствует символу новой строки,
введенному в рабочую область.
Если при команде не задана область действия, то коман-
да обрабатывает всю рабочую область.
Если при команде задана область действия, то команда
обрабатывает каждую строку, соответствующую указанной
области действия.
Если при команде задан диапазон (т.е. два образца,
разделенные запятой), то она применима к первой стро-
ке, которая соответствует первому образцу и всем пос-
ледующим строкам включая строку, соответствующую вто-
114
AПK.00210-01 33 01-5
рому образцу. После этого в следующих строках обраба-
тываемого файла делается попытка снова найти строку,
которая соответствует первому образцу, и процесс пов-
торяется.
Использование команды отрицания "!" приводит к тому,
что следующая за ней команда (зaпиcaннaя нa oднoй c
нeй cтpoкe), пpимeняeтcя тoлькo к тем строкам, кото-
рые не соответствуют указанной области действия.
Аргумент, обозначаемый text, состоит из строк, каждая
из которых, исключая последнюю, заканчивается символом
'/ , необходимым для того, чтобы скрыть escape-
последовательность "новая строка". Символы '/ тракту-
ются редактором либо как символы '/ в замещающей
строке команды s, либо используются для вывода в ре-
зультирующий файл присутствовавших в редактируемом
тексте символов пробела и табуляции (символ '/ должен
стоять перед знаком табуляции или требуемым числом
пробелов); в противном случае пробелы и символы табу-
ляции уничтожаются.
Аргумент, обозначаемый rfile или wfile, должен стоять
последним в строке, содержащей команду редактирования;
команду и этот аргумент должен разделять точно один
пробел. Каждый аргумент wfile создается перед началом
обработки. Командам одновременно может быть задано не
более десяти различных аргументов wfile.
(1)a text
115
AПK.00210-01 33 01-5
Добавить. Помещает text в результирующий файл
перед чтением следующей строки редактируемого
файла.
(2)b label
Переход на команду ":" с меткой label. Если
"label" отсутствует, то переходят на конец прог-
раммы редактирования.
(2)c text
Изменить. Команда "с" удаляет строки, выбранные
по заданной области действия, и замещает их
строками аргумента text.
(2)d Уничтожить рабочую область.
(2)D Уничтожить начальный сегмент рабочей области до
первой escape-последовательности "новая строка".
(2)g Заменить содержимое рабочей области содержимым
сохраняемого буфера.
(2)G Добавить содержимое сохраняемого буфера к содер-
жимому рабочей области.
(2)h Заменить содержимое сохраняемого буфера на со-
держимое рабочей области.
(2)H Добавить содержимое рабочей области к сохраня-
емому буферу.
(1)i text
116
AПK.00210-01 33 01-5
Ввести. Поместить text в стандартный файл выво-
да.
(2)n Скопировать рабочую область в стандартный файл
вывода. Заменить рабочую область следующей вво-
димой строкой.
(2)N Добавить следующую вводимую строку к рабочей об-
ласти, содержащей символы "'0. Номер текущей
строки изменится.
(2)p Напечатать. Записать рабочую область в стан-
дартный файл вывода.
(2)P Записать начальный сегмент рабочей области до
первого символа новой строки в стандартный файл
вывод.
(1)q Выйти. Перейти на конец программы редактирова-
ния.
(1)r rfile
Прочесть содержимое rfile. Поместить его в ре-
зультирующий файл перед прочтением новой вводи-
мой строки.
(2)s/ регулярное выражение / замена / флаги
Подставить строку замены из регулярного выраже-
ния вместо соответствующих образцов в рабочую
область. Как и в редакторе ed , вместо символа
'/' может стоять любой символ. Количество флагов
117
AПK.00210-01 33 01-5
может быть любым. Они имеют следующие значения:
g Глобальный. Подставить вместо всех вхожде-
ний несовпадающих регулярных выражений, а
не только вместо первого;
p Распечатать рабочую область при условии,
что подстановка была выполнена;
w file
Записать. Если была проведена замена, до-
бавить к file рабочую область;
(2)t label
Проверить. Если после самого последнего чтения
или исполнения команды t была проведена любая
подстановка перейти на команду ":" с меткой
label. Если метка отсутствует, перейти на конец
программы редактирования;
(2)w file
Записать. Добавить рабочую область к file;
(2)x Поменять содержимое рабочей области на содержи-
мое сохраняемого буфера;
(2)y/строка1/строка2/
Преобразовать. Заменить все вхождения символов,
образующих строку1, на соответствующие символы
из строки2. Длины строки1 и строки2 должны сов-
падать;
118
AПK.00210-01 33 01-5
(2)! команда
Отрицание. Применение команды отрицания "!" при-
водит к тому, что следующая за ней команда (или
группа команд, если командой является {...} ),
записанная на одной с ней строке, применяется
только к тем строкам, которые не соответствуют
указанной области действия;
(0):метка
По этой команде никаких действий не производит-
ся. При этой команде стоит метка на которую пе-
реходят по командам t и b;
(1)= Равенство. По команде "=" в стандартный файл вы-
вода записывается номер строки, имеющей указан-
ную при команде область действия;
(2){ Исполнить следующие команды до символа } только
после выбора рабочей области.
Пустая команда пропускается.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
ed, grep, awk, lex
119
AПK.00210-01 33 01-5
ИМЯ:
send - передать задание на обработку в ОС ЕС
ФОРМАТ:
send [-ключи] [файл ...]
gath [-ключи] [файл ...]
ОПИСАНИЕ:
Командой send формируется и пересылается файл, содер-
жащий задание для ОС ЕС. Задание должно быть оформлено
в соответствии требований ЯУЗ ОС ЕС. Пересылка файла
задания командой send использует механизм моделирова-
ния устройств единичных записей методом накопления,
режимы действия которого устанавливаются командой МВМ
SPOOL. Таким образом созданный файл команда send пер-
форирует на виртуальном перфокарточном выводе командой
vmpunch в файл накопления для ВМ ОС ЕС.
Состояние задания для ОС ЕС можно получить посредством
использования команды st.
Команда send обеспечивает файл задания в виде сборного
вводного потока из нескольких источников ввода. Воз-
можными источниками ввода являются:
- обычные файлы ДЕМОС;
- стандартный ввод;
- выводные файлы команд ДЕМОС.
120
AПK.00210-01 33 01-5
Формируемый вводной поток направляется send во времен-
ный файл, в котором после замены и подстановки пере-
менных содержится собственно задание ОС ЕС. Указание
действующих опций команды send, источников ввода, а
также действительных значений переменных в образах
карт файла задания осуществляется с помощью внутренних
команд. Строки, начинающиеся с ~, интерпретируются как
внутренние команды, контролирующие выполнение send.
Они могут устанавливать, или повторно устанавливать
список действующих опций, определять зaмeны
пepeмeнныx, oткpывaть новые источники ввода внутри те-
кущего источника.
send управляется следующими внутренними командами:
^-flags
список опций устанавливает режимы функционирова-
ния send;
^+flags
список опций переустанавливает режимы, ранее ус-
тановленные для send;
^+:promt
распечатать подсказку на терминале;
^-:promt
pacпeчaтaть пoдcкaзкy, тoлькo если в качестве
стандартного ввода распределен терминал;
^!command
121
AПK.00210-01 33 01-5
выполнить указанную команду ДEMOC, вызвaв
интepпpeтaтop SHELL. По умолчанию в качестве
файла стандартного ввода определяется /dev/null.
Стандартный вывод команды ДЕМОС определяется в
качестве ввода команды send;
^^comment
используется для возможности комментировать
программу, не попадает в формируемый командой
send ввoднoй пoтoк;
^=:keyword;default
результатом обработки этой внутренней команды
является распределение терминала в качестве
файла ввода, в целях использовать вводную строку
в виде действительного значения ключевого пара-
метра, имя которого указано в команде. Принима-
ется значение пo yмoлчaнию, ecли ввoдитcя пycтaя
cтpoкa;
^keyword=string
замена переменной в ключeвoм oпepaндe;
^file распределить в качестве ввода файл с указанным
именем для формирования вводного потока send;
^*file
распределить в качестве ввода файл с указанным
именем, не производя трансляцию регистра или за-
мещение ключевого слова и считая строки с внут-
122
AПK.00210-01 33 01-5
ренними командами обычным текстом. Единственной
обработкой данных будет проверка на превышение
каждой строкой мaкcимaльнoгo paзмepa;
^?file
распределить в качестве ввода файл с указанным
именем не производя трансляцию регистра или за-
мещение ключевого слова и считая строки с внут-
ренними командами обычным текстом. Единственной
обработкой данных будет их блокирование в
80-бaйтныe зaпиcи;
^==keyword;n
передать следующие n строк из управляющего файла
в вводной поток, если не введено имя переменного
ключевого параметра, или если это имя введено, а
с терминала, распределенного в качестве источни-
ка значений переменных, вводится пустая строка.
n по умолчанию принимает знaчeниe=1;
-uUSER
имя пользователя ДЕМОС, которому распределяются
выводные файлы (по умолчанию используется имя
пользователя, пославшего кoмaндy send);
-cLINK
имя линии в ПДП, на которой распределяется вы-
водной файл (текущее имя по yмoлчaнию 'COMPLEX
1');
123
AПK.00210-01 33 01-5
-l распределить файл стандартного вывода и отобра-
зить на нем образы карт файла зaдaния;
-q не передавать в файле задания операторы ЯУЗ OC
EC;
-f произвести трансляцию cтpoчныx бyкв в пpoпиcныe;
-t воспроизвести в распечатке генерацию операторов
ЯУЗ ОС ЕС перед и после зaмeщeния;
-к выключить замещение ключевых слов для нeyпpaвля-
ющиx cтpoк;
-r выполнить перекодировку кoдa KOИ-8 в ДKOИ;
-е стереть все предыдущие oпpeдeлeния ключeвoгo
cлoвa;
-i нe интepпpeтиpoвaть строки внутренних команд во
включаемых источниках, считая их текстом. Пре-
дупреждение: установленный флаг не пoдлeжит
пepeycтaнoвкe;
-s произвести замещение ключевого слова перед
интepпpeтaциeй yпpaвляющиx cтpoк;
-d вывести на дисплей текущие определения ключевого
слова (используемые пepвoнaчaльнo для oтлaдки).
Командные строки (начинающиеся с ^) в действующем по
умолчанию peжимe +i интepпpeтиpyютcя в качестве команд
управления работой send. Флаг -s обеспечивает опережа-
124
AПK.00210-01 33 01-5
ющую замену ключевых cлoв oтдeлeнию и интepпpeтaции
внутренних команд send. send обычно не содержит специ-
альных символов в командных строках. Однако они допус-
каются. Тогда подсказки, ключевые слова, значения по
умолчанию и строки замены, содержащие специальные сим-
волы должны заключаться в кавычки (" ").
send обеспечивает гибкость формирования операторов ЯУЗ
ОС ЕС на основе составленных заготовок с помощью меха-
низма подсказки и определения ключевых слов. Обычно
send вызывается в командном файле SHELL или в програм-
ме C. В программе производится сборка определений клю-
чевых слов в файл, а затем вызывается send с передачей
имени файла, содержащего эти определения. Файл опреде-
лений ключевых слов остается активным на протяжении
обработки всего входного потока. Так что сканированием
выявляются строки с ключeвыми cлoвaми, кoтopым опреде-
лены значения. Несоответствующие символы выводятся в
том виде, в котором они находятся (или переводятся в
верхний регистр, если установлен флаг -f). Ключевым
параметром является произвольная строка символов в
КОИ-8, для которой была определена строка замещения.
Для наглядности рекомендуется выделять переменные клю-
чевые параметры лидирующим амперсандом (&), хотя это
не обязательно.
Обработкой send переменные ключевые параметры заменя-
ются соответствующей строкой замещений, которая затем
посимвольно выводится. Проверка размера строк (напри-
125
AПK.00210-01 33 01-5
мер по ^*file) откладывается до окончания производства
в ней всех замещений.
Замещение ключевого слова может быть временно выключе-
но путем установки флага -к. Если происходит переопре-
деление ключевого слова, замещается значение замеще-
ния. Предыдущие определения ключевого слова могут быть
полностью стерты путем использования флага -e.
send не проверяет синтаксис генерируемых операторов
ЯУЗ. Однако она проверяет, чтобы размер строки текста
после замещения не превышал 80 байтов. Другими
процедурными ошибками являются: ошибки открытия и за-
писи в файлы, а также аномальные выходы из SHELL.
Ошибки собираются в файл диагностики, а о представле-
нии входного потока заданий на обработку в ОС ЕС send
сигнализирует на терминал утвердительным сообщением.
Когда команда вызывается под именем gath она устанав-
ливает флаг -lq. Результат выполнения заданий в ОС ЕС
можно возвратить в ДЕМОС, используя команду demsend.
Листинг операторов ЯУЗ можно возвратить в ДЕМОС,
Используя карту DEMROUTE.
ФАЙЛЫ:
usr/spool/send *
временный файл для формирования входного потока.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
sh, st, vmread, demsend
126
AПK.00210-01 33 01-5
ДИАГНОСТИКА:
Отмечается превышение строки входного потока 80 симво-
лов, после подстановки значение переменной ключевого
параметра. Выводится предложение: ввести символ y для
распечатки каких-либо ошибок.
127
AПK.00210-01 33 01-5
ИМЯ:
sendmvt - скопировать файл ДЕМОС в набор данных ОС ЕС.
ФОРМАТ:
sendmvt [демос_файл [ос_ес_файл [файл_вывода]]]
ОПИСАНИЕ:
sendmvs позволяет пользователю копировать файл ДЕМОС
в последовательный набор данных или раздел библиотеки
ОС ЕС. Это осуществляется формированием задания копи-
рования и передачей его в среду пакетной обработки ОС
ЕС.
Параметры команды sendmvt используются в командных
строках, управляющих заменой переменных в ключевых
пapaмeтpax oпepaтopoв ЯУЗ формируемого задания. Способ
их задания может быть явным, в составе команды, или
они вводятся в ответ на подсказку.
Имя "ос_ес_файл" может быть простым или составным, на
основе требований спецификации имен наборов данных ОС
ЕС. Если файл ДЕМОС должен стать разделом библиотечно-
го набора данных, имя раздела указывается за именем
набора в кавычках.
Копирование осуществляется как в уже существующий
набор данных, так и новый набор данных. Поэтому выда-
ется запрос существует-ли уже набор ОС ЕС. Если вво-
дится y, то считается, что набор уже сущетвует и ката-
логизирован в системе ОС ЕС. На ответ n, означающий
128
AПK.00210-01 33 01-5
создание вновь набора, выдается подсказка о необходи-
мости ввести информацию характеристик будущего набора.
"файл_вывода" является именем файла ДЕМОС. Этот файл
будет использоваться утилитой vmread для вывода ре-
зультатов выполнения задания копирования.
ФАЙЛЫ:
/usr/lib/model/sendmvt
образец задания для ОС ЕС
/tmp/sendmvt.*
вpeмeнный yпpaвляющий фaйл send
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:re
send ,vmread
129
AПK.00210-01 33 01-5
ИМЯ:
sh, for, case, if, while, :, ., break, continue, cd,
eval, exec, exit, export, login, newgrp, read,
readonly, set, shift, times, trap, umask, wait - ко-
мандный язык.
ФОРМАТ:
sh [-ceiknrstuvx] [пар] ...
ОПИСАНИЕ:
Команда sh вызывает интерпретатор языка управления за-
даниями SHELL, который является основным языком обще-
ния пользователя с системой. Кроме того SHELL очень
широко применяется и в качестве языка разработки прог-
рамм.
КОМАНДЫ:
Простая команда представляет собой последовательность
слов, разделенных "пробелами" (пробелами, знаками та-
буляции или символами новой строки). Первое слово оп-
ределяет имя команды, которая должна быть выполнена.
Остальные слова передаются в качестве параметров вызы-
ваемой команды. Имя команды является нулевым парамет-
ром . "Значением" простой команды является ее код за-
вершения, если она выполнена успешно, или 200+код - в
противном случае.
Несколько команд, разделенных символом "|", представ-
ляют собой канал межпроцессной связи. Информация, вы-
130
AПK.00210-01 33 01-5
даваемая в стандартный файл вывода одной командой,
может передаваться другой команде в качестве стан-
дартного файла ввода. При этом создается цепочка про-
цессов - конвейер. Каждая команда выполняется как от-
дельный процесс; sh ждет окончания трансляции послед-
ней из выполняемых команд.
Список_команд представляет собой последовательность из
одной или нескольких простых команд, разделенных сим-
волами ";", "&", "&&" или "||", и может заканчиваться
символами ";" или "&". Символы ";", "&" и "&&", "||"
попарно имеют одинаковый приоритет, однако, приоритет
пары "&" и "|" ниже, чем у "&&" и "||". Точка с запя-
той, стоящая в конце списка_команд, вызывает последо-
вательное выполнение указанных команд; амперсанд ука-
зывает на то, что следующая команда может быть выпол-
нена без ожидания завершения предыдущей (фоновый про-
цесс). Символ "&&" ("||") разрешает выполнение после-
дующей команды только в том случае, если код заверше-
ния предыдущей равен нулю (не равен нулю). В качестве
разделителей в списках команд вместо точки с запятой
могут использоваться символы новой строки.
Код завершения списка_команд равен значению кода за-
вершения последней простой команды списка.
Последовательность команд можно записать в файл и вы-
полнить, указав имя этого файла. Далее перечислены ос-
новные конструкции командного языка sh.
131
AПK.00210-01 33 01-5
for имя [in слово ...]
do список_команд
done
При каждом повторении цикла for "имя" устанавли-
вается на следующее значение в списке "слово
...". Если конструкция "in слово ..." отсутству-
ет, то по умолчанию предполагается "in $@" (т.е.
цикл выполняется один раз для каждого заданного
параметра).
case слово in
[обр1 [|обр2]...) список_команд;;]
...
esac
При обнаружении соответствия "слова" одному из
образцов, выполняется заданный "список_команд".
Образец "*" соответствует любой строке.
if список_команд1
then список_команд2
[elif список_команд3 then список_команд4]
[else список_команд5]
Если код завершения "списка_команд1" равен нулю,
выполняется "список_команд2", иначе - "спи-
сок_команд3" и, если его код завершения равен
нулю, выполняется "список_команд4". В противном
случае выполняется "список_команд5".
132
AПK.00210-01 33 01-5
while список_команд1
[do список_команд2]
done
Если код завершения "списка_команд1" равен нулю,
выполняется "список_команд2" и цикл повторяется,
иначе - выполнение цикла заканчивается.
until список_команд1
[do список_команд2]
done
Если код завершения "списка_команд1" не равен
нулю, выполняется "список_команд2" и цикл повто-
ряется, иначе - выполнение цикла заканчивается.
(список_команд)
Выполнить "список_команд", запустив sh в ка-
честве подпроцесса.
{список_команд;}
выполнить "список_команд".
К зарезервированным словам интерпретатора sh относятся
следующие слова: "if", "then", "else", "elif", "fi",
"case", "in", "esac", "for", "while", "until", "do",
"done", "{", "}". Они распознаются только в том слу-
чае, если являются первым словом команды и не заключе-
ны в кавычки.
ПОДСТАНОВКА РЕЗУЛЬТАТОВ ВЫПОЛНЕНИЯ КОМАНД:
133
AПK.00210-01 33 01-5
Если команда заключена в обратные апострофы (``), она
выполняется и замещается в командной строке результа-
том своего выполнения. Этот результат может использо-
ваться как часть слова или как целое слово; символы
новой строки отбрасываются.
ПОДСТАНОВКА ЗНАЧЕНИЙ ПАРАМЕТРОВ:
Символ "$" указывает на выполнение подстановки значе-
ний параметров. Команда set присваивает значения пози-
ционным параметрам. Переменные устанавливаются следу-
ющим образом:
имя = значение [имя = значение] ...
${параметр}
"Параметр" может быть трех видов: 1) последова-
тельность букв, цифр или символов подчеркивания
(т.е. определенное "имя"), 2) цифра, 3) один из
символов * @ # ? - $ !. В результате выполнения
данного макровызова осуществляется подстановка
значения параметра (если оно определено). Фигур-
ные скобки используются только в том случае, ес-
ли после "параметра" следует буква, цифра или
символ подчеркивания, не являющиеся частью его
имени. Если "параметр" представляет собой цифру,
то он считается позиционным. Если "параметром"
является символ * или @, подставляются значения
всех позиционных параметров (кроме 0), разделен-
134
AПK.00210-01 33 01-5
ные пробелами.
${параметр-слово}
Если "параметр" определен, подставить его значе-
ние, иначе подставить "слово".
${параметр=слово}
Если "параметр" не определен, присвоить ему зна-
чение "слова" и выполнить подстановку этого зна-
чения. Значения позиционных параметров таким
способом определяться не могут.
${параметр?слово}
Если "параметр" определен, подставить его значе-
ние; иначе напечатать "слово" и прекратить вы-
полнение командного файла. Если "слово" от-
сутствует, печатается стандартное диагностичес-
кое сообщение.
${параметр+слово}
Если "параметр" определен, подставить "слово", в
противном случае ничего не подставлять.
В приведенных конструкциях команда, определяемая
"словом", не будет выполняться, если "слово" не явля-
ется подставляемым значением. (Таким образом, в приме-
ре "echo {d-`pwd`}" команда pwd будет выполняться
только в том случае если параметр d не определен).
Следующие "параметры" автоматически определяются ин-
терпретатором sh:
135
AПK.00210-01 33 01-5
# Количество позиционных параметров;
- Ключи, которые вводятся при вызове или с помощью
команды set;
? Код завершения последней выполненной команды;
$ Номер текущего процесса;
! Номер процесса последней фоновой команды.
Следующие "параметры" используются, но не определяются
интерпретатором:
HOME Параметр содержит полное имя справочника (по
умолчанию - имя регистрационного справочника)
для команды cd, вызываемой без параметров;
PATH Список имен справочников, в которых производится
поиск команд, отсутствующих в текущем справочни-
ке;
MAIL Если эта переменная определяет имя файла для
приема почты, то sh будет информировать пользо-
вателя о поступлении почты в указанный файл;
PS1 Подсказка интерпретатора при вводе команды, по
умолчанию "$";
PS2 Подсказка интерпретатора для продолжения ввода
(если команда не была завершена на предыдущей
строке), по умолчанию ">";
136
AПK.00210-01 33 01-5
IFS Символы-разделители командной строки; обычно
пробел, знак табуляции и символ новой строки.
ИНТЕРПРЕТАЦИЯ РАЗДЕЛИТЕЛЕЙ:
В строках, полученных после подстановки значений пара-
метров и результатов выполнения команд, осуществляется
поиск символов-разделителей (определенных в $IFS). В
местах нахождения таких символов строки разбиваются на
отдельные параметры. Пустые параметры, определенные
явно (" " или ' '), сохраняются. Пустые строки, полу-
ченные в результате выполнения параметров, у которых
нет значений, отбрасываются.
ГЕНЕРАЦИЯ ИМЕН ФАЙЛОВ:
После подстановок и интерпретации символов-
разделителей в каждом слове команды осуществляется
поиск символов *, ?, и [. Если встречается один из
этих символов, то данное слово считается образцом и
заменяется соответствующим списком имен файлов, распо-
ложенных в алфавитном порядке. Если образцу не соот-
ветствует ни одно из указанных имен файлов, то это
слово остается неизменным. Символ "." в начале имени
файла должен указываться явно.
* Соответствует любой строке, в том числе пустой;
? Соответствует любому одиночному символу;
[...] Соответствует любому из перечисленных символов.
137
AПK.00210-01 33 01-5
Пара символов, разделенная символом "-", соот-
ветствует любому символу из указанного лексичес-
кого промежутка.
ЭКРАНИРОВАНИЕ:
Следующие символы имеют специальное значение для ин-
терпретатора sh и вызывают прерывание выполнения ко-
манды, если они не были экранированы: ";", "&", "(",
")", "|", "<", ">", новая_строка, пробел, табуляция.
Символ может быть экранирован, если ему предшествует
. Для записи длинных конструкций более чем в одной
строке, специальное значение символа новой строки "0
отменяется. Все символы, заключенные в апострофы ('
'), за исключением самого апострофа, являются экрани-
рованными. Подстановка значений параметров и результа-
тов выполнения команд выполняется внутри кавычек ("
"). Символ экранирует символы , `, " и $.
"$*" эквивалентно "$1 $2 ..."
"$@" эквивалентно "$1" "$2" ... .
ПОДСКАЗКИ:
В интерактивном режиме, перед считыванием команды, sh
печатает значение переменной PS1 (по умолчанию - $).
Если введенная строка содержит синтаксически незавер-
шенную конструкцию, то для продолжения ввода интерпре-
татор выдает в качестве подсказки значение переменной
PS2 (по умолчанию - символ >).
138
AПK.00210-01 33 01-5
ВВОД-ВЫВОД:
Для задания файлов ввода/вывода используются специаль-
ные конструкции. Они могут находиться в любом месте
простой команды. Перед использованием "слова" или
"цифры" выполняются все необходимые подстановки.
<слово
Файл "слово" назначается стандартным файлом вво-
да (дескриптор файла 0).
>слово
Файл "слово" назначается стандартным файлом вы-
вода (дескриптор файла 1). Если файл не су-
ществует, он создается; в противном случае он
усекается до нулевой длины.
>>слово
Файл "слово" назначается стандартным файлом вы-
вода. Если файл существует, выводимая информация
добавляется к его содержимому; в противном слу-
чае файл создается.
<<слово
Ввод осуществляется до тех пор, пока не встреча-
ется последовательность символов "слово". Полу-
ченный локальный файл является стандартным
файлом ввода. Если какой-либо символ "слова" эк-
ранирован, не производится никакой интерпретации
символов локального файла; в противном случае
139
AПK.00210-01 33 01-5
производится подстановка значений параметров и
результатов выполнения команд, символ новой
строки игнорируется, а знак используется
для экранирования символов , $, ` и первого
символа "слова".
<&цифра
Информация, записываемая в файл с дескриптором
"цифра", передается в стандартный файл вывода.
>&цифра
Стандартным файлом ввода является файл с
дескриптором "цифра".
<&- Стандартный файл ввода закрыт на запись.
>&- Стандартный файл вывода закрыт на чтение.
Если какой-либо из указанных конструкций предшествует
цифра, то дескриптор создаваемого файла определяется
этой цифрой (вместо 0 или 1 по умолчанию).
ВСТРОЕННЫЕ КОМАНДЫ:
Встроенные команды практически не отличаются по своим
своиствам от остальных команд системы, за исключением
того, что для них обычно нельзя переопределить стан-
дартные файлы ввода/вывода.
: Команда не производит никаких действий, за
исключением подстановки значений макроперемен-
ных. Код завершения равен нулю.
140
AПK.00210-01 33 01-5
. файл
Выполнить командный "файл" в рамках текущего
процесса.
cd [справочник]
Об'явить указанный "справочник" текущим. Если
параметр не задан, в качестве имени справочника
используется значение макропеременной HOME.
eval [команда ...]
Провести все макроподстановки и выполнить "ко-
манду ...".
exec [команда ...]
Текущий процесс заменить процессом выполнения
"команды ...". Допускается переопределение стан-
дартных файлов ввода/вывода.
exit [N]
Прерывание выполнения текущего процесса с кодом
завершения N. Если N отсутствует, код завершения
определяется кодом завершения последней выпол-
ненной команды.
export [имя...]
Указанные макропеременные автоматически вводятся
в среду выполняемых впоследствии команд. Если
параметры не заданы, выдается список имен
экспортируемых макропеременных.
login [пар ...]
141
AПK.00210-01 33 01-5
Регистрация пользователя в системе без создания
нового процесса (эквивалент команды "exec login
пар...").
newgrp [пар ...]
Замена текущего идентификатора группы пользова-
телей (эквивалент команды "exec newgrp пар...").
read имя ...
Из стандартного файла ввода считывается одна
строка. Затем макропеременным "имя ..." последо-
вательно присваиваются значения слов, составля-
ющих эту строку. Код завершения команды равен
нулю во всех случаях, кроме тех, когда список
параметров длиннее, чем число слов в считанной
строке.
readonly имя ...
Запрещается переопределение перечисленных
макропеременных. Если параметры не заданы, выда-
ется список всех макропеременных, определенных
как "readonly" (только для чтения).
set [-eknptuvx [пар ...]]
Устанавливает режимы работы интерпретатора sh.
Могут задаваться следующие ключи:
-e В неинтерактивном режиме вызывает немед-
ленное прерывание при обнаружении ошибки в
выполнении команды;
142
AПK.00210-01 33 01-5
-k Все определенные макропеременные экспорти-
руются в среду запускаемых процессов;
-n Производит только синтаксическую проверку
команд;
-t Прерывает выполнение процесса после того,
как будет считана и выполнена одна коман-
да;
-u Устанавливает режим диагностики ошибки при
попытке использовать неопределенные пере-
менные;
-v Устанавливает режим печати вводимых строк
по мере их считывания;
-x Распечатывает команды и их параметры по
мере выполнения;
- Отменяет ключи -x и -v.
Установленные ключи содержатся в макропеременной "-".
Остальным параметрам присваиваются значения позицион-
ных параметров "1, 2, ...". Если параметры не заданы,
печатается список значений всех макропеременных;
shift Позиционным параметрам "2, 3, ..." присваиваются
значения параметров "1, 2, ..." соответственно;
times Выдается время, затраченное пользователем и сис-
темой на выполнение процесса;
143
AПK.00210-01 33 01-5
trap [команда] [N ...]
При получении перечисленных сигналов выполняется
указанная "команда";
umask [ddd]
Маске создания файлов пользователя присваивается
восьмеричный код ddd . Если параметр ddd опущен,
выдается текущеее значение маски;
wait [n]
Ожидает окончания выполнения процесса с номером
n и присваивает его код завершения макроперемен-
ной "?".
ВЫЗОВ ИНТЕРПРЕТАТОРА:
Если первым символом параметра "0" является знак "-",
то команды считываются из файла .profile. При вызове
могут указываться следующие ключи:
-c строка
Команды считываются из "строки";
-s Команды считываются из стандартного файла ввода.
Сообщения интерпретатора записываются в стан-
дартный файл диагностик (файл с дескриптором 2);
-i Интерактивный режим работы интерпретатора.
ФАЙЛЫ:
$HOME/.profile
/tmp/sh*
144
AПK.00210-01 33 01-5
/dev/null
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
csh, test, exec
ДИАГНОСТИКА:
Ошибки, обнаруженные интерпретатором (например, син-
таксические ошибки), приводят к тому, что sh возвраща-
ет код завершения, не равный нулю. Если при этом режим
работы - неинтерактивный, то выполнение командного
файла прекращается. Если же режим работы интерактив-
ный, sh возвращает код завершения последней выполнен-
ной команды.
145
AПK.00210-01 33 01-5
ИМЯ:
size - сообщить размер об'ектного файла
ФОРМАТ:
size [обфайл...]
ОПИСАНИЕ:
Команда size печатает (десятичное) число байтов, зани-
маемое текстовым сегментом, сегментом данных и bss, а
также их сумму в десятичном и восьмеричном коде для
каждого об'ектного файла "обфайл", указанного в пара-
метрах.
146
AПK.00210-01 33 01-5
ИМЯ:
sleep - задержать выполнение на заданный интервал
ФОРМАТ:
sleep время
ОПИСАНИЕ:
Команда sleep задерживает выполнение на "время"
секунд. Она используется для выполнения команды через
определенный промежуток времени, например:
(sleep 105; команда)
или для выполнения команды время от времени, например,
while true
do
команда
sleep 37
done
ЗАМЕЧАНИЯ:
"время" должно быть меньше 2 147 483 647 секунд.
147
AПK.00210-01 33 01-5
ИМЯ:
soelim - фильтр для текстовых файлов в формате pif.
ФОРМАТ:
soelim [файл...]
ОПИСАНИЕ:
Команда переписывает файлы (по умолчанию стандартный
файл ввода) в стандартный файл вывода, заменяя дирек-
тивы pif вида:
.so некоторый_файл
содержимым указанных файлов. Поскольку такие програм-
мы, как tbl, обычно не делают этого, команда soelim
необходима, когда требуется располагать отдельные таб-
лицы документа в различных файлах.
Заметьте, что это включение может подавляться пос-
редством использования "'" вместо ".", т.е.
'so /usr/lib/tmac.s
Пример использования команды soelim:
soelim exum?.n | tbl | pif -ms | col | lpr
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
colcrt, more
ЗАМЕЧАНИЯ:
Перед именем файла должен быть ровно один пробел, а
после него не должно быть пробелов.
148
AПK.00210-01 33 01-5
ИМЯ:
sort - сортировка и слияние файлов
ФОРМАТ:
sort [-mubdfinrtxz] [ +поз1 [-поз2] ]...
[-o имя] [-T справочник] [имя]...
ОПИСАНИЕ:
Команда sort сортирует совместно строки всех указанных
файлов и записывает результат в стандартный файл выво-
да. Если входные файлы не заданы (или указан ключ
"-"), сортируется информация из стандартного файла
ввода.
По умолчанию при сортировке рассматривается вся стро-
ка. Стандартным порядком сортировки является афлавит-
ный (для букв русского и латинского алфавита) и лекси-
кографический побайтный в соответствии с численными
значениями кодов КОИ-8 (для всех остальных символов).
Для изменения правил сортировки используется ключ, ко-
торый может содержать следующие символы:
b Игнорировать ведущие пробелы и символы табуляции
при сравнении полей;
d "Словарный порядок": при сравнении учитываются
только буквы, цифры и пробелы;
f Не различать строчные и прописные буквы;
i Игнорировать символы КОИ-8 с кодами вне диапазо-
149
AПK.00210-01 33 01-5
нов 040-0176 и 0300-0376 при текстовых сравнени-
ях;
n Строки начинающиеся с чисел (возможно с пред-
шествующими пробелами), сортируются по арифмети-
ческому значению. Ключ "n" подразумевает уста-
новку ключа "b";
r Изменить порядок сортировки на обратный;
tx "Символом табуляции", разделяющим поля, является
символ "x";
z Сортировать в соотвествии с численным значением
байтов.
Запись "+поз1 -поз2" определяет часть строки, которая
рассматривается при сортировке. Сортировка начинается
с позиции "поз1" и заканчивающимся перед позицией
"поз2". Каждый из параметров "поз1" и "поз2" имеет вид
"m.n", после чего могут следовать один или несколько
флагов bdfinr, причем m означает количество полей, ко-
торое должно быть пропущено с начала строки, а n озна-
чает количество символов, которое должно быть пропуще-
но после этого. Если присутствуют какие-либо флаги,
они отменяют глобальные ключи упорядочивания для
данной части строки. Если действует ключ "b", "n"
отсчитывается от первого (отличного от пробела) симво-
ла поля; "b" добавляется независимо к "поз2".
Отсутствие ".n" означает ".o", отсутствие "поз2" озна-
150
AПK.00210-01 33 01-5
чает конец строки. При наличии ключа "-tx" полями счи-
таются последовательности символов, разделяемые симво-
лом "x", если ключ "-tx" не задан в качестве полей
рассматриваются последовательности отличных от
пробелов символов, разделенные пробелами.
Если имеются несколько ключей сортировки, последующие
ключи сравниваются только после того, как предыдущие
ключи оказались равны. Строки, которые при сравнении
оказались равны, упорядочиваются с учетом всех байтов.
Распознаются также следующие необязательные параметры:
c Проверить, является ли входной файл отсортиро-
ванным в соответствии с заданными правилами
упорядочивания; не выдавать результат, если файл
не отсортирован;
m Только слияние, входные файлы уже отсортированы;
o Следующий параметр представляет собой имя выход-
ного файла, который должен использоваться вместо
стандартного файла вывода. Этот файл может сов-
падать с одним из входных файлов;
T Следующий параметр представляет собой имя спра-
вочника, в котором должны создаваться временные
файлы;
u Из каждой группы одинаковых строк оставить
только одну. Игнорируемые байты и байты вне клю-
151
AПK.00210-01 33 01-5
чей не участвуют в сравнении.
ПРИМЕРЫ:
Выдать в алфавитном порядке все различные слова в
файле "список". Слова с прописными буквами отличаются
от слов со строчными буквами.
sort -u +0f +0 список
Выдать содержимое файла /etc/passwd, отсортированное
по номерам идентификаторов пользователей (третье из
разделенных двоеточиями полей):
sort -t: +2n /etc/passwd
Выдать первое вхождение каждого месяца в уже отсорти-
рованном файле (dates). Ключи "-um" с единственным
входным файлом обеспечивают выбор представителя из
каждой группы одинаковых строк.
sort -um +0 -1 dates
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
uni, comm, rev, join
ДИАГНОСТИКА:
Выдается сообщение и ненулевой код возврата при раз-
личных ошибочных ситуациях и при неупорядоченности,
обнаруженной при наличии ключа "-c".
ЗАМЕЧАНИЯ:
Слишком длинные строки усекаются без предупреждения.
152
AПK.00210-01 33 01-5
ИМЯ:
split - разбить файл на части
ФОРМАТ:
split [-n] [файл [имя]]
ОПИСАНИЕ:
Команда split считывает "файл" и разбивает его на
файлы, содержашие по n строк исходного файла каждый
(по умолчанию - 1000). Если исходный файл содержит
число строк не кратное n, последний результирующий
файл может быть короче. Имя первого выходного файла
представляет собой "имя" с добавкой "aa", и так далее
в лексикографическом порядке. Если выходное имя не за-
дано, по умолчанию принимается х.
Если входной файл не указан или вместо него указывает-
ся "-", используется стандартный файл ввода.
153
AПK.00210-01 33 01-5
ИМЯ:
st - выдать на дисплей информацию о состоянии задания
ОС ЕС.
ФОРМАТ:
st [идвм] имя_задания
ОПИСАНИЕ:
Команда st посылает запрос ОС ЕС через ПДП для получе-
ния информации о состоянии задания, имя которого ука-
зано в параметре "имя_задания". Виртуальная машина
идентифицируется параметром "идвм", значение по умол-
чанию complex1.
Команда не снижает интерактивности работы за счет
того, что формирует запрос к ПДП в фоновом режиме, ко-
торый в свою очередь ожидает обратной связи в течении
минуты. Если за это время ответа из ПДП не поступает,
выдается диагностическое сообщение и команду st нужно
повторить вновь.
ФАЙЛЫ:
/dev/smsg?
154
AПK.00210-01 33 01-5
ИМЯ:
strip - удалить таблицу символов.
ФОРМАТ:
strip имя ...
ОПИСАНИЕ:
Команда strip удаляет таблицу символов и биты переме-
щения, которые обычно присоединяются к выводу ас-
семблера и редактора связей. Это полезно для экономии
места после того, как программа была отлажена.
Действие команды strip такое же, как использование
ключа "-s" в команде ld.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
ld
155
AПK.00210-01 33 01-5
ИМЯ:
stty - установить режим работы терминала.
ФОРМАТ:
stty [режим ...]
ОПИСАНИЕ:
Команда stty устанавливает определенные режимы вво-
да/вывода для терминала пользователя. При отсутствии
параметров она сообщает текущее состояние режима.
Командой устанавливаются следующие режимы:
even разрешить контроль по четности;
-even заблокировать контроль по четности;
odd разрешить контроль по нечетности;
-odd заблокировать контроль по нечетности;
Для полного отключения нужно указать "-even -odd".
raw режим непосредственного ввода (нет забоя (kill),
удаления (erase), прерывания (quit), конца пере-
дачи (EOT); бит контроля по паритету возвращает-
ся назад);
-raw отмена режима непосредственного ввода;
cbreak
делать каждый символ доступным read(2) по мере
поступления; нет забоя (kill) и удаления
(erase);
156
AПK.00210-01 33 01-5
-cbreak
делать символы доступными для read только после
получения символа новой строки;
-crmod
строки на экране заканчиваются только символами
новой строки;
crmod допускается употребление символа возврата карет-
ки (CR) вместо символа новой строки (NL); вместо
возврата каретки или новой строки выводятся сим-
волы возврат каретки - перевод строки (CR-NL);
echo отображать в эхо-режиме вводимый символ;
-echo не отображать символы в эхо-режиме;
lcase преобразовывать символы верхнего регистра в сим-
волы нижнего регистра;
-lcase
не выполнять преобразования регистра символов;
-tabs заменять при печати символы табуляции пробелами;
tabs сохранять символы табуляции;
cyrill
терминал имеет русские символы;
-cyrill
терминал не имеет русских символов;
157
AПK.00210-01 33 01-5
icyrill
режим работы клавиатуры (русский/латинский) ус-
танавливается от самой клавиатуры (Электроника
15 ИЭ 0013, клавиатура в "тестовом" режиме);
-icyrill
режим работы клавиатуры (русский/латинский) ус-
танавливается от линии (Электроника 15 ИЭ 0013,
клавиатура в "нормальном" режиме); Клавиатуру
рекомендуется переключать в "тестовый" режим.
dec установить символы забоя, удаления и прерывания
в стиле ОС RSX-11, RT-11: ("забой", <control>u,
<control>c).
ek то же, что "dec".
unix установить символы забоя, удаления и прерывания
в стиле ОС UNIX: ("#", "@", <забой>). Символом
"quit" устанавливается <control> .
erase c
рассматривать символ c как символ уничтожения.
Символ уничтожения может также иметь вид ^x, что
аналогично <ctrl>x;
kill c
рассматривать символ c как символ забоя строки.
Здесь также действительна форма ^х;
intr c
158
AПK.00210-01 33 01-5
рассматривать символ c как символ прерывания
"interrupt". Здесь также действительна форма
^х;
quit c
рассматривать символ c как символ прерывания с
созданием образа памяти "core". Здесь также дей-
ствительна форма ^х;
nl cr ht vt n
установить задержку соответствующего движения
курсора на n тиков;
width n
установить ширину страницы (длину строки) в n
символов для автоматического переноса строки;
lengh n
устанoвить длину страницы в n строк, так чтобы
вывод был постраничным; если задано length 0,
деление на страницы прекращается;
score стирание символов с экрана при забое (kill) и
удалении (erase);
-score
отмена режима score;
indctl
выдавать control-символы в эхо-режиме, как
^<char + 0141>;
159
AПK.00210-01 33 01-5
-indctl
отмена режима indctl;
hup прекращает передачу данных по телефонному каналу
связи при завершении сеанса;
-hup не прекращает передачу данных по телефонному ка-
налу связи при завершении сеанса;
0 немедленно прекращает телефонную связь;
extb speed
устанавливает скорость линии связи с терминалом
в бодах равную "speed". Аргумент "speed" может
принимать значения: 75, 110, 134, 150, 200, 300,
600, 1200, 1800, 2400, 4800, 9600 (данные ско-
рости поддерживаются интерфейсами dh и dz);
cro cr1 cr2 cr3
выбирает время задержки для возврата каретки;
nl0 ln1 nl2 nl3
выбирает время задержки для подачи на строку.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
tty, ioctl, tabs.
160
AПK.00210-01 33 01-5
ИМЯ:
su - временно заменить идентификатор пользователя.
ФОРМАТ:
su [идентификатор_пользователя]
ОПИСАНИЕ:
Команда su порождает новый процесс интерпретатора ко-
мандного языка с новым значением идентификатора поль-
зователя. Если у пользователя с заказанным идентифика-
тором существует пароль, он запрашивается и команда
выполняется только в случае удачного ответа. Новый
идентификатор пользователя используется пока не окон-
чен сеанс работы с порожденным интерпретатором команд.
Если идентификатор пользователя в команде su не ука-
зан, то используется идентификатор супер-пользователя
(root). Для того, чтобы как-то выделить работу в при-
велегированном режиме, sh меняет подсказку на "#".
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
sh
161
AПK.00210-01 33 01-5
ИМЯ:
sum - контрольная сумма и число блоков файла
ФОРМАТ:
sum file ...
ОПИСАНИЕ:
Sum вычисляет и выдает 16-битовую контрольную сумму и
размер в блоках для заданных файлов. Эта команда обыч-
но используется для обнаружения неверных мест или оп-
ределения достоверности файла, передаваемого по линии
передачи.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
wc
ДИАГНОСТИКА:
read error
Ошибка чтения. При работе со специальными файла-
ми может выдаваться при достижений конца файла
(например, при попытке чтения блока, несуществу-
ющего для данного типа диска). В этом случае,
появления подобной диагностики не является сиг-
налом о неуспешном завершении команды.
162
AПK.00210-01 33 01-5
ИМЯ:
svc - выдать число системных вызовов.
ФОРМАТ:
svs программа [аргументы]
ОПИСАНИЕ:
svc выполняет программу "программа" с аргументами "ар-
гументы" и выдает время начала работы каждого систем-
ного вызова.
Результат записывается в стандартный файл ошибок, для
того, чтобы его можно было просмотреть после окончания
пpoгpaммы.
Программа time сообщает пользовательское время и время
системы, затраченное на выполнение программы. Команда
svc дает более полное представление o тoм, нa чтo этo
вpeмя былo пoтpaчeнo. Команда mon используется для по-
лучения более полной информации о времени пользовате-
ля.
163
AПK.00210-01 33 01-5
ИМЯ:
sysname - выдать имя ядра системы.
ФОРМАТ:
sysname
ОПИСАНИЕ:
Команда sysname печатает имя активного ядра системы
ДЕМОС.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
ipl
164
AПK.00210-01 33 01-5
ИМЯ:
tail - выдача части файла
ФОРМАТ:
tail [+-число[lbc]] [файл]
ОПИСАНИЕ:
Команда tail выдает указанный файл в стандартный файл
вывода, начиная с заданного места. Если не указано имя
файла, используется стандартный файл ввода.
Копирование начинается с точки, находящейся на расто-
янии "+число" от начала или "-число" от конца ввода.
"Число" выражается в единицах строк, блоков или симво-
лов в соответствии с заданными параметрами "l", "b"
или "c". Если единицы не указаны, отсчет ведется в
строках.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
dd
ЗАМЕЧАНИЯ:
Оставшиеся части файлов, отсчитывающиеся от конца
файла, хранятся в буфере и поэтому ограничены в длине.
Различные ошибки могут происходить при работе со спе-
циальными файлами.
165
AПK.00210-01 33 01-5
ИМЯ:
tape - закрепление и освобождение магнитных лент
ФОРМАТ:
tape [-muwq] [-nl] [-blp]
[-sl номер_файла] [-d плотность] [-c ко-
мандная_строка] серийный_номер
ОПИСАНИЕ:
Команда используется для передачи характеристик ленты,
используемой в обмене данными. Операции ввода-вывода
моделируются файлами накопления, куда предварительно
постутают данные, считанные с ленты драйвером устрой-
ства или в ожидании освобождения драйвера для записи
на ленту.
опции команды:
-m смонтировать ленту. Действие режима по умолча-
нию, если отсутствует опция -u;
-u демонтировать ленту. Режим отменяет запрос мон-
тирования, если лента еще не смонтирована. Опция
не совместима со всеми остальными;
-w смонтировать ленту для записи. Отсутствие опции
монтирует ленту только в режиме чтения;
-q опция выключает режим уведомления распределением
устройств;
-nl должна использоваться лента без меток. Ленты с
166
AПK.00210-01 33 01-5
метками будут разгружаться;
-blp опция задает режим обхода обработки меток на
ленте. Метки ленты рассматриваются как собствен-
но файлы;
-sl лента должна иметь стандартные метки в формате
ОС ЕС, "номер_файла" указывает номер файла на
ленте;
-d устанавливает плотность записи на ленту. По
умолчанию 63 зн/мм;
-c выполнить команду ДЕМОС, записанную вместо пара-
метра "командная-строка" Kоманда выполняется в
фоновом режиме. Присутствие символьной последо-
вательности %s в командной строке вызывает ее
замену серийным номером ленты "серийный-номер"
Например tape -m-c"cat %s>blot" GLOP84 команда
копирует ленту GLOP84 в файл blot.
ЗАМЕЧАНИЯ:
Лeнтoчный cлeдящий пpoцecc и драйвер устройства под-
держивают обработку меток лент, тем самым предотвраща-
ется порча лент. Режимы обработки меток -nl, -sl, -blp
описывают характеристику ленты на входе.
Режим -nl относится к лентам, не содержащим метки
файлов и серийный номер тома.
Режим -sl характеризует ленту с серийным номером тома
167
AПK.00210-01 33 01-5
в первой записи и метками для ленточных файлов.
Режим -blp устанавливает обработку с выключенной обра-
боткой меток ленты. Метки ленты рассматриваются как
собственно файлы.
ФАЙЛЫ:
/usr/spool/out/t*
spool файла ленты
/usr/spool/out/.spoolpid
идентификатор процесса spool
/dev/tape/??????
закрепление устройства для пользователя
/dev/mt?
закрепление устройства для системы
/dev/tape/lock18
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
opr, vmpunch, label, spoolеr, tm
168
AПK.00210-01 33 01-5
ИМЯ:
tar - ведение архива на магнитных лентах
ФОРМАТ:
tar ключ [имя ...]
ОПИСАНИЕ:
С помощью команды tar сохраняются и восстанавливаются
файлы в архиве на магнитной ленте. Режим работы коман-
ды определяется с помощью аргумента "ключ". "Ключ"
представляет собой один из признаков операции (r,x,t,u
или c), и возможно, один или более ключей-
модификаторов. Остальными аргументами команды являются
имена файлов или каталогов, которые должны быть сохра-
нены или восстановлены.
Tar выполняет следующие операции:
r Перечисленные файлы дозаписываются в архив на
ленте. Запись ведется в конец архива;
х Перечисленные файлы считываются с ленты. Если
задано имя каталога, содержимое которого было
записано на ленту, считываются файлы из этого
каталога (начинающиеся с указанного имени). Вла-
делец и статус файлов восстанавливаются (если
это возможно). Если не задается ни одного аргу-
мента "имя", восстанавливаются все файлы с
ленты. Если на ленте имеется несколько имен,
специфицирующих тот же самый файл, то считывают-
169
AПK.00210-01 33 01-5
ся все варианты файла и остается последний;.
t Выдаются имена указанных файлов каждый раз,
когда они появляются на ленте. Если аргументы
"имя" не заданы, выдаются имена всех файлов на
ленте;
u Перечисленные файлы дозаписываются в архив на
ленте, если их там не было или они были модифи-
цированы с момента последней записи на ленту;
c Создает новый архив на ленте. Запись ведется с
начала, а не в конец архива.
Следующие символы модифицируют заданную операцию:
1,2 Этот модификатор задает лентопротяжный меха-
низм, на котором монтируется лента (по умолча-
нию 12, если не задана переменная "TAPE"; ис-
пользуется имя из переменной "TAPE", если оно
задано. Переменная "TAPE" используется для пе-
редачи имени ленты командами "tar", "mt",
"ardos" и задается в интерпретаторе "sh" так
(например , лента /dev/mt580):
"TAPE=/dev/mt580; export TAPE"; в "csh" так:
"setenv TAPE /dev/mt580". Имя можно также за-
давать ключом "f".);
v При использовании ключа v команда tar печатает
имя каждого обрабатываемого файла и соот-
ветствующую букву-функцию. В случае операции
170
AПK.00210-01 33 01-5
t, выдаются не только имена файлов на ленте,
но и другая информация;.
w Заставляет команду tar печатать принимаемое к
исполнению действие, а затем ждать подтвержде-
ния пользователя. Возможны следующие варианты
ответа: "y" - выполнить действие, "n" - про-
пустить действие, "=имя" - выполнить действие
без запроса для всех файлов, имена которых
совпадают или начинаются с "имя", "#имя" -
пропускаются файлы, имена которых совпадают
или начинаются с "имя";.
f Заставляет команду tar использовать следующий
аргумент в качестве имени архива вместо
/dev/mt?. Если именем файла служит "-", tar
пишет на стандартный вывод или читает из стан-
дартного ввода. Таким образом, можно использо-
вать tar как начало или окончание цепи
фильтра. Tar можно также использовать для пе-
ресылки иерархических структур с помощью ко-
манды
cd from; tar cf - * | (cd to; tar xf -);
b Заставляет команду tar использовать следующий
аргумент в качестве коэффициента блокирования
записей на ленте. По умолчанию он равен 1,
максимальное значение равно 127. Этот ключ
171
AПK.00210-01 33 01-5
следует использовать только для архивов на
магнитной ленте типа /dev/mt?;
i продолжать работу при ошибках чтения ленты или
контрольной суммы заголовка, что позволяет, в
частности, начинать чтение с середины архива
на ленте. Tar при ошибке ищет следующий заго-
ловок файла и продолжает работу;
l Провоцирует выдачу сообщений при невозможности
разрешить все связи восстанавливаемых файлов.
Если этот ключ не задан, сообщения об ошибках
не печатаются.
Архив на ленте состоит из логических блоков по 512
байт (возможно, сблокированных в более длинные физи-
ческие записи). Файлы занимают целое число записей,
каждому файлу предшествует логический блок-заголовок.
Весь архив записывается одним физическим файлом на
ленте. Дозапись в сблокированный архив возможна при
использовании драйвера "mt" для работы с лентами.
ФАЙЛЫ:
/dev/mt*
/tmp/tar*
ДИАГНОСТИКА:
Сообщения о неправильных ключевых символах и об ошиб-
ках чтения/записи.
Сообщения о недостатке памяти для хранения таблиц свя-
172
AПK.00210-01 33 01-5
зи.
ЗАМЕЧАНИЯ:
Отсутствует возможность запроса n-ого появления файла.
Операция u может выполняться медленно.
При дозаписи, если используется "буферизованный"
доступ к ленте, а имя устройства передается через
переменную "TAPE" или с помощью флага "f", необходимо
явно указывать коэффициент блокировки 1.
В настоящее время ограничение на длину имени файла
составляет 100 символов.
173
AПK.00210-01 33 01-5
ИМЯ:
tbl - форматирование таблиц.
ФОРМАТ:
tbl [файлы] ...
ОПИСАНИЕ:
Команда tbl является препроцессором для системы подго-
товки документации pif и служит для форматирования
таблиц. Вводимые строки копируются в стандартный
вывод, исключая строки, находящиеся между командными
строками .TS и .TE (т.е. кроме описателей таблиц), в
соответствии с описателями формируются таблицы.
Если не задан ни один аргумент, команда tbl считывает
стандартный файл ввода, поэтому она может использо-
ваться как фильтр. В случае, когда tbl используется
совместно с eqn или neqn, она должна быть первой для
того, чтобы минимизировать об'ем данных, проходящих
через программный канал.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
pif, eqn
ЗАМЕЧАНИЯ:
Поскольку в редакторе текстов re с целью "экономии"
oбpaщeниe c кoдaми тaбyляции дocтaтoчнo пpoизвoльнo,
пpи работе с tbl необходимо заменять разделитель.
ПРИМЕРЫ:
Пусть в файле txt записан следующий текст:
174
AПK.00210-01 33 01-5
.TS
center tab(&);
c s s
c s s
c c c
l n n.
ЭКСПРЕСС-ИНФОРМАЦИЯ ВИНИТИ
Периодичность 48 номеров в год.
&Индекс&Цена
Авиастроение&56767&12-00
Вычислительная техника&56769&8-16
Городской транспорт&56770&7-68
Информатика&56772&5-28
Техническая кибернетика&56796&8-16
Электроника&56797&8-16
.TE
В результате выполнения команды
tbl txt | pif
будет получен следующий текст:
ЭКСПРЕСС-ИНФОРМАЦИЯ ВИНИТИ
175
AПK.00210-01 33 01-5
Периодичность 48 номеров в год.
Индекс Цена
Авиастроение 56767 12-00
Вычислительная техника 56769 8-16
Городской транспорт 56770 7-68
Информатика 56772 5-28
Техническая кибернетика 56796 8-16
Электроника 56797 8-16
176
AПK.00210-01 33 01-5
ИМЯ:
tee - копирование информации.
ФОРМАТ:
tee [-i] [-a] [файл] ...
ОПИСАНИЕ:
Команда tee переписывает информацию из стандартного
файла ввода в стандартный файл вывода и копирует ее в
указанные файлы. Возможно использование ключей:
-i устанавливает режим игнорирования прерываний;
-a приводит к тому, что информация дописывается в
файлы.
177
AПK.00210-01 33 01-5
ИМЯ:
test - проверка условия.
ФОРМАТ:
test выр
ОПИСАНИЕ:
Команда test оценивает выражение "выр" и, если оно ис-
тинно, возвращает нулевой код ответа; иначе возвраща-
ется ненулевой код ответа. Если аргументы не заданы,
возвращается ненулевой код ответа.
Для построения "выр" используются следующие примитивы:
-r файл
истинно, если файл существует и доступен для
чтения;
-w файл
истинно, если файл существует и доступен для за-
писи;
-f файл
истинно, если файл существует и не является
справочником;
-d файл
истинно, если файл существует и является спра-
вочником;
-s файл
истинно, если файл существует и имеет размер
178
AПK.00210-01 33 01-5
больший, чем нуль;
-t [fildes]
истинно, если открытый файл, имеющий номер
дескриптора файла равный fildes (по умолчанию
1), связан с терминалом;
-z s1 истинно, если строка s1 имеет нулевую длину;
-n s1 истинно, если строка s1 имеет ненулевую длину;
s1 = s2
истинно, ести строки s1 и s2 равны;
s1 != s2
истинно, если строки s1 и s2 не равны;
s1 истинно, если s1 не является пустой строкой;
n1 -eq n2
истинно, если целые числа n1 и n2 алгебраически
равны. Вместо -eq могут использоваться любые
операции сравнения: -ne, -qt, -ge -lt или -le.
Эти элементарные операции могут комбинироваться с по-
мощью следующих операторов:
! унарный оператор отрицания;
-a бинарный оператор и;
-o бинарный оператор или;
( выр )
179
AПK.00210-01 33 01-5
круглые скобки для группировки;
Операция -a имеет более высокий уровень старшинства,
чем -o. Все операторы и флаги являются отдельными ар-
гументами команды test. Поскольку круглые скобки явля-
ются специальными символами командного языка они
должны быть взяты в кавычки.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
sh, find
180
AПK.00210-01 33 01-5
ИМЯ:
time - получение времени работы команды.
ФОРМАТ:
time команда
ОПИСАНИЕ:
Заданная команда выполняется, после ее завершения time
печатает астрономическое время, в течение которого вы-
полнялась команда, время, затраченное системой, и вре-
мя, затраченное при выполнении команды. Время выдается
в секундах в стандартный файл вывода диагостических
сообщений.
ЗАМЕЧАНИЯ:
Использованное время выдается с точностью до секунды,
хотя время центрального процессора измеряется с точ-
ностью до 1/50 секунды. Таким образом, сумма времен ЦП
может быть на секунду больше, чем использованное вре-
мя.
181
AПK.00210-01 33 01-5
ИМЯ:
touch - изменение даты модификации файла.
ФОРМАТ:
touch [-c] файл ...
ОПИСАНИЕ:
Команда touch пытается изменить дату модификации каж-
дого файла, имена которых задаются аргументами "файл".
Это делается путем чтения символа из файла и записи
его обратно.
Если файл не существует, будет сделана попытка создать
его, кроме тех случаев, когда задан ключ -c.
182
AПK.00210-01 33 01-5
ИМЯ:
tr - транслитерация символов.
ФОРМАТ:
tr [-cds] [стр1 [стр2]]
ОПИСАНИЕ:
Команда tr переписывает стандартный файл ввода в стан-
дартный файл вывода с замещением или удалением выбран-
ных символов. Входные символы, соответствующие симво-
лам, заданным в "стр1", отображаются в соответствующие
символы из "стр2". Если строка стр2 короче, она запол-
няется до длины строки стр1 повторением своего послед-
него символа. Могут быть использованы любые комбинации
ключей -cds:
-c дополняет набор символов в "стр1" до набора сим-
волов, в котором восьмеричные коды КОИ-8 изменя-
ются от 01 до 0377;
-d удаляет все входные символы, соответсвующие сим-
волам в строке "стр1";
-s сжимает все строки повторяющихся выводных симво-
лов, которые есть "стр2", до одиночных символов.
Запись вида A-Z в любой из строк означает диапазон
символов от A до Z в возрастающем порядке КОИ-8.
Символ '/, за которым следуют 1, 2 или 3 восьмеричные
цифры, означает символ, код КОИ-8 которого составляют
эти цифры. Если за символом '/ следует какой-либо
183
AПK.00210-01 33 01-5
другой символ, это равносильно этому символу.
В следующем примере создается список всех слов в file1
одно на строку в file2, где словом считается макси-
мальная строка букв. Вторая строка заключается в ка-
вычки для того, чтобы "защитить" символ '/ от обра-
ботки командным языком. Число "012" представляет собой
код КОИ-8 для символа перехода на новую строку.
tr -cs A-Za-z ' 12' <file1 >file2
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
ed
ЗАМЕЧАНИЯ:
Если вы не желаете обрабатывать символ КОИ-8 nul в
"стр1" или "стр2", всегда удаляйте nul из ввода.
184
AПK.00210-01 33 01-5
ИМЯ:
true, false - получение значения "истинно" ("ложно").
ФОРМАТ:
true
false
ОПИСАНИЕ:
Команда true ничего не делает, а только выдает код
возврата равный нулю. Команда false выдает ненулевой
код возврата. Эти команды обычно используются в ко-
мандных файлах sh, например:
while true
do
команда
done
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
sh
185
AПK.00210-01 33 01-5
ИМЯ:
tsort - топологическая сортировка.
ФОРМАТ:
tsort [файл]
ОПИСАНИЕ:
Команда tsort выдает в стандартный файл вывода пол-
ностью упорядоченный список элементов, согласующийся с
частичным упорядочением элементов, находящихся во
вводном файле "файл". Если аргумент "файл" не задан,
используется стандартный файл ввода.
Вводная информация содержит пары элементов (непустые
строки), разделяемые пробелами. Пары разных элементов
указывают порядок. Пары одинаковых элементов указывают
присутствие, но не порядок.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
lorder
ДИАГНОСТИКА:
odd data:
нечетное число полей во вводном файле.
186
AПK.00210-01 33 01-5
ИМЯ:
tty - получение имени терминала.
ФОРМАТ:
tty
ОПИСАНИЕ:
Команда tty печатает полное имя терминала пользовате-
ля.
ДИАГНОСТИКА:
Если стандартный файл ввода не является терминалом, то
печатается сообщение "not а tty".
187
AПK.00210-01 33 01-5
ИМЯ:
uncompact - распаковать скомпрессированный файл.
ФОРМАТ:
uncompact [имя...]
ОПИСАНИЕ:
Команда uncompact распаковывает файл, скомпрессирован-
ный ранее с помощью команды compact. Имя исходного
файла должно иметь окончание ".C". В результате работы
образуется распакованный файл с тем же именем, но без
окончания ".C". Соответствующий компрессированный файл
уничтожается. Если ни одного имени файла не задано, то
распаковывается информация поступающая из стандартного
файла ввода, а результат записывается в стандартный
файл вывода.
ДИАГНОСТИКА:
Сообщения о неоткрывающихся файлах и т.п.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
compact, ccat
188
AПK.00210-01 33 01-5
ИМЯ:
uniq - сообщить о повторяющихся строках в файле.
ФОРМАТ:
uniq [-udc [+n] [-n]] [filein [fileout]]
ОПИСАНИЕ:
Команда uniq сравнивает соседние строки файла
"filein". Вторая и последующие повторяющиеся строки
удаляются; оставшаяся часть записывается в выводной
файл. Если используется ключ "-u", выводятся только
неповторяющиеся строки. Kлюч "-d" указывает, что будет
выдаваться только одна из повторяющихся строк. Часто
ключи "-u" и "-d" используются совместно.
Ключ "-c" отменяет действие ключей "-u" и "-d" и зада-
ет режим, при котором повторяющиеся строки не выдаются
и перед каждой строкой печатается сколько раз данная
строка встретилась в исходном файле.
Аргумент "n" указывает, какую начальную часть каждой
строки нужно пропустить при сравнении:
-n Игнорируются первые "n" полей и любое число про-
белов перед каждым полем. Поле определяется как
строка символов (не пробелов и не символов табу-
ляции), отделяемая от своих соседей символами
табуляции или пробелами.
+n Игнорируются первые "n" символов. Поля пропуска-
ются перед символами.
189
AПK.00210-01 33 01-5
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
sort, comm
190
AПK.00210-01 33 01-5
ИМЯ:
units - преобразование единиц измерений.
ФОРМАТ:
units
ОПИСАНИЕ:
Команда units преобразует величины из одной системы
единиц в другую, Работа ведется интерактивно следующим
образом:
you have: inch
you want: cm
* 2.54000е+00
/ 3.93701е-01
Величина задается как мультипликативная комбинация
единиц, необязательно сопровождаемая числовым множите-
лем. Степени указываются в виде суффикса, состоящего
из положительных целых чисел: деление - обычным зна-
ком:
you want: 15 pounds forse/in2 you want: atm
* 1.02059+00
/ 9.79730е-01
Команда units выполняет только мультипликативные изме-
нения шкалы. Таким образом, она может перевести граду-
сы Кельвина в Ренкина, но не может перевести градусы
Цельсия в градусы Фаренгейта. Распознаются наиболее
знакомые единицы, абревиатуры и метрические приставки,
191
AПK.00210-01 33 01-5
а также несколько констант:
pi отношение длины окружности к диаметру;
c скорость света;
e заряд электрона;
g ускорение силы тяжести;
force то же, что g;
mole число Авогадро;
water давление единицы водяного столба;
au астрономическая единица;
Pound единица массы.
Составные названия пишутся слитно. Типично английские
единицы, отличающиеся от одноименных единиц использу-
емых в США, снабжаются приставкой br (например,
brgallon). Названия денежных единиц составляется из
названия страны и собственно единицы (например,
britanpound).
Полный список единиц можно получить, распечатав файл
/usr/lib/units.
ЗАМЕЧАНИЯ:
Для того, чтобы преобразование валют работало верно,
необходимо постоянно корректировать файл
/usr/lib/units.
192
AПK.00210-01 33 01-5
ИМЯ:
vmid - распечатать идентификатор ВМ
ФОРМАТ:
vmid
ОПИСАНИЕ:
команда распечатывает идентификатор виртуальной мaшины
,в кoтopoй paбoтaeт пользователь ДЕМОС.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
vmid
193
AПK.00210-01 33 01-5
ИМЯ:
vmmsg - послать сообщения пользователю ВМ
ФОРМАТ:
vmmsg идвм [текст ...]
ОПИСАНИЕ:
команда позволяет пользователю ДЕМОС послать сообщения
для пользователя ВМ. Регистрационный идентификатор
пользователя автоматически включается в сообщение.
Если командная строка не coдepжит cooбщeниe ,тo для
данного сообщения используется стандартный ввод. Мак-
симальная длина сообщения- 100 символов.
194
AПK.00210-01 33 01-5
ИMЯ:
vmpunch - перфорироваtь файл ДЕМОС.
ФОРМАТ:
vmpunch [-rhdsqo] [-v идвм] [-i имя] [-t тег]
[-c класс] [-f тег_файл] [-u имя] [-x коман-
да[:аргумент]] [файл]
ОПИСАНИЕ:
Команда vmpunch записывает данный файл (или использу-
ется cтaндapтный ввoд, ecли никaкoгo файла не дано)
для перфорации в ВМ. ВМ будет передавать отперфориро-
ванный файл для виртуального считывающего устройства
виртуальной машины указанного идентификатора или, ecли
oн нe yкaзaн, oн берется из файла /etc/passwd.
-r пoдaвляeт пpeoбpaзoвaниe данных из КОИ-8 в ДКОИ;
-h посылает файл с заголовком;
-d удалить вводной файл после его перфорации;
-s перфорировать в режиме "stream". Данные перфори-
руются в формате "TWO BYTE <LENGTH> <DATA>...";
-q принимающая система ДЕМОС не извещает владельца
о прибытии файла;
-о режим переписывания. Сообщает принимающей систе-
ме ДЕМОС о необходимости переписать записанный
файл;
195
AПK.00210-01 33 01-5
-v идвм
идeнтификaтop BM, кoтopaя получает задание. Если
параметр имеет форму COMPLEX.VMID, тогда файл
передается в ПДП для направления его в систему,
указанную с помощью COMPLEX. Если -v не исполь-
зуеся, то команда будет использовать ввод из
/etc/passwd;
-i используется указанный идентификатор пользовате-
ля ДЕМОС для назначения пpaвa oблaдaния фaйлoм,
ecли данные перфорируются для системы ДЕМОС;
-f используйте "tег_файл" в кaчecтвe имeни, кoтopoe
дается файлу. Ecли нe иcпoльзyeтcя, тo команда
будет использовать имя ввoднoгo фaйлa, ecли этo
нe cтaндapтный ввoд, в этoм случае используется
"from.punch";
-c класс для перфорации. Обычно в;
-т использование указанной информации. Особенно по-
лезно это при перфорировании для ПДП;
-u использовать указанный идентификатор пользовате-
ля как идентификатор машины ДEMOC, paбoтaющeй
кaк ВМ. В этом случае генерируется карта userid
для принимающей машины;
-Х выполнить команду из /usr/spool/bin с аргумента-
ми Перфорируемый файл становится стандартным
вводом для команды в принимающей системе ДЕМОС.
196
AПK.00210-01 33 01-5
Данная команда не должна использоваться для перфорации
заданий для системы ОС ЕС. Для этого необходимо ис-
пользовать команду send.
Перфорируемые файлы между системами ДЕМОС используют
заголовок для пepeдaчи информации об идентификаторе
пользователя и местoнахождении файла. Для перемещений
между системами ДЕМОС используются флаги -i и -x.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
send, vmread, spooler
197
AПK.00210-01 33 01-5
ИМЯ:
wc - подсчет слов.
ФОРМАТ:
wc [-lwcpt] [-bбод] [-sразм_стр] [-u]
[-v] [файл...]
ОПИСАНИЕ:
Команда wc подсчитывает число строк, слов, символов и
(если заказано) число листов и время передачи по линии
связи указанных файлов. Если отсутствуют аргументы
"файл", весь подсчет делается для информации из стан-
дартного файла ввода. Словом считается максимальная
строка символов, ограниченная пробелами, символами та-
буляции или символами новой строки.
Ключ, если он задается, может содержать символы "l",
"w", "c", "p", и "t" что соответствует подсчету строк
(l), слов (w), символов (c), числа листов (p) и време-
ни передачи (t).
-bбод Указывает, что скорость передачи ("бод") отлична
от принятой по умолчанию (300 бод).
-sразм_стр
Задает размер листа (по умолчанию 66 строк).
-u Указывает, что при определении времени печать
следует учитывать время передачи по сети.
-v Задает режим печати заголовков.
198
AПK.00210-01 33 01-5
ПРИМЕРЫ:
Подсчет числа слов, строк, листов в файле wc.1 и выда-
ча данной информации с заголовком:
wc -lwcpt -v wc.1
в результате выполнения этой команды будет выдано сле-
дующее сообщение:
lines words chars pages time@300
42 86 1312 1 43.0 se wc.1
ЗАМЕЧАНИЯ:
При подсчете времени печати не учитываются такие фак-
торы как степень загрузки машины, и т.п.
199
AПK.00210-01 33 01-5
ИМЯ:
whatis - выдать краткую справку о компоненте.
ФОРМАТ:
whatis name ...
ОПИСАНИЕ:
Команда whatis выдает краткую справку о назначении
каждой из перечисленных компонент системы ("name").
Полные документы по заданным компонентам можно полу-
чить с помощью команды man.
ФАЙЛЫ:
/usr/lib/whatis краткий справочник
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
man, catman, apropos
200
AПK.00210-01 33 01-5
ИМЯ:
whereis - поиск компоненты
ФОРМАТ:
whereis [-sbm] [-u] [-sbm справоник ... -f] name
ОПИСАНИЕ:
Команда whereis производит поиск всех вхождений ука-
занного имени ("name") в имена файлов стандартных
справочников. При сравнении заданного имени с базовым
именем файла, окончания типа ".c", ".bak" ".etc" и
т.п., не рассматриваются. Выдаются полные имена най-
денных файлов.
При вызове команды могут задаваться следующие ключи:
-s производить поиск в справочниках, содержащих ис-
ходные тексты команд (по умолчанию, просматрива-
ются справочники с исходными текстами команд ОС
ДЕМОС);
-b производить поиск в справочниках, содержащих го-
товые к выполнению команды (по умолчанию, прос-
матриваются справочники с командами ОС ДЕМОС);
-m производить поиск в справочниках, содержащих до-
кументацию. (по умолчанию, просматриваются спра-
вочники с оперативной документацией по ОС
ДЕМОС);
-u выдавать сообщения только о тех файлах, имена
201
AПK.00210-01 33 01-5
которых не содержат вхождений ни одного из эле-
ментов списка "name".
-f признак конца списка справочников.
Ключи "-b", "-m", и "-s" могут использоваться для за-
дания области просмотра команды whereis. В этом слу-
чае, после соответствующего ключа помещается список
справочников, содержащих файлы указанного типа.
ПРИМЕРЫ:
Поиск всех файлов в справочнике основных команд систе-
мы, которые не имеют соответствующих описаний в спра-
вочнике с оперативной документацией:
whereis -u -m /bin
ФАЙЛЫ:
/bin/*
/usr/bin/*
/usr/lib/*
/etc/*
Поскольку используется системный вызов chdir, имена
справочников, в которых осуществляется поиск, должны
приводится полностью.
202
AПK.00210-01 33 01-5
ИМЯ:
who - кто работает в системе.
ФОРМАТ:
who [who-файл] [am i]
ОПИСАНИЕ:
Команда who без аргумента выдает для каждого активного
пользователя системы ДЕМОС регистрационное имя, имя
терминала и время регистрации. Если задан аргумент,
печатается аналогичная строка о выходе из системы без
имени пользователя. Для повторных загрузок печатается
строка с "x" на месте имени устройства и время оконча-
ния работы системы.
Если заданы два аргумента, например, "who am I" (а
также "who are you"), who печатает имя под которым вы
зарегистрировались в системе.
ФАЙЛЫ:
/etc/utmp
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
getuid, utmp
203
AПK.00210-01 33 01-5
ИМЯ:
write - передача сообщения другому пользователю.
ФОРМАТ:
write имя_пользователя [имя_tty]
ОПИСАНИЕ:
Команда write используется для передачи сообщений на
терминал другого пользователя. Когда команда вызывает-
ся, она посылает сообщение:
Message from "username" "ttyname"..
Передача продолжается до тех пор пока не считывается
конец файла на терминале или не посылается прерывание.
По концу передачи, write печатает на другом терминале
"EOF" и завершает работу.
Если вы хотите послать сообщение пользователю, который
более чем один раз зарегистрировался в системе, можно
использовать аргумент "имя_tty" для того, чтобы ука-
зать соответствующее имя терминала.
С помощью команды mesg можно закрыть свой терминал на
прием сообщений от других пользователей. Вначале
запись разрешается. Некоторые команды, в частности re,
и pr, на время своей работы закрывают терминал на при-
ем сообщений, чтобы предотвратить беспорядочный вывод.
Если строка начинаетсяя символом "!", write вызывает
интерпретатор команд для того, чтобы выполнить остаток
204
AПK.00210-01 33 01-5
строки как команду.
При использовании write рекомендуется придерживаться
следующего протокола: при первом обращении к другому
пользователю, перед тем, как начинать свою посылку,
дождитесь его ответа. Каждая сторона должна заканчи-
вать каждое сообщение выделяющим сигналом "о". Код
"оо" используется, когда диалог близок к завершению.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
mesg, who, mail
205
AПK.00210-01 33 01-5
ИМЯ:
xstr - выделение текстовых констант из программ на
языке Си.
ФОРМАТ:
xstr [-c] [-x] [-] [файл]
ОПИСАНИЕ:
Команда xstr предназначена для выноса текстовых строк
из программ на Си и сбора их либо в отдельный модуль,
либо во внешний файл. В первом режиме команда xstr
ведет файл "strings", в котором собраны текстовые
константы разных частей большой программы. Эти
константы заменяются в программе ссылками на соот-
ветствующую строку в этом файле вида "&xstr[номер]".
Во втором режиме создается файл "Messages", в который
собираются достаточно длинные (больше 12 байтов)
текстовые строки. Обращения к этим строкам заменяются
на обращения к программе "Xsline(адрес)", которая чи-
тает строку по указанному адресу в буфер и возвращает
адрес считанной строки.
Не всегда такая замена строк корректна. Команда "xstr"
при обработке текста программы воспринимает специаль-
ные комментарии, которые выключают или включают раз-
личные режимы обработки программы.
Команда
xstr -c имя
206
AПK.00210-01 33 01-5
выделяет из файла "имя", в котором находится исходный
текст программы на языке Си, строки и заменяет их
ссылками вида &xstr[число]. К файлу добавляется соот-
ветствующее об'явление массива xstr. Результирующий
текст на Си помещается в файл x.c и должен затем быть
скомпилирован. Выделенные строки размещяются в файле
strings, если их там до этого не было. Повторяющиеся
строки и строки, представляющие собой части существу-
ющих строк, не приводят к изменениям в файле strings.
После того, как все компоненты большой программы ском-
пилированы, должен быть создан файл xs.c, инициализи-
рующий массив xstr, с помощью команды вида:
xstr
Этот файл xs.c должен быть скомпилирован и загружен
вместе с остальной программой. Массив xstr можно пере-
вести из сегмента "data" в сегмент "text", (например,
оттранслировав его на язык ассемблера и поменяв слово
".data" на ".text" в полученном файле).
Xstr может также работать с одним файлом. Команда:
xstr имя
создает, как и прежде, файлы х.c и xs.c, не пользуясь
при этом никаким файлом strings в том же каталоге.
Выполнение xstr наиболее эффективно после работы преп-
роцессора Си, если какие-либо макроопределения создают
строки или если имеется условно транслируемые части
207
AПK.00210-01 33 01-5
программы, содержащие строки, которые фактически могут
не понадобиться. Если задан аргумент "-", xstr
считывает стандартный файл ввода. Для выполнения xstr
после препроцессора Си может использоваться следующая
последовательность команд:
cc -C -P имя.c
xstr -c имя.i
cc -c х.c
mv х.o имя.o
rm имя.i
Если не добавляются новые элементы, xstr не изменяет
файл strings; таким образом, можно избежать повторного
создания xs.o, за исключением случаев, когда это дей-
ствительно необходимо.
Команда:
xstr -x -c имя
собирает строки в файл "Mesages", и переписывает прог-
рамму в файл "x.c", заменяя строки на обращения к
функции "Xsline(адрес)", где "адрес" - адрес строки в
файле "Messages". В программу вставляется описание
функции Xsline. Команда:
xstr -x
создает файл "xs.c", содержащий текст функции Xsline.
При трансляции этот файл настраивается на имя файла с
208
AПK.00210-01 33 01-5
текстами диагностик с помощью макропеременной
"XSFILE":
cc -O -c -DXSFILE=
Для управления обработкой в программе на Си служат
псевдокомментарии:
/*NOXSTR*/
блокировка выноса строк в режиме "xstr -c" в
тексте за комментарием;
/*NOXXSTR*/
то же самое, но в режиме "xstr -c -x";
/*YESXSTR*/ или /*YESXXSTR*/
разрешение выноса строк в обоих режимах.
Естественно, что, если xstr используется после препро-
цессора, должен использоваться флаг команды cc "-C"
для того, чтобы препроцессор не уничтожал комментарии.
При использовании "xstr -c" вынос строк должен блоки-
роваться в конструкциях инициализации типа:
char x[]="строка";
При выносе строки в файл (режим "xstr -c -x") обработ-
ка должна блокироваться во всех инициализациях данных,
а также везде, где строка будет использоваться сколь
нибудь продолжительно. Это связано с тем, что при зап-
росе у функции Xsline следующей строки предыдущая сти-
рается.
209
AПK.00210-01 33 01-5
При использовании "xstr -x -c" в программах, которые
собираются с помощью команды "ldover", файл "Messages"
можно дозаписать в библиотеку разделов загрузки
"V.out.a"; в этом случае функцию Xsline (файл xs.c)
транслировать не нужно.
ЗАМЕЧАНИЯ:
Если строка является суффиксом другой строки, но более
короткая строка первой просматривается xstr, в файл
"strings" помещаются обе строки, хотя достаточно было
бы поместить только более длинную строку.
210
AПK.00210-01 33 01-5
ИМЯ:
yacc - компилятор компиляторов.
ФОРМАТ:
yacc [-vd][-f парсер] грамматика
ОПИСАНИЕ:
Yacc преобразовывает безконтекстную грамматику в набор
таблиц для простого автомата, который выполняет алго-
ритм грамматического разбора. Грамматика может быть
неоднозначной, для устранения неоднозначности исполь-
зуются правила старшинства, задаваемые пользователем.
Выходной файл должен быть скомпилирован компилятором
Си, в результате чего получается программа yyparse.
Эта программа должна быть загружена совместно с прог-
раммой лексического анализа yylex, а также программой
main и программой обработки ошибок yyerror. Эти прог-
раммы пишутся пользователем. Для создания лексических
анализаторов, которые могут работать с yacc, можно ис-
пользовать lex.
Если задан флаг -v, yacc составляет файл y.output, со-
держащий описание таблиц грамматического разбора и от-
чет о конфликтах, связанных с неоднозначностями грам-
матики.
Если задается флаг -d, генерируется файл с операторами
#define, в которых устанавливается связь между "кодами
знаков", присваиваемых yacc, и именами знаков, об'яв-
211
AПK.00210-01 33 01-5
ляемых пользователем. Этим самым создается возможность
доступа к кодам знаков из других исходных файлов.
Если задан флаг -f, используется нестандартный грамма-
тический анализатор из файла, имя которого задается
следующим за флагом аргументом, "парсер". По умолчанию
используется "/usr/lib/yaccpar".
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ :
lex
ДИАГНОСТИКА:
В стандартный файл вывода выдается число конфликтов
reduce-reduce и shift-reduce. Сообщается также, если
некоторые правила не достижимы со стартового символа.
ЗАМЕЧАНИЯ:
Поскольку имена файлов постоянны, в один и тот же
момент в заданном каталоге может быть активным только
один процесс yacc.
2
AПK.00210-01 33 01-5
АННОТАЦИЯ
Данный документ содержит команды общего назначения
системы демос, предназначенные для непосредственного вызо-
ва пользователем. Приводимые в приложении команды отражают
текущее состояние стандартной оперативной справочной доку-
ментации системы. Все команды в документе упорядочены в
алфавитном порядке. В документе для удобства пользования
описание команд начинается с нового листа.
3
AПK.00210-01 33 01-5
СОДЕРЖАНИЕ
1. КОМАНДЫ ОБЩЕГО НАЗНАЧЕНИЯ......................... 4
ПРИЛОЖЕНИЕ............................................ 5
Популярность: 6, Last-modified: Mon, 29 Jun 1998 13:53:10 GmT