НАЗВАНИЕ
accept, reject - разрешение или запрет запросов на пе- чать
СИНТАКСИС
/usr/lib/accept адресат ... /usr/lib/reject [-r [причина]] адресат ...
ОПИСАНИЕ
Команда accept разрешает команде удовлетворять запросы, относящиеся к указанным адресатам. Адресатом может быть либо строчный принтер, либо класс принтеров. Для определения состояния адресатов применяется команда .
Команда reject запрещает команде удовлетворять запросы, относящиеся к указанным адресатам. Адресатом и здесь может быть либо строчный принтер, либо класс принтеров, а для определения состояния адресатов применяется команда . В команде reject может быть задана следующая опция:
-r[причина]
Связывает причину с запрещением вывода. Эта причина относится ко всем принтерам, перечисленным до следующей опции -r. Причина сообщается командой lp, когда пользователь направляет запрос адресату, а также по команде . Если опция -r не задана или задана без указания причины, то действует подразумеваемая причина.
ФАЙЛЫ
/usr/spool/lp/*
СМ. ТАКЖЕ
, lpshed(1M).
, , , в Справочнике пользователя.
НАЗВАНИЕ
fseek, rewind, ftell - установка текущей позиции потока
СИНТАКСИС
#include <stdio.h>
int fseek (stream, offset, ptrname) FILE *stream; long offset; int ptrname;
void rewind (stream) FILE *stream;
long ftell (stream) FILE *stream;
ОПИСАНИЕ
Функция fseek устанавливает позицию следующей операции ввода/вывода для потока stream. Новая позиция находится на расстоянии offset байт от начала, от текущей позиции или от байта, содержащего признак конца файла в зависимости от значения аргумента ptrname (0, 1 или 2 соответственно). Если значение offset отрицательно, то новая позиция будет расположена левее точки отсчета.
Действие функции rewind (stream) совпадает с действием функции fseek (stream, 0L, 0). Отличие только в том, что функция rewind не возвращает никакого значения.
Функции fseek и rewind аннулируют действие функции .
В файле, открытом для чтения и записи, после вызова функций fseek и rewind допустимы как операции чтения, так и записи.
Функция ftell возвращает смещение текущей позиции относительно начала файла, ассоциированного с указанным потоком stream.
СМ. ТАКЖЕ
, , , , .
ДИАГНОСТИКА
При неудачном завершении функция fseek возвращает ненулевое значение, в противном случае результат равен 0. Неудача может об ясняться тем, что файл не был открыт посредством функции fopen; в частности, функцию fseek нельзя использовать для потоков, ассоциированных с терминалом, а также для файлов, открытых функцией .
НАЗВАНИЕ
haltsys, reboot - закрывают файловые системы и разгружают операционную систему.
СИНТАКСИС
/etc/haltsys /etc/reboot
ОПИСАНИЕ
Утилита haltsys выполняет системный вызов uadmin() (см. ) для прекращения дискового ввода/вывода, очистки файловых систем и остановки процессора. haltsys вступает в действие сразу же, поэтому пользовательские процессы должны быть прерваны заранее. Для нормальной разгрузки системы рекомендуется программа shutdown(ADM), так как она предупреждает пользователей, прерывает процессы и затем вызывает haltsys. Если вы не можете запустить shutdown, например, из-за какой-либо системной проблемы, используйте haltsys непосредственно.
Команда reboot выполняет ту же функцию, что и haltsys, за исключением того, что после всего система автоматически перезагружается.
Только привилегированный пользователь может выполнять haltsys или reboot.
ПРИМЕЧАНИЯ
haltsys паркует головки жесткого диска.
СМ. ТАКЖЕ
shutdn(2), ,
НАЗВАНИЕ
malloc, free, realloc, calloc - управление памятью
СИНТАКСИС
char *malloc (size) unsigned size;
void free (ptr) char *ptr;
char *realloc (ptr, size) char *ptr; unsigned size;
char *calloc (nelem, elsize) unsigned nelem, elsize;
ОПИСАНИЕ
Функции malloc и free предоставляют простой универсальный механизм выделения и освобождения памяти. Функция malloc возвращает указатель на блок памяти размером не менее size байт, который можно использовать в произвольных целях.
Аргументом функции free является указатель на блок памяти, предварительно выделенный с помощью функции malloc; после выполнения free эта часть памяти может быть выделена вновь, но ее содержимое теряется.
В случае выхода за границы блока, выделенного функцией malloc, а также при вызове функции free с аргументом, не являвшимся результатом malloc, эффект будет непредсказуемым.
Функция malloc выделяет память из первого достаточно большого непрерывного блока свободной памяти, просматривая все блоки по циклу, начиная с последнего выделенного или освобожденного. Попутно смежные свободные блоки об единяются в один больший свободный блок. Если не нашлось подходящего блока, то вызывается sbrk [см. ], в результате чего сдвигается верхняя граница сегмента данных программы.
Функция realloc изменяет размер блока, на который указывает аргумент ptr, до величины в size байт и возвращает указатель на (возможно перемещенный) блок. Часть содержимого блока до наименьшего из нового и старого размеров не изменяется. Если блок размером size байт не удается разместить на прежнем месте, то вызывается malloc для выделения блока нужного размера, после чего данные из старого блока перемещаются на новое место.
Аргумент ptr функции realloc может указывать и на блок, освобожденный после последнего обращения к функциям malloc, realloc или calloc. Зная стратегию выделения памяти, последовательные вызовы функций malloc, free и realloc можно использовать для уплотнения памяти.
Функция calloc выделяет пространство для массива из nelem элементов, каждый размером elsize байт, и заполняет массив нулями.
Границы выделяемых блоков памяти располагаются так, чтобы обеспечить (быть может после преобразования типов результирующих указателей) хранение произвольных об ектов.
СМ. ТАКЖЕ
НАЗВАНИЕ
ramdisk - блочно-ориентированное устройство памяти (псевдодиск).
ОПИСАНИЕ
Драйвер устройства ramdisk обеспечивает блочный интерфейс к памяти. ramdisk можно использовать как и любое другое блочное устройство, включая установку файловых систем с помощью mkfs(8). Существует восемь типов доступных псевдодисков.
Характеристики файла ramdisk определяются малым числом устройства. Биты этого числа содержат информацию о размере устройства, его долговечности и номере одного из восьми псевдодисков.
Три младших бита малого числа устройства определяют, какое из восьми упомянутых псевдодисков будет использоваться.
Следующие четыре бита определяют размер этого псевдодиска. Размер ramdisk должен быть кратен 2 и должен быть не меньше 16K. Поскольку имеется 4 бита, то может быть 16 различных размеров, начиная с 16K и удваивая это значение при каждом единичном увеличении указателя размера. При этом будет получаться 16K, 32K, 64K и т.д.
Самый старший бит является указателем долговечности. Если он установлен, то этому псевдодиску будет постоянно выделяться заданная память, которая отключается только при перезагрузке системы. Постоянные псевдодиски могут резервироваться только привилегированным пользователем. Но когда постоянный псевдодиск зарезервирован (посредством его открытия), он может использоваться для чтения и записи всеми, кто имеет соответствующее разрешение в дескрипторе псевдодиска.
Если этот бит сброшен и если процессы, открывающие его, отсутствуют, то псевдодиск отключается. Для создания легко удалимого, но полу-постоянного псевдодиска используйте отдельный процесс для открытия и поддержания этого устройства в течение нужного времени.
Поскольку полный набор восьми псевдодисков поглотил бы 256 индексных дескрипторов, то при инсталляции системы создается только один ramdisk размеров 16K (/dev/ram00). Администратор системы может проанализировать существующий файл этого устройства, чтобы определить главное (большее) число устройства для создания других потребовавшихся псевдодисков. Все эти устройства будут иметь одинаковое главное число устройства.
НАЗВАНИЕ
rand, srand - простой генератор случайных чисел
СИНТАКСИС
int rand ( )
void srand (seed) unsigned seed;
ОПИСАНИЕ
Функция rand, использующая мультипликативный конгруэнтный генератор случайных чисел с периодом 2^32, возвращает последовательно псевдослучайные числа в диапазоне от 0 до 2^15-1.
Функция srand может быть вызвана в любой момент, чтобы задать для генератора случайных чисел новое случайное начальное значение. При первом вызове в качестве такового генератор использует значение 1.
ПРИМЕЧАНИЯ
Спектральные свойства функции rand оставляют желать лучшего. Функция представляет собой гораздо более качественный, хотя и более сложный генератор случайных чисел.
СМ. ТАКЖЕ
.
ИМЯ
random - Генерирует случайное число.
СИНТАКСИС
random [-s] [ scale ]
ОПИСАНИЕ
Команда random генерирует случайное число на стандартный вывод и возвращает число в качестве выходной величины. По умолчанию это число равно либо 0, либо 1 (т.е. шкала "scale" - это 1 по умолчанию). Если задан аргумент scale, представляющий собой число от 1 до 255, то диапазон случайного числа будет от 0 до scale. Если величина scale превышает 255, то печатается сообщение об ошибке.
Если задана опция -s ("silent" - тишина), случайное число возвращается как код завершения, но не выводится на стандартное устройство вывода. Если возникает ошибка, то команда random возвращает нулевой код завершения.
СМ. ТАКЖЕ
rand(2)
ЗАМЕЧАНИЯ
Эта команда не выполняет вычисления с плавающей точкой.
Команда random использует время дня в качестве начального числа.
ИМЯ
ranlib - пocтpoeниe oглaвлeниe библиoтeки
СИНТАКСИС
ranlib archive ...
ОПИСАНИЕ
Koмaндa ranlib cтpoит для yкaзaнныx библиoтeк oбъeктныx фaйлoв archive oглaвлeниe, дoбaвляя в нaчaлo библиoтeки фaйл c имeнeм __.SYMDEF. B нeм пepeчиcлeны вce внeшниe имeнa из oбъeктныx фaйлoв, cocтaвляющиx библиoтeкy.
Oглaвлeниe дaeт вoзмoжнocть кoмпoнoвщикy выбиpaть вce нeoбxoдимыe фaйлы из библиoтeки, нeзaвиcимo oт пopядкa иx pacпoлoжeния. Kpoмe тoгo, кoмпoнoвкa из библиoтeки c oглaвлeниeм пpoиcxoдит быcтpee.
Koмaндa ranlib иcпoльзyeт кoмaндy для пepecтpoйки библиoтeки, пoэтoмy нa диcкe дoлжнo быть дocтaтoчнo cвoбoднoгo мecтa для вpeмeнныx фaйлoв.
СМ. ТАКЖЕ
, , ,
ПPИМEЧAНИE
Пpи кoмпoнoвкe ld пpoвepяeт вpeмя мoдификaции библиoтeки и вpeмя coздaния библиoтeки и в cлyчae, ecли пepвoe вpeмя бoльшe втopoгo, выдaeт пpeдyпpeждeниe и нe иcпoльзyeт oглaвлeниe. Taкoe мoжeт пpoизoйти и в cлyчae пpocтoгo кoпиpoвaния библиoтeки.
НАЗВАНИЕ
ratfor - препроцессор для рационального диалекта Фортрана
СИНТАКСИС
ratfor [-h] [-C] [-6символ] [файл ..]
ОПИСАНИЕ
Команда ratfor преобразует рациональный диалект Фортрана в обычный, иррациональный Фортран. Ratfor предоставляет управляющие конструкции, по существу идентичные соответствующим конструкциям языка C:
Группировка операторов:
{ оператор; оператор; оператор }
Ветвление:
if (условие) оператор [ else оператор ] switch (целое значение) { case целое: оператор ... [ default: ] оператор }
Циклы:
while (условие) оператор for (выражение; условие; выражение) оператор do пределы оператор repeat оператор [ until (условие) ] break next
и некоторый синтаксический сахар, который облегчает чтение и написание программ:
Свободный формат исходного текста: несколько операторов на одной строке; один оператор на нескольких строках. Комментарии: # - это комментарий. Трансляция операций сравнения и логических операций: >, >=, & и т.д. преобразуются в .GT., .GE., .AND. и т.д. Возврат выражения в качестве результата функции: return (выражение) Макроопределения: define имя замена Вставка файлов: include файл
Допустимые опции:
В шестую позицию строк продолжения ставится указанный символ. По умолчанию строки продолжения помечаются символом & в первой позиции.
Препроцессор ratfor лучше всего использовать с компилятором .
СМ. ТАКЖЕ
, .
НАЗВАНИЕ
rc0 - процедура остановки системы
СИНТАКСИС
/etc/rc0
ОПИСАНИЕ
Процедура /etc/rc0 вызывается при изменениях уровня выполнения системы, предполагающих ее деактивацию перед выключением.
Вообще говоря, имеется три уровня, требующих выполнения процедуры rc0: уровень 0 (остановка) уровень 5 (передача управления программам в ПЗУ) уровень 6 (перезагрузка). Например, строка файла /etc/inittab может выглядеть так:
r0:0:wait:/etc/rc0 1> /dev/console 0>&1
Некоторые из действий, производимых процедурой rc0, выполняются файлами из каталога /etc/shutdown.d (что является атавизмом) и файлами, начинающимися с буквы K, из каталога /etc/rc0.d. Эти файлы выполняются в алфавитном порядке [подробнее см. пункт ФАЙЛЫ в ], деактивируя соответствующие системные службы. Таким образом, способ остановки определяется комбинацией команд процедуры rc0 и файлов из каталога /etc/rc0.d.
Рекомендуется, чтобы процедура rc0 выполняла следующую последовательность действий:
Прекращение работы системных служб и демонов
Различные службы (планировщик принтеров, демон регистрации ошибок и т.п.) нормально завершаются.
Если в систему добавляются новые службы, требующие аккуратного завершения при остановке системы, в каталог /etc/rc0.d следует добавить соответствующие файлы.
Завершение процессов
Всем выполняемым процессам посылается сигнал завершения SIGTERM, что дает им возможность аккуратно терминироваться.
Уничтожение процессов
После паузы всем оставшимся процессам посылается сигнал уничтожения SIGKILL [посредством команды ], перехватить или проигнорировать который нельзя.
В результате предшествующих действий активными остаются лишь специальные системные процессы 0 и 1, а также процесс, связанный с /etc/rc0.
Размонтирование всех файловых систем
Остается смонтированной только корневая (/) файловая система.
Дальнейшие действия определяются уровнем выполнения (0, 5 или 6) и содержимым файла /etc/inittab. Если, как в случае уровня 0, в файле не определены дополнительные действия, операционная система ничего не делает и нет возможности получить ее отклик. Все, что можно сделать - это либо выключить питание, либо вызвать аппаратный монитор.
Процедура rc0 может быть выполнена только суперпользователем.
СМ. ТАКЖЕ
, , , .
в Справочнике пользователя.
, в Справочнике программиста.
НАЗВАНИЕ
rc2 - процедура перехода в многопользовательский режим
СИНТАКСИС
/etc/rc2
ОПИСАНИЕ
Процедура /etc/rc2 вызывается в соответствии со схемой процесса , хранящейся в файле /etc/inittab. Процедура rc2 выполняет действия, переводящие систему в состояние готовности к обслуживанию пользователей (обычно это уровень 2, так называемый многопользовательский режим).
Процедура rc2 вызывает файлы из каталога /etc/rc.d, а также файлы (начинающиеся с буквы S) из каталога /etc/ rc2.d. Эти файлы выполняются командным интерпретатором в алфавитном порядке, определяемом кодом ASCII (подробности см. ниже в пункте ФАЙЛЫ). При добавлении новых функций, требующих инициализации при переходе в многопользовательский режим, соответствующие файлы должны быть занесены в каталог /etc/rc2.d.
Обычно процедура rc2 и вызываемые ею файлы выполняют следующую последовательность действий:
Удаляются все файлы из каталогов /tmp и /usr/tmp. Инициализируются все порты и запускаются соответствующие программы. Запускается демон регулярных действий /etc/cron. Удаляются временные файлы и файлы-замки из каталога /usr/spool/locks.
Процедура rc2 может быть выполнена только суперпользователем.
ПРИМЕРЫ
Ниже представлены примеры процедур из каталога /etc/ rc2.d. Имена файлов начинаются с префикса Sn, где n числа, определяющие порядок выполнения файлов.
S03MOUNTFILESYS # Монтирование файловых систем cd / /etc/mountall /etc/fstab
S04RMTMPFILES # Очистка каталога /tmp rm -rf /tmp mkdir /tmp chmod 777 /tmp chgrp sys /tmp chown sys /tmp
S70uucp # Удаление временных файлов системы uucp. rm -rf /usr/spool/locks/*
ФАЙЛЫ
Файлы в каталоге /etc/rc2.d должны начинаться с S или K, за которыми следует номер и далее остаток имени. При выходе на уровень выполнения 2 файлы вида S* выполняются с опцией start, файлы К* - с опцией stop. Файлы, начинающиеся с других символов, игнорируются. Последнее свойство можно использовать для временного выключения файлов без их удаления.
Файлы каталогов /etc/rc.d и /etc/rc2.d выполняются в алфавитном порядке, определяемом кодом ASCII.
СМ. ТАКЖЕ
.
ИМЯ
rcmd - посылает команды на удаленные UNIX-машины.
СИНТАКСИС
rcmd [-n] [-l user]
ОПИСАНИЕ
Команда rcmd подзволяет вам посылать команды к удаленным UNIX-совместимым машинам и получать результат их работы назад. Вам нет необходимости регистрироваться на удаленной машине, чтобы использовать rcmd. Эта команда полезна для создания дистрибутивных shell программ. Чтобы использовать rcmd, вы должны иметь эквивалент машины-адресата.(Эквиваленты пользователя описаны в главе 2). Машина-адресат это машина, на которой вы хотите выполнить команду. Эта команда может быть использована только с удаленными машинами, которые используют UNIX или UNIX-совместимую операционную систему. Команда rcmd передает свой стандартый ввод и вывод удаленно выполняемым командам и возвращает в исходную систему все, что является результатом работы удаленной команды, т.е. стандартный вывод и файл ошибок. Для прямого доступа вас должен быть файл /usr/hosts.
Вызов rcmd.
Команда rcmd взята из командного языка UNIX. Вы должны установить имя машины и одну или более команд для выполнения. Например:
# rcmd имя машины команда(ы)
В большинстве случаев вы можете пропустить rcmd, которое относится к командному языку и просто записать:
# имя машины команда(ы)
Для того, чтобы вы смогли использовать эту особенность, ваш системный администратор должен конфигурировать UNIX для доступа к удаленной машине без вызова rcmd. Ваш системный администратор может подсказать вам как конфигурирована ваша машина.
Опции rcmd.
Существует две опции, которые вы можете специфицировать при вызове rcmd. Эти опции следующие:
-l пользователь Обычно, команда, которую вы специфицируете, выполняеися на удаленной машине под вашим пользовательским именем. Эта опция позволяет вам выполнять команду под другим пользовательским именем. Например:
# rcmd имя машины -l tom команда
Используете ли вы свое имя или другое имя, вы должны получить разрешение на выполнение команды на удаленной машине. Администратор машины может подсказать вам как конфигурирована удаленная машина.
-n Эта опция защищает rcmd от посылки стандартного ввода в удаленную команду и вас от считывания стандартного ввода. Это делается с помощью /dev/null. Например:
ИМЯ
rcp - Копирует файлы на удаленных машинах
СИНТАКСИС
rcp [ options ] [srcmachine:]srcfile [destmachine:]destfile
ОПИСАНИЕ
Команда rcp копирует файлы между системами в сети Micnet. Эта команда копирует файл srcmachine:srcfile в файл destmachine:destfile, где srcmachine и destmachine - это необязательные имена систем в сети, а srcfile и destfile - пути файлов. Если имя машины не задано, то назначается имя текущей системы. Если вместо srcfile задан знак -, то команда rcp использует в качестве источника стандартный файл ввода. Каталоги, поименованные на машине-получателе должны иметь разрешение на запись, а каталоги, поименованные на удаленной машине-источнике, должны иметь разрешение на чтение.
ОПЦИИ
-m Посылает по почте и сообщает о завершении команды, независимо от того, есть ли ошибка, или нет.
-u [machine:]user
Любая почта идет к поименованному пользователю (user) на машину machine. По умолчанию аргумент machine это машина, на которой команда rcp завершается, либо на которой была обнаружена ошибка. Если для пользователя на такой машине существует псевдоним в системных файлах псевдонимов, то почта будет пересылаться в соответствующий почтовый ящик(ки). Т.к. системные файлы псевдонимов обычно идентичны по всей сети, то любая машина, заданная в аргументе machine, в большинстве случаев не принимается во внимание механизмом обработки псевдонимов. Для того, чтобы избежать назначение псевдонимов, аргумент user следует отделить по меньшей мере двумя символами "\" (по меньшей мере четырьмя, если в качестве user задается команда интерпретатора shell).
Команда random полезна для передачи небольшого числа файлов через сеть. Сеть состоит из "демонов" (процедур, запускающихся автоматически при выполнении некоторых условий), которые периодически "просыпаются" и посылают файлы из одной системы в другую. Прежде, чем использовать команду rcp, необходимо с помощью команды установить сеть.
Также, для того, чтобы иметь возможность передавать файлы из удаленной системы, либо:
НАЗВАНИЕ
rcs - изменение внутренних атрибутов архивного файла
СИНТАКСИС
rcs флаги имя-файла ...
ОПИСАНИЕ
Команда rcs создает новый архивный файл в системе отслеживания версий RCS , или изменяет атрибуты существующего. Архивный файл содержит набор версий рабочего файла, список лиц имеющих доступ к изменению файла, историю изменений файла и некие внутренние управляющие атрибуты. Пользователь может работать с командой rcs , если выполнено одно из следующих условий: либо он уже внесен в список лиц имеющих доступ к изменению файла, либо этот список пуст, либо пользователь является владельцем файла или системным администратором, либо команда выполняется с флагом -i .
Полное имя файла, содержащее архивный суффикс, соответствует архивному файлу, все прочие считаются рабочими файлами. О соответствии имен файлов, см. . Там же описаны способы задания номеров версий.
ФЛАГИ
-i
Создает и инициализирует новый архивный файл, не занося в него никаких версий рабочего файла. Если не задан путь к архивному файлу, она сначала пытается поместить архив в подкаталоге RCS , затем, в текущем каталоге. Если архив уже существует, выдает сообщение об ошибке.
-alogins
Добавляет имена, перечисленные в строке без пробелов logins в список лиц имеющих доступ к изменению файла. В качестве разделителей используются запятые.
-Aoldfile
Добавляет имена, перечисленные в списке лиц имеющих доступ к изменению файла oldfile к списку лиц имеющих доступ к изменению данного файла.
-e[logins]
Удаляет имена, перечисленные в строке без пробелов logins из списка лиц имеющих доступ к изменению файла. В качестве разделителей используются запятые. Если строка logins отсутствует, полностью очищает этот список.
-b[rev]
Устанавливает номер ветви, которая будет использована по умолчанию, равным rev . Если rev опущен, то по умолчанию используется (динамически) самая последняя побочная ветвь версий, отходящая от главной.
-cstring
Устанавливает префикс для комментариев. При первоначальной регистрации файла без инициализации командой ci или с инициализацией командой rcs -i без этого флага, RCS определяет способ задания комментариев по расширению имени рабочего файла.
флаг сохранен исключительно для совместимости с предыдущими версиями, поскольку при включении истории изменений в рабочий файл по ключевому слову $Log$ , RCS вставляет префикс, заданный этим ключевым словом, при востребовании из архива (см. ). Однако, старые версии RCS используют в таком случае префикс, заданный данным флагом. Следовательно, если Вы планируете использовать и старые и новые версии, позаботьтесь о соответствии префикса в строке с $Log$ и префикса для комментариев.
-ksubst
НАЗВАНИЕ
rcsclean - чистка каталога с рабочими файлами в системе отслеживания версий RCS
СИНТАКСИС
rcsclean [флаги] [имя-файла ... ]
ОПИСАНИЕ
Команда rcsclean удаляет из текущего каталога рабочие файлы, над которыми не ведется работа (которые не забронированы для внесения изменений никем). Команда rcsclean -u удаляет и отменяет бронирование тех файлов, которые не были изменены фактически.
Для каждого заданного файла, команда rcsclean сравнивает рабочий файл с забронированной версией архивного файла. Если они отличаются, то ничего не происходит. В противном случае, при наличии флага -u отменяется бронирование, и, если файл не является одновременно бронированным и открытым для записи (сочетание, характерное для востребования с целью внесения изменений), он удаляется. О всех своих действиях команда rcsclean посылает сообщения на стандартный вывод вызываемые rcs -u (о снятии брони) и rm -f (об удалении).
Соответствие между именами рабочих и архивных файлов описано в . Если имена файлов не заданы, операция применяется к текущему каталогу.
Для флагов -n, -q, -r и -u можно указывать номер версии. Если с флагом -u номер версии не задан, но вызывающий забронировал единственную версию, она и имеется ввиду. В остальных случаях используется последняя из версии на ветви, используемой по умолчанию, обычно, главной.
Команда rcsclean удобна для построения с командой таких объектов, как clean (проще говоря, очистки после окончания работы). Альтернативой в этом случае могут быть команды , определяющую изменения, и , которая вернет назад предыдущую версию, если файл не изменился.
ФЛАГИ
Устанавливает правила подстановки ключевых символов при извлечении для сравнения. Возможные правила subst описаны в . Явное задание флага -k подавит заданное по умолчанию значение.
Не удалять файлы и не снимать бронь с версий, но сообщить о требуемых действиях.
Не печатать никаких сообщений.
Задает версию для сравнения с рабочим файлом.
Сохраняет дату и время последнего изменения рабочего файла даже если в нем была снята бронь и изменены значения ключевых символов. Такое поведение флага вводит в заблуждению команду и, потому необходима осторожность. Флаг -T позволяет избежать ненужных построений (компиляций), но она может подавить их и тогда, когда изменение идентификационных маркеров существено для результата построения.
Снять бронирование версии, если она не отличается от рабочего файла.
Посылает номер версии RCS на стандартный вывод.
Имитирует поведение версии n комплекса программ RCS . См. .
Задает суффикс, добавляемый к имени архивного файла. См. .
Задает формат даты и часовой пояс при подстановке ключевых слов в маркеры. См. . <
НАЗВАНИЕ
rcsdiff - сравнение версий файла в системе отслеживания версий RCS
СИНТАКСИС
rcsdiff [ -ksubst ] [ -q ] [ -rrev1 [ -rrev2 ] ] [ -T ] [-V[n] ] [ -xsuffixes ] [ -zzone ] [ diff флаги] имя-файла ...
ОПИСАНИЕ
Команда rcsdiff вызывает команду для сравнения двух версий одного файла.
Полное имя файла, содержащее архивный суффикс, соответствует архивному файлу, все прочие считаются рабочими файлами. О соответствии имен файлов, см. . Там же описаны способы задания номеров версий.
Флагом -r могут быть заданы ноль, одна или две версии. Если задана одна версия, то в качестве второй берется рабочий файл. Если обе версии не заданы, то в качестве первой берется последняя ветвь на ветви, заданной по умолчанию (обычно -- главной), что удобно использовать для ревизии изменений сделанных с момента последнего востребования файла из архива. Версии могут быть заданы в явном виде, численно, или в символьном виде.
Флаг -ksubst Устанавливает правила подстановки ключевых символов при извлечении для сравнения. Возможные правила subst описаны в . Явное задание флага -k подавит заданное по умолчанию значение. Например, -kk -r1.1 -r1.2 игнорирует разницу связанную с разными значениями ключевых символов в версиях 1.1 to 1.2. Чтобы уменьшить выдачу и игнорировать различия вызванные подстановкой ключевых символов, по умолчанию задан флаг -kkvl , если: (1) задана хотя бы одна версия, (2) флаг -k не задан явно , (3) подстановка ключевых слов по умолчанию задана флагом -kkv и (4) атрибуты рабочего файла были созданы командой co -l .
Флаг -q подавляет выдачу сообщений. О флагах -T, -V, -x и -z см. .
Воспринимаются все флаги команды , применимые к обычным файлам. Конкретная версия команды diff задается во время построения пакета RCS; рекомендуется использовать версию из соответствующего пакета GNU.
ПРИМЕРЫ
Команда
rcsdiff f.c
сравнит рабочий файл с последней версией на главной ветви.
ПЕРЕМЕННЫЕ СРЕДЫ
RCSINIT
Список флагов используемых со всеми командами системы отслеживания версий RCS. Не забудьте, что необходимы меры для того, чтобы пробелы между флагами не были обработаны командным интерпретатором преждевременно, защищайте их, например, кавычками. См. .
СООБЩЕНИЯ
Возвращает операционной системе 0 если нет различий, 1 если есть небольшие различия, с которыми программа справляется по ее мнению, и 2 если различия слишком серьезны для работы.
СМ. ТАКЖЕ
, , , , , , ,
Walter F. Tichy, RCS--A System for Version Control, Software--Practice & Experience 15, 7 (July 1985), 637-654.
Copyright (C) Walter F. Tichy, Paul Eggert.
НАЗВАНИЕ
rcsfile - формат архивного файла в Системе Отслеживания Версий RCS .
ОПИСАНИЕ
Текст, помещенный в архив может иметь свободный формат, но сам архивный файл обязан заканчиваться символом новой строки. Разделители -- символы пробела, забоя, табуляции, новой строки, вертикальной табуляции, смены страницы, и возврата каретки -- имеют особое значение только в специальных строках и не могут появляться внутри следующих элементов: id, num и sym.
Специальные строки ограничены с обеих сторон символами @. Если архивируемая или специальная строка сама содержит @, то этот символ удваивается. Специальная строка может содержать любые символы.
Мета-синтаксис формул, использованный ниже, придерживается следующих соглашений: Символ `|' разделяет два элемента, из которых нужно выбрать один. Символы `{' и `}' ограничивают необязательный элемент. Символы `{' и `}*' ограничивают элемент, который может быть повторен ноль или более раз. Символ `{' and '}+' ограничивают элемент, который должен быть повторен один или более раз.
rcstext ::= admin {delta}* desc {deltatext}*
admin ::= head {num}; { branch {num}; } access {id}*; symbols {sym : num}*; locks {id : num}*; {strict ;} { comment {string}; } { expand {string}; } { newphrase }*
delta ::= num date num; author id; state {id}; branches {num}*; next {num}; { newphrase }*
desc ::= desc string
deltatext ::= num log string { newphrase }* text string
num ::= {digit | .}+
digit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
id ::= {num} idchar {idchar | num}*
sym ::= {digit}* idchar {idchar | digit}*
idchar ::= любой печатаемый символ, кроме special
special ::= $ | , | . | : | ; | @
string ::= @{любой символ, но @ удваиваются}*@
newphrase ::= id word* ;
word ::= id | num | string | :
Для идентификаторов имеет значение, прописная буква или строчная. Все ключевые слова набраны в нижнем регистре. Множества идентификаторов и ключевых слов могут пересекаться. Для большинства операционных систем в RCS используется стандарт ISO 8859/1 , где печатаемыми символами считаются коды 041-176 и 240-377 в восьмеричной записи, а пробелами -- 010-015 и 040 (что согласуется с КОИ-8 и кодировками IBM для OS2 и MS-Windows [code page 2041] и Mackintosh для славянских языков, но стандартная и альтернативная [code page 866] кодировки для MS-DOS приводят к двоичным файлам).
Даты после ключевого слова date имеют вид Y.mm.dd.hh.mm.ss, где Y -- год, mm -- месяц (01-12), dd день -- (01-31), hh -- час (00-23), mm -- минута (00-59), и ss секунда (00-60). Для обозначения дат с 1900 по 1999 Y представляет собой две последние цифры года; следующие года будут обозначаться четырьмя цифрами. Во внутреннем формате файла используются Григорианский Календарь и Всемирное Время.
Конструкция newphrase зарезервирована для дальнейшего расширения формата системы RCS. Гарантируется, что newphrase не будет начинаться с используемых в настоящее время ключевых слов.
Вершины, соответствующие delta образуют дерево. Вершины с номерами из двух чисел (напр., 2.3, 2.1, 1.3, и т.п.) образуют главную ветвь, и заданы обратными приращениями текста в убывающем порядке версий, начиная с последней версии главной ветви, записанной в архив целиком. Поле head в блоке admin указывает на вершину этой цепочки, т.е. на последнюю в лексикографическом смысле пару. Поле branch в блоке admin указывает на ветвь (или версию) используемую по умолчанию. Если это поле пусто, то используется последняя версия на главной ветви (старшая ветвь, выходящая из последней версии).
Вершины delta, чьи номера заданы 2n числами (n>=2) (напр., 3.1.1.1, 2.1.2.2, и т.п.) связаны следующим образом. Вершины с одинаковыми 2n-1 первыми номерами, упорядочены по последнему полю в возрастающем порядке и заданы прямыми приращениями, начиная с основания побочной ветви -- точке ветвления, заданной 2n-2 числами, общими для побочной ветви. Вершина соответствующая точке ветвления содержит упорядоченный по возрастанию список начальных вершин всех побочных ветвей, выходящих из нее.
Следующая диаграмма демонстрирует организацию информации в архиве.
НАЗВАНИЕ
rcsfreeze - фиксация состояния проекта для последующего воспроизведения в системе отслеживания версий RCS
СИНТАКСИС
rcsfreeze [символическое-имя]
ОПИСАНИЕ
Командный файл rcsfreeze присваивает символическое имя версиям, образующим текущую конфигурацию проекта.
Начальная идея была вызывать rcsfreeze каждый раз при регистрации очередной версии очередного файла. При этом последовательным состояниям проекта присваивается символическое имя C_number, где number -- номер, который возрастает при каждом вызове rcsfreeze , связывается с последней версией главной ветви каждого файла.
Дополнительный аргумент задает символическое имя для конфигурации, но не отменяет порождения C_number, которое фиксируется в регистрационном файле, но не вносится в архивные файлы.
Пользователю предлагается внести регистрационную запись в специальный регистрационный файл.
Командный файл работает только со всеми файлами проекта одновременно. Все изменения должны быть зарегистрированы. Для проверки удобно использовать которая , которая не должна оставить ни одного рабочего файла.
ФАЙЛЫ
RCS/.rcsfreeze.ver -- номер версии RCS/.rcsfreeze.log -- регистрационные записи в обратном порядке
АВТОР
Stephan v. Bechtolsheim
СМ. ТАКЖЕ
, , ,
ПРОБЛЕМЫ
rcsfreeze не проверяет, изменены ли и востребованы ли версии.
Соответствие имен рабочих и архивных файлов отличается от команд в системе отслеживания версий RCS
Проверка ошибок не развита.
rcsfreeze всего лишь пример командного файла иллюстрирующий применение RCS. Те же задачи решены гораздо серьезнее в пакете CVS.
НАЗВАНИЕ
обзор системы RCS - введение в Систему Отслеживания Версий
ОПИСАНИЕ
RCS (Revision Control System) представляет собой систему отслеживания версий изменяющихся текстовых или состоящих из строк двоичных файлов, как текст на русском языке ( о прочих -- см. флаг -kb команды co) файлов. RCS автоматизирует архивирование (не путать со сжатием!), востребование, регистрацию изменений, идентификацию и сравнение файлов, а также внесение изменений в документ, измененный другими за время вашей работы. RCS полезна для работы с часто изменяющимися документами, например, программами в процессе разработки, технической документацией, научными статьями, деловой перепиской, сборниками инструкций, и существенно облегчает работу с большими системами, в особенности, если изменения в документы вносят разные люди.
Взаимодействие с пользователем чрезвычайно просто. Новичку достаточно знать две команды: ci и co.
ci - сокращение от "check in" = "регистрация" (в том смысле, в каком понимается регистрация на самолет) - помещает содержимое рабочего файла в архивный файл, хранящий предыдущие его версии (точнее, изменения между версиями) и называемый также RCS-файлом.
co - сокращение от "check out" представляют собой не обратный процесс исключения, а получение копии некоторой версии из RCS-архива.
ФУНКЦИИ RCS
Хранить множественные версии текстовых документов. RCS хранит старые версии файла, используя гораздо меньше места, чем компрессирующие программы, поскольку ей достаточно лишь описать внесенные изменения.
Изменения, внесенные в документ, не портят оригинала, старые версии остаются доступны для извлечения. Их можно разыскивать по номерам версий, ключевым символам (символьным переменным), датам, авторам и т.п.
Хранить историю изменений. RCS делает это автоматически. Кроме самих изменений текста, вносятся также дата, имя (точнее, login name) автора, дата и время внесения изменений, и, также, краткие комментарии, описывающие суть внесенных изменений. Эта, своего рода, летопись, позволяет быстро понять, что происходило с документом без трудоемкого сравнения распечаток и опроса работавших с текстом сотрудников.
Вносит ясность в проблему доступа нескольких людей к одному и тому же тексту. Когда разные люди пытаются получить доступ ко внесению изменений одновременно, RCS предупреждает их и предотвращает затирание только что внесенных изменений.
Поддерживает целое дерево версий. Если над одним документом работает одновременно несколько человек, RCS может поддерживать раздельные линии развития одного документа, сохраняя их в структуре отражающей отношение "предшествовать" между версиями. Дерево может отражать локальные отличия версий, поставляемых конкретным заказчикам, от главной линии развития.
Объединять параллельные линии развития одного документа, предотвращая конфликты. RCS делает это производя "суммарное" изменение. Если же внесенные в две линии изменения затронули один и тот же фрагмент кода, RCS предупреждает пользователя о наложении изменений. Тот же механизм (см. флаг -j команды co) позволяет отменить изменение, внесенное на одном из предыдущих этапов, сохранив исправления, сделанные на последующих. Это же позволяет автоматически создавать локальные версии из новой главной и старой локальной. Управлять подразделением версий и конфигураций. В дополнение к тому, что возможно восстановление состояние отслеживаемой системы, существовавшее в любой заданный момент, соответственные версии всех файлов могут быть помечены одним и тем же ключевым символом. Версии может быть придан статус, обозначающий, что она является экспериментальной, стабильной, коммерческой, выпуском и др. Это позволяет просто и недвусмысленно описывать этапы развития большой системы, состоящей из многих документов.
Автоматически отождествлять версии по имени, номеру, времени создания, автору и т.п. Идентификационные метки с ключевыми словами, вставляются в определенные места истории изменений файла. Такая схема позволяет легко выяснить, какие версии каких модулей составляют данную конфигурацию или выпуск.
Минимизировать необходимое для хранения место. Для новой версии RCS хранит только изменения (построчные). Удаление промежуточных версий позволит сэкономить лишь на строках, которые изменялись несколько раз.
НАЗВАНИЕ
rcsmerge - объединение изменений, сделанных в разных версиях файла в системе отслеживания версий RCS
СИНТАКСИС
rcsmerge [флаги] имя-файла ...
ОПИСАНИЕ
Команда rcsmerge производит объединение изменений, сделанных с разными версиями одного файла и помещает их в новый рабочий файл. С формальной точки зрения, над рабочим файлом совершаются изменения, ведущие от первой указанной в командной строке версии ко второй (см. флаг -j команды co ).
Полное имя файла, содержащее архивный суффикс, соответствует архивному файлу, все прочие считаются рабочими файлами. О соответствии имен файлов, см. .
Должны быть явно заданы одна или две версии с одним из описанных ниже флагов, обычно, -r . Если задана одна версия, то в качестве второй берется последняя ветвь на ветви, заданной по умолчанию (обычно -- главной). Версия может быть задана в явном виде, численно, или в символьном виде.
Команда rcsmerge сообщает о наложении изменений, сделанных с одними строками, разделяя накладывающиеся участки, как объяснено в .
ФЛАГИ
ИМЯ
rdchk - пpoвepяeт нaличиe дaнныx для чтeния
СИНТАКСИС
int rdchk (fdes) int fdes;
ОПИСАНИЕ
rdchk пpoвepяeт, бyдeт ли пpoцecc блoкиpoвaн, ecли oн пoпытaeтcя читaть фaйл c нoмepoм fdes. rdchk вoзвpaщaeт 1, ecли ecть дaнныe для чтeния или дocтигнyт кoнeц фaйлa (EOF). Oбычнo, rdchk иcпoльзyeтcя в тaкoм кoнтeкcтe:
if(rdchk(fildes)>0) read(fildes,buffer,nbytes);
СМ. ТАКЖЕ
read(3)
ДИАГНОСТИКА
rdchk вoзвpaщaeт -1, ecли oбнapyжeнa oшибкa EBADF, 0, ecли пpoцecc бyдeт блoкиpoвaн пocлe вызoвa read, и 1, ecли чтeниe вoзмoжнo. Oшибкa EBADF вoзникaeт, ecли вызoв rdchk пpимeнeн к ceмaфopнoмy фaйлy или yкaзaнный фaйл нe cyщecтвyeт.
ЗAМEЧAНИЯ
Пpoгpaммa, иcпoльзyющaя этy фyнкцию, дoлжнa кoмпoнoвaтьcя c флaгoм -lx.
НАЗВАНИЕ
read - чтение из файла
СИНТАКСИС
int read (fildes, buf, nbyte) int fildes; char *buf; unsigned nbyte;
ОПИСАНИЕ
Аргумент fildes - это дескриптор файла, полученный после выполнения системных вызовов , , , или .
Системный вызов read пытается прочитать nbyte байт из файла, ассоциированного с дескриптором fildes, в буфер, указателем на который является аргумент buf.
Для устройств, допускающих позиционирование, системный вызов read выполняет чтение из файла, начиная с указателя текущей позиции, ассоциированного с дескриптором fildes. После завершения чтения указатель текущей позиции файла увеличивается на количество прочитанных байт.
Для устройств без возможности позиционирования чтение всегда выполняется с текущей позиции. Значение указателя текущей позиции файла для такого устройства неопределено.
При успешном завершении системного вызова read возвращается количество байт, реально прочитанных и помещенных в буфер; это количество может быть меньше значения аргумента nbyte, если файл ассоциирован с линией связи [см. и ] или если количество байт, оставшихся в файле, меньше значения аргумента nbyte. Если текущая позиция совпадала с концом файла, результат будет равен 0.
Чтение с псевдоустройств [см. ] может выполняться в трех различных режимах: байтном, режиме сообщений без сброса и режиме сообщений со сбросом. Стандартным является байтный режим. С помощью системного вызова ioctl режим может быть изменен (опция I_SRDOPT [см. ]) и опрошен (опция I_GRDOPT). В байтовом режиме системный вызов read выбирает данные из потока до тех пор, пока не получит nbyte байт или пока не выберет все данные потока. В этом режиме границы сообщений игнорируются.
В режиме сообщений без сброса системный вызов read выбирает данные до тех пор, пока не получит nbyte байт или пока не встретит границу сообщения. Если сообщение прочитано не полностью, то оставшиеся данные помещаются в поток и могут быть извлечены последующими вызовами read или . В режиме сообщений со сбросом также выбираются данные до тех пор, пока не будет получено nbyte байт или пока не встретится граница сообщения; однако непрочитанные данные, оставшиеся в сообщении по завершении системного вызова read, теряются, и их нельзя получить последующими вызовами read или getmsg.
НАЗВАНИЕ
red - ограниченный текстовый редактор
СИНТАКСИС
red [-s] [-p приглашение] [файл]
ОПИСАНИЕ
Редактор red - это ограниченный вариант стандартного текстового редактора , предназначенный для редактирования файлов только в текущем каталоге. В red запрещается выполнение команд shell'а посредством конструкции !команда. При попытке обойти это ограничение выдается сообщение об ошибке. В остальном возможности red и совпадают.
СМ. ТАКЖЕ
.
НАЗВАНИЕ
regcmp - компилятор регулярных выражений
СИНТАКСИС
regcmp [-] файл ...
ОПИСАНИЕ
Команда regcmp в большинстве случаев устраняет необходимость использования системного вызова из C-программ. Это уменьшает и время выполнения, и размер программы. Команда regcmp компилирует регулярные выражения, хранящиеся в файле, и помещает результат в файл.i. Если используется опция -, результат помещается в файл.c. Формат записей в файле - имя (C-переменная), за которой следует один или более пробелов, а затем регулярное выражение в двойных кавычках.
Результат regcmp - текст на C. Скомпилированные регулярные выражения представляются как векторы extern char. Сформированные .i-файлы могут быть включены в C программы, а .c-файлы могут быть откомпилированы и затем загружены. В C-программе, которая использует результат команды regcmp, функция regex (abc, line) сопоставляет цепочку символов line с регулярным выражением, именуемым abc. Диагностические сообщения говорят сами за себя.
ПРИМЕРЫ
name "([A-Za-z][A-Za-z0-9_]*)$0" abc "\({0,1}([2-9][01][1-9])$0\){0,1} *" "([2-9][0-9]{2})$1[ -]{0,1}" "([0-9]{4})$2"
СМ. ТАКЖЕ
.
НАЗВАНИЕ
regcmp, regex - компиляция и выполнение регулярного выражения
СИНТАКСИС
char *regcmp (string1 [, string2, ...], (char *) 0) char *string1, *string2, ...;
char *regex (re, subject [, ret0, ...]) char *re, *subject, *ret0, ...;
extern char *__loc1;
ОПИСАНИЕ
Функция regcmp компилирует регулярное выражение, состоящее из конкатенированных аргументов, и возвращает указатель на результат компиляции. Чтобы захватить пространство для результата, используется функция . Ответственность за освобождение ставшего ненужным пространства, которое было выделено при помощи malloc, возлагается на пользователя. Пустой указатель NULL, возвращенный в качестве результата regcmp, свидетельствует о некорректности аргументов. Чтобы, в общем случае, устранить необходимость вызова данной функции во время выполнения, написана команда .
Функция regex сопоставляет скомпилированный образец с цепочкой символов subject. Regex возвращает пустой указатель NULL в случае неудачи или указатель на символ, следующий после сопоставленного фрагмента, в случае успеха. Если нужно получить больше выходной информации, следует передать дополнительные аргументы. В глобальной переменной __loc1 возвращается указатель на позицию, где сопоставление началось. Функции regcmp и regex почти впрямую заимствованы из редактора ; синтаксис и семантика регулярных выражений изменены незначительно. Ниже перечислены допустимые символы и описана их трактовка.
[ ] * . ^
Эти символы сохраняют свой обычный для смысл.
$ Этот символ сопоставляется с концом цепочки символов; \n сопоставляется с символом перевода строки.
- Минус в квадратных скобках обозначает "от и до". Например, запись [a-z] эквивалентна [abcd...xyz]. Минус может встречаться сам по себе, только если он является первым или последним символом. Например, класс символов [ ]-] сопоставляется с символами ] и -.
+ Плюс, следующий за регулярным выражением, обозначает "один или более раз". Например, запись [0-9]+ эквивалентна [0-9][0-9]*.
ИМЯ
regexp - кoмпилиpyeт и pacпoзнaeт peгyляpныe выpaжeния
СИНТАКСИС
#define INIT <declarations>
#define GETC() <getc code>
#define PEEKC() <peekc code>
#define UNGETC(c) <ungetc code>
#define RETURN(pointer) <return code>
#define ERROR(val) <error code>
#include <regexp.h>
char *compile (instring, expbuf, endbuf, eof) char *instring, *expbuf, *endpbuf;
int step (string, expbuf) char *string, *expbuf;
ОПИСАНИЕ
Здecь oпиcывaютcя пpoгpaммы pacпoзнaвaния peгyляpныx выpaжeний oбщeгo видa в фopмe , oпpeдeлeнныx в /usr/include/regexp.h. Этoт фaйл иcпoльзyют пpoгpaммы , , , и дp. Для пoддepжaния coвмecтимocти peгyляpныx выpaжeний тoлькo этoт фaйл нyждaeтcя в мoдификaции.
Пpoгpaммы, иcпoльзyющиe этoт фaйл, дoлжны имeть cлeдyющиe 5 мaкpocoв, oпpeдeлeниe кoтopыx дoлжнo пpeдшecтвoвaть oпepaтopy #include <regexp.h>. Эти мaкpocы иcпoльзyютcя пpoгpaммoй compile.
GETC() Boзвpaщaeт знaчeниe cлeдyющeгo cимвoлa в peгyляpнoм выpaжeнии. Пocлeдyющиe вызoвы GETC() вoзвpaщaют cлeдyющиe cимвoлы peгyляpнoгo выpaжeния.
PEEKC() Boзвpaщaeт знaчeниe cлeдyющeгo cимвoлa в peгyляpнoм выpaжeнии. Пocлeдyющиe вызoвы PEEKC() вoзвpaщaют тoт жe cимвoл peгyляpнoгo выpaжeния (кoтopый coвпaдaeт c oчepeдным вoзвpaщaeмым GETC() cимвoлoм).
UNGETC(c) Пpивoдит к тoмy, чтo apгyмeнт c cтaнeт cимвoлoм, кoтopый вoзвpaтит oчepeднoй вызoв GETC() (и PEEKC()). He бoлee oднoгo cимвoлa мoжнo вepнyть и этo бyдeт тoт, чтo пpoчтeт oчepeднoй вызoв GETC(). Знaчeниe мaкpoca UNGETC(c) игнopиpyeтcя.
RETURN(pointer)
Этoт мaкpoc иcпoльзyeтcя для нopмaльнoгo выxoдa из пpoгpaммы compile. Укaзaтeль pointer yкaзывaeт cимвoл пocлe пocлeднeгo pacпoзнaннoгo cимвoлa peгyляpнoгo выpaжeния. Этo иcпoльзyeтcя пpoгpaммaми, yпpaвляющими pacпpeдeлeниeм пaмяти.
ERROR(val) Этoт мaкpoc иcпoльзyeтcя для aвapийнoгo выxoдa из пpoгpaммы compile. Apгyмeнт val ecть нoмep oшибки (cм. тaблицy нижe).
НАЗВАНИЕ
regexp - функции для компиляции и сопоставления регу лярных выражений
СИНТАКСИС
#define INIT описания #define GETC( ) реализация_GETC #define PEEKC( ) реализация_PEEKC #define UNGETC(c) реализация_UNGETC #define RETURN(p) реализация_RETURN #define ERROR(v) реализация_ERROR
#include <regexp.h>
char *compile (instring, expbuf, endbuf, eof) char *instring, *expbuf, *endbuf; int eof;
int step (string, expbuf) char *string, *expbuf;
extern char *loc1, *loc2, *locs;
extern int circf, sed, nbra;
ОПИСАНИЕ
В данной статье описываются универсальные функции сопоставления регулярных выражений в форме , определенные во включаемом файле <regexp.h>. Этот исходный файл используется такими программами, как , , , и , которые выполняют сопоставление регулярных выражений. Тем самым обеспечивается согласованная трактовка регулярных выражений.
У этого файла неприятный интерфейс. Программы, которые включают данный файл, перед оператором #include <regexp.h> должны содержать определение пяти макросов, перечисленных ниже. Макросы используются функцией compile.
GETC( ) Возвращает значение следующего символа в регулярном выражении. Последовательные вызовы GETC будут возвращать последовательные символы регулярного выражения. PEEKC( ) Возвращает следующий символ в регулярном выражении. Последовательные вызовы PEEKC возвращают один и тот же символ (данный символ будет возвращен и при следующем вызове GETC). UNGETC(c) Обеспечивает, чтобы символ c был выдан при следующем вызове GETC (и PEEKC). Оговаривается, что не делается попыток вернуть подряд более одного символа, и этот символ является последним, прочитанным GETC. Значение макроса UNGETC игнорируется. RETURN(p) Данный макрос используется при нормальном завершении функции compile. Значение аргумента p - указатель на символ, следующий за последним символом скомпилированного регулярного выражения. Это полезно для программ, которые должны заниматься распределением памяти. ERROR(v) Аварийное завершение функции compile. Аргумент v - это код ошибки. Возврата из данного макроса быть не должно. Коды ошибок:
<
ИМЯ
remote
СИНТАКСИС
remote [ - ] [ -f file ] [ -m ] [-u user] machine command [ arguments ]
ОПИСАНИЕ
Команда remote - это ограниченное сетевое средство, которое позволяет выполнять команды XENIX в нескольких каналах. Команды в любой присоединенной системе могут выполняться из главной системы , использующей команду remote. Командная строка, состоящая из команд (аргумент command) и любых аргументов, разделенных пробелами, выполняется на удаленной машине (machine). Имя машины размещается в файле /etc/systemid. Заметим, что метасимволы не расшифровываются на удаленной машине, поэтому их не следует указывать в аргументах. Под действием необязательного ключа -m почта посылается пользователю, сообщая об успешном выполнении команды.
Доступны следующие опции:
Для успешного использования команды remote прежде всего должна быть установлена сама сеть систем, и инициализированы соответствующие процедуры "демоны" с помощью команды . Также, для выполнения команды command с использованием команды remote на каждой удаленной машине к файлам /etc/default/micnet необходимо добавить точки входа.
ПРИМЕР
Следующая команда выполняет команду ls в каталоге /tmp машины machine1:
remote machine1 ls /tmp
СМ. ТАКЖЕ
, , , micnet(3)
ЗАМЕЧАНИЯ
Команда mail использует эквивалент команды remote для пересылки почты между машинами.
ИМЯ
renice - изменение приоритета выполняющихся процессов
СИНТАКСИС
renice priority pid... renice priority [-p pid... ] [-g pgid...] [-u username]
ОПИСАНИЕ
Команда renice используется для изменения приоритетов выполняющихся процессов. Новое значение приоритета задается числовой константой priority, которая может принимать значения в диапазоне от -20 до +20. Непривилегированные пользователи могут установить значение приоритета только в пределах 0-20, в то время как для системного администратора доступен весь диапазон. Наиболее типичными значениями являются следующие: 19 - процессы выполняются только в том случае, когда у процессора нет никакой спешной работы; 0 - базовый приоритет равноправных процессов, выполняющихся под управлением диспетчера; отрицательное значение - для выполнения наиболее спешных и безотлагательных работ.
СМ. ТАКЖЕ
НАЗВАНИЕ
restall - восстановление файлов с магнитной ленты
СИНТАКСИС
restall [-r] [-t] [-f] [шаблон ...]
ОПИСАНИЕ
Утилита restall предназначена для манипулирования с магнитной лентой, содержащей логическую копию файлов [для создания логической копии на ленте рекомендуется пользоваться утилитой ]. Если не указаны опции и шаблоны имен файлов, то восстанавливаются все хранящиеся на ленте файлы. Имена файлов должны задаваться в том виде, как они хранятся на ленте (см. ниже опцию -t).
Утилита restall обрабатывает следующие опции:
Для восстановления группы файлов рекомендуется следующая последовательность действий:
Просмотреть оглавление ленты и поместить его в некоторый файл (например, tmp)
restall -t > tmp
Отредактировать файл tmp, оставив в нем только имена требуемых файлов. Восстановить файлы командой
restall `cat tmp`
СМ. ТАКЖЕ
.
в Справочнике пользователя.
ИМЯ
restore, restor - Подключает восстановитель инкрементной фай ловой системы.
СИНТАКСИС
restore key [ arguments ] restor key [ arguments ]
ОПИСАНИЕ
Команда restore используется для чтения архивной среды, зарезервированной с помощью команды .
Ключ key описывает действия, которые должны быть выполнены. Key - это один из символов cC, rR, tT или xX произвольно комбинированный с опциями k и/или f, либо с F. Команда restor это та же самая команда, отличающаяся только написанием названия.
Выделенный файл размещается в файле с численным именем, данным командой restore (фактически это номер узла).
Для того, чтобы свести к минимуму итоговое чтение архива, рекомендуется следующая процедура:
ИМЯ
rev - переворачивает строки
СИНТАКСИС
rev [file]
ОПИСАНИЕ
Утилита rev копирует указанный файл на стандартный вывод, переворачивая каждую строку (первый символ становится последним...) Если файл не указан читается со стандартного ввода.
НАЗВАНИЕ
rex - Протокол удаленного выполнения
СИНТАКСИС
#include <rpcsvc/rex.h>
ОПИСАНИЕ
Сервер удаленного исполнения команд. Допускается указание рабочего каталога и параметров среды выполнения команды, а также переопределение стандартного ввода и вывода команды. Возможно осуществление интерактивного ввода-вывода для тех программ, которые запускаются с терминалов. Работает только с протоколом TCP.
Информация о RPC:
Код (номер) программы:
REXPROG подпрограммы xdr:
int xdr_rex_start(xdrs, start); XDR *xdrs; struct rex_start *start; int xdr_rex_result(xdrs, result); XDR *xdrs; struct rex_result *result; int xdr_rex_ttymode(xdrs, mode); XDR *xdrs; struct rex_ttymode *mode; int xdr_rex_ttysize(xdrs, size); XDR *xdrs; struct rex_ttysize *size; процессы:
REXPROC_START
Принимает структуру rex_start, запускает исполнение команды и возвращает структуру rex_result.
REXPROC_WAIT
Аргументов не имеет, ожидает завершения выполнения команды, возвращает структуру rex_result.
REXPROC_MODES
Принимает структуру rex_ttymode и пересылает режимы работы терминала.
REXPROC_WINCH
Принимает структуру ttysize и пересылает информацию о размерах окна. версии:
REXVERS_ORIG Первоначальная версия структуры:
struct B_sgttyb { char bsg_ispeed; /* скорость ввода */ char bsg_ospeed; /* скорость вывода */ char bsg_erase; /* символ стирания */ char bsg_kill; /* символ удаления */ short bsg_flags; }; struct tchars { char t_intrc; /* прерывание */ char t_quitc; /* выход */ char t_startc; /* запуск вывода */ char t_stopc; /* останов вывода */ char t_eofc; /* конец файла */ char t_brkc; /* разделитель ввода */ }; struct ltchars { char t_suspc; /* сигнал остановки процесса */ char t_dsuspc; /* отложенный сигнал остановки процесса */ char t_rprntc; /* повторный вывод строки */ char t_flushc; /* вывод потоком (ключи) */ char t_werasc; /* стирание слова */ char t_lnextc; /* следующий символ */ };
#define REX_INTERACTIVE 1 /* интерактивный режим */ struct rex_start { char **rst_cmd; /* список команд и аргумен- тов */ char *rst_host; /* имя рабочего каталога host'а */ char *rst_fsname; /* имя каталога файловой системы */ char *rst_dirwithin; /* каталог внутри файловой системы */ char **rst_env; /* список параметров выполне- ния */ ushort rst_port0; /* порт для stdin */ ushort rst_port1; /* порт для stdin */ ushort rst_port2; /* порт для stdin */ ulong rst_flags; /* опции - см. #define выше */ }; struct rex_result { int rlt_stat; /* целочисленный код состоя- ния */ char *rlt_message; /* строка сообщения */ }; struct rex_ttymode { struct B_sgttyb basic; /* флаги для терминала в UNIX версии Berkeley */ struct tchars more; /* прерывание, удаление и т.д. */ struct ltchars yetmore; /* специальные символы в Berkeley */ ulong andmore; /* режимы Berkeley */ }; struct ttysize { int ts_lines; /* количество строк на экране терминала */ int ts_cols; /* количество столбцов на экране терминала */ };
СМ. ТАКЖЕ
НАЗВАНИЕ
rexd - сервер удаленного исполнения на базе RPC
СИНТАКСИС
/etc/rexd
ОПИСАНИЕ
Rexd является сервером RPC, обслуживающим выполнение удаленных программ. Если программы неинтерактивные, дескрипторы стандартных файлов привязываются непосредственно к TCP-соединениям. Интерактивные программы используют псевдотерминалы, подобные протоколам регистрации rlogin(1). Этот процесс может воспользоваться услугами NFS для монтирования тех файловых систем, которые указаны в запросе на удаленное исполнение.
ФАЙЛЫ
/dev/ttypn псевдотерминалы, используемые в интерактивном режиме /etc/passwd зарегистрированные пользователи /tmp/rexd.log регистрация ошибок и событий
СМ. ТАКЖЕ
, ,
ДИАГНОСТИКА
Диагностические сообщения обычно выводятся на консоль и возвращаются запрашивающему.
ЗАМЕЧАНИЯ
Позаботьтесь особо об управлении доступом.
НАЗВАНИЕ
rlog - история изменения и прочая информация об архивном файле
СИНТАКСИС
rlog [флаги] имя-файла ...
ОПИСАНИЕ
Команда rlog извлекает регистрационную информацию из архивного файла в системе отслеживания версий RCS.
Полное имя файла, содержащее архивный суффикс, соответствует архивному файлу, все прочие считаются рабочими файлами. О соответствии имен файлов, см. .
Команда rlog выводит в стандартный вывод следующую информацию: полный путь к архивному и рабочему файлам в абсолютной форме, заголовок с номером последней версии в главной ветви, ветвь, используемую по умолчанию, список лиц, имеющих доступ к изменению файла, список лиц, забронировавших какие-либо версии для внесения изменений, символические имена (номера версий) определенные для данного архива, архивный суффикс, общее число версий, число версий, о которых выводится информация и описание файла. После этого выдается информация по заданным в командной строке версиям, в обратном хронологическом порядке для каждой ветви. Для каждой версии сообщается: номер версии дата и время регистрации, количество линий, добавленных и удаленных по сравнению с предыдущей версией, пользователь, забронировавший данную версию для внесения изменений (если версия забронирована), и регистрационную запись. Если флагом -z не задан другой формат, даты и время указываются во Всемирном Времени (UTC). Полная информация печатается без задания флагов, Следующие флаги ограничивают выдачу.
-L
Пропустить архивные файлы, не содержащие зарезервированных версий, что эквивалентно совместному заданию -h, -l и -R.
-R
Выдать только имя архивного файла, что эквивалентно преобразованию полного имени рабочего файла в имя архивного файла.
-h
Печатает полный путь к архивному и рабочему файлам в абсолютной форме, заголовок с номером последней версии в главной ветви, ветвь, используемую по умолчанию, список лиц, имеющих доступ к изменению файла, список лиц, забронировавших какие-либо версии для внесения изменений, символические имена (номера версий) определенные для данного архива и архивный суффикс.
-t
НАЗВАНИЕ
rm - удаление файлов или каталогов
СИНТАКСИС
rm [-f] [-i] файл ... rm -r [-f] [-i] каталог ... [файл ...]
ОПИСАНИЕ
Команда rm служит для удаления указанных имен файлов из каталога. Если заданное имя было последней ссылкой на файл, то файл уничтожается. Для удаления пользователь должен обладать правом записи в каталог; иметь право на чтение или запись файла не обязательно.
Если нет права на запись в файл и стандартный ввод назначен на терминал, то выдается (в восьмеричном виде) режим доступа к файлу и запрашивается подтверждение; если оно начинается с буквы y, то файл удаляется, иначе - нет. Если стандартный ввод назначен не на терминал, команда rm ведет себя так же, как при наличии опции -f.
Допускаются следующие три опции:
ПРИМЕРЫ
Опция -i часто используется совместно с -r. По команде:
rm -ir dirname
запрашивается подтверждение:
directory dirname: ?
При положительном ответе запрашиваются подтверждения на удаление всех содержащихся в каталоге файлов (для подкаталогов выполняются те же действия), а затем подтверждение на удаление самого каталога.
СМ. ТАКЖЕ
.
, в Справочнике программиста.
КОДЫ ЗАВЕРШЕНИЯ
0 Все файлы и каталоги были успешно удалены. 2 В противном случае.
ДИАГНОСТИКА
Смысл всех сообщений самоочевиден.
Запрещено удалять файлы . и .., чтобы не нарушить целостность файловой системы. Команда
rm -r .*
приведет к выдаче сообщений об ошибках.
НАЗВАНИЕ
rmail - посылка почты
СИНТАКСИС
rmail [-o] [-s] [-w] [-t] адресат ...
ОПИСАНИЕ
Команда rmail служит для посылки почты адресатам и предоставляет для этого в точности те же возможности, что и . Утилита использует rmail, а не mail, не рискуя получить что-либо в ответ.
СМ. ТАКЖЕ
.
НАЗВАНИЕ
rmdel - удаление версии из SCCS-файла
СИНТАКСИС
rmdel -rс_идентификатор файл ...
ОПИСАНИЕ
Команда rmdel удаляет версию, заданную посредством с_идентификатора, из каждого указанного файла. Удаляемая версия должна быть самой новой (созданной позже других) на своей ветви в каждом SCCS-файле. Кроме того, указанный с_идентификатор не должен быть извлеченным для редактирования (то есть, если существует p-файл для соответствующего SCCS-файла [см. ], то указанный с_идентификатор должен в нем отсутствовать).
Если указано имя каталога, rmdel обрабатывает все файлы в этом каталоге, начинающиеся с s.; файлы, к которым нет доступа на чтение, игнорируются без дополнительных сообщений. Если указано имя -, происходит чтение со стандартного ввода; каждая строка при этом трактуется как имя SCCS-файла, подлежащего обработке. Файлы, не начинающиеся с s., и файлы, к которым нет доступа на чтение, также игнорируются без дополнительных сообщений.
Не вдаваясь в подробности, можно сказать следующее: если Вы создали версию, то Вы сможете ее удалить; если Вы являетесь владельцем файла и каталога, то Вы сможете удалить версию.
ФАЙЛЫ
x-файл [см. ] z-файл [см. ]
СМ. ТАКЖЕ
, , , .
в Справочнике программиста.
ДИАГНОСТИКА
Для раз яснений пользуйтесь командой .
НАЗВАНИЕ
rmdir - удаление каталогов
СИНТАКСИС
rmdir [-p] [-s] каталог ...
ОПИСАНИЕ
Команда rmdir удаляет указанные каталоги, которые должны быть пустыми. Для удаления каталога вместе с содержимым следует воспользоваться командой с опцией -r. Текущий каталог [см. ] не должен принадлежать поддереву иерархии файлов с корнем - удаляемым каталогом.
Для удаления каталогов нужно иметь те же права доступа, что и в случае удаления обычных файлов [см. ].
Командой rmdir обрабатываются следующие опции:
СМ. ТАКЖЕ
.
, в Справочнике программиста.
КОДЫ ЗАВЕРШЕНИЯ
0 Все файлы и каталоги были успешно удалены. 2 В противном случае.
НАЗВАНИЕ
Таблица файловых систем, смонтированных на удалении
ОПИСАНИЕ
Rmtab находится в каталоге /etc и содержит перечень всех клиентов, выполнявших на своих машинах монтирование удаленных файловых систем. При монтировании удаленной файловой системы формируется запись в таблице rmtab, принадлежащей той машине, которая обслуживает данную файловую систему. Таблица представляет собой совокупность строк формы:
host_имя:каталог
Данная таблица используется для сохранения информации между сбоями и читается только процессом . Процесс mountd имеет собственную таблицу, используемую для обработки запросов, поступающих от таких программ, как и .
ФАЙЛЫ
/etc/rmtab
СМ. ТАКЖЕ
, , ,
ЗАМЕЧАНИЯ
Хотя информация, содержащаяся в таблице rmtab, близка к истине, назвать ее точной на 100% пожалуй нельзя.
НАЗВАНИЕ
rmuser - удаляет пользовательский бюджет из системы.
СИНТАКСИС
/etc/rmuser
ОПИСАНИЕ
rmuser удаляет пользователей из системы. Программа внаачале запрашивает имя пользователя; получив действительное имя пользователя, она удаляет соответствующую запись в файле паролей, почтовый ящик этого пользователя, его файл .profile и весь рабочий каталог. Она удаляет также соответствующую запись о группе пользователей в файле /etc/group, если данный пользователь был единственным членом этой группы и идентификатор группы был больше 50.
Перед удаление идентификатора пользователя из системы убедитесь, что его почтовый ящик пуст и что все файлы, принадлежавшие этому пользователю, сохранены или удалены, как нужно.
Программа rmuser откажется удалять идентификатор пользователя или принадлежащие ему файлы, если не выполнится хотя бы одна из следующик проверок:
Имя пользователя является одним из "системных" пользовательских имен, таких как root, sys, sysinfo, cron или uucp. Все пользовательские идентификаторы, меньшие 200, считаются зарезервированными для системных нужд и не могут быть удалены с помощью rmuser. Аналогично, все идентификаторы групп, меньшие 50, не могут быть удалены с помощью rmuser. Почтовый ящик пользователя существует и не является пустым. Рабочий каталог пользователя содержит файлы, отличные от файла .profile.
rmuser может выполняться только привилегированным пользователем.
ФАЙЛЫ
/etc/passwd /usr/spool/mail/username $HOME
СМ. ТАКЖЕ
,
НАЗВАНИЕ
БД номеров программ RPC
СИНТАКСИС
/etc/rpc
ОПИСАНИЕ
Файл rpc содержит доступные пользователю идентификаторы, которые могут использоваться вместо номеров программ RPC. Каждая строка заключает в себе следующую информацию:
имя сервера для программы rpc
номер программы rpc
псевдонимы
Элементы записи разделяются между собой любым количеством пробелов и/или символов табуляции. Символом "#" открываются комментарии; вся оставшаяся строка процедурами не интерпретируется.
Рассмотрим пример файла /etc/rpc:
# #rpc 87/12/02 3.9 RPCSRC # portmapper 100000 portmap sunrpc rstat_svc 100001 rstatd rstat rup perfmeter rusersd 100002 rusers nfs 100003 nfsprog mountd 100005 mount showmount walld 100008 rwall shutdown etherstatd 100010 etherstat rquotad 100011 rquotaprog quota rquota sprayd 100012 spray 3270_mapper 100013 rje_mapper 100014 selection_svc 100015 selnsvc database_svc 100016 rexd 100017 rex alis 100018 sched 100019 llockmgr 100020 nlockmgr 100021 x25.inr 100022 statmon 100023 status 100024 bootparam 100026 keyserv 100029 keyserver
ФАЙЛЫ
/etc/rpc
СМ. ТАКЖЕ
НАЗВАНИЕ
rpcgen компилятор протокола RPC
СИНТАКСИС
rpcgen вх_файл rpcgen -h [-o вых_файл] [вх_файл] rpcgen -c [-o вых_файл] [вх_файл] rpcgen -m [-o вых_файл] [вх_файл] rpcgen -l [-o вых_файл] [вх_файл] rpcgen [-s транспорт]* [-o вых_файл] [вх_файл]
ОПИСАНИЕ
Rpcgen является средством создания Си-программы, реализующей протокол RPC. На вход компилятора поступает файл на языке RPCL (Язык удаленных процедурных вызовов). Как правило, компилятор из одного файла на входе (первый вариант) генерирует четыре выходных файла. Если входной файл имеет имя proto.x, генерируемые файлы именуются следующим образом: proto.h - файл заголовков, proto_xdr.c - процедуры XDR, proto_svc.c - разделы, имеющие отношение к серверу, а proto_clnt.c - к клиентам.
Все остальные варианты вызова компилятора связаны с созданием только одного выходного файла. К рассмотрению каждого из вариантов мы перейдем ниже.
Все выходные файлы перед интерпретацией rpcgen проходят обработку Си-препроцессором cpp(CP), поэтому директивы cpp во входном файле rpcgen допустимы. Каждому типу выходного файла соответствует специальный символ cpp: RPC_HDR, RPC_XDR, RPC_SVC и RPC_CLNT.
Rpcgen, кроме того, сам выполняет некоторую предварительную обработку входных данных. Любая строка, открывающаяся символом "%", передается сразу в выходной файл, без интерпретации.
Отдельные XDR-процедуры можно настраивать, не определяя их тип. При этом rpcgen будет предполагать существование процедуры с именем, состоящим из имени неопределенной структуры и приставки xdr_.
Настоятельно рекомендуем вам, прежде чем приступить к использованию утилиты rpcgen, прочитать главы, посвященные RPC и XDR, в "Руководстве программиста SCO NFS".
ОПЦИИ
Указание имени выходного файла. По умолчанию используется файл стандартного вывода (только для режимов -c, -h, -s).
Получение разделов, имеющих отношение к серверу, с использованием указанного транспортного протокола. Поддерживаемые типы транспортного протокола: udp и tcp. При использовании нескольких протоколов опция вызывается несколько раз.
НАЗВАНИЕ
rpcinfo - отчет о работе RPC
СИНТАКСИС
rpcinfo -p [host] rpcinfo -u host программа [версия] rpcinfo -t host программа [версия]
ОПИСАНИЕ
Команда делает запрос к серверу RPC и сообщает все полученные сведения.
Опции:
Аргумент "программа" может быть либо именем, либо числом. Если указана версия программы, rpcinfo пытается обратиться именно к этой версии. В противном случае rpcinfo приступит к перебору номеров всех зарегистрированных версий программы, включая даже несуществующую версию с номером 0. Если таковые обнаруживаются, rpcinfo выбирает информацию по версии с наивысшим номером.
Следует заметить, что номер версии требуется для опции -b.
ПРИМЕР
Чтобы получить информацию по всем услугам RPC, зарегистрированным на машине, введите команду:
rpcinfo -p имя_машины
ФАЙЛЫ
/etc/rpc имена для номеров RPC-программ
СМ. ТАКЖЕ
,
НАЗВАНИЕ
rsh - интерпретатор ограниченного командного языка
СИНТАКСИС
rsh [-a] [-c цепочка_символов] [-e] [-f] [-h] [-i] [-k] [-n] [-r] [-s] [-v] [-x] [аргумент ...]
ОПИСАНИЕ
Rsh - ограниченная версия стандартного интерпретатора команд . Он используется для установки входных имен пользователей и окружения времени выполнения. Его действия выполняются под большим контролем, чем те же действия стандартного shell'а.
При работе в rsh пользователь может выполнять те же действия, что и при работе в sh, но нельзя:
Изменить каталог [см. ]. Изменить значение переменной PATH. Указать маршрутное имя файла или команды, содержащее символ /. Переназначить направление вывода (> и >>).
Перечисленные ограничения вступают в силу после завершения интерпретации команд из файла .profile [см. ].
Rsh может быть запущен одним из следующих способов:
Файл /bin/rsh указан в последнем поле строки файла /etc/passwd, соответствующей какому-либо пользователю [см. ]. Переменная окружения SHELL существует и ее значение есть /bin/rsh. При запуске shell'а имя файла в аргументе 0 есть rsh. Shell запускается с опцией -r.
Если выполняемая команда оказывается shell-процедурой, то для ее выполнения rsh запускает sh. Таким образом можно предоставить пользователю ограниченный набор команд, каждая из которых пользуется всеми возможностями стандартного shell'а. Предполагается, что пользователь не имеет одновременно прав на запись и выполнение файлов в предоставленном ему каталоге (напомним: в rsh нельзя перейти в другой каталог).
Смысл использования rsh в том, что автор профайла .profile полностью контролирует поведение пользователя, задавая необходимые начальные действия и предоставляя пользователю нужный каталог.
СМ. ТАКЖЕ
.
НАЗВАНИЕ
runacct - ежедневная обработка статистики
СИНТАКСИС
/usr/lib/acct/runacct [ммдд [фаза]]
ОПИСАНИЕ
Утилита runacct является основной shell-процедурой ежедневной обработки статистики. Обычно она планируется для регулярного запуска cron'ом [см. ]. Процедура runacct подытоживает накопленную за день информации о сеансах, о процессах, об оплате и об использовании дискового пространства. Готовится также сводка об использовании команд. Наконец, отчет форматируется с помощью процедуры prdaily [см. ] и помещается в каталог сводной статистической информации /usr/adm/ acct/sum.
День, за который подводятся итоги, задается аргументом ммдд, где мм - номер месяца (01 - 12), а дд - номер дня в месяце (01 - 31).
Смысл аргумента фаза состоит в следующем. Выполнение процедуры runacct подразделяется на несколько независимых фаз и может начинаться с любой из них. Прежде чем приступить к некоторой фазе, runacct записывает ее имя в файл statefile. Эту информацию можно использовать при повторном подведении итогов за определенный день, если успешному завершению первой попытки помешали ошибки: по умолчанию, когда задан только день, выполнение процедуры runacct начинается с фазы, имя которой сохранено в файле statefile. Если фаза задана явно, содержимое файла statefile игнорируется.
При отсутствии аргументов процедура runacct выполняет полное подведение итогов за текущий день.
Фазы выполняются в таком порядке:
SETUP
Перемещение текущей учетной информации в рабочие файлы.
WTMPFIX
Проверка целостности файла /etc/wtmp, при необходимости корректировка сведений о дате/времени.
CONNECT1
Получение записей о сеансах работы пользователей в системе.
CONNECT2
Преобразование записей о сеансах в сводный формат tacct [см. ].
PROCESS
Преобразование статистической информации о процессах в сводный формат tacct.
MERGE
Слияние записей о сеансах работы пользователей и о выполнении процессов.
FEES
Преобразование результатов процедуры chargefee [см. ] в сводный формат и слияние с данными, полученными в предыдущей фазе.
DISK
НАЗВАНИЕ
runbig - запускает команду, которой может понадобиться больше памяти, чем полагается.
СИНТАКСИС
runbig command [arguments]
ОПИСАНИЕ
runbig запускает команды, которая может потребовать больше памяти, чем обычно доступно пользовательскому процессу. Когда runbig запускает заданную команду command, она пренебрегает устанавливаемым по умолчанию значением объема памяти, доступным пользовательскому процессу. Обычно команда command выполняется нормально, пока не выходит за пределы объема доступной пользовательскому процессу памяти. Тогда она блокируется в статической памяти и не подкачивается, пока не будет завершена или уменьшена до размеров доступной по умолчанию памяти.
Удаление ограничения на доступную процессу память во время выполнения runbig не срабатывает во время системного вызова и действительно для системного вызова .
СМ. ТАКЖЕ
,
ПРИМЕЧАНИЯ
Выполняемые программы, выходящие за рамки доступной по умолчанию памяти и следовательно за рамки области свопинга на диске, могут серьезно влиять на функционирование системы.
runbig не оказывает влияния на системы, у которых объем памяти гораздо меньше размеров области свопинга на диске.
ИМЯ
rwall - посылает сообщение всем пользователям, работающим на удаленной машине.
СИНТАКСИС
rwall host [file]
ОПИСАНИЕ
Команда rwall посылает сообщение всем пользователям, работающим в данный момент на удаленной машине, указанной в параметре host. Сообщение заканчивается вводом сигнала EOF или может быть взято из файла.
ДИАГНОСТИКА
rwall: RPC: Program not registered
Демон rpc.rwalld(8) не был запущен на удаленной машине.
rwall: RPC: Timed out
Коммуникационная ошибка. Возможно демон rpc.rwalld(8) был терминирован на удаленной машине.
rwall: RPC: Port mapper failure - RPC: Timed out
Возможно на удаленной машине не все в порядке с портами, либо она выключена.
СМ. ТАКЖЕ
, , rpc.rwalld(8)
ИСТОРИЯ
Команда rwall появилась в Sun-OS.
ПРИМЕЧАНИЯ
Опции сортировки не выполняются.
ИМЯ
rwho - кто работает на локальных машинах.
СИНТАКСИС
rwho [-a]
ОПИСАНИЕ
Команда rwho выводит информацию о всех пользователях работающих в данный момент в локальной сети. Если ответ на запрос не получен в течении 5 минут, то rwho предполагает, что машина выключена и не выдает имена пользователей, работающих на этой машине.
ФАЙЛЫ
/var/rwho/whod.* Информация о других машинах.
СМ. ТАКЖЕ
ruptime(1), rwhod(8)
ИСТОРИЯ
Команда rwho появилась в 4.3BSD.
ПРИМЕЧАНИЯ
Команда весьма тормозная, если число машин в локальной сети велико.