Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Командная оболочка как средство программирования



Большая часть того, что нужно начинающему пользователю UNIX, делается с помощью одной правильной команды, или вызовом нескольких команд в конвейере. От пользователя только требуется оформить решение задачи в виде сценария на shell. На самом же деле уже самый первый из командных интерпретаторов, sh, был настоящим высокоуровневым языком программирования – если, конечно, считать все утилиты системы его операторами. При таком подходе от sh требуется совсем немного: возможность вызывать утилиты, возможность свободно манипулировать результатом их работы и несколько алгоритмических конструкций (условия и циклы).

Программирование на shell, а также других, более мощных интерпретируемых языках в UNIX, остается за рамками этого курса.

Справочная подсистема

Работать с UNIX, не заглядывая в документацию, практически невозможно. Это возможно, потому что документированы практически все области операционной системы. Всем пользователям настоятельно рекомендуется, приступая к работе, а тем более – к изучению UNIX, пользоваться всеми доступными руководствами. Исторически первым и основным средством документации во всех версиях являются страницы руководства (manual pages).

Документация в подавляющем большинстве случаев пишется на простом английском языке. Необходимость писать на языке, который будет более или менее понятен большинству пользователей, объясняется постоянным развитием UNIX. Дело не в том, что страницу руководства нельзя перевести, а в том, что ее придется переводить всякий раз, когда изменится описываемый ею объект! Например, выход новой версии программного продукта сопровождается изменением его возможностей и особенностей работы, а следовательно, и новой версией документации.

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

Страницы руководства

Больше всего полезной информации содержится в страницах руководства, для краткости мы будем называть их просто «руководство». Каждая страница посвящена какому-нибудь одному объекту системы. Для того чтобы посмотреть страницу руководства, нужно дать команду системе man объект:

user@desktop ~ $ man calCAL(1) BSD General Commands Manual CAL(1)NAME cal - displays a calendarSYNOPSIS cal [-smjy13] [[month] year]DESCRIPTION Cal displays a simple calendar. If arguments are not specified, the current month is displayed. The options are as follows:...

 

Страница руководства состоит из полей – стандартных разделов, с разных сторон описывающих заинтересовавший объект – например, команду cal. В поле NAME содержится краткое описание объекта (такое, чтобы его назначение было понятно с первого взгляда). В поле SYNOPSIS дается формализованное описание способов использования объекта (в данном случае – того, как и с какими параметрами запускать команду cal). Как правило, в квадратные скобки в этом поле заключены необязательные параметры команды, которые можно ей передать, а можно и опустить. Например, строка «[[month] year]» означает, что в этом месте командной строки параметров у команды может не быть вообще, может быть указан год или пара – месяц и год. Наконец, текст в поле DESCRIPTION – это развернутое описание объекта, достаточное для того, чтобы им воспользоваться.

Одно из самых важных полей руководства находится в конце текста. Если в процессе чтения NAME или DESCRIPTION пользователь понимает, что не нашел в руководстве того, что искал, он может захотеть посмотреть, а есть ли другие руководства или иные источники информации по той же теме. Список таких источников содержится в поле SEE ALSO:

user@desktop ~ $ man man...SEE ALSO apropos(1), whatis(1), less(1), groff(1), man.conf(5).

Справочные руководства делятся на разделы – в зависимости от типа описываемых объектов. Если один и тот же термин описывается в нескольких разделах, необходимо явно указать, какой из них использовать, например, man 3 printf для 3-го раздела руководств.

Всего существует 8 разделов руководств:

  1. пользовательские утилиты и прочие инструменты
  2. системные вызовы
  3. библиотечные функции
  4. внешние устройства (и их представление в системе)
  5. форматы и таблицы (типы файлов, протоколы и прочее)
  6. игры и всевозможные «ненужные» утилиты
  7. «остальное», т. е. то, что не подходит под другие разделы
  8. команды и инструменты системного администратора

Поиск по руководствам

В примере выше в поле SEE ALSO обнаружились ссылки на руководства по less, groff (программе форматирования страницы руководства), структуре конфигурационного файла для man, а также по двум сопутствующим командам с такими говорящими названиями «apropos» и «whatis». Как и команда apropos, whatis ищет подстроку в некоторой базе данных, состоящей из полей NAME всех страниц помощи в системе. Различие между ними в том, что whatis – только среди имен объектов (в левых частях полей NAME), а apropos – по всей базе. В результате у whatis получается список кратких описаний объектов с именами, включающими искомое слово, а у apropos – список, в котором это слово упоминается. Для того, чтобы это узнать, все равно пришлось один раз прочесть документацию.

Описания объектов, выводимые whatis или apropos, отличаются числом в скобках – номером раздела:

user@desktop ~ $ whatis passwdpasswd (1) - update a user's authentication tokens(s)passwd (5) - password filepasswd (8) - manual page for passwd wrapper version 1.0.5

Программа info

Другой источник информации о UNIX (а точнее, в UNIX-подобных системах, базирующихся на программном обеспечении от GNU) и составляющих ее программах – справочная подсистема info. Страница руководства, несмотря на обилие ссылок различного типа, остается «линейным» текстом, структурированным только логически. Документ info структурирован прежде всего топологически – это настоящий гипертекст, в котором множество небольших страниц объединены в дерево. В каждом разделе документа info всегда есть оглавление, из которого можно перейти сразу к нужному подразделу, откуда всегда можно вернуться обратно. Кроме того, info-документ можно читать и как непрерывный текст, поэтому в каждом подразделе есть ссылки на предыдущий и последующий подразделы.

Программа info использует весь экран: на большей его части она показывает текст документа, а первая и две последних строки ориентации в его структуре.

Одна или несколько страниц, которые можно перелистывать клавишей Пробел или Page Up/Page Down – это узел (node). Узел содержит обычный текст и меню (menu) – список ссылок на другие узлы, лежащие в дереве на более низком уровне. Ссылки внутри документа имеют вид «* имя_узла::» и перемещать по ним курсор можно клавишей Tab, а переходить к просмотру выбранного узла – клавишей Enter. Вернуться к предыдущему просмотренному узлу можно клавишей l (oт «Last»). И, главное, выйти из программы info можно, нажав q («Quit»). Более подробную справку об управлении программой info можно в любой момент получить у самой info, нажав ?.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.