CAL(1)
НАЗВАНИЕ
cal - печать календаря
СИНТАКСИС
cal [месяц] [год]
ОПИСАНИЕ
Команда cal печатает календарь на заданный год. Год должен быть задан четырьмя цифрами. Если задан также и месяц, то печатается календарь только на этот месяц. Год может принимать значения от 1 до 9999, месяц - от 1 до 12. Печатается календарь, принятый в Англии и ее колониях. Если не заданы ни год ни месяц, то печатается календарь на текущий месяц.
Попробуйте напечатать календарь на сентябрь 1752 года.
СЮРПРИЗЫ
Считается, что год всегда начинается в январе, хотя с исторической точки зрения это неверно.
Обратите внимание на то, что cal 78 относится к эпохе раннего Христианства, а не к двадцатому веку.
|
|
CALENDAR(1)
НАЗВАНИЕ
calendar - сервис по напоминанию
СИНТАКСИС
calendar [-]
ОПИСАНИЕ
Команда calendar просматривает файл calendar в текущем каталоге и выдает на стандартный вывод строки, содержащие (в произвольном месте) сегодняшнюю или завтрашнюю дату. Распознается большинство форм задания даты, например, "Aug. 17", "august 17", "8/17" и т.д., но не "17 August" или "17/8". Перед выходными днями "завтра" означает дни вплоть до понедельника включительно.
Если задан необязательный аргумент, команда calendar ищет файлы с именем calendar во всех входных каталогах пользователей и посылает найденные строки пользователям через почтовую связь . Обычно эта операция делается ежедневно, благодаря возможностям операционной системы UNIX.
ФАЙЛЫ
/usr/lib/calprog Программа выяснения сегодняшней и завтрашней дат. /ets/passwd /tmp/cal*
СМ. ТАКЖЕ
.
СЮРПРИЗЫ
Файл calendar должен быть доступен на чтение.
Команда calendar расширяет понятие "завтра", но не настолько, чтобы учесть праздники.
|
|
CANCEL(1)
НАЗВАНИЕ
cancel - аннулирование запроса на печать
СИНТАКСИС
cancel [идентификатор_запроса ...] [принтер ...]
ОПИСАНИЕ
Команда cancel аннулирует запрос на печать, выданный командой . Аргументами команды cancel могут быть либо идентификаторы_запросов [возвращаемые командой ], либо имена принтеров [чтобы узнать полный их список, воспользуйтесь командой ]. Если задан идентификатор_запроса, то соответствующий запрос аннулируется, даже если он в данный момент выполняется. Если задано имя принтера, на данном принтере печать прекращается. В любом случае аннулирование выполняемого запроса освобождает принтер для следующего запроса.
ФАЙЛЫ
/usr/spool/lp/*
СМ. ТАКЖЕ
, , , .
, , lpshed(1M) в Справочнике администратора.
|
|
CAPINFO(1)
НАЗВАНИЕ
capinfo, fixpad - Осуществляет преобразование описаний termcap в описания terminfo.
СИНТАКСИС
capinfo capfile infofile fixpad
ОПИСАНИЕ
Команда capinfo вызывает командный файл редактора для того, чтобы начать преобразование описания терминалов в базе данных termcap в эквивалентное описание terminfo. Команда capinfo производит вызов команды fixpad, чтобы произвести заполнение свободных мест в памяти незначащей информацией для этих спецификаций. Это преобразование должно быть завершено вручную. На нижеследующее нужно обратить особое внимание:
Многие характеристики terminfo не имеют эквивалентов для termcap. Определенные расширения XENIX для termcap не имеют эквивалентов для terminfo. Такие средства termcap, как cr, nl и ht, отмечены в сценарии редактора ex, как проблематичные.
СМ. ТАКЖЕ
termcap(5), ,
|
|
CAPTOINFO(1M)
НАЗВАНИЕ
captoinfo - преобразование описаний терминалов из формата termcap в формат terminfo
СИНТАКСИС
captoinfo [-v ...] [-V] [-1] [-w длина] файл ...
ОПИСАНИЕ
Утилита captoinfo ищет в файле описания характеристик терминалов в формате termcap. Для каждого найденного описания на стандартный вывод выдается эквивалентное описание в формате . Все комментарии при этом сохраняются. Описание, в котором встретилась ссылка на другое описание (спецификатор tc=), будет перед выводом об единено с указанным описанием.
Если файл не задан, то для определения имени файла или имени терминала используются переменные окружения TERMCAP и TERM. Если TERMCAP имеет значение полного маршрутного имени существующего файла, из него извлекается описание терминала, заданного в переменной TERM. Если переменная TERMCAP не установлена, извлечение происходит из стандартного файла /etc/termcap.
Опции утилиты captoinfo имеют следующий смысл:
-v | Выдавать в стандартный протокол трассировочную информацию о выполнении утилиты. При задании дополнительных опций -v будет выдаваться более детальная информация. |
-V | Выдать в стандартный протокол версию утилиты captoinfo и завершиться. |
-1 | Выдавать каждое поле на отдельной строке. По умолчанию в строке располагается несколько полей, причем каждая строка имеет длину не более 60 символов. |
-w длина | |
Установить новое значение длины выводимой строки (в символах).
ФАЙЛЫ
/usr/lib/terminfo/?/* Скомпилированная база данных опи- саний терминалов.
ОГРАНИЧЕНИЯ
При преобразовании форматов предполагается, что выполняются некоторые соглашения, принятые для termcap. Например, символ звонка (bel в формате termcap) предполагается равным CTRL+G. Характеристика "переход к новой строке" (nl в формате termcap) предполагается одинаковой для операций "курсор вниз" и "роллирование вперед" (cud1 и ind в формате termcap). Заполнитель всегда присоединяется к концу цепочки символов.
Алгоритм, используемый для преобразования параметризованной информации из полей termcap (например, позиция курсора в операциях cm и cup), для формата terminfo может сгенерировать правильную, но не оптимальную цепочку символов. Например, редко используемая в termcap операция %n отображается в очень длинную цепочку. По поводу большинства вхождений подобных неоптимальных цепочек будут выданы предупреждающие сообщения, эти цепочки можно затем поправить вручную.
Короткие двухсимвольные имена из начала списка имен в termcap, рудимент ранних версий операционной системы UNIX, при преобразовании форматов удаляются.
ДИАГНОСТИКА
tgetent failed with return code n (reason) Описание терминала в termcap некорректно. Обычно это ошибочный спецификатор tc=. unknown type given for the termcap code cc В описании терминала есть спецификатор cc, тип которого не является булевым, числовым или символьным. wrong type given for boolean (numeric, string) termcap code cc В описании терминала есть спецификатор cc, для которого тип указанного значения не соответствует типу спецификатора. the boolean (numeric, string) termcap code cc is not a valid name Указан неизвестный спецификатор cc. tgetent failed on TERM=term Описание указанного терминала не найдено в файле termcap. TERM=term: cap cc (info ii) is NULL: REMOVED Спецификатор имеет значение, равное пустой цепочке. Пустая цепочка в качестве значения спецификатора может отрицательно сказаться на программном обеспечении, использующем termcap или terminfo. Для отмены значения спецификатора нужно использовать символ @, например :bs@:. a function key for cc was specified, but it already has the value vv В спецификаторе ko указано, что клавиша cc имеет то же значение, что и спецификатор cc, но клавише cc ранее уже было присвоено значение vv. the unknown termcap name cc was specified in the ko termcap capability В спецификаторе ko задано некорректное имя клавиши. the vi character v (info ii) has the value xx, but ma gives n Одной и той же функциональной клавише в разных спецификаторах присвоены различные значения. the unknown vi character v (info ii) was specified in ma termcap capability В спецификаторе ma задана неизвестная captoinfo функциональная клавиша . Warning: termcap sg(nn) and termcap ug(nn) had different values Предполагается, что спецификаторы termcap sg и ug (в terminfo им соответствует xmc) должны иметь одинаковые значения. Warning: the string produced for ii may be inefficient Рекомендуется цепочку, сгенерированную для параметризованной информации, поправить вручную. Null termname is given Это сообщение выдается, если переменная окружения TERM не установлена или имеет пустое значение. Cannot open file for reading Указанный файл не удалось открыть.
СМ. ТАКЖЕ
, .
, в Справочнике программиста.
ПРИМЕЧАНИЯ
Утилиту captoinfo следует обязательно использовать для преобразования описаний терминалов из формата termcap в формат terminfo, так как база данных termcap, использовавшаяся в ранних версиях операционной системы UNIX, в последующих версиях может не поставляться.
|
|
CAT(1)
НАЗВАНИЕ
cat - слияние и вывод файлов
СИНТАКСИС
cat [-u] [-s] [-v] [-t] [-e] файл ...
ОПИСАНИЕ
Команда cat по очереди читает указанные файлы и выдает их содержимое на стандартный вывод. Так, например,
cat f
распечатывает содержимое файла f, а
cat f1 f2 > f3
сливает первые два файла и помещает результат в третий. Чтобы добавить файл f1 к файлу f2, надо выполнить команду
cat f1 >> f2
Если не указан ни один файл или среди аргументов встретился -, команда cat читает данные со стандартного ввода. Опции команды cat имеют следующий смысл:
-u | Вывод не буферизуется (по умолчанию буферизуется). |
-s | Не сообщается о несуществующих файлах. |
-v | Визуализация непечатных символов (кроме табуляций, переводов строк и переходов к новой странице). Управляющие символы изображаются в виде ^X (CTRL+X); символ DEL (восьмеричное 0177) - в виде ^?. Символы, не входящие в набор ASCII (то есть со взведенным восьмым битом) выдаются в виде M-x, где x - определяемый младшими семью битами символ. |
С опцией -v можно использовать следующие опции:
-t | Визуализация символов табуляции в виде ^I. |
-e | Визуализация символов перевода строки в виде $ (строка при этом все же переводится). |
Если опция -v не указана, то опции -t и -e игнорируются.
СМ. ТАКЖЕ
, , .
ДИАГНОСТИКА
Команды типа
cat f1 f2 > f1
приводят к сообщению:
cat: input/output files 'f1' identical
|
|
CB(1)
НАЗВАНИЕ
cb - улучшатель C-программ
СИНТАКСИС
cb [-s] [-j] [-l длина] [файл ...]
ОПИСАНИЕ
Команда cb читает C-программы либо из указанных файлов, либо со стандартного ввода, и выдает их затем на стандартный вывод. Cb вставляет в текст пробелы и отступы, которые делают наглядной структуру текста. При отсутствии опций cb не меняет разбиение на строки. При наличии опции -s cb пытается выдержать стиль, принятый в книге Б. Кернигана и Д. Ричи "Язык программирования C". Опция -j вызывает склеивание разрезанных строк. Опция -l вызывает разрезание строк, длина которых превышает указанную.
СМ. ТАКЖЕ
.
СЮРПРИЗЫ
Пунктуация, скрытая в предложениях препроцессора, может быть причиной ошибок при оформлении отступов.
|
|
CC(1)
НАЗВАНИЕ
cc - компилятор языка C
СИНТАКСИС
cc [-c] [-p] [-g] [-O] [-L каталог] [-l библиотека] [-W фаза,арг1[,арг2 ...] [-S] [-E] [-P] [-H] [-D имя] [-U имя] [-I каталог] [-B цепочка_символов] [-t [p012al]] [-w] [-#] файл ...
ОПИСАНИЕ
Команда cc является командой вызова компилятора языка C, который генерирует ассемблерные инструкции. Команда cc принимает аргументы следующих типов:
Аргументы, оканчивающиеся на .c, интерпретируются как имена файлов, содержащих исходные тексты на языке C; они компилируются, и каждый об ектный модуль помещается в файл с именем, которое образуется из имени исходного файла замещением расширения .c на .o. Однако об ектный .o-файл обычно удаляется, если компилируется и одновременно загружается программа, состоящая из одного модуля. Аналогично, аргументы, оканчивающиеся на .s, интерпретируются как имена файлов, содержащих исходные тексты на языке ассемблера, и ассемблируются с образованием об ектных .o-файлов.
Командой cc интерпретируются следующие опции [см. также опции редактора связей и ассемблера ]:
-c | Отменить фазу редактирования связей и создавать об'ектный файл даже в случае программы, состоящей только из одного модуля. |
-p | Сгенерировать дополнительные команды для подсчета числа обращений к каждой функции. Кроме того, если имеет место фаза редактирования связей, стандартная подпрограмма инициализации заменяется на такую, которая автоматически вызывает функцию и обеспечивает запись файла mount.out при нормальном завершении об'ектной программы. Профиль выполнения программы может быть затем получен при помощи команды . |
-g | Сгенерировать дополнительную информацию для отладчика . |
-О | Включить оптимизацию об ектного кода. |
-L каталог | |
Дополнить каталогом список каталогов, которые содержат об ектные библиотечные модули [для редактирования связей посредством ].
-l библиотека | |
Скомпоновать с об ектной библиотекой [для ].
-W фаза,арг1[,арг2 ...] | |
Передать аргумент(ы) заданной фазе компиляции, где фаза - это один из символов [p012al], которые обозначают, соответственно, препроцессор, первый проход компилятора, второй проход компилятора, оптимизатор, ассемблер, редактор связей. Например, по опции -W,a,-m перед вызовом ассемблера будет вызван макропрепроцессор . Такая опция имеет смысл для файлов, содержащих ассемблерные вставки.
-S | Скомпилировать указанные C-программы и поместить результат на языке ассемблера в соответствующие файлы с расширением .s (в этом случае об ектные модули не создаются). |
-E | Указанные C-программы обработать только препроцессором и результат направить на стандартный вывод. |
-P | Указанные C-программы обработать только препроцессором и результат поместить в соответствующие файлы с расширением .i. |
-H | Выдать в стандартный протокол составные имена всех участвующих в компиляции включаемых файлов. |
-D имя | |
Определить имя для препроцессора. Этот механизм используется в условных директивах препроцессора, так как позволяет определять имена за пределами исходного текста.
-U имя | |
Сделать имя неопределенным для препроцессора.
-I каталог | |
Изменить алгоритм поиска включаемых (посредством директивы #include) файлов, имена которых не начинаются с символа /, а именно: сначала искать в указанном каталоге, а затем уже в каталогах стандартного списка. Так, включаемые файлы, чьи имена заданы в двойных кавычках, сначала ищутся в каталоге, содержащем файл, затем в каталогах, указанных с помощью опции -I, а затем уже в каталогах стандартного списка. Включаемые файлы, чьи имена заданы в угловых скобках, не ищутся в каталоге, содержащем файл.
-B цепочка_символов | |
Получать составные имена программ, заменяющих препроцессор, компилятор, ассемблер и редактор связей, путем конкатенации цепочки_символов с окончаниями cpp, c0, c1, optim, as и ld. Если цепочка_символов пуста, она трактуется как /lib/o.
-t [p012al] | |
В файлах, имена которых заданы с помощью опции -B, искать только требуемые компилятор, оптимизатор, ассемблер и редактор связей. Если отсутствует опция -B, то цепочка_символов берется равной /lib/n. Указание опции -t "" эквивалентно -t p012.
-w | Подавить все предупреждающие сообщения. |
-# | Внутренний флаг отладки; выдавать название каждой выполняемой фазы компиляции. Если флаг задан дважды, то фазы не выполняются, а только распечатываются их названия. |
<
/p>
Остальные аргументы рассматриваются как опции редактора связей, имена об ектных модулей, совместимых с C-программами (обычно эти модули получены в результате предшествующих запусков компилятора), или, возможно, библиотек C-совместимых программ. Эти программы, вместе с результатами текущей компиляции, обрабатываются редактором связей, и созданная выполняемая программа, если не указана опция редактора связей -o, помещается в файл a.out.
С появлением версии 5 операционной системы UNIX стандарт языка C был расширен. Теперь имена переменных могут иметь произвольную длину. Этот стандарт поддерживается на компьютерах семейства M68000. Опция -T заставляет компилятор обрезать длинные имена для обеспечения совместимости с более ранними версиями.
ОКРУЖЕНИЕ
SHLIB Если SHLIB имеет значение YES, будет использоваться разделяемая версия библиотеки libc. STACKCHECK Если STACKCHECK имеет значение ON, порождаются команды для контроля стека. DBLALIGN Если DBLALIGN имеет значение YES, переменные размещаются с границы 32-битного слова, иначе - с границы 16-битного слова. STALIGN Если и STALIGN, и DBLALIGN имеют значение YES, то компоненты структур будут размещаться с границы 32-битного слова (по умолчанию, с границы 16-битного слова). FP Если переменная FP имеет значение M68881, компилятор генерирует инструкции для сопроцессора MC68881, поддерживающего арифметику вещественных чисел. Если результат какой-либо функции является вещественным, он возвращается только в регистре %fp0. Если переменная FP равна M68881u, вещественные значения возвращаются еще и в регистрах %d0/ %d1 для совместимости со старыми библиотеками.
Компилятор выбирает соответствующие версии библиотек libc и libm согласно значениям переменных окружения FP и SHLIB.
ФАЙЛЫ
файл.c Исходный файл. файл.o Об ектный файл. файл.s Ассемблерный файл. a.out Результат работы редактора связей. /usr/tmp/ctm* Временные файлы. /lib/cpp Препроцессор. /lib/c[01] Две фазы компиляции. /lib/optim Оптимизатор. /bin/as Ассемблер . /bin/ld Редактор связей . /lib/crt1.o /lib/crtn.o Стандартная программа инициализации. /lib/mcrt0.o Программа инициализации профилирования. /lib/libc.a Стандартная библиотека, см. раздел 3. /lib/libm.a Математическая библиотека, см. раздел 3. /lib/lib*_s.a Разделяемые версии библиотек. /lib/lib*881.a Версии библиотек для сопроцессора арифметики вещественных чисел. /lib/lib*881u.a Универсальные версии библиотек. /usr/lib/libp/*.a Версии библиотек для профилирования.
СМ. ТАКЖЕ
, , , , .
ДИАГНОСТИКА
Диагностика, вырабатываемая компилятором языка C, может быть иногда не очень ясной. Некоторые сообщения могут быть выданы ассемблером или редактором связей.
ПРЕДОСТЕРЕЖЕНИЯ
По умолчанию значение, возвращаемое из C-программы, является абсолютно случайным. Есть только два способа возвратить определенное значение - явно воспользоваться системным вызовом exit [см. ] или выйти из функции main( ) с помощью конструкции return выражение.
|
|
CD(1)
НАЗВАНИЕ
cd - смена текущего каталога
СИНТАКСИС
cd [каталог]
ОПИСАНИЕ
Команда cd применяется для того, чтобы сделать заданный каталог текущим. Если каталог не указан, используется значение переменной окружения $HOME (обычно это каталог, в который Вы попадаете сразу после входа в систему). Если каталог задан полным маршрутным именем, он становится текущим. Если маршрутное имя не полное, команда cd пытается найти каталог по одному из маршрутов, заданных переменной окружения $CDPATH. Способ задания и семантика этой переменной такие же, как у $PATH. По отношению к новому каталогу нужно иметь право на выполнение, которое в данном случае трактуется как разрешение на поиск.
Поскольку для выполнения каждой команды создается отдельный процесс, cd не может быть обычной командой; она распознается и выполняется shell'ом.
СМ. ТАКЖЕ
, .
в Справочнике программиста.CDC(1)
|
|
CDC(1)
НАЗВАНИЕ
cdc - изменение описания версии в SCCS-файле
СИНТАКСИС
cdc -rс_идентификатор [-m[список_номеров_запросов_на_модификацию]] [-y[комментарий]] файл ...
ОПИСАНИЕ
Команда cdc изменяет у всех указанных SCCS-файлов описание версии, с_идентификатор которой задан в опции -r.
Описание версии - это номер запроса на модификацию и/или комментарий. Обычно описание версии задается с помощью команды (опции -m и -y). Если указано имя каталога, cdc обрабатывает все файлы в этом каталоге, начинающиеся с s.; файлы, к которым нет доступа на чтение, игнорируются без дополнительных сообщений. Если указано имя -, происходит чтение со стандартного ввода [см. ПРЕДОСТЕРЕЖЕНИЯ], каждая строка при этом трактуется, как имя SCCS-файла для обработки.
В командной строке cdc можно в любом порядке задавать опции и имена файлов.
Каждая опция независимо применяется к каждому файлу.
-rс_идентификатор | |
Указывает, описание какой версии будет изменено.
-m[список_номеров_ запросов_на_модификацию] | |
Если в SCCS-файле установлен флаг v [см. ], то можно указать список номеров запросов на модификацию, который будет добавлен и/или удален в версии, указанной опцией -r. Пустой список игнорируется. Номера запросов добавляются к списку таким же образом, как это делает . Чтобы удалить запрос из списка, перед его номером нужно указать символ ! [см. ПРИМЕРЫ]. Если удаляемый номер присутствует, он удаляется из списка и перемещается в секцию комментария описания версии. Перед списком удаленных номеров в секции комментария помещается строка, говорящая о том, что эти номера были удалены.
Если опция -m не указана, а стандартный ввод назначен на терминал, перед чтением списка номеров запросов на модификацию со стандартного ввода на стандартный вывод выдается запрос MRs?. Если стандартный ввод назначен не на терминал, указанный запрос не выдается. Запрос MRs? всегда предшествует запросу comments? (см. опцию -y).
Номера в списке разделяются пробелами и/или символами табуляции. Неэкранированный перевод строки завершает список.
Если флаг v снабжен значением [см. ], оно трактуется как имя программы (или процедуры shell'а) для проверки корректности номеров. Если программа проверки возвращает ненулевой код завершения, cdc терминируется (считая, что номера запросов некорректны) и описание версии остается неизменным.
-y[комментарий] | |
Дополнительный текст для замены комментария в описании версии, указанной опцией -r. Предыдущие комментарии сохраняются, перед ними помещается строка, говорящая, что они были изменены. Пустой комментарий игнорируется.
Если опция -y не указана, а стандартный ввод назначен на терминал, на стандартный вывод выдается запрос comments?. Если стандартный ввод назначен не на терминал, указанный запрос не выдается. Неэкранированный перевод строки завершает комментарий.
ПРИМЕРЫ
Команда
cdc -r1.6 -m bl78-12345 !bl77-54321 bl79-00001 \ -ytrouble s.file
добавляет bl78-12345 и bl79-00001 к списку номеров запросов, удаляет из этого списка bl77-54321 и добавляет комментарий "ошибка" к версии 1.6 файла s.file.
Тот же эффект достигается следующим образом:
cdc -r1.6 s.file MRs? !bl77-54321 bl78-12345 bl79-00001 comments? trouble
ПРЕДОСТЕРЕЖЕНИЯ
Если имена SCCS-файлов вводятся со стандартного ввода (в командной строке указан -), необходимо использовать также опции -m и -y.
ФАЙЛЫ
x-файл [см. ] z-файл [см. ]
СМ. ТАКЖЕ
, , , , .
в Справочнике программиста.
ДИАГНОСТИКА
Для раз'яснений пользуйтесь командой .
|
|
CDCONTROL(1)FreeBSD Reference Manual
НАЗВАНИЕ
cdcontrol - утилита контролирования компакт-диска
СИНТАКСИС
cdcontrol [-s] [-v] [-f discname] [command args...]
ОПИСАНИЕ
cdcontrol это программа контролирования воспроизведения звука с компакт диска (устройства, названного как cd0 или mcd0).
Если устройство не указано, то переменная окружения DISC используется для отыскания устройства CD.
Если команды не указаны, то cdcontrol работает в интерактивном режиме, читая команды со стандартного ввода.
ОПЦИИ
-s | Молчаливый режим. Не выдает таблицу заголовков, комментарии... |
-v | Режим сообщений. Печатает всю возможную информацию о CD. |
-f discname | Указывает имя устройства, к примеру /dev/cd0c или mcd0. |
Далее следует список возможных команд. Только несколько символов, идентифицирующих команду должны быть указаны. Слово play вообще можно опустить.
play first_track [last_track] Играть с дорожки first_track до дорожки last_track. Первая дорожка имеет номер 1, номер последней дорожки можно не указывать. play start_m:start_s.start_f [end_m:end_s.end_f] Играть с абсолютного адреса (MSF) определенного start_m в минутах, start_s в секундах и start_f (номер фрагмента) до абсолютного адреса end_m в минутах, end_s секундах, или указывая второй номер фрагмента end_f. Минуты указываются в диапазоне 0-99, секунды - 0-59, номера фрагментов - 0-74. play [#start_block [length]] Начинает проигрывание с логического блока start_block, используя длину length логических блоков. pause Остановка прогрывания, но не остановка диска. resume Продолжение. Используется после паузы. stop Останов диска. eject Извлечение диска. close Ввод диска. volume left_channel right_channel Установка громкости левого left_channel и правого right_channel каналов. Громкость может принимать значение в диапазоне 0-255. volume mute Выключает звук. volume mono Установка ражима МОНО. volume stereo Установка режима СТЕРЕО. volume left Проигрывать левый канал на обоих (левом и правом) каналах. volume right Проигрывать правый канал на обоих (левом и правом) каналах. info Напечатать таблицу содержимого на диске. status Напечатать информацию о диске. Текущий статус проигрывания и позицию, значение громкости для левого и правого каналов... help Напечатать список возможных команд. debug on Включить режим отладки устройства CD. debug off Выключить режим отладки устройства CD. reset Сбрасывает установки на устройстве. set msf Устанавливает режим minute-second-frame ioctl (default). set lba Устанавливает режим LBA ioctl. quit Выход из программы.
ФАЙЛЫ
/dev/rcd0c /dev/rmcd0c /dev/rwcd0c
АВТОРЫ
Jean-Marc Zucconi, Andrey A. Chernov, Serge V. Vakulenko
ИСТОРИЯ
Команда cdcontrol появилась в FreeBSD 2.1
|
|
CFLOW(1)
НАЗВАНИЕ
cflow - построение графа вызовов C-программ
СИНТАКСИС
cflow [-r] [-ix] [-i_] [-dчисло] файл ...
ОПИСАНИЕ
Команда cflow анализирует набор C-, YACC-, LEX-, а также ассемблерных и об ектных файлов и пытается построить граф внешних ссылок. Файлы с расширениями .y (для YACC), .l (для LEX), .c (для C) и .i (для промежуточного кода) соответствующим образом препроцессируются (файлы .i игнорируются), а затем подвергаются первому проходу программы . (Допускается использование опций -I, -D и -U препроцессора C.) Файлы с расширением .s ассемблируются, и информация извлекается (как и в случае .o-файлов) из таблицы имен. Результат всей этой нетривиальной обработки накапливается и преобразуется в граф внешних ссылок, который направляется на стандартный вывод.
Строки выходной информации пронумерованы, начиная с 1. За номером следует несколько символов табуляции, указывающих уровень вложенности. Затем идет имя глобального об екта (обычно выдаются только функции, не определенные как внешние, и с именами, не начинающимися с подчеркивания; см. ниже описание опции включения -i), двоеточие и определение глобального об екта. Если определение извлечено из C-текста, оно состоит из описания типа (например, char *), а также из заключенных в угловые скобки имени исходного файла и номера строки, в которой найдено данное определение. В определениях, взятых из об ектных файлов, информативным является только имя файла. Начальные подчеркивания из C-подобных внешних имен удаляются.
После того, как определение имени напечатано, ссылки на него содержат только номер соответствующей выходной строки. Для неопределенных ссылок печатается <>.
В качестве примера рассмотрим следующий файл f1.c:
int i;
main() { f(); g(); f(); }
f() { i = h(); }
Команда
cflow -ix f1.c
сформирует результат:
1 main: int(), <file.c 4> 2 f: int(), <file.c 11> 3 h: <> 4 i: int, <file.c 1> 5 g: <>
Если уровень вложенности слишком большой, можно использовать опцию -e команды , чтобы табуляция вызывала сдвиг менее чем на восемь позиций.
В дополнение к опциям -D, -I и -U, которые интерпретируются так же, как в командах и , команда cflow имеет следующие опции:
-r | Заменить отношение "вызывающий-вызываемый" на обратное, чтобы получить инвертированный граф, показывающий, кто вызывает каждую из функций. Вызываемые функции упорядочиваются по алфавиту. |
-ix | Учитывать внешние и статические ссылки на данные. По умолчанию в граф вызовов включаются только функции. |
-i_ | Учитывать имена, начинающиеся с подчеркивания. По умолчанию такие функции (и данные, если используется опция -ix) в граф не включаются. |
-dчисло | |
Отсекать граф вызовов на уровне, который определяется целым десятичным числом. По умолчанию это очень большое число. Уровень отсечения может быть только положительным.
СМ. ТАКЖЕ
, , , , , , .
ДИАГНОСТИКА
Команда сообщает о некорректных опциях и о множественных определениях, из которых учитывается только первое. Другие сообщения могут исходить от различных используемых программ (например от C-препроцессора).
СЮРПРИЗЫ
В файлах, сформированных программами и , используются операторы изменения нумерации строк, что может ввести в заблуждение cflow. Чтобы получить правильный результат, натравите cflow на входные файлы yacc'а или lex'а.
Если нет опции -i_, но есть имена, начинающиеся с подчеркивания, результат может получиться неверным.
При наличии косвенной рекурсии программа cflow работает неправильно, если только не указана опция -r. даленным компьютерам.
СМ. ТАКЖЕ
.
ДИАГНОСТИКА
При успешном завершении результат равен 0; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки.
|
|
CHDIR(2)
НАЗВАНИЕ
chdir - смена текущего каталога
СИНТАКСИС
int chdir (path) char *path;
ОПИСАНИЕ
Аргумент path является указателем на маршрутное имя каталога. После выполнения системного вызова chdir указанный каталог становится текущим (рабочим). Именно с текущего каталога начинается поиск файлов по маршрутным именам, первый символ которых отличен от /.
Системный вызов chdir завершается неудачей и смены текущего каталога не происходит, если выполнено хотя бы одно из следующих условий:
[ENOTDIR] Компонент маршрута не является каталогом. [ENOENT] Указанный каталог не существует. [EACCES] Для компонента маршрута отсутствует право на поиск. [EFAULT] Аргумент path указывает за пределы отведенного процессу адресного пространства. [EINTR] Во время выполнения системного вызова перехвачен сигнал. [ENOLINK] Маршрутное имя path указывает на удаленный компьютер, связи с которым в данный момент нет. [EMULTIHOP] Компоненты path требуют многократного обращения к удаленным компьютерам.
СМ. ТАКЖЕ
.
ДИАГНОСТИКА
При успешном завершении результат равен 0; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки.
|
|
CHECKLIST(4)
НАЗВАНИЕ
checklist - список файловых систем, обрабатываемых командами fsck и ncheck
ОПИСАНИЕ
Файл checklist находится в каталоге /etc и содержит список не более чем из 15 имен специальных файлов. Каждое имя специального файла располагается на отдельной строке и соответствует файловой системе. Каждая из указанных файловых систем будет автоматически обработана командой .
ФАЙЛЫ
/etc/checklist
СМ. ТАКЖЕ
, в Справочнике администратора.
|
|
CHGRP(1)
НАЗВАНИЕ
chgrp - смена группы у файла
СИНТАКСИС
chgrp группа файл ...
ОПИСАНИЕ
Команда chgrp заменяет идентификатор группы файла на новое значение. Группа может быть задана либо десятичным идентификатором, либо именем, хранящимся в файле /etc/group.
Изменить группу может только владелец файла или суперпользователь.
ФАЙЛЫ
/etc/passwd /etc/group
СМ. ТАКЖЕ
.
, , в Справочнике программиста.
|
|
CHMOD(1)
НАЗВАНИЕ
chmod - изменение режима доступа к файлам
СИНТАКСИС
chmod режим файл ...
ОПИСАНИЕ
Права доступа к указанным файлам (среди которых могут быть каталоги) изменяются в соответствии с указанным режимом. Режим может быть задан в абсолютном или символьном виде.
Абсолютный вид - восьмеричное число, являющееся поразрядным ИЛИ следующих режимов:
04000 При выполнении переустановить действующий идентификатор пользователя. 020#0 При выполнении переустановить действующий идентификатор группы, если # есть 7, 5, 3 или 1; учитывать блокировку доступа, если # есть 6, 4, 2 или 0. 01000 Бит навязчивости [см. ]. 00400 Доступен для чтения владельцем. 00200 Доступен для записи владельцем. 00100 Доступен для выполнения (в случае каталога - для просмотра) владельцем. 00040 Доступен для чтения членами группы. 00020 Доступен для записи членами группы. 00010 Доступен для выполнения (просмотра) членами группы. 00004 Доступен для чтения прочими пользователями. 00002 Доступен для записи прочими пользователями. 00001 Доступен для выполнения (просмотра) прочими пользователями.
Использование символьного вида основано на однобуквенных обозначениях, которые определяют класс доступа и права доступа для членов данного класса. Права доступа к файлу зависят от идентификатора пользователя и идентификатора группы, в которую он входит. Режим в целом описывается в терминах трех последовательностей, по три буквы в каждой:
Владелец Группа Прочие (u) (g) (o) rwx rwx rwx
Здесь владелец, члены группы и все прочие пользователи обладают правами чтения файла, записи в него и его выполнения. В примере показаны обозначения как для класса доступа, так и для прав доступа внутри класса.
Для задания режима доступа в символьном виде используется следующий синтаксис:
[кому] операция права
Часть кому есть комбинация букв u, g и o (владелец, члены группы и прочие пользователи соответственно). Если часть кому опущена или указано a, то это эквивалентно ugo.
Операция может быть: + (добавить право), - (лишить права), = (в пределах данного класса присвоить права абсолютно, то есть добавить указанные права и отнять неуказанные).
Права - любая осмысленная комбинация следующих букв:
r | Право на чтение. |
w | Право на запись. |
x | Право на выполнение (поиск в каталоге). |
s | При выполнении переустанавливать действующий идентификатор пользователя или группы. |
t | После выполнения программы сохранять сегмент команд (бит навязчивости). |
l | Учет блокировки доступа. |
Опустить часть права можно только если операция есть = (для лишения всех прав).
Если надо сделать более одного указания об изменении прав, то при использовании символьного вида в правах не должно быть пробелов, а указания должны разделяться запятыми. Например, команда
chmod u+w,go+x f1
добавит для владельца право писать в файл f1, а для членов группы и прочих пользователей - право выполнять файл. Права устанавливаются в указанном порядке. Право s можно добавлять только для пользователя и группы, право t - только для пользователя.
Учет блокировки доступа (l) к файлу и его частям означает возможность монопольного захвата сегментов файла на время их обработки. Нельзя, однако, разрешить выполнение файла для членов группы и одновременно учитывать блокировку файла. Нельзя также разрешить переустановить при выполнении действующий идентификатор группы и учитывать блокировку файла. Таким образом, следующие команды являются некорректными:
chmod g+x,+l f2 chmod g+s,+l f3
Попытка их выполнения вызовет соответствующую диагностику.
Изменить режим доступа к файлу может только его владелец или суперпользователь. Бит навязчивости может установить только суперпользователь. Чтобы добавить право переустановки идентификатора группы, надо быть членом этой группы; кроме того, для членов группы должно быть установлено право выполнения.
Для просмотра прав доступа и контроля при их изменении используется команда с флагом -l. Права переустановки идентификаторов пользователя и группы отмечаются буквой s на месте соответствующей буквы x: малой s, если соответствующая категория пользователей имеет право x, и большой S - если не имеет; право t отмечается на месте последней буквы x: малой t, если прочие пользователи имеют право выполнять файл, и большой T - если не имеют. Право l отмечается на месте права x для членов группы.
ПРИМЕРЫ
Чтобы установить права, позволяющие владельцу читать и писать в файл, а членам группы и прочим пользователям только читать, надо сложить 0400, 0200, 0040 и 0004. Таким образом, команду можно записать двумя способами:
chmod 644 f1 chmod u=rw,go=r f1
Позволить всем выполнять файл f2:
chmod +x f2
Учитывать блокировку доступа к файлу f3:
chmod +l f3
Дать всем права на чтение запись и выполнение, а также на переустановку идентификатора группы при выполнении файла f4:
chmod =rwx,g+s f4 chmod 2777 f4
СМ. ТАКЖЕ
.
в Справочнике программиста.
|
|
CHOWN(1)
НАЗВАНИЕ
chown - смена владельца файла
СИНТАКСИС
chown владелец файл ...
ОПИСАНИЕ
Команда chown дает файлу нового владельца, который может быть задан либо десятичным идентификатором пользователя, либо входным именем из файла /etc/passwd.
Изменить владельца может только владелец файла или суперпользователь.
ФАЙЛЫ
/etc/passwd /etc/group
СМ. ТАКЖЕ
.
, , в Справочнике программиста.
|
|
CHROOT(1M)
НАЗВАНИЕ
chroot - смена корневого каталога для команды
СИНТАКСИС
/etc/chroot новый_корень команда
ОПИСАНИЕ
Применение chroot вызывает выполнение указанной команды относительно нового корневого каталога. Для специфицированной команды и всех порожденных ею процессов начальный символ / в маршрутных именах означает новый_корень. Этот же каталог на время выполнения команды становится текущим.
Отметим, однако, что при переназначении вывода команды в файл:
chroot новый_корень команда > файл
указанный файл будет создан с учетом исходного, а не нового корневого каталога.
Маршрутное имя нового корневого каталога всегда задается относительно текущего корня. Даже если в данный момент действует chroot, аргумент новый_корень задается относительно текущего корневого каталога работающего процесса.
Данная команда может быть выполнена только суперпользователем.
СМ. ТАКЖЕ
в Справочнике пользователя.
в Справочнике программиста.
СЮРПРИЗЫ
Следует проявить особую осторожность при обращении к файлам устройств в новой корневой файловой системе.
|
|
CHROOT(2)
НАЗВАНИЕ
chroot - смена корневого каталога
СИНТАКСИС
int chroot (path) char *path;
ОПИСАНИЕ
Аргумент path является указателем на маршрутное имя каталога. После выполнения системного вызова chroot указанный каталог становится корневым. Именно с корневого каталога начинается поиск файлов по маршрутным именам, первым символом которых служит /. Смены текущего каталога при этом не происходит.
Для успешного выполнения системного вызова chroot необходимо, чтобы соответствующий процессу действующий идентификатор пользователя был идентификатором суперпользователя.
В корневом каталоге обозначение .. интерпретируется как имя самого корневого каталога. Поэтому это обозначение не может использоваться для доступа к файлам, расположенным вне поддерева с корнем в корневом каталоге.
Системный вызов chroot завершается неудачей и смены корневого каталога не происходит, если выполнено хотя бы одно из следующих условий:
[ENOTDIR] Компонент маршрута не является каталогом. [ENOENT] Указанный каталог не существует. [EPERM] Действующий идентификатор пользователя не является идентификатором суперпользователя. [EFAULT] Аргумент path указывает за пределы отведенного процессу адресного пространства. [EINTR] Во время выполнения системного вызова перехвачен сигнал. [ENOLINK] Маршрутное имя path указывает на удаленный компьютер, связи с которым в данный момент нет. [EMULTIHOP] Компоненты path требуют многократного обращения к удаленным компьютерам.
СМ. ТАКЖЕ
.
ДИАГНОСТИКА
При успешном завершении результат равен 0; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки.
|
|
НАЗВАНИЕ
chroot - Изменяет корневой каталог для заданной команды.
СИНТАКСИС
chroot newroot command
ОПИСАНИЕ
Данная команда выполняется в отношении к новому корневому каталогу. Значение исходных косых черт (/) в названиях путей меняется для заданной команды и порождаемых ее процессов на newroot. После этого исходным рабочим каталогом становится newroot.
Обратите внимание, что команда
chroot newroot command >x
создает файл x, привязанный к исходному, а не новому каталогу.
Эта команда предназначена только для привилегированного пользователя.
Новый каталог всегда подчинен текущему корневому каталогу, даже когда действует команда chroot. Аргумент newroot подчинен текущему корневому каталогу выполняемого процесса. Заметьте, что нельзя изменить каталог на родительский для нового корневого каталога, то есть команда chroot поддерживает новый корневой каталог в качестве абсолютного на время действия command. Это означает, что "/.." всегда эквивалентно "/".
СМ. ТАКЖЕ
ПРИМЕЧАНИЯ
При обращении к специальным файлам в новой корневой файловой системе действуйте с величайшей осторожностью.
Команда command должна находиться в пределах каталога newroot, иначе появится сообщение:
command: not found (команда не найдена)
|
|
CHSH(8)
НАЗВАНИЕ
chsh - Изменяет пользовательскую входную запись в файле паролей.
СИНТАКСИС
chsh
ОПИСАНИЕ
chsh используется для модификации входной записи в файле /etc/passwd. chsh выдает приглашение на ввод регистрационного имени, подтверждает входную запись и выдает подсказки перед действительным изменением файла /etc/passwd.
ФАЙЛЫ
/etc/passwd
СМ. ТАКЖЕ
, passwd(3)
ПРИМЕЧАНИЯ
Только привилегированный пользователь может вызывать chsh.
|
|
CHSIZE(3) XENIX System V (21 июня 1987)
ИМЯ
chsize - измeняeт paзмep фaйлa
СИНТАКСИС
int chsize (fildes, size) int fildes; long size;
ОПИСАНИЕ
fildes являeтcя нoмepoм oткpытoгo фaйлa, вoзвpaщaeмым cиcтeмными вызoвaми creat, open, dup, fcntl, pipe. chsize ycтaнaвливaeт paзмep фaйлa, yкaзaннoгo нoмepoм fildes, paвный size бaйтoв. Фaйл либo yceкaeтcя, либo дoпoлняeтcя нeoбxoдимым кoличecтвoм бaйтoв. Ecли size мeньшe пepвoнaчaльнoгo paзмepa фaйлa, вce диcкoвыe блoки, нaxoдящиecя мeждy size и пpeжним paзмepoм фaйлa, ocвoбoждaютcя.
Paзмep фaйлa, ycтaнaвливaeмый в chsize, мoжeт пpeвыcить мaкcимaльный paзмep фaйлa, зaдaнный пocpeдcтвoм . B этoм cлyчae chsize aвapийнo зaвepшaeтcя и paзмep фaйлa ocтaeтcя пpeжним.
Boзвpaщaeмoe знaчeниe
B cлyчae ycпeшнoгo зaвepшeния вoзвpaщaeтcя знaчeниe 0. Инaчe вoзвpaщaeтcя знaчeниe -1 и в errno зaнocитcя кoд oшибки.
СМ. ТАКЖЕ
, , , , ,
ЗАМЕЧАНИЯ
Booбщe гoвopя, ecли chsize иcпoльзyeтcя для yвeличeния paзмepa фaйлa, блoки, pacпoлoжeнныe мeждy пpeжним кoнцoм фaйлa и нoвыми дaнными, зaпиcaнными в кoнeц фaйлa, зaпoлняютcя нyлями. B кpaйнe peдкиx cлyчaяx пpи yмeньшeнии paзмepa фaйлa мoгyт нe yничтoжaтьcя дaнныe, нaxoдящиecя зa eгo нoвым кoнцoм.
Пpoгpaммa, иcпoльзyющaя этoт вызoв, дoлжнa кoмпoнoвaтьcя c флaгoм -lx.
|
|
CI(1)КОМАНДЫ ПОЛЬЗОВАТЕЛЯ
НАЗВАНИЕ
ci - регистрация файла в системе отслеживания версий RCS
СИНТАКСИС
ci [флаги] имя-файла ...
ОПИСАНИЕ
Команда ci записывает (регистрирует) новую версию файла в архив. Если путь к файлу содержит каталог RCS или принятый в системе архивный суффикс (детали см. ниже в разделе ИМЕНА ФАЙЛОВ), то он считается архивным файлом, во всех остальных случаях предполагается, что указан рабочий файл, содержащий новейшую версию. Команда ci помещает содержимое рабочего файла в соответствующий архивный (RCS) файл. Если задано имя только одного рабочего файла, она сначала ищет архив в подкаталоге RCS , затем, в каталоге с рабочим файлом, затем, в текущем каталоге; если задано имя только одного архивного файла, она сначала ищет рабочий файл в текущем каталоге.
Для успешного выполнения команды ci , вызывающий ее пользователь должен быть занесен в список лиц имеющих доступ к изменению файла, за исключением трех случаев: этот список пуст либо пользователь является владельцем файла или системным администратором. Далее, для того, чтобы было можно добавить новую версию файла к существующей ветви, последняя версия в нем должна быть забронирована для пользователя. Если последнее условие не выполнено, можно лишь начать новую побочную ветвь. Впрочем, если используется нестрогое бронирование (см. ), данное условие не является обязательным для владельца. И, наконец, при необходимости, бронирование на чужое имя можно отменить с помощью команды rcs .
Если не задан флаг -f , команда ci проверяет, действительно ли регистрируемая версия отличается от предыдущей, и если нет, то результат будет такой же, будто команда была применена к предыдущей версии, будет удален файл, снято бронирование, а номер текущей версии не увеличится; ci -l сохранит, а ci -u отменит бронирование, так же, как если бы были исполнены команды co -l или co -u; рабочий файл останется на месте, а номер версии не изменится. В таком случае, если изменений не было внесено, флаги -n и -s относятся к предыдущей версии.
При внесении изменений, ci запрашивает регистрационную запись (log message). Эта запись должна отражать суть внесенных изменений; ее концом считается символ конца файла (<Ctrl-D> в UNIX) или строка, содержащая единственный символ -- точку (как в Mail). Если одной командой регистрируются несколько файлов, то предлагается возможность повторно использовать (reuse) регистрационную запись внесенную в предыдущий архив. Если свой ввод программа получает не с терминала (от другой программы или из командного файла), то запрос подавляется, и для всех файлов, регистрируемых одной командой, используется одна регистрационная запись. См. флаг -m.
Если архивный (RCS) файл не существует, ci создаст его и, по умолчанию задаст номер 1.1 . Список лиц имеющих доступ к к файлу изначально пуст, а вместо регистрационной записи, запрашивается описание файла. (См. флаг -t).
Номер rev регистрируемой версии может быть задан с любым из флагов -f, -i, -I, -j, -k, -l, -M, -q, -r или -u.
Номер rev может быть символьным, числовым или смешанным, но входящие в него символические имена должны быть уже определены; см. флаги -n и -N о присваивании имен при регистрации. Если rev = $ , то ci определяет номер версии по идентификационным маркерам в рабочем файле.
Если rev начинается с точки, то в начало подставляется номер версии по умолчанию (обычно -- последняя версия главной ветви). Если rev заканчивается точкой, то используется последняя версия соответствующей побочной ветви.
Номер rev регистрируемой версии либо должен быть больше, чем номер последней версии в соответствующей ветви, либо он должен начинать новую ветвь.
Если rev является номером ветви, а не версии, то файл ставится в конец этой ветви, а номер версии получается увеличением на единицу номера версии находящейся на вершине этой ветви. Если rev задает несуществующую ветвь, то эта ветвь создается, с первой версией под номером rev.1.
Если номер rev опущен, команда ci определяет номер новой версии по бронированию. Если пользователь забронировал последнюю версию ветви, то новая версия ставится в конец, а ее номер получается увеличением предыдущего на единицу. Если пользователь забронировал промежуточную версию, то создается новая ветвь, выходящая из этой вершины; номер ветви получается увеличением на единицу максимального из номеров ветвей, начинающихся от этой версии. По умолчанию, номера новых ветвей и версий в новых ветвях полагаются равными 1 .
Если ни rev не задано, ни версии не забронированы, но пользователь является владельцем файла, и используется нестрогое бронирование, то новая версия добавляется к ветви, определяемой по умолчанию (обычно -- главной; см. флаг -b команды ).
Замечание: в главной ветви все версии получены добавлением в конец, как в магазине (стеке), и не могут быть вставлены в середину.
ФЛАГИ
-rrev
Зарегистрировать под номером версии rev.
-r
Для всех прочих команд RCS , флаг -r без номера по умолчанию задает наименьший возможный номер версии. Для команды ci такой эффект (номер на единицу больший последней зарегистрированной версии) достигается отсутствием флага, а -r используется для того, чтобы восстановить поведение команды по умолчанию в отношении бронирования и удаления файла. Нужно это для того, чтобы отменить действие флагов -l и -u заданное командным файлом, псевдонимом или переменными среды.
-l[rev]
Действует так же, как -r , после которой была исполнена команда co -l для той же версии. Это означает, что новая версия файла восстанавливается в рабочий файл и сразу же бронируется. Все маркеры обновляются. Используется в случае, когда нужно сохранить промежуточный результат и продолжить работу с файлом.
-u[rev]
Действует так же, как -l , версия не бронируется. Все маркеры обновляются. Используется в случае, когда работа с файлом закончена, но нужно сохранить доступ для чтения рабочей версии.
Три флага: -l , -r без номера, и -u , взаимно исключают друг друга, и каждый последующий отменяет предыдущий без сообщения. Пусть, например, флаг -r задан как параметр командному файлу или псевдониму, который использует ci -u . Тогда в результате подстановки получится ci -u -r что равносильно ci -r потому, что -r без номера отменит -u .
-f[rev]
Безусловно регистрирует версию под новым номером, даже в случае, отсутствия фактических изменений.
-k[rev]
Просматривает идентификационные маркеры в рабочем файле, чтобы определить его версию, дату создания, статус и автора (см. ), приписывает их регистрируемой версии, вместо того, чтобы определять их по архиву и системным часам. При этом генерируется регистрационная запись, отмечающая действительное время и регистрирующего пользователя. Применяется при рассылке документов или текстов программ. Для сохранения авторских данных, в т.ч. номера версии и времени создания, во всех депозитариях файл нужно регистрировать с флагом -k . Следует заметить, что и значения ключевых слов и регистрационная запись могут быть изменены флагами -d , -m , -s , -w и любой другой, содержащей номер версии в явном виде.
-q[rev]
Подавляет сообщения. Если не задан флаг -f , и файл не отличается от последней зарегистрированной версии, то регистрации не происходит. Используется в командных файлах.
-i[rev]
Регистрация с инициализацией архива. Выдает сообщение об ошибке, если архивный файл уже существует. Используется при несоответствии быстродействия подсистем. Также, позволяет избежать присваивания одного имени разным документам.
-j[rev]
Регистрация без инициализации архива. Выдает сообщение об ошибке, если архивного файла нет. См. флаг -i .
-I[rev]
Интерактивный режим. Выдаются сообщения и запросы, даже если ввод осуществляется не с клавиатуры.
-d[date]
Задает дату и время для регистрационной отметки в архиве. Формат -- свободный, как указан в . Используется для задания фиктивной даты с флагом -k , если в рабочем файле не указана дата. Если дата не указана, но флаг задан, используется время последнего изменения файла.
-M[rev]
Сохраняет время последнего изменения файла (как атрибут этого файла). Например, команда ci -d -M -u f не меняет время последнего изменения f , даже если его содержание изменилось после подстановки значений ключевых слов. Такое поведение флага вводит в заблуждению команду и, потому необходима осторожность.
-mmsg
Использовать строку msg в качестве регистрационной записи. По соглашению, регистрационные записи, начинающиеся с # , являются комментариями и игнорируются программами типа отслеживания версий в emacs(1) . Регистрационные записи, начинающиеся с {некий-признак} (и пробелом после) предназначены для группировки в истории изменений файла и могут служить признаком для группировки в истории системы, даже если относятся к разным файлам. Сам символ {некий-признак} не является частью регистрационной записи. Ср. -t .
-nname
Присваивает номер регистрируемой версии символическому имени name . Если это имя связано с другой версией того же файла, выдает сообщение об ошибке.
-Nname
То же, что и -n , но вместо сообщения об ошибке отменяет старое значение name.
-sstate
Придает регистрируемой версии статус state . Статус по умолчанию -- Exp .
-tfile
Использовать содержимое файла file в качестве описания регистрируемого файла. Ограничение: минус не может быть первым символом в имени file.
-t-string
Использовать строку string в качестве описания регистрируемого файла.
Флаг -t в обеих формах имеет смысл только при инициализации архива, при регистрации последующих версий игнорируется. Ср. -m .
Если при инициализации архива флаг -t не задан , то команда ci потребует ввести со стандартного ввода описание файла (что он из себя представляет, зачем нужен и т.п.; эта запись будет относиться ко всем версиям), ее концом считается символ конца файла (<Ctrl-D> в UNIX) или строка, содержащая единственный символ -- точку. Если при этом возможно взаимодействие с пользователем, программа выдаст приглашение ко вводу.
Для совместимости с предыдущими версиями, -t без параметра игнорируется.
-T
Использует дату и время последнего изменения рабочего файла для задания времени последнего изменения архивного файла (как атрибута этого файла), если первое предшествовало второму и при этом новая версия отлична от предыдущей. В противном случае, время последнего изменения архива сохраняется.
Если Вы забронировали версию в архиве, команда ci обновляет время последнего изменения архива, поскольку в него заносится отметка о бронировании. Снятие бронирования снова изменит архив. Архив может оказаться новее рабочего файла и другими способами. Во-первых, ci -M может создать рабочий файл со временем последнего изменения задолго до текущей даты; во-вторых, восстановление предыдущей версии из архива может не изменить рабочего файла. Такое поведение архива вызывает ненужные компиляции или другие построения системы. Флаг -T позволяет избежать этого, вводя в заблуждению команду относительно зависимости рабочего файла от архивного.
Используйте эту возможность с осторожностью: она может подавить построение (в частности, компиляцию), если с одним архивным файлом связано несколько рабочих. Например, пусть архивный файл был последний раз изменен в 13:00, Ваша личная копия была изменена в 14:00, копия общего пользования в каталоге над RCS была извлечена в 15:00, а сейчас 16:00. Вы делаете символический линк общего каталога RCS с архивным файлом в подкаталог RCS вашего рабочего каталога и вызываете команду ci -d -T . Это устанавливает время изменения архива как атрибут файла равным 14:00, а не 16:00. В результате, программа , если она работает с архивом, будет облыжно считать, что другая рабочая копия новее, чем архив (обычно, она должна при построении системы заменить старый рабочий файл последней версией).
-wlogin
Использовать для отметки об авторе при регистрации имя login вместо имени пользователя. Используется при регистрации от чужого имени или с флагом -k , если RCS не может самостоятельно определить автора.
-V
Посылает номер версии RCS на стандартный вывод.
-Vn
Имитирует поведение версии n комплекса программ RCS . См. .
-xsuffixes
Задает суффикс, добавляемый к имени архивного файла. Если архивный суффикс непуст, то архивом считается любое подходящее имя файла, на него заканчивающееся. Пустому суффиксу соответствует путь к архиву вида RCS/path или path1/RCS/path2 . Флаг -x может задавать не один, а несколько суффиксов, разделенных косой чертой. Например, -x,v/ задаст два архивных суффикса: ,v и пустой суффикс. Если заданы два или более суффиксов, команда ci пытается их использовать для поиска архива поочередно (см. ИМЕНА ФАЙЛОВ). Первый из найденных по такому критерию файлов и считается архивом. Если архив не найден, но может быть создан, он создается исходя из того же критерия.
Архивный суффикс, используемый по умолчанию зависит от операционной системы и равен ,v , если операционная система, как UNIX, поддерживает запятые в имени файла; и пустой суффикс (т.е. имя архива отличается только каталогом) , если -- нет. Чаще всего архив помещают в подкаталог с именем RCS.
-zzone
Задает формат даты при подстановке ключевых слов в маркеры и часовой пояс для флага -ddate . Параметр zone должен быть либо пуст, либо являться численным значением отклонения от Всемирного Времени (UTC) , либо специальной строкой LT , задающей использование местного времени. По умолчанию, и опущенный параметр zone , задают использование Всемирного Времени с использованием косой черты в качестве разделителя полей для даты (см. пример). В остальных случаях используется стандарт ISO 8601. Например, пусть текущее время 8 часов вечера, 11 января 1990, в Тихоокеанском часовом поясе США (что на 8 часов позже, чем в Гринвиче). Тогда для подстановок будет использовано
флаг формат времени -z 1990/01/12 04:00:00 (по умолчанию) -zLT 1990-01-11 20:00:00-08 -z+05:30 1990-01-12 09:30:00+05:30
Флаг - z влияет только на маркеры, и не меняет формата даты и времени в архивном файле, которые всегда задается во Всемирном Времени.
ИМЕНА ФАЙЛОВ.
Пара рабочий файл -- архив может быть задана тремя способами (СМ. ТАКЖЕ ПРИМЕРЫ).
Заданы оба файла -- и рабочий файл и архив, причем в любом порядке. Система отслеживания версий RCS распознает это, если архивный файл задан в виде path1/workfileX , а рабочий файл в виде path2/workfile , где path1/ и path2/ -абсолютные или относительные пути (возможно различные или пустые) к файлам; workfile -- имя файла, а X принятый в RCS архивный суффикс. Если этот суффикс X пуст, path1/ должен либо быть относительным и начинаться с RCS/ или должен включать каталог /RCS/ . Задан только архивный файл. Тогда система отслеживания версий RCS считает, что рабочий файл должен находиться в текущем каталоге, а его имя получается из имени архива отбрасыванием части пути path1/ и архивного суффикса. Задан только рабочий файл. Тогда система отслеживания версий RCS считает, что имя архивного файла должно получаться из имени рабочего добавлением архивного суффикса и, возможно, подкаталога /RCS/ . Система отслеживания версий ищет архив поочередно, до первого успеха, пробуя принятые в RCS суффиксы и комбинации path2/RCS/workfileX и (если архив не найден и X -- непустой суффикс) path2/workfileX.
Если архивный файл задан в 1) или 2) без указания пути, то система отслеживания версий RCS ищет его сначала в подкаталоге ./RCS , а затем, в текущем каталоге.
Команды RCS возвращают сообщение об ошибке, если ошибку возвращает очередная попытка открыть существующий архивный файл, даже если это лишь один из нескольких возможных вариантов. Поэтому, если Вы хотите предотвратить их использование в некотором каталоге d , создайте обычный файл d/RCS , что вызовет ошибку при использовании RCS , поскольку d/RCS не является каталогом.
ПРИМЕРЫ
Допустим, в качестве архивного суффикса RCS использует ,v . В текущем каталоге находятся рабочий файл io.c и подкаталог RCS с архивным файлом io.c,v . Тогда любая из приведенных ниже команд регистрирует файл io.c в архиве RCS/io.c,v в качестве последней версии и удаляет файл io.c.
ci io.c; ci RCS/io.c,v; ci io.c,v; ci io.c RCS/io.c,v; ci io.c io.c,v; ci RCS/io.c,v io.c; ci io.c,v io.c;
Если же используется пустой суффикс, в аналогичной ситуации возможностей меньше:
ci io.c; ci RCS/io.c; ci io.c RCS/io.c; ci RCS/io.c io.c;
АТРИБУТЫ ФАЙЛОВ
Архивный файл, создаваемый командой ci наследует от рабочего разрешения для пользователей и групп на чтение и выполнение. Если архив уже существовал, то его атрибуты сохраняются. Разрешение же на запись в него отменяется всегда, когда файл не забронирован флагом -l.
ВРЕМЕННЫЕ ФАЙЛЫ И ЛИНКИ
При работе программы в каталоге с рабочим файлом и системном каталоге для временных файлов (см. ПЕРЕМЕННЫЕ СРЕДЫ : TMPDIR ) создаются временные промежуточные файлы. В каталоге с архивными файлами создаются сигнальные файлы, имя которых начинается с первого символа архивного суффикса, а если суффикс пуст, то -- заканчивается символом подчеркивания. Следовательно, не стоит выбирать архивный суффикс начинающийся с буквы или цифры или называть рабочий файл именем оканчивающимся символом подчеркивания.
Команда ci не меняет рабочий или архивный файл физически, а создает новый и исправляет указатель на него в каталоге. Поэтому символические линки на файлы в системе RCS сохраняются, а системные -- нет.
Программы системы отслеживания версий RCS проверяют право логического (effective) пользователя (т.е. владельца процесса, вызвавшего соответствующую программу) на поиск и запись в архивном каталоге и запись в архивный файл. Относительно права читать архивный и рабочий файлы, вести поиск и записывать в каталог с рабочим файлом, проверяется физический (real) пользователь (владелец процесса, соответствующего исполняемой программе). Не все операционные системы позволяют программам свободно переключать свои права доступа между привилегиями логического и физического пользователя. В таком случае, для доступа используется имя логического пользователя. Впрочем, чтобы имя физического пользователя не совпадало с именем логического, нужно, чтобы у используемых копий программ ci и co было право на использование привилегий их владельца (атрибут файла s), а не только привилегий вызывающего пользователя. В следующем разделе показано, как это использовать для дополнительного обеспечения безопасности информации.
Проще контролировать доступ к файлам можно с помощью установки атрибутов самих файлов и каталогов, поскольку только пользователи, имеющие соответствующие права доступа могут изменять эти файлы. Если операционная система позволяет пользователю принадлежать нескольким группам, то можно просто создать группу для участников проекта и объявить каталог с архивами открытым для записи только членам этой группы. Такое решение больше подходит для неформальных объединений, поскольку все члены группы могут произвольно и с равным правом изменять общие файлы вплоть до их удаления. Для более серьезных проектов требуется различать между администратором системы отслеживания версий RCS , который может изменять файлы по своей инициативе, и рядовыми участниками, которые могут регистрировать новые версии, но никаким другим способом не могут изменить архивные файлы.
ДОПОЛНИТЕЛЬНЫЕ МЕРЫ БЕЗОПАСНОСТИ
Для предотвращения случайного или злонамеренного удаления версий и реальной возможности возложить ответственность за них на администратора системы отслеживания версий RCS , могут быть приняты следующие меры.
Проверьте, поддерживает ли Ваша операционная система системный вызов setuid в полном объеме. Проконсультируйтесь у специалиста или проэкспериментируйте с RCS . Идеально, если системный вызов seteuid Вашей операционной системы соответствует стандарту Posix 1003.1a Draft 5, потому, что это означает, что RCS сможет легко переключать права доступа логического и физического пользователей, даже если физическим пользователем является root . Приемлемо, если операционная система поддерживает информацию о бывшем владельце ( saved setuid ) (свойство {_POSIX_SAVED_IDS} стандарта Posix 1003.1-1990 ); тогда проблемы возникают, только если физический пользователь -root . Следует заметить, что при ошибке, вызванной системным вызовом setuid , команды RCS аварийно завершают работу. Назначьте пользователя A на должность администратора системы отслеживания версий. Только A должен иметь право выполнять команду rcs для общих архивных файлов. A не должен быть привилегированным пользователем (таким, как root или uucp) . Группы пользователей испытывающих недоверие друг к другу должны назначать разных администраторов. Пусть путь каталог B предназначен для исполняемых файлов системы RCS для данной группы. Сделайте так, чтобы владельцем команд в каталоге B был A и задайте атрибут, передающий программам права доступа, принадлежащие A . Например,
mkdir B cp D/c[io] B chmod go-w,u+s B/c[io]
Сделайте так, чтобы упомянутые выше копии команд в пути поиска исполняемых файлов встречались раньше, чем их стандартные копии. Например, в конце соответствующего инициализационного файле для командной оболочки поставьте
PATH=B:$PATH; export PATH # обычный командный интерпретатор
set path=(B $path) # командный интерпретатор типа csh
Создайте каталог(и) R для рабочих и R/RCS для архивных файлов с правом на запись в каталоги только для A .
mkdir R mkdir R/RCS chmod go-w R R/RCS
Если нужно закрыть архивы от просмотра посторонними, объедините пользователей вместе с A в группу G , и пусть A закроет каталоги для просмотра и чтения.
chgrp G R chmod g-w,o-rwx R
Пусть A скопирует все старые файлы, подлежащие контролю в эти каталоги, что запишет его их владельцем. Список лиц имеющих доступ к файлу хранится непосредственно в архивном файле и ограничивает круг лиц, имеющих право изменять архив средствами системы отслеживания версий RCS (помимо RCS изменять архив могут только A и root). По умолчанию он пуст, а это значит, что регистрировать новые версии может всякий, кто может читать архивный файл (рабочий файл может находиться и не в R ). Если Вы хотите ограничить этот круг, пусть A вызовет команду rcs со флагом -a для соответствующего файла. См. . В частности,
rcs -e -aA
Оставляет это право только за A (но еще не бронирует сам файл). Пусть A проинициализирует все архивные файлы командой rcs со флагом -i до регистрации первой версии другими представителями группы, добавив флаг -a , если нужно ограничить доступ к архиву. Задайте возможность использования прав доступа владельца (установкой атрибута s ) только для трех команд: ci, co и rcsclean; не давайте этого права команде rcs и остальным программам RCS. Не присваивайте атрибут s другим программам. Системный вызов setuid гораздо сложнее, чем кажется, а будучи присвоен командам, допускающим во время работы выполнение пользовательских программ, представляет собой лазейку в системе безопасности.
ПЕРЕМЕННЫЕ СРЕДЫ
LOGNAME Имя пользователя. В UNIX задано автоматически, в MS-DOS требуется задать явно командой
set LOGNAME=имя-пользователя
TZ Часовой пояс. В UNIX задан автоматически, в MS- DOS требуется задать явно командой set. RCSINIT Список флагов используемых со всеми командами системы отслеживания версий RCS. Не забудьте, что необходимы меры для того, чтобы пробелы между флагами не были обработаны командным интерпретатором преждевременно, защищайте их, например, обратной косой чертой.
Полезными в RCSINIT флагами могут быть -q, -V, -x и -z. TMPDIR Место для временных файлов. Если не задана, поочередно проверяются переменные TMP и TEMP и используется первая найденная, а и если они не заданы, то место для временных файлов по умолчанию зависит от операционной системы, но обычно, это /tmp .
СООБЩЕНИЯ
Для каждой регистрируемой версии каждого файла команда ci печатает имя архивного файла, имя рабочего файла и номера регистрируемой и предыдущей версий. Возвращает операционной системе 0 тогда и только тогда, когда все операции завершились успешно.
СМ. ТАКЖЕ
, emacs(1), , , , , , , , , , rcsfile(5)
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.
|
|
CLEALL(1M)
НАЗВАНИЕ
cleall - чистка файловой системы
СИНТАКСИС
cleall
ОПИСАНИЕ
По команде cleall из файловой системы удаляются файлы, которые получаются как побочный продукт работы в редакторе РК или как следствие аварийных завершений.
Во время выполнения на стандартный вывод выдаются имена обрабатываемых каталогов и список удаляемых файлов (если таковые имеются).
Рекомендуется применять процедуру чистки перед процедурой копирования файловой системы .
СМ. ТАКЖЕ
.
|
|
CLK(7)
НАЗВАНИЕ
clk - драйвер часов
ОПИСАНИЕ
Драйвер clk содержит все подпрограммы для использования микросхемы MC68230 на плате процессора в качестве системных часов. Драйвер открывает порт приема сигнала прерываний, инициализирует часы реального времени на плате системного арбитра и модули обработки прерываний шины на платах процессора и арбитра.
СМ. ТАКЖЕ
.
|
|
CLOCK(3C)
НАЗВАНИЕ
clock - выдача информации о расходовании времени ЦП
СИНТАКСИС
long clock ( )
ОПИСАНИЕ
Функция clock возвращает время ЦП (в микросекундах), использованное со времени первого вызова clock. Выданное время является суммой пользовательского и системного времени вызывающего процесса и завершившихся порожденных процессов, для которых вызывающий процесс запустил , или .
Разрешающая способность часов - 16666 микросекунд.
СМ. ТАКЖЕ
, , , .
СЮРПРИЗЫ
Значение, возвращаемое функцией clock, определяется в микросекундах для совместимости с системами, у которых часы ЦП имеют весьма высокую разрешающую способность. В результате диапазон измеряемых времен ограничен примерно 2147 секундами (это всего лишь около 36 минут).
|
|
CLOCK(7)XENIX System V (1 янвapя 1989)
НАЗВАНИЕ
clock - cиcтeмныe чacы peaльнoгo вpeмeни
ОПИСАНИЕ
Фaйл cllock oбecпeчивaeт дocтyп к чacaм peaльнoгo вpeмeни (нa энepгeтичecкиx бaтapeяx). Чтeниe этoгo фaйлa вoзвpaщaeт тeкyщee вpeмя дня, зaпиcь в этoт фaйл ycтaнaвливaeт тeкyщee вpeмя. Знaчeниe, paзмepoм в 10 бaйт, имeeт cлeдyющий фopмaт:
MMddhhmmyy,
гдe MM - мecяц, dd - дeнь, hh - чacы, mm - минyты, yy пocлeдниe двe цифpы гoдa. Haпpимep,
0826150385
oзнaчaeт 15:03 26 aвгycтa 1985 гoдa
ФАЙЛЫ
/dev/clock
ЗАМЕЧАНИЯ
He вce кoмпьютepы имeют oпиcaнныe чacы peaльнoгo
|
|
CLOCKRATE(HW)XENIX System V (1 aпpeля 1987)
НАЗВАНИЕ
clockrate - измeнить тaктoвyю чacтoтy
СИНТАКСИС
/etc/clockrate чacтoтa
ОПИСАНИЕ
/etc/clockrate измeняeт чacтoтy пpepывaний oт чacoв (кoтopaя oтличaeтcя oт чacтoты чacoв цeнтpaльнoгo пpoцeccopa) для тoгo, чтoбы cинxpoнизиpoвaть cиcтeмныe чacы c чacaми кoмпьютepa. Этa чacтoтa выpaжaeтcя в мeгaгepцax, ee мoжнo нaйти в oпиcaнии aппapaтypы кoмпьютepa.
Для тoгo чтoбы ycтaнoвить чacтoтy, нaпpимep, 1.22878, нaпeчaтaйтe:
# /etc/clockrate 1.22878
/etc/clockrate - этo пpoгpaммa, нaпиcaннaя нa языкe Cи, кoтopaя мoдифициpyeт ядpo, pacпoлoжeннoe в фaйлe /xenix.
/etc/clockrate тpeбyeтcя зaпycтить тoлькo oдин paз, ecли Bы нe пepeycтaнaвливaeтe диcтpибyтивныe диcкeты XENIX.
ФАЙЛЫ
/etc/clockrate
ЗAМEЧAНИЯ
Boзмoжнo, чтo нa Baшeм кoмпьютepe нeльзя измeнить чacтoтy c пoмoщью этoй yтилиты.
|
|
CLONE(7)
НАЗВАНИЕ
clone - драйвер открытия младшего устройства псевдоустройства
ОПИСАНИЕ
Clone является драйвером псевдоустройства, который находит и открывает неиспользуемое младшее устройство в другом драйвере псевдоустройства. Младший номер устройства, переданный clone во время открытия, интерпретируется как старший номер устройства в другом драйвере псевдоустройства, для которого должно быть выдано свободное младшее устройство. Каждое открытие приводит к созданию отдельного потока для младшего устройства, оказавшегося свободным.
Драйвер clone содержит только функцию открытия, которая производит все необходимые действия, так что выполнение последующих системных вызовов [включая ] не требует обращения к драйверу clone.
Clone выдаст ошибку ENXIO, если переданный ему младший номер устройства не является корректным старшим номером никакого устройства или устройство с таким старшим номером не является псевдоустройством.
ОГРАНИЧЕНИЯ
С помощью clone нельзя несколько раз открыть одно и то же устройство. Выполнение для файла-устройства, использованного clone, и выполнения fstat(2) для открытого дескриптора этого устройства приводит к различным результатам.
СМ. ТАКЖЕ
.
|
|
CLOSE(2)
НАЗВАНИЕ
close - закрыть дескриптор файла
СИНТАКСИС
int close (fildes) int fildes;
ОПИСАНИЕ
Аргумент fildes - это дескриптор файла, полученный в результате выполнения системных вызовов creat, open, dup, fcntl или pipe. Системный вызов close закрывает этот дескриптор. Все блокировки файла, ассоциированного с дескриптором fildes, принадлежащие вызывающему процессу, удаляются.
Если закрывается файл-псевдоустройство [см. ] и вызывающий процесс предварительно зарегистрирован для получения сигнала SIGPOLL [см. и ] в связи с событиями, ассоциированными с этим файлом [см. I_SETSIG в ], регистрация событий применительно к упомянутым процессу и файлу отменяется.
Последний вызов close для потока, связанного с дескриптором fildes, приводит к ликвидации потока. Если флаг O_NDELAY не установлен и не было сигналов, предназначенных для потока, системный вызов close ждет до 15 секунд, пока все модули и драйверы завершат вывод, и только после этого ликвидирует поток. Если флаг O_NDELAY установлен или есть отложенные сигналы, системный вызов close не ждет окончания вывода и ликвидирует поток немедленно.
Системный вызов close завершается неудачей и указанный дескриптор файла не закрывается, если выполнено хотя бы одно из следующих условий:
[EBADF] Аргумент fildes не является корректным дескриптором открытого файла. [EINTR] Во время выполнения системного вызова перехвачен сигнал. [ENOLINK] Аргумент fildes указывает на удаленный компьютер, связи с которым в данный момент нет.
СМ. ТАКЖЕ
, , , , , , , , .
в Справочнике администратора.
ДИАГНОСТИКА
При успешном завершении результат равен 0; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки.
|
|
CLRI(1M)
НАЗВАНИЕ
clri - очистка описателя файла
СИНТАКСИС
/etc/clri файловая_система номер_описателя ...
ОПИСАНИЕ
Команда clri записывает 64 нулевых байта в описатель файла с указанным номером. Тем самым описатель освобождается. Файловая_система задается именем содержащего ее специального файла. После выполнения команды clri все блоки файла с указанным описателем будут обозначаться как "not accounted for" (неучтенные), если запустить программу для данной файловой_системы. Описатель может быть использован под новый файл.
По отношению к специфицированной файловой_системе необходимо иметь права на чтение и запись.
Команда clri используется для удаления файлов, не принадлежащих ни одному из каталогов, то есть файлов, которые невозможно удалить с помощью команды rm.
СМ. ТАКЖЕ
, , .
в Справочнике пользователя.
в Справочнике программиста.
ПРЕДОСТЕРЕЖЕНИЯ
Если файл открыт на запись, то команда clri не сработает. Файловая система, содержащая файл, должна находиться в размонтированном состоянии.
Если команда clri используется для описателя файла, входящего в каталог, необходимо одновременно удалить и элемент каталога, так как описатель может быть использован для нового файла. Если старый элемент каталога не удален, то он продолжает указывать на тот же самый файл. Это напоминает ссылку на файл, но работает совсем не так. Удаление старого элемента каталога уничтожит новый файл.
|
|
CLRI(8)
НАЗВАНИЕ
clri - чистит индексный дескриптор (inode)
СИНТАКСИС
/etc/clri file-system i-number ...
ОПИСАНИЕ
clri заполняет нулями 64 байта, занимаемые индексным дескриптором под номером i-number. File-system должно быть именем специального файла, относящегося к устройству, содержащему файловую систему. После выполнения clri все блоки обработанного файла будут трактоваться как "потерянные", если файловую систему проверить с помощью . Используйте clri только в крайних случаях и с величайшей осторожностью.
Для задаваемого устройства file-system требуется разрешение на чтение и запись. Индексный дескриптор освобождается.
Главная цель этой процедуры - удалить файл, который по разным причинам не виден в каталоге. Если вы используете clri для уничтожения индексного дескриптора, который виден в каталоге, переместитесь в соответствующее место и удалите его. В противном случае, когда индексный дескриптор передан новому файлу, старая структура все равно указывает на этот файл. Удаление в этом месте старой структуры уничтожит новый файл. Новая структура будет указывать снова на свободный дескриптор, так что весь этот цикл, вероятно, будет повторятся снова и снова.
СМ. ТАКЖЕ
,
ПРИМЕЧАНИЯ
Если файл открыт, использование clri, вероятно, ничего не изменит.
|
|
CMCHK(1)
НАЗВАНИЕ
cmchk - Сообщает размер блока жесткого диска.
СИНТАКСИС
cmchk
ОПИСАНИЕ
Сообщает размер блока на жестком диске (BSIZE) в байтах.
|
|
CMOS(HW)
НАЗВАНИЕ
cmos - высвечивает и устанавливает конфигурацию базы данных.
СИНТАКСИС
cmos [address [value]]
ОПИСАНИЕ
Команда cmos высвечивает и/или устанавливает значения величин в конфигурационной базе данных CMOS. Эта питаемая от аккумуляторов база данных хранит конфигурационную информацию о компьютере, которая используется при включении питания для определения аппаратной конфигурации системы и управления загрузочными процедурами.
Команда cmos обычно используется для изменения текущей аппаратной конфигурации при присоединении к системе новых устройств. Если задается только адрес address, то команда высвечивает значение, находящееся по этому адресу. Если заданы и адрес, и значение (value), то команда записывает это значение по заданному адресу. Если не задано никаких аргуметов, то команда высвечивает содержимое базы данных CMOS.
Конфигурационная база данных CMOS может также просматриваться и модифицироваться посредством чтения и записи в файл /dev/cmos. Поскольку успешное функционирование системы зависит от правильности конфигурационной информации, эта база данных должна корректироваться только опытными системными администраторами.
Перед выполнением установок в базе данных CMOS следует запустить диагностическую дискету производителя вашего компьютера.
ФАЙЛЫ
/etc/cmos /dev/cmos
ПРИМЕЧАНИЯ
Не все компьютеры имеют конфигурационную базу данных CMOS. Некоторые компьютеры имеют для установки конфигурации системы соответствующие переключатели на главной системной плате. По поводу наличия на вашем компьютере конфигурационной базы данных обращайтесь к документации по аппаратной части этого компьютера.
|
|
CMP(1)
НАЗВАНИЕ
cmp - сравнение двух файлов
СИНТАКСИС
cmp [-l] [-s] файл1 файл2
ОПИСАНИЕ
Сравниваются файл1 и файл2. Если файл1 заменен знаком -, используется стандартный ввод. По умолчанию команда cmp не выдает никаких сообщений, если файлы совпадают; если файлы отличаются, выдаются позиция в строке и номер строки, в которой находится первый несовпадающий байт. Если один из файлов является началом другого, то выдается сообщение:
cmp: EOF on имя_более_короткого_файла
Назначение опций:
-l Вывести номер байта (десятичный) и различающиеся байты (восьмеричные) для каждого несовпадения. -s Ничего не печатать, вернуть только код завершения.
СМ. ТАКЖЕ
, .
КОДЫ ЗАВЕРШЕНИЯ
0 Идентичные файлы.
1 Различные файлы.
2 Недоступный или пропущенный аргумент.
|
|
CO(1)КОМАНДЫ ПОЛЬЗОВАТЕЛЯ
НАЗВАНИЕ
co - востребование из RCS архива определенной версии файла
СИНТАКСИС
co [флаги] имя-файла ...
ОПИСАНИЕ
Команда co получает из архивного файла копию некоторой версии файла и помещает ее в рабочий файл.
Полное имя файла, содержащее архивный суффикс, соответствует архивному файлу, все прочие считаются рабочими файлами. О соответствии имен файлов, см. .
Версии рабочего файла могут быть востребованы из архива с бронированием или без него. Бронирование предотвращает взаимные накладки при внесении изменений. Востребование файла для чтения или не изменяющей его обработки, не требует бронирования. Версия востребованная для внесения изменений и последующей регистрации, должна быть забронирована некоторым пользователем, чтобы предотвратить изменение файла другими во время его работы. Попытка бронирования завершается ошибкой программы, если данную версию уже забронировал другой пользователь. (Бронирование может быть отменено командой ). Для бронирования необходимо также, чтобы пользователь был внесен в список лиц имеющих доступ к изменению файла, за исключением трех случаев: этот список пуст либо пользователь является владельцем файла или системным администратором. Востребование без бронирования может быть осуществлено любым пользователем, имеющим право чтения архивного файла и не зависит от наличия бронирования.
Востребуемая версия может быть задана с помощью флагов по номеру и ветви, времени регистрации, автору и статусу. Если (не)примененные флаги определяют несколько версий, то извлекается последняя версия главной ветви (или ветви, используемой по умолчанию, см. флаг -b команды ). Номер версии и/или ветви может бать использован с любым из флагов -f, -I, -l, -M, -p, -q, -r или -u.
Флаги -d (дата), -s (статус), и -w (автор) выберут версию из ветви, заданной версиями -f, ..., -u; а если они не заданы, то из ветви, используемой по умолчанию.
Если команду co применить к архивному файлу, не содержащему зарегистрированных версий, то создастся рабочий файл нулевой длины. Подстановка значений ключевых символов в идентификационные маркеры осуществляется всегда. (см. ниже).
ФЛАГИ
-r[rev] Востребует последнюю версию из тех, чей номер меньше или равен rev . Если rev задает номер ветви, то последнюю версию на этой ветви из тех, чей номер меньше или равен rev . Если rev опущен, то извлекается последняя версия ветви, используемой по умолчанию (см. опцию -b команды ). Если в качестве rev использован символ $, команда co определит версию, подлежащую возврату по ключевым словам, содержащимся в идентификационных маркерах архива. Иначе версия может быть определена последовательностью из одного или более числовых или символьных полей, разделенных точками. Если эта последовательность начинается с точки, то она добавляется к ветви, используемой по умолчанию (обычно, главной). Если эта последовательность задает ветвь и заканчивается точкой, то к ней добавляется номер последней версии на этой ветви. Численный эквивалент символьного поля задается флагом -n команд и . -l[rev] Делает то же, что и флаг -r, но дополнительно бронирует для пользователя востребованную версию. -u[rev] Делает то же, что и флаг -r, но отменяет бронирование для пользователя на востребованную версию, если она была забронирована. Если номер rev опущен, бронирование снимается с последней из версий, забронированных на ветви, используемой по умолчанию. -f[rev] Безусловно востребует версию, затирая, если нужно рабочий файл. Обычно используется в паре с флагом -q. См. ниже АТРИБУТЫ ФАЙЛОВ. -kkv Подставляет значения ключевых символов (например, $Revision: 5.13 $) в идентификационные маркеры (здесь: $Revision$ ). Флаг включен по умолчанию. Имя пользователя, забронировавшего файл, подставляется в значения ключевых символов Header, Id, и Locker только тогда, когда файл действительно забронирован, например, командами ci -l или co -l . -kkvl Делает то же, что и флаг -kkv, но имя пользователя, закрывшего файл для изменения, подставляется в значения идентификационных маркеров только тогда, когда забронирована данная версия. -kk Подставляет в идентификационные маркеры сами ключевые символы, но не их значения. См. раздел АВТОМАТИЧЕСКАЯ ИДЕНТИФИКАЦИЯ. Например, ключевое слово Revision порождает идентификационную строку $Revision$ вместо стандартного $Revision: 5.13 $.
Используется чтобы подавить сообщения о различающихся строках, вызванные подстановкой ключевых символов, если нужно сравнить две версии. Регистрационные же записи после ключевого слова $Log$ подставляются, даже если задан флаг -kk, поскольку их использование осмыслено даже в такой ситуации, а тем более, при объединении изменений, внесенных в две ветви. -ko Порождает идентификационные строки, существовавшие в рабочем файле непосредственно перед его регистрацией. Например, Для ключевого слова Revision породит идентификационную строку $Revision: 1.1 $ вместо строки $Revision: 5.13 $ , если она именно так и выглядела до регистрации. Используется для форматов файлов или систем, которые не приемлют изменений в идентификационных маркерах, происходящих вследствие подстановок значений ключевых символов, или для подавления нежелательных эффектов. Так, читаемый Вами файл, извлечен из архива именно с этим флагом из-за обилия ключевых символов, которые нельзя изменять. -kb Делает то же, что и флаг -kb, но ввод-вывод осуществляется не в текстовом, а в двоичном режиме. Для операционной системы типа Posix или Unix это бессмысленно, но для систем типа DOS, для инициализации архива, предназначенного для хранения двоичных файлов нужно использовать команду rcs -i -kb . Команда же просто отказывается работать с флагом -kb. -kv Подставляет в идентификационные маркеры сами значения ключевых символов, но не сами ключевые символы. См. раздел АВТОМАТИЧЕСКАЯ ИДЕНТИФИКАЦИЯ. Например, ключевое слово Revision порождает идентификационную строку 5.13 вместо стандартного $Revision: 5.13 $.
Используется чтобы убрать из файла ключевые слова типа $Revision: $ для языков, где это невозможно сделать средствами самого языка, например, включив его в комментарий. Однако, удаленные ключевые слова, не могут быть восстановлены автоматически. Опасность потери ключевых слов не позволяет использовать флаг -kv вместе с флагом -l, и потому атрибут права владельца на изменение рабочего файла отменяется. Для редактирования, востребуйте файл повторно без -kv. -p[rev] Перенаправляет востребованный файл в стандартный вывод, а не в рабочий файл. Используется, если требуется использовать файл для ввода в другую программу. -q[rev] Все сообщения подавляются. Используется в фоновом режиме. -I[rev] Диалоговый режим; пользователю посылаются приглашения для ввода и задаются вопросы, даже если ввод осуществляется не с терминала. -ddate Востребует последнюю из версий заданной ветви, время и дата регистрации которой не позже, чем date . Формат задания почти свободный. Часовой пояс LT задает местное время. Правильно распознаются почти все аббревиатуры на английском языке. Пусть, например, текущее время 8 часов вечера, 11 января 1990, в Тихоокеанском часовом поясе США (PST), что на 8 часов позже, чем в Гринвиче (GMT или UTC -- Coordinated Universal Time). Тогда следующие форматы эквивалентны:
8: 00 pm lt по умолчанию -- сегодня 4:00 AM, Jan. 12, 1990 1990-01-12 04:00:00+00 стандарт ISO 8601 (UTC) 1990-01-11 20:00:00-08 ISO 8601 (местное) 1990/01/12 04:00:00 стандартный формат RCS Thu Jan 11 20:00:00 1990 LT выдача + LT Thu Jan 11 20:00:00 PST 1990 выдача Fri Jan 12 04:00:00 GMT 1990 Thu, 11 Jan 1990 20:00:00 -0800 Internet RFC 822 12-January-1990, 04:00 WET
Для большинства полей существуют значения, используемые по умолчанию. Часовой пояс -- UTC, но флаг -z может это изменить. Порядок в значениях по умолчанию: год, месяц, день, час, секунда (начиная с более крупных единиц -"big endian" формат). Если со флагом не заданы какие-то единицы, то они, начиная с самых крупных до первого заданного поля, полагаются равными их значению в текущем времени в заданном часовом поясе; остальные полагаются равными их минимальному значению. Например, если не задана флаг -z, то в примере выше, флаг -d20,10:30 равносилен -d"1990/01/20 10:30:00". Обратите внимание на использование кавычек или обратной косой черты, если строка с датой содержит пробел. -M[rev] Присвоить атрибуту времени последнего изменения рабочего файла время регистрации востребованной версии. Используйте эту возможность с осторожностью: построение (в частности, компиляция) будет подавлено , если проводилось построение со старой версией после регистрации новой версии. См. . -sstate Востребует из заданной ветви последнюю из версий со статусом state . -T Сохраняет дату и время последнего изменения рабочего файла даже если в него была занесена отметка о бронировании. Такое поведение флага вводит в заблуждению команду и, потому необходима осторожность. Флаг -T позволяет избежать ненужных построений (компиляций), но он может подавить их и тогда, когда изменение идентификационных маркеров вследствие бронирования существено для результата построения. -w[login] Востребует последнюю из версий заданной ветви, зарегистрированную пользователем login . Если имя login опущено, подразумевается имя вызвавшего пользователя. -jjoinlist Создает новую версию, применив к первой версии rev1 списка joinlist изменения сделанные для того, чтобы получить из второй версии rev2 третью rev3 . Флаг стал рудиментарным после включения в пакет RCS команды , но сохранен для совместимости с предыдущими версиями
Список joinlist составлен из пар вида rev2:rev3, разделенных запятыми, где rev2 и rev3 это номера (числовые или символические) версий. Первой в этом списке задается версия rev1 которая определяет версию к которой будут применяться остальные флаги (-f, ..., -w). Если пар более одной, то для каждой последующей пары, роль rev1 будет исполнять результат применения команды к предыдущей паре.
То что к первой версии применяются лишь изменения, ведущие от второй версии к третьей, имеет несколько следствий. Во-первых, изменения, ведущие от rev1 к rev2 игнорируются. Во-вторых, эта операция перестановочна по отношению к версиям rev1 и rev3 . В-третьих, эта операция объединяет изменения ведущие от rev2 к rev1 с изменениями ведущие от rev2 к rev3. Используется в двух случаях.
Пусть rev1 и rev3 конечные версии двух ветвей с общим предком rev2. Тогда этот флаг объединит изменения сделанные в файле в рамках двух независимых проектов, соответствующих двум ветвям. Это позволяет нескольким людям одновременно работать над одним файлом.
Пусть номера версий на одной ветви удовлетворяют условию rev1 < rev2 < rev3 . Тогда этот флаг отменит изменения сделанные в файле в период работы над rev2 . Это позволяет исключить ошибки, внесенные на ранних стадиях проекта, не переделывая заново работы, сделанной на более поздних стадиях.
Если изменения ведущие от rev2 к rev1 и изменения ведущие от rev2 к rev3 были применены к одной и той же части файла, программа выдаст сообщение так, как описано в .
Для первой пары можно опустить rev2 , и тогда будет использован общий предок. Если какой-либо из аргументов представляет собой ветвь, используется последняя версия этой ветви. Поскольку флаг -l бронирует rev1 , что подразумевает запись результата в соответствующую ей ветвь, операция не полностью симметрична относительно первой и третьей версий. -V Посылает номер версии RCS в стандартный вывод. -Vn Имитирует работу RCS версии n, n=3,4,5. Используется при обмене файлов с корреспондентами, использующими старые версии программ. Для того, чтобы определить, какую версию RCS использует ваш партнер, используйте rcs -V; если это не сработало, вызовите rlog для архивного файла. Если первые стоки выдачи не содержат слова branch (ветвь): то это версия 3; если в формате даты для года использованы две цифры, это версия 4; в остальных случаях это 5 версия. При эмуляции версии 3 архив теряет свойство содержать ветви, для 4 версии или более ранних отметка времени может измениться на величину до 13 часов, меняется формат даты на yy/mm/dd и форматы идентификационных маркеров содержат иные разделители. -xsuffixes Использовать суффиксы suffixes для определения архивных файлов RCS . См. . -zzone Задает формат даты и времени и часовой пояс при подстановке ключевых слов в идентификационные маркеры в рабочем файле со флагом -ddate . Параметр zone должен быть либо пуст, либо являться численным значением отклонения от Всемирного Времени (UTC) , либо специальной строкой LT, задающей использование местного времени. По умолчанию, или опущенный параметр zone , задают использование Всемирного Времени с использованием косой черты в качестве разделителя полей для даты (см. пример). В остальных случаях используется стандарт ISO 8601. Например, пусть текущее время 8 часов вечера, 11 января 1990, в Тихоокеанском часовом поясе США (что на 8 часов позже, чем в Гринвиче). Тогда для подстановок будет использовано
флаг формат времени -z 1990/01/12 04:00:00 (по умолчанию) -zLT 1990-01-11 20:00:00-08 -z+05:30 1990-01-12 09:30:00+05:30
Флаг - z влияет только на маркеры, и не меняет формата даты и времени в архивном файле, которые всегда задается во Всемирном Времени.
АВТОМАТИЧЕСКАЯ ИДЕНТИФИКАЦИЯ
Если в тексте файла встречаются выражения вида $keyword$ или $keyword:...$ , где keyword одно из описанных ниже ключевых слов, то они заменяются идентификационными маркерами -строками вида $keyword:значение$ . Обычно их вставляют в комментарии или строковые переменные программ -- для распознавания версий.
Как правило, начальная версия содержит идентификационные маркеры в виде $keyword$. Подстановка значения происходит при востребовании: команда co заменит такой маркер маркером вида $keyword:значение$ . В случае, если регистрируемый рабочий файл уже содержит значения ключевых слов, то старые значения хранятся в архиве и будут изменены только при востребовании. (Новые значения тоже хранятся, но в другом виде.) Таким образом, обновление идентификационных маркеров совершается командой co автоматически, но флаг -k может изменить такое поведение.
КЛЮЧЕВЫЕ СЛОВА И ИХ ЗНАЧЕНИЯ:
$Author$ Имя (login name) пользователя зарегистрировавшего данную версию. $Date$ Дата и время регистрации версии. Флаг -zzone добавит числовое значение часового пояса, по умолчанию используется Всемирное Время. $Header$ Стандартный заголовок. Содержит полное имя файла с абсолютной формой указания пути, номер версии, дату и время регистрации, автора, статус и имя пользователя, забронировавшего версию для внесения изменений (если это так). Флаг -zzone добавит числовое значение часового пояса, по умолчанию используется Всемирное Время. $Id$ То же, что и $Header$, но имя файла не содержит путь. $Locker$ Имя пользователя, забронировавшего версию для внесения изменений. Пустая строка, если файл не забронирован. $Log$ Регистрационная запись, внесенная при регистрации со стандартным заголовком впереди. Новая регистрационная запись не затирает старую, а добавляется к ней. Это позволяет хранить в самом файле историю его изменений.
Подстрока, стоящая перед символом $Log$ , добавляется перед каждой строкой регистрационных записей. Например, если эта строка выглядит как " // $Log: tan.cc $" , то перед каждой строкой регистрационных записей будет добавлено " // " , что удобно для языков программирования, где комментарии продолжаются до конца строки. Для других языков регистрационные записи помещают внутрь многострочного комментария. Так, для языка C , регистрационные записи превратятся в канонический комментарий, отмеченый звездочками, если при инициализации архива оформить его в виде
/* * $Log$ */
Для совместимости с прежними версиями, для префиксов вида /* или (* , возможно, с дополнительными пробелами, внутренние строки содержат пробел вместо / или (; однако, в дальнейших версиях, это свойство не будет сохранено. $Name$ Символическое имя, использованное при извлечении файла из архива. Например, co -rJoe породит $Name: Joe $ . Просто co породит просто $Name: $. $RCSfile$ Имя файла, без пути. $Revision$ Номер версии. $Source$ Полное имя файла с абсолютным заданием пути. $State$ Статус заданный флагом -s команд или .
Если для придания идентификационным маркерам красивого вида потребуются нижеследующие символы, то они могут быть заданы с помощью обратной косой черты.
символ представление tab \t newline \n space \040 $ \044 \ \\
АТРИБУТЫ ФАЙЛОВ
Рабочий файл наследует все разрешения на чтение и выполнение от архивного файла. Разрешение на изменение файла владельцу дается всегда, кроме двух случаев: либо был использован флаг -kv либо файл не забронирован никем для внесения изменений при строгой проверке бронирования (см. ).
Если рабочий файл уже существует, и пользователь имеет право его изменять, то команда co запросит разрешение на затирание старого рабочего файла и аварийно прервет работу, если не получит разрешения или такой запрос невозможен. Если же файл закрыт для изменений или задан флаг -f , то старый рабочий файл затирается без предупреждения.
ИМЕНА ФАЙЛОВ
Команда co ищет файлы так же, как и команда , за исключением того, что ей не нужно читать рабочий файл, если номер версии не задан символом $ .
ПЕРЕМЕННЫЕ СРЕДЫ
LOGNAME Имя пользователя. В UNIX задано автоматически, в MS-DOS требуется задать явно командой
set LOGNAME=имя-пользователя
TZ Часовой пояс. В UNIX задан автоматически, в MS- DOS требуется задать явно командой set. RCSINIT Список флагов используемых со всеми командами системы отслеживания версий RCS. Не забудьте, что необходимы меры для того, чтобы пробелы между флагами не были обработаны командным интерпретатором преждевременно, защищайте их, например, кавычками. См. .
СООБЩЕНИЯ
Для каждой востребуемой версии каждого файла команда co печатает имя архивного файла, имя рабочего файла и номер извлекаемой версии. Возвращает операционной системе 0 тогда и только тогда, когда все операции завершились успешно.
СМ. ТАКЖЕ
, , , , , , , , , , , rcsfile(5)
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.
ОГРАНИЧЕНИЯ
Системные (жесткие) линки к рабочим и архивным файлам не сохраняются. См. ВРЕМЕННЫЕ ФАЙЛЫ И ЛИНКИ.
Не существует средства подавить подстановку значений в ключевые слова средствами RCS кроме иного их написания. Для текстов, используемых командами nroff и troff, например, это достигается помещением в ключевое слово нулевого символа \&.
|
|
НАЗВАНИЕ
coffconv - Преобразование файла 386 COFF к формату XENIX.
СИНТАКСИС
coffconv [-v][-o 0 outfile ] coff-file
ОПИСАНИЕ
сoffconv преобразовывает 386 Common Object Format Files в соответствующий формат XЕNIX. Если обозначенный файл является переместимым объектным модулем, его преобразуют в формат Microsoft OMF. Если он выполнен в двоичной системе исчисления, то его преобразуют в x.out формат.
Если файл является V архивом системы UNIX, то его преобразуют в архивный формат XENIX, и каждый файл в архиве преобразуют соответственно. Любые файлы в архиве, которые не находятся в 386 COFF формате, переносятся в новый архив неизменными. 2coffconv 0 также создает символьную директорию _.SYMDEF в формате XENIX для нового архива.
Опции:
-vМногословный режим. | Выдается на дисплее имя каждого члена архива в преобразованном виде. |
-oИмя выходного файла. | Если имя выходного файла не определено, то по умолчанию берется x.out. |
ПРИМЕЧАНИЯ
Преобразуется только основная информация символьной таблицы.Исходные строчечные числа и дополнительная символьная информация для использования символьного отладчика sdb может быть опущена.
Отметим, что coffconv преобразует только 386 COFF файл. Невозможно преобразовать 286 COFF файл.
ФАЙЛЫ
x.out выходной файл по умолчанию
СМ. ТАКЖЕ
86rel(3), a.out(3),ar(3)
|
|
COL(1)
НАЗВАНИЕ
col - фильтрация кодов реверсной подачи бумаги
СИНТАКСИС
col [-b] [-f] [-p] [-x]
ОПИСАНИЕ
Команда col читает данные со стандартного ввода и записывает на стандартный вывод. Она выполняет наложение строк, вызываемое реверсной подачей бумаги (код ESC 7), а также прямой и реверсной подачей бумаги на полстроки (коды ESC 9 и ESC 8). Команда col особенно полезна при обработке многостолбцовых файлов.
Если задана опция -b, то считается, что устройство вывода не способно отработать команду возврата назад. В этом случае, если в одной позиции должно появиться два или больше символов, то в файл вывода заносится только последний из них.
Хотя команда col и распознает коды подачи бумаги на полстроки, она обычно не передает их в файл вывода. Вместо этого текст, который должен был бы появиться между строк, оказывается на следующей строке. Это действие команды можно подавить опцией -f (fine); тогда в файл вывода перепишутся коды подачи бумаги на полстроки вперед (ESC 9), но коды подачи назад будут все равно отброшены.
Чтобы сократить время печати, всюду, где это возможно, команда col преобразует цепочки пробелов в символы табуляции, если не задана опция -x.
Управляющие символы ASCII SO и SI (восьмеричные коды 017 и 016 соответственно) используются командой col для маркировки начала и конца текста альтернативного алфавита. Запоминается, какому алфавиту принадлежит прочитываемый символ, и в файл вывода в нужные места вставляются символы SO и SI, обеспечивающие печать в требуемом алфавите.
При вводе воспринимаются только следующие управляющие символы: пробел, возврат каретки на шаг назад, табуляция, возврат каретки, переход на новую строку, SI, SO, VT (код 013), ESC 7, ESC 8, ESC 9. Символ VT - другая форма кодировки реверсной подачи бумаги, включенная для совместимости с некоторыми ранними программами этого типа. Все остальные непечатные символы игнорируются.
Обычно команда col исключает все неопознанные управляющие последовательности, встретившиеся во входном файле; опция -p может быть использована для того, чтобы все такие последовательности передавались в файл вывода как обычные символы, подверженные наложению из-за реверсной подачи бумаги. Применение этой опции будет крайне обескураживающим, если пользователь не знает точного расположения в тексте управляющих последовательностей.
СЮРПРИЗЫ
Невозможен возврат более чем на 128 строк назад. Допускается до 800 символов в строке, включая символы возврата на шаг назад. Локальные движения по вертикали, приводящие к переходу за первую строку документа, игнорируются. Поэтому в первой строке не должно содержаться верхних индексов.
|
|
COLRM(1)FreeBSD Reference Manual
НАЗВАНИЕ
colrm - перемещает колонки из файла
СИНТАКСИС
colrm [start [stop]]
ОПИСАНИЕ
Colrm перемещает выделенные колонки из строк файла. Чтение производится со стандартного ввода, а результат пишится на стандартный вывод.
Если указан только параметр start, то выдаются первые символы строк число которых задано параметром start. Если заданы оба параметра, то вырезаются столбцы начиная с параметра start и заканчивая параметром stop. Столбцы нумеруются с первого, а не с нулевого.
Символ табуляции рассматривается как дополнение до следующих восьми символов.
СМ. ТАКЖЕ
, column(1), ,
ИСТОРИЯ
Команда colrm появилась в 3.0BSD.
|
|
COMB(1)
НАЗВАНИЕ
comb - об единение версий SCCS-файла
СИНТАКСИС
comb [-pс_идентификатор] [-cсписок] [-o] [-s] файл ...
ОПИСАНИЕ
Команда comb генерирует процедуру shell'а [см. ], которая реконструирует SCCS-файлы. Реконструированные файлы обычно оказываются меньше, чем исходные. Опции и имена файлов можно задавать в любом порядке, каждая опция независимо применяется к каждому файлу. Если указано имя каталога, comb обрабатывает все файлы в этом каталоге, начинающиеся с s.; файлы, к которым нет доступа на чтение, игнорируются без дополнительных сообщений. Если указано имя -, происходит чтение со стандартного ввода, каждая строка при этом трактуется как имя SCCS-файла, подлежащего обработке. Файлы, не начинающиеся с s., и файлы, к которым нет доступа на чтение, также игнорируются без дополнительных сообщений.
Сгенерированная процедура shell'а записывается на стандартный вывод.
Каждая опция об ясняется ниже для одного обрабатываемого файла; при нескольких файлах она применяется к каждому из них.
-pс_идентификатор С_идентификатор самой старой версии, которая должна быть сохранена. Все более старые версии из реконструированного файла удаляются. -cсписок Список [синтаксис списка - см. ] версий, которые должны быть сохранены. Все остальные версии удаляются. -o Эта опция позволяет для каждого выполнения get -e получить доступ к версии с тем же номером, что и раньше; иначе происходит перестройка номеров версий. Использование опции -o может привести к уменьшению размера SCCS-файла и изменению структуры дерева версий. -s Эта опция приводит к генерации процедуры shell'а, которая при выполнении выдает информацию для каждого обрабатываемого файла: имя файла, размер в блоках после реконструкции и до реконструкции и процент сжатия, вычисляемый, как 100*(до-после)/до. Рекомендуется перед реальной реконструкцией выполнить comb с этой опцией, чтобы оценить выигрыш дискового пространства от реконструкции.
Если никаких опций не указано, comb сохраняет только терминальные версии дерева версий и минимальное число их предшественников, необходимое для того, чтобы сохранить структуру дерева.
ФАЙЛЫ
s.COMB Имя реконструированного SCCS-файла. comb????? Временный файл.
СМ. ТАКЖЕ
, , , , .
в Справочнике программиста.
ДИАГНОСТИКА
Для раз'яснений пользуйтесь командой .
СЮРПРИЗЫ
Comb может изменить структуру дерева версий. Он может не привести к экономии дискового пространства; возможно, против ожиданий, реконструированный файл окажется больше, чем исходный.
|
|
COMM(1)
НАЗВАНИЕ
comm - построчное сравнение двух отсортированных файлов
СИНТАКСИС
comm [-[1][2][3]] файл1 файл2
ОПИСАНИЕ
Команда comm читает файл1 и файл2 [их содержимое должно быть отсортировано в лексикографическом порядке, см. ] и выводит результаты в три колонки:
1 Строки, входящие только в файл1.
2 Строки, входящие только в файл2.
3 Строки, входящие в оба файла.
Знак - на месте имени файла означает стандартный ввод. Опции 1, 2 или 3 подавляют вывод соответствующих колонок. Так, comm -12 выводит строки, общие для двух файлов; comm -23 - имеющиеся только в файле1; comm -123 не выводит ничего.
СМ. ТАКЖЕ
, , , .
|
|
COMPRESS()
НАЗВАНИЕ
compress - Сжимает данные для хранения.
uncompress - Восстанавливает сохраненный файл.
zcat - Осуществляет вывод сохраненного файла.
СИНТАКСИС
compress [-dfFqc] [-b bits] file uncompress [-fqc] file zcat file
ОПИСАНИЕ
Команда compress берет файл, заданный параметром file, и сжимает его до минимально возможного размера, создавая при этом выходной файл cо сжатыми данными и удаляя, если не задана опция -c, первоначальный файл. Сжатие достигается кодированием одинаковых строк в файле. Команда uncompress восстанавливает ранее сжатый файл в его первоначальное состояние и удаляет версию сжатого файла. Команда zcat используется для вывода файла на экран, при этом файл восстанавливается из сжатого состояния и производится его сцепление с экранным или стандартным выводом, после чего версия сжатого файла не уничтожается.
Если в командной строке имя файла не указано, то входные данные берутся с устройства стандартного ввода, а вывод направляется на устройство стандартного вывода. По умолчанию вывод направляется в файл с тем же именем, что и у входного файла, но к этому имени добавляется суффикс ".Z", или же он может быть направлен на устройство стандартного вывода. Выходные файлы имеют те же разрешения и тех же владельцев, что и у соответствующих входных файлов, или же они могут иметь стандартные пользовательские разрешения, если результирующий файл направляется на устройство стандартного вывода.
При отсутствии сжатия выходной файл не записывается, если в командной строке не установлен флаг -F.
ОПЦИИ
Следующие опции являются доступными из командной строки:
-d | Восстанавливает сжатый файл. |
-c | Вывод записывается на устройство стандартного вывода и не уничтожается первоначальный файл. |
-b bits | Задает максимальное число битов, используемых в кодировании. |
-f | Осуществляет запись поверх предыдущей версии выходного файла. |
-F | Производит запись выходного файла даже в том случае, если не произошло сжатия. |
-q | Не генерирует вывода, за исключением сообщений об ошибках, если они есть. |
СМ. ТАКЖЕ
, , , , .
|
|
CONFIG(1M)
НАЗВАНИЕ
config - конфигурирование UNIX-ядра
СИНТАКСИС
/etc/config [-t] [-l файл] [-c файл] [-m master_файл] [-b файл] [dfile_файл]
/etc/addconf [-t] [-l файл] [-c файл] [-m master_файл] [-b файл] [dfile_файл]
ОПИСАНИЕ
Утилита config по описаниям UNIX-ядра генерирует два файла. Один файл, low.s, делится на две части. Первая содержит присваивания вектору прерываний. Вторая часть содержит информацию, касающуюся интерфейса между оборудованием и обработчиками устройств. Другой файл, conf.c, есть программа на языке C, описывающая конфигурационные таблицы для различных устройств, имеющихся в системе.
Опциям утилиты config приписан следующий смысл:
-l файл Указывается имя файла, содержащего присваивания вектору прерываний и описание интерфейса с оборудованием; файл по умолчанию - low.s. -c файл Указывается имя файла, содержащего конфигурационные таблицы; файл по умолчанию - conf.c. -m master_файл Указывается имя файла, содержащего всю информацию, касающуюся поддерживаемых устройств; файл по умолчанию - master. Если файл master не существует, делается попытка открыть /etc/master. Файл master поставляется вместе с системой и его не следует изменять, если до конца не ясна структура файла. -t Запросить краткую таблицу старших номеров символьных и блочных устройств, что может облегчить создание специальных файлов. -b файл Определяет имя конфигурационной базы. Это файл, строки которого используются при создании константных частей файлов low.s и conf.c. Файл по умолчанию - /usr/lib/confbase.
Можно указать также dfile_файл; если он не указан, то используется файл dfile. В dfile_файле содержится информация об устройствах. Файл делится на три части. Первая содержит спецификации физических устройств. Вторая - системно-зависимую информацию. Третья часть содержит информацию, специфичную для конкретного микропроцессора. Первые две части являются обязательными, третья - нет. Подробнее формат и содержание описаны в .
Следующие переменные можно указать в master_файле, и тогда они будут распознаваться утилитой config:
BDEVSWCNT минимальный размер массива bdevsw [ ]; CDEVSWCNT минимальный размер массива cdevsw [ ]; FMODSWCNT минимальный размер массива fmodsw [ ].
В этих массивах генерируются дополнительные элементы для последующего использования программой .
Утилита addconf работает аналогично config, но информация генерируется для использования программой addkern, а не для конфигурирования нового UNIX-ядра.
ФАЙЛЫ
master
Подразумеваемая таблица устройств. dfile
Подразумеваемый файл с информацией об устройствах. low.s
Подразумеваемый файл, в который помещаются присваивания вектору прерываний и описание интерфейса с оборудованием. conf.c
Подразумеваемый файл, в который помещаются конфигурационные таблицы. /usr/lib/confbase
Подразумеваемая конфигурационная база.
СМ. ТАКЖЕ
.
, в Справочнике программиста.
ДИАГНОСТИКА
Диагностические сообщения не нуждаются в пояснениях.
|
|
CONFIG(8)
НАЗВАНИЕ
config - конфигурирует систему UNIX.
СИНТАКСИС
/usr/sys/conf/config [-i] [-c file] [-s] -m master dfile
ОПИСАНИЕ
config считывает описание системы UNIX и формирует компилируемые файлы, которые определяют конфигурационные таблицы для различных устройств системы.
Опции:
-m | Задает имя файла, который содержит всю информацию в отношении поддерживаемых устройств; /usr/sys/conf/master - стандартное имя. Этот файл поставляется вместе с системой XENIX и не должен модифицироваться пользователем. Для исправления /usr/sys/conf/master и dfile следует использовать утилиту . |
-i | Требует ассемблерной выдачи вместо C-выдачи, устанавливаемой по умолчанию. |
-c | Задает имя файла конфигурационной таблицы. По умолчанию используется имя c.c, если только не задана опция -i, в последнем случае используется имя c.asm. |
-s | Задает имя файла параметров. По умолчанию используется имя space.c; если задана опция -i, то используется имя space.inc. |
Файл dfile содержит информацию об устройствах системы и подразделяется на две части. В первой части содержатся спецификации физических устройств, а во второй - информация, зависящая от системы. Любая строка со звездочкой * в колонке 1 является комментарием. Стандартный поставляемый файл dfile носит имя /usr/sys/conf/xenixconf. Утилита configure(ADM) должна использоваться также для модификации /usr/sys/conf/xenixconf.
Во всех конфигурациях подразумевается наличие определенного набора устройств, таких как системные часы, которые должны присутствовать для работы системы XENIX. Эти устройства задавать в файле dfile не надо.
Первая часть файла dfile
Каждая строка содержит два поля, разделенных пробелами и/или знаками табуляции:
devname number
где devname - имя устройства, а number - количество (в десятичном представлении) устройств, связанных с соответствующим контроллером. Имя устройства может быть любым именем заданным в первой части файла /usr/sys/conf/master или любым псевдонимом в части 3 этого файла; число number является необязательным, и если оно опущено, то по умолчанию устанавливается максимальное значение для данного контроллера.
Существуют некоторые типы драйверов, которые могут быть поставлены вместе с системой и которые являются в действительности драйверами псевдо-устройств, то есть с драйвером не связывается настоящее аппаратное средство. Подобные драйверы описываются в разделе M Справвочника пользователя.
Вторая часть файла dfile
Вторая часть содержит три различных типа строк. Обратите внимание, что все спецификации этой части обязательны, хотя порядок их следования произволен.
Спецификация устройства root/pipe
Здесь имеются две строки, в каждой из которых по три поля:
root devname minor pipe devname minor
где devname - имя устройства, а minor - малое число устройства (в восьмиричном виде). Имя устройства может быть любым именем заданным в первой части файла /usr/sys/conf/master или любым псевдонимом в части 3 этого файла. Спецификация устройства swap
Это - одна строка, содержащая пять полей:
swap devname minor swplo nswap
где devname - имя устройства, а minor - малое число устройства (в восьмиричном виде), swplo - самый первый блок на диске (в десятичном виде) в области свопинга, а nswap - количество блоков диска (в десятичном виде) в области свопинга. Имя устройства может быть любым именем заданным в первой части файла /usr/sys/conf/master или любым псевдонимом в части 3 этого файла. Спецификация parameter
Это - одна или несколько строк, в каждой по два поля:
name number
где name - имя параметра настройки, а number - желаемое значение (в десятичном виде) данного параметра. Могут использоваться только имена, определенные в части 4 файла /usr/sys/conf/master; число number перебивает установку данного параметра, заданную по умолчанию. Далее приведен список допустимых параметров:
buffers Максимальное количество внешних (картированных) буферов, доступных в ядре. При установке в 0 config вычисляет оптимальное значение этого параметра для системы. sabufs Максимальное количество внутренних (некартированных) доступных буферов. hashbuf Максимальное количество хэш-буферов. inodes Максимальное количество индексных дескрипторов файлов на одну файловую систему. files Максимальное количество открытых файлов на одну файловую систему. mounts Максимальное количество смонтированных файловых систем. coremap Максимальное количество статических элементов картирования. swapmap Максимальное количество динамических элементов картирования. pages Количество страниц памяти. На сегментированных системах, таких как 286-я система, это значение должно быть нулевым. calls Максимальное количество записей в таблице тайм-аутов. procs Максимальное количество процессов в одной системе. maxproc Максимальное количество процессов на одного пользователя. texts Максимальное количество текстовых сегментов в одной системе. clists Максимальное количество символьных списков в одной системе. locks Максимальное количество файловых блокировок в одной системе. shdata Максимальное количество сегментов общих данных в одной системе. timezone Разница в минутах между местным и гринвичским средним временем. daylight Время экономии дневного света: 1 - задействовано, 0 - незадействовано. msgmap Количество записей в таблице сообщений. msgmax Максимальный размер сообщения. msgmnb Максимальное количество байтов в очереди сообщений. msgmni Количество идентификаторов очереди сообщений. msgtql Количество заголовков сообщений в системе. msgssz Количество байтов в сегментах сообщений. msgseg Количество сегментов сообщений. semmap Количество записей в таблице семафоров. semmni Количество семафорных идентификаторов. semmnu Количество структур undo в системе. semmsl Максимальное количество семафоров на один идентификатор. semopm Максимальное количество операций за один вызов semop(S). semume Максимальное количество структур undo на один процесс. semvmx Максимальное значение семафора. semaem Максимальное значение "выравнивания при выходе" semmns Количество семафоров в системе. cmask Маска создания файла для процесса 0 по умолчанию. maxprocmem Максимальый объем памяти, доступной процессу. screens Количество экранов в многоэкранных системах. emaps Максимальное количество таблиц явных восьмиразрядных каналов. nodename Имя дескриптора системы (используемое и другими программами). npbuf Количество физических резервируемых буферов ввода/вывода. dmaexcl Устанавливается в 1, если только один канал DMA (прямого доступа к памяти) может быть использован одновременно, и в 0 - в противном случае. sdslots sdslots * shdata - максимальное количество одновременных обращений к сегментам общей памяти для всей системы. memlim Процесс может занимать не более заданного этим параметром процента пользовательской памяти плюс разрешенную область свопинга (которая ограничивается параметром swplim). Этот параметр действителен только для машин на базе процессоров семейства 80286. swplim Процесс может занимать не более заданного этим параметром процента области свопинга плюс разрешенную область памяти (которая ограничивается параметром memlim). Этот параметр действителен только для машин на базе процессоров семейства 80286. maxbuf Максимально возможное количество кэш-буферов. shless Количество сеансов на уровне командного процессора. shmmax Максимальный размер сегмента общей памяти. Значение по умолчанию - 131072. shmmin Минимальный размер сегмента общей памяти. Значение по умолчанию - 1. shmmni Максимальное количество идентификаторов общей памяти во всей системе. shmseg Количество присоединенных сегментов общей памяти на один процесс. shmall Максимальное количество одновременно используемых текстовых сегментов общей памяти. nqueue Количество очередей, задаваемых в конфигурации пакета STREAMS. nstream Количество резервируемых структур - дескрипторов потоков ("Stream-head" (stdata)). nstrpush Максимальное количество модулей, которое можно подать на поток. nstrevent Исходное количество резервируемых ячеек событий в потоке. maxsepgcnt Количество дополнительных страниц памяти, которые могут быть динамически зарезервированы для ячеек событий. nmuxlink Максимальное количество резервируемых мультиплексорных звеньев. strmsgsz Максимально допустимый размер области данных для любого сообщения в пакете STREAMS. strctlsz Максимально допустимый размер управляющей части любого сообщения в пакете STREAMS. nblkn Количество блоков данных и буферов в пакете STREAMS, резервируемое для каждого размерного класса (n). strlofrac Процент блоков данных для данного класса, для которого автоматически исключаются низкоприоритетные запросы на резервирование блоков. strmedfrac Процент срезания запросов на резервирование блоков со средним приоритетом (см. strlofrac выше). evqueues Максимальное количество открытых очередей событий во всей системе. evdevs Максимальное количество устройств, находящихся в очередях событий во всей системе. evdevsperq Максимальное количество устройств на одну очередь событий. kbtype Для клавиатур типа XT устанавливается в XT, а для клавиатур типа AT - в AT.
ПРИМЕРЫ
Предположим, что вы хотите установить конфигурацию системы со следующими устройствами:
Один контроллер дисководов жестких дисков с одним дисководом. Один контроллер дисководов гибких дисков с одним дисководом.
Вы должны задать также следующую информацию:
устройство корневой системы - жесткий диск (псевдо-диск 3)
устройство конвейера - жесткий диск (псевдо-диск 3)
устройство свопинга - жесткий диск (псевдо-диск 2) с параметрами swplo=0 и nswap=2300
количество буферов - 50
количество процессов - 50
максимальное количество процессов на один пользовательский идентификатор - 15
количество монтировок - 8
количество файловых индексных дескрипторов - 120
количество файлов - 120
количество вызовов - 30
количество текстов - 35
количество символьных буферов - 150
количество записей swapmap - 50
количество страниц памяти - 512
количество блокировок файлов - 100
параметр timezone - зона Тихого океана
время экономии дневного света - задействовано
количество записей в таблице сообщений - 513
максимальный размер сообщения - 8192
максимальное количество байтов в очереди сообщений - 16384
количество идентификаторов очередей сообщений - 10
количество заголовков сообщений в системе - 40
размер сегмента сообщений - 8
количество сегментов сообщений - 1024
количество записей в таблице семафоров - 21
количество семафорных идентификаторов - 10
количество структур undo в системе - 60
максимальное количество семафоров на один идентификатор - 10
максимальное количество операций за один вызов semop - 5
максимальное количество записей undo на один процесс - 5
максимальное значение семафора - 32767
максимальное значение "выравнивания при выходе" - 16384
количество семафоров в системе - 40
Действительная конфигурация системы должна быть задана в следующем виде:
hd 1 fd 1 root hd 3 pipe hd 3 swap hd 2 0 2300 * Вот так могут быть вставлены комментарии buffers 50 procs 150 maxproc 15 mounts 8 inodes 120 files 120 calls 30 texts 35 clists 150 swapmap 50 pages (1024/2) locks 100 timezone (8*60) daylight 1 msgmap (MSGSEG/2+1) msgmax 8192 msgmnb 8192 msgmni 10 msgtql 40 msgssz 8 msgseg 1024 semmap (SEMMNS/2+1) semmni 10 semmnu 20 semmsl 10 semopm 5 semume 5 semvmx 32767 semaem 16384 semmns 40
ФАЙЛЫ
/usr.sys/conf/ master таблица главного устройства ввода по умолчанию c.c файл конфигурационной таблицы драйвера вывода по умолчанию space.c файл конфигурационной таблицы источника выдачи по умолчанию c.asm конфигурация драйвера по умолчанию на ассемблере space.inc конфигурация источника по умолчанию на ассемблере
СМ. ТАКЖЕ
, master(3)
ДИАГНОСТИКА
Диагностика направляется на устройство стандартного вывода и понятна сама по себе.
ПРИМЕЧАНИЯ
Значение параметра в правой части его спецификации должно быть строкой в двойных кавычках, целым числом, именем другого параметра, определенного внутри файла master(3) или арифметическим выражением, составленным из целых чисел и имен определенных параметров. В этих арифметических выражениях можно использовать только операторы "+", "-", "*" и "/". Эти выражения интерпретируются слева направо: если возникают сомнения в приоритете обработки операторов - пользуйтесь скобками.
|
|