- •Командная строка unix
- •Терминал и командная строка Терминал
- •Командная оболочка
- •Одновременный доступ к системе
- •Формат командной строки Приглашение
- •Формат команды
- •Процесс выполнения команды
- •Возвращаемое значение
- •Способы объединения команд
- •Последовательное выполнение
- •Служебные символы
- •Стандартные переменные окружения
- •Возможности интерфейса командной оболочки
- •Редактирование командной строки
- •История команд
- •Псевдонимы
- •Автодополнение
- •Шаблоны
- •Командная оболочка как средство программирования
- •Справочная подсистема
- •Страницы руководства
- •Поиск по руководствам
- •Программа info
- •Документация, поставляемая с программой
Командная оболочка как средство программирования
Большая часть того, что нужно начинающему пользователю UNIX, делается с помощью одной правильной команды, или вызовом нескольких команд в конвейере. От пользователя только требуется оформить решение задачи в виде сценария на shell. На самом же деле уже самый первый из командных интерпретаторов, sh, был настоящим высокоуровневым языком программирования – если, конечно, считать все утилиты системы его операторами. При таком подходе от sh требуется совсем немного: возможность вызывать утилиты, возможность свободно манипулировать результатом их работы и несколько алгоритмических конструкций (условия и циклы).
Программирование на shell, а также других, более мощных интерпретируемых языках в UNIX, остается за рамками этого курса.
Справочная подсистема
Работать с UNIX, не заглядывая в документацию, практически невозможно. Это возможно, потому что документированы практически все области операционной системы. Всем пользователям настоятельно рекомендуется, приступая к работе, а тем более – к изучению UNIX, пользоваться всеми доступными руководствами. Исторически первым и основным средством документации во всех версиях являются страницы руководства (manual pages).
Документация в подавляющем большинстве случаев пишется на простом английском языке. Необходимость писать на языке, который будет более или менее понятен большинству пользователей, объясняется постоянным развитием UNIX. Дело не в том, что страницу руководства нельзя перевести, а в том, что ее придется переводить всякий раз, когда изменится описываемый ею объект! Например, выход новой версии программного продукта сопровождается изменением его возможностей и особенностей работы, а следовательно, и новой версией документации.
Документация в UNIX играет важнейшую роль. Решение любой задачи должно начинаться с изучения руководств. Современные свободные UNIX-системы обладают большим сообществом пользователей и разработчиков, объединённых через Интернет. В этих сообществах является нормальной практикой взаимопомощь и ответы на вопросы по системе.
Страницы руководства
Больше всего полезной информации содержится в страницах руководства, для краткости мы будем называть их просто «руководство». Каждая страница посвящена какому-нибудь одному объекту системы. Для того чтобы посмотреть страницу руководства, нужно дать команду системеman объект:
user@desktop ~ $ man cal
CAL(1) BSD General Commands Manual CAL(1)
NAME
cal - displays a calendar
SYNOPSIS
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 разделов руководств:
пользовательские утилиты и прочие инструменты
системные вызовы
библиотечные функции
внешние устройства (и их представление в системе)
форматы и таблицы (типы файлов, протоколы и прочее)
игры и всевозможные «ненужные» утилиты
«остальное», т. е. то, что не подходит под другие разделы
команды и инструменты системного администратора