Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
63
Добавлен:
20.04.2015
Размер:
2 Mб
Скачать

2.5. Изучим, что такое команда

С помощью команд пользователь инициирует выполнение всех необходимых ему действий программно-аппаратного комплекса.

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

ИМЯ_КОМАНДЫ ПАРАМЕТРЫ

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

2.5.1. Рассмотрим типы и количество команд

Прежде всего, отметим, что существуют команды двух типов. К первому относятся внутренние команды системы. Они не имеют отдельного исполнимого файла на диске, как другой тип – внешние. Последние представлены исполнимыми файлами. Зная имя последнего, его расположение можно найти специальной командой поиска (ее имя find). Принято, что основные системные команды располагаются в определенных каталогах. Прежде всего, как мы говорили выше, такие каталоги зафиксированы в переменной окружения оболочки с именем PATH.

Убедимся в том, что существуют команды двух названных типов. Если дать команду, выполняющую поиск всех файлов с именем cd (в ней / указывает на необходимость поиска во всей файловой системе, а -name фиксирует имя искомого файла)

find / -name cd

то она выдаст информацию о трех файлах. Если про каждый из них получить подробную информацию (например, командой file), то окажется, что среди них нет исполнимых файлов. Заметим, что для режима пользователя asplinux вывод этой команды содержит большое количество строк. Они сообщают о том, что многие каталоги файловой системы не доступны в этом сеансе. Поэтому выполнять описанные в работе действия лучше в сеансе пользователя root.

Такая команда

find / -name cd 2 > errlist

будет выводить сообщение об ошибках (параметр 2) не на экран, а в текстовый файл с именем errlist.

После выполнения такой команды

find / -name ls 2 > errlist

Найдется файл с именем ls, расположенный в директории /bin. Он является исполнимым файлом, а значит, соответствует внешней команде. Его свойства команда

file

определит так

ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped

Внешние команды можно, в свою очередь, поделить на две группы. Первая из них – это программы в машинных кодах. Вторая же состоит из сценариев, о которых мы уже коротко упоминали.

Задание 11.

Определите (используя системные утилиты find и file), какие из перечисленных команд

arch

dir

bg

cmp

являются внутренними, а какие команды – внешними.

В конкретной системе, инсталлированной на компьютере, состав команд разный. В процессе работы могут быть добавлены новые команды (представленные исполнимым файлом), а некоторые – удалены. Какой же состав команд можно считать минимальным стандартом? Сколько таких команд 10, 100 или 1000? Абсолютно точного и однозначного ответа нет. Но имеются косвенные указания. В стандартах, связанных с UNIX, перечисляется список утилит. Например, по адресу www.unix.org/version3/apis/headers.html их чуть менее 200. Это первый ответ на вопрос о минимальном количестве системных команд UNIX. Другой список системных утилит можно получить так. Различные версии UNIX/Linux включают систему помощи man, в которой информация собрана в определенном месте диска (каталоге с именем ../man).

В версии ASPLinux 14 Live CD файлы системы помощи расположены по адресу

/usr/share/man

Все файлы там разделены по подкаталогам, подчиненным главному. Информация о родственных объектах собираются в одном подкаталоге и называются разделом. Содержимое подкаталога ../man1 и раздела 1 – это системные команды, а подкаталога ../man8 – команды пользователя. Для конкретной версии, упомянутой выше, в первый подкаталог включено 1930 файлов, а второй – 667.

Задание 12.

Проанализируйте состав подкаталогов /bin, /sbin и ../man1, ../man8/. Сравните их содержимое и количество.

Обратим внимание, что некоторые файлы системы помощи man, переведены на разные языки и расположены в разных подкаталогах. Для нашей версии Linux по адресу /usr/share/man имеются подкаталоги, содержащие страницы справочного руководства man переведенного на различные языки. Там есть два подкаталога.

/usr/share/man/man1

/usr/share/man/ru/man1

В первом из них содержатся основные файлы, а во втором – их перевод на русский язык. К примеру, в этих каталогах есть файлы, описывающие команду dir. Если вызвать файл из первого каталога, будет представлено описание на английском языке, а из второго (находящегося в подкаталоге ../ru/man1) – перевод на русский язык. Приоритет вызова одного из двух файлов определяется файлами конфигурации системы man (скорее всего его имя - /etc/man/conf).

Задание 13.

Проанализируйте состав каталогов, подчиненных /usr/share/man.

Соседние файлы в папке Операционные системы