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