Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Работа с файлами и каталогами.doc
Скачиваний:
50
Добавлен:
20.05.2015
Размер:
259 Кб
Скачать

Командная оболочка, командная строка и команды Для организации интерфейса пользователя в состав Unix входит командная оболочка, называемая shell. Она выполняет следующие функции:

  • организует исполнение программ, проверяя их синтаксис, допустимость ключей и т.д.;

  • осуществляет генерацию имен файлов;

  • осуществляет переназначение ввода и вывода;

  • организует конвейеризацию;

  • осуществляет контроль среды окружения;

  • является интерпретатором развитого командного языка, позволяющего пользователю создавать сложные сценарии выполнения программ.

Существуют различные версии shell, наиболее популярными из них являются sh (Bourne Shell), bash (Bourne Again Shell), csh (C-Shell), ksh (Korn Shell). Мы будем рассматривать bash, обычно загружаемую ОС по умолчанию.

Командная строка имеет следующий вид:

$ команда ключи аргументы

Символ «$» является приглашением командной оболочки, ему могут предшествовать другие символы, отмечающие, например, имя текущего каталога, имя компьютера, имя пользователя или имя ОС.

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

Внутренние команды языка shell представляют собой программы, находящиеся в каталоге /usr/bin. Большинство из них имеют следующий формат:

имя_команды ключи аргументы

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

Свойство ключа быть, с одной стороны, предельно коротким, а с другой стороны – информативным, называется аббревиативностью. Не только ключи, но и имена наиболее распространенных команд Unix обладают этим свойством. Аббревиативность ключей трудно соблюсти, когда их у команды слишком много. Некоторые буквы латинского алфавита (например, s или o) используются очень часто, и могли бы служить сокращением сразу нескольких команд. На такой случай существует другой, полнословный формат: ключ начинается на два знака «-», за которыми следует полное имя ключа. Таков, например, ключ --wildcards.

А некоторые ключи могут обозначаться как коротким, так и полным именем, например ключ с коротким именем -h имеет аналог с длинным именем --help.

Аргументы команды (или параметры команды) указывают на объекты, над которыми выполняются операции. Аргументами команд в большинстве случаев являются имена файлов. Например, приведенная ниже команда означает: «Выполнить команду ls (отображение информации о файле) с ключом -l (подробная информация) для файла а.out»:

ls -l а.out

Если необходимо использовать два и более однобуквенных ключа, большинство команд позволяют объединять их. Например, две приведенные ниже команды идентичны:

ls -lg a.out

1s -l -g a.out

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

В одной строке может содержаться несколько команд. Они отделяются друг от друга символом «;».

Одну команду можно разместить на нескольких экранных строках. Для этого перед нажатием клавиши [Enter] необходимо поставить символ «\».

Командный процессор shell ищет имена команд в указанном наборе каталогов, который можно изменить по желанию пользователя. Список этих каталогов является значением переменной среды PATH.

Получение справки о командах Unix

Получить справку о работе команд Unix можно несколькими способами.

1. Страницы руководства (manpages) содержат больше всего полезной информации. Каждая страница руководства посвящена какому-нибудь одному объекту системы. Для того чтобы посмотреть страницу руководства по какой-либо команде, нужно дать команду

man [номер_раздела] [имя_объекта]

Номера и названия разделов руководства:

  1. Команды пользователя.

  2. Системные вызовы (пользовательские функции ядра Unix; руководства рассчитаны на программиста, знающего язык С).

  3. Библиотечные функции (функции, принадлежащие всевозможным библиотекам подпрограмм; руководства рассчитаны на программиста, знающего язык С).

  4. Внешние устройства и работа с ними.

  5. Форматы различных стандартных файлов системы (например, конфигурационных).

  6. Игры, безделушки и прочие вещи, не имеющие системной ценности.

  7. Теоретические положения, договоренности и все, что не может быть классифицировано.

  8. Инструменты администратора (часто недоступные обычному пользователю).

  9. Интерфейс ядра (внутренние функции и структуры данных ядра Unix, необходимые только системному программисту, исправляющему или дополняющему ядро).

Например, если нужно просмотреть справку о работе команды find, необходимо выполнить команду

man 1 find

Как правило, команда man сама находит раздел с требуемой справкой, просматривая все разделы по очереди, поэтому для получения справки по команде find достаточно ввести

man find

Для получения списка разделов, в которых встречается требуемый термин используется ключ -l.

Страница руководства занимает, как правило, больше одной страницы экрана. Страницы перелистываются вниз с помощью клавиши пробела или клавиши [Page Down], вверх – с помощью клавиши [Page Up], для сдвига на одну строку вперед можно применять Enter или клавишу [Стрелка вниз], а на одну строку назад – клавишу [Стрелка вверх]. Переход на начало и конец текста выполняется по нажатию клавиш [g] и [G] соответственно (Go). Выход осуществляется по нажатию клавиши [q] (Quit).

2. Info

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

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