Пользователи системы



страница7/42
Дата01.12.2017
Размер5.38 Mb.
ТипПрограмма
1   2   3   4   5   6   7   8   9   10   ...   42

RTFM


Оказывается, использование кавычек Мефодий придумал не сам: спросил у товарища, опытного пользователя Linux по фамилии Гуревич. Гуревич охотно показал, где ставить кавычки, а вот объяснять, что они делают, отказался: "Там отличное руководство! Читай!" Документация в Linux играет важнейшую роль. Решение любой задачи должно начинаться с изучения руководств. Не стоит жалеть на это времени. Даже если рядом есть опытный пользователь Linux, который, возможно, знает ответ, не стоит беспокоить его сразу же. Возможно, даже зная, что нужно сделать, он не помнит как именно - и поэтому (а также потому, что он - опытный пользователь) начнет с изученияруководства. Это - закон, у которого даже собственное название: RTFM, что означает "Read That Fine Manual".

RTFM, Read That Fine Manual - правило, согласно которому решение любой задачи надо начинать с изучения документации.

Слова Гуревича - практически дословный перевод этой фразы, так что ее смысл и происхождение очевидны. Linux рассчитан в основном на тех, кто хочет знать, как им пользоваться.



Руководство - это не учебник, а скорее справочник. В нем содержится информация, достаточная для освоения описываемого объекта, но никаких обучающих приемов, никаких определений, повторений и выделения главного в нем обычно нет. Тем более не допускается усечение руководства с целью представить небольшие по объему, но наиболее важные сведения. Так принято в учебниках, причем сведения раскрываются и объясняются очень подробно, а остальные присутствуют в виде ссылки на документацию для профессионалов. Страницы руководств - и есть эта самая документация для профессионалов.

Руководство чаще всего читает человек, который уже знает, о чем оно.

Это не значит, что из руководства нельзя понять, как, например, пользоваться командой в простейших случаях. Напротив, часто встречается поле EXAMPLES, которое как раз и содержит примеры использования команды в разных условиях. Однако все это призвано не научить, а раскрыть смысл, пояснить сказанное в других полях. Мефодий нашел описание работы двойных кавычек в руководстве по sh, однако понял из него далеко не все - главным образом, потому, что встретил слишком много незнакомых терминов.

Система info может содержать больше, чем man, поэтому в нее часто включают и учебники (принято называть учебник термином "tutorial"), и "howto" (примеры постановки и решения типовых задач), и даже статьи по теме. Таким образом, info-документ может стать, в отличие от страницы руководстваполным сводом сведений. Разработка такого документа - дело трудоемкое, поэтому далеко не все объекты системы им сопровождаются. Кроме того, и прочесть большой info-документ целиком зачастую невозможно. Поэтому имеет смысл начинать именно с руководства, а если его недостаточно - изучать info.

Если некоторый объект системы не имеет документации ни в формате man, ни в формате info, это нехорошо. В этом случае можно надеяться, что при нем есть сопроводительная документация, не имеющая, увы, ни стандартного формата, ни тем более ссылок на руководства по другим объектам системы. Такая документация (равно как и примеры использования объекта) обычно помещается в каталог /usr/share/doc/имя_объекта.

Документация в подавляющем большинстве случаев пишется на простом английском языке. Если английский - не родной язык для автора документации, она будет только проще. Традиция писать по-английски идет от немалого вклада США в развитие компьютерной науки вообще и Linux в частности. Кроме того, английский становится языком международного общения во всех областях, не только в компьютерной. Необходимость писать на языке, который будет более или менее понятен большинству пользователей, объясняется постоянным развитием Linux. Дело не в том, что страницу руководства нельзя перевести, а в том, что ее придется переводить всякий раз, когда изменится описываемый ею объект! Например, выход новой версии программного продукта сопровождается изменением его возможностей и особенностей работы, а следовательно, и новой версией документации. Тогдаперевод этой документации превращается в "moving target", сизифов труд.

Ключи


Работая в системе и изучая руководства, Мефодий заметил, что параметры команд можно отнести к двум различным категориям. Некоторые параметры имеют собственный смысл: это имена файлов, названия разделов и объектов в man и info, числа и т. п. Другие параметры собственного смысла не имеют, их значение можно истолковать, лишь зная, к какой команде они относятся. Например, параметр "-a" можно передать не только команде man, но и команде who, и команде last, при этом значить для них он будет разное. Такого рода параметры называются модификаторами выполненияили ключами (options):

[methody@localhost methody]$ date

Вск Сен 19 23:01:17 MSD 2004

[methody@localhost methody]$ date -u

Вск Сен 19 19:01:19 UTC 2004

Пример 2.13. Команда date с ключом (html, txt)

Для решения разных задач одни и те же действия необходимо выполнять слегка по-разному. Например, для синхронизации работ в разных точках земного шара лучше использовать единое для всех время (по Гринвичу), а для организации собственного рабочего дня - местное время (с учетом сдвига по часовому поясу и разницы зимнего и летнего времени). И то, и другое время показывает команда date, только для работы по Гринвичу ей нужен дополнительный параметр-ключ "-u" (он же "--universal").


Однобуквенные ключи


Для формата ключей нет жесткого стандарта, однако существуют договоренности, нарушать которые в наше время уже неприлично. Во-первых, если параметр начинается на "-", это - однобуквенный ключ. За "-", как правило, следует один символ, чаще всего - буква, обозначающая действие или свойство, которое этот ключпридает команде. Так проще отличать ключи от других параметров - и пользователю при наборе командной строки, и программисту, автору команды:

[methody@localhost methody]$ who -m

methody tty1 Sep 20 13:56 (localhost)

[methody@localhost methody]$ cal -m

Сентября 2004

Пн Вт Ср Чт Пт Сб Вс

1 2 3 4 5

6 7 8 9 10 11 12

13 14 15 16 17 18 19

20 21 22 23 24 25 26

27 28 29 30

Пример 2.14. Использование ключа "-m" в разных командах (html, txt)

Для who ключ "-m" означает "Me", то есть "Я", и в результате who работает похоже на whoami1). А для cal ключ "-m" - это команда выдать календарь, считая первым днем понедельник ("Monday"), как это принято в России.

Свойство ключа быть, с одной стороны, предельно коротким, а с другой стороны - информативным, называетсяаббревиативностью. Не только ключи, но и имена наиболее распространенных команд Linux обладают этим свойством.

В-третьих, иногда ключ изменяет поведение команды таким образом, что меняется и толкование параметра, следующего в командной строке за этим ключом. Выглядит это так, будто ключ сам получает параметр, поэтомуключи такого вида называются параметрическими. Как правило, их параметры - имена файлов различного применения, числовые характеристики и прочие значения, которые нужно передать команде:

[methody@localhost methody]$ info info "Expert info" Cross-refs Help-Cross -o text

info: Запись ноды (info.info.bz2)Help-Cross...

info: Завершено.

[methody@localhost methody]$ cat text -n

1 File: info.info, Node: Help-Cross, Up: Cross-refs

2

3 The node reached by the cross reference in Info



4 ------------------------------------------------

. . .


Пример 2.15. Использование info -o (html, txt)

Здесь info запустилась не в качестве интерактивной программы, а как обработчик info-документа. Результат работы - текст узла info -> Expert info -> Cross-refs -> Help-Cross2), программа поместила в файл text. А программа cat вывела содержимое этого файла на терминал, пронумеровав все строки (по просьбе ключа "-n", "number").

Теперь стало более или менее понятно, что означают неудобочитаемые строки в поле SYNOPSIS руководства. Например [-smjy13] из руководства по cal (5) говорит о том, что команду можно запускать с необязательнымиключами "-s", "-m", "-j", "-y", "-1" и "-3".

В-четвертых, есть некоторые менее жесткие, но популярные договоренности о значении ключейКлюч "-h" ("Help") обычно (но, увы, не всегда) заставляет команды выдать краткую справку (нечто похожее на SYNOPSIS, иногда с короткими пояснениями). Если указать "-" вместо имени выходного файла в соответствующем параметрическом ключе (нередко это ключ "-o"), вывод будет производиться на терминал3). Наконец, бывает необходимо передать команде параметр, а не ключ, начинающийся с "-". Для этого нужно использовать ключ "--":

[methody@localhost methody]$ info -o -filename-with-

info: Запись ноды (dir)Top...

info: Завершено.

[methody@localhost methody]$ head -1 -filename-with-

head: invalid option -- f

Попробуйте `head --help' для получения более

подробного описания.

[methody@localhost methody]$ head -1 -- -filename-with-

File: dir Node: Top This is the top of the INFO tree

Пример 2.16. Параметр-не ключ, начинающийся на "-" (html, txt)

Здесь Мефодий сначала создал файл -filename-with-, а потом пытался посмотреть его первую строку (командаhead -количество_строк имя_файла выводит первые количество_строк из указанного файла). Ключ "--" (первый "-" - признак ключа, второй - сам ключ) обычно запрещает команде интерпретировать все последующиепараметры командной строки как ключи, независимо от того, начинаются они на "-" или нет. Только после "--"head согласилась с тем, что -filename-with- - это имя файла.


Полнословные ключи


Аббревиативность ключей трудно соблюсти, когда их у команды слишком много. Некоторые буквы латинского алфавита (например, "s" или "o") используются очень часто, и могли бы служить сокращением сразу нескольких команд, а некоторые (например, "z") - редко, под них и название-то осмысленное трудно придумать. На такой случай существует другой, полнословный формат: ключ начинается на два знака "-", за которыми следует полное имя обозначаемой им сущности. Таков, например, ключ "--help" (аналог "-h"):

[methody@localhost methody]$ head --help

Использование: head [КЛЮЧ]... [ФАЙЛ]...

Print the first 10 lines of each FILE to standard output.

With more than one FILE, precede each with a header

giving the file name.

With no FILE, or when FILE is -, read standard input.
Аргументы, обязательные для длинных ключей, обязательны

и для коротких.

-c, --bytes=[-]N print the first N bytes of each file;

with the leading '-', print all but

the last N bytes of each file

-n, --lines=[-]N print the first N lines instead of

the first 10;

the leading '-', print all but

the last N lines of each file

-q, --quiet, --silent не печатать заголовки с

именами файлов

-v, --verbose всегда печатать заголовки с

именами файлов

--help показать эту справку и выйти

--version показать информацию о версии и выйти

N may have a multiplier suffix: b 512, k 1024, m 1024*1024.

Об ошибках сообщайте по адресу.

Пример 2.17. Ключ -help (html, txt)

Мефодий сделал то, о чем просила его утилита head. Обращает на себя внимание то, что некоторые ключи headимеют и однобуквенный, и полнословный формат, а некоторые - только полнословный. Так обычно и бывает: часто используемые ключи имеют аббревиатуру, а редкие - нет. Значения параметрических полнословных ключейпринято передавать не следующим параметром командной строки, а с помощью конструкции "=значение" непосредственно после ключа.





Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   10   ...   42


База данных защищена авторским правом ©vossta.ru 2019
обратиться к администрации

    Главная страница