Смекни!
smekni.com

Практическая работа по предмету UNIX (стр. 2 из 9)

· Вы можете написать сразу несколько команд. Например,

cd /usr; ls; date

(каталог /usr станет текущим и на экран будет выведен список файлов и подкаталогов каталога /usr, а также информация о дате и времени) или

date; ls la

(Вы увидите информацию о дате и времени и обо всех файлах и подкаталогах каталога /usr).

· Вы можете передать результат выполнения команды другим командным файлам или устройствам. Попробуйте вывести информацию о дате и времени не на экран, а в файл с названием vrem с помощью командной строки

cd; date > vrem

Проверьте результат выполнения команды, набрав

cat vrem

1. Если команда не выполняется.

Что делать в том случае, если Ваша команда не выполняется? Существует ряд причин, из-за которых это может произойти.

Если после ввода команды, Вы получили сообщение следующего вида:

<имя команды>: not found

то это означает, что команда не найдена.

Первое, что нужно сделать в такой ситуации – проверить, правильно ли Вы написали имя команды.

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

Для просмотра РАТН напечатайте:

echo $PATH.

Результат работы команды показывает, в каких каталогах производится поиск. (Для разделения каталогов в РАТН используется двоеточие.)

Если команда, которую Вы хотите выполнить, содержится в другом каталоге, тогда Вы должны добавить этот каталог в РАТН. Для этого нужно набрать РАТН= и перечислить через двоеточие все каталоги, в которых необходимо производить поиск. Давайте зададим такой путь поиска

РАТН=.:/usr/local/bin:/bin

Не забудьте нажать клавишу ENTER.

Попробуйте теперь ввести команду

ls

система ответит Вам

ls: not found

С другой стороны, Вы можете запустить команду, находящуюся в каталоге, которого нет в РАТН, напечатав полное имя, включая ее местонахождение. Например,

/usr/ bin/ls

или

/usr/ bin/ls /usr/ bin

Обратите внимание на то, что, во-первых, если команда находится в двух каталогах, и оба они указаны в РАТН, то UNIX запустит команду из каталога, который стоит первым по порядку в РАТН. (Например, если команда находится в Х и Y из РАТН = .:/X:/been:/Y, то запуск будет производиться из X); во-вторых, в отличие от DOS, UNIX не ищет команду в корневом каталоге автоматически.

Давайте все же восстановим путь поиска команд:

РАТН=.:/usr/local/bin:/bin:/usr/bin

Он позволяет осуществлять поиск в корневом каталоге и каталогах /usr/local/bin, /bin, /usr/bin. Проверьте выполняется ли теперь команда ls.

Еще одна причина невыполнения введенной команды – отсутствие прав на использование данной команды или некоторых ее опций, иначе говоря, прав доступа. В таком случае система Вам выдает сообщение о невозможности выполнить команду. Это могут быть следующие сообщения cannot execut (не может быть запущена), permission denied (обращение запрещено), no permission to … (нет доступа к …). Проверьте это, введя команду

date 000000

на экране появится строка

No permission to set time

(нет доступа к установке времени), т.к. правом использования этой команды обладает лишь root-пользватель.

Возможна и другая ситуация. Попробуйте ввести такую команду

cp /etc/mtab /etc/m1

она должна скопировать файл mtab каталога /etc в файл m1того же каталога, но Вы получите сообщение

cp: m1: Permission denied

(обращение запрещено). Дело в том, что Вы не имеете права копировать файлы в каталог /etc.

2. Использование простейших команд.

Теперь давайте попробуем выполнить несколько общедоступных безобидных команд – это должно придать Вам чувство уверенности при работе с командами UNIX.

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

В первом случае (после ввода команды uname) система выдает Вам информацию об имени системы. Когда же Вы вводите команду

uname -а

то на экране появляются следующие сведения: имя системы, сетевой адрес компьютера, версия системы, тип машины.

Хотите узнать, в какой день недели произошло Ледовое побоище или родились Ваши родители, а может Вам интересно как выглядел календарь первого месяца первого года нашей эры?

Воспользуйтесь командой cal (вывод календаря на экран). Задав в качестве параметров номер месяца и четырехзначный номер года (от 1 до 9999), Вы сможете увидеть на экране календарь этого месяца. Если номер месяца опустить, то UNIX выведет на экран календарь этого года. Так в какой день недели мы встретим 21 век? (Надеюсь, Вы не забыли, что команды и параметры разделяются пробелами.)

Если Вы забудете указать аргументы:

cal

то система напомнит Вам об этом, указав правильный формат команды

Usage: cal [mounth] year

(Употребление: cal [месяц] год).

Если Вы неправильно укажете параметр:

cal feb 1

то увидите на экране надпись Bad argument (неверный аргумент)

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

banner UNIX

Можно использовать кавычки. Командная строка должна выглядеть примерно так:

banner ’ UNIX’

Сравните результаты.

1. Как навести справку о команде.

В системах UNIX – сотни команд. Узнать, как работают все команды, возможно только в процессе кропотливой, долговременной работы в конкретной системе UNIX (не забывайте обо всем многообразии версий).

Однако, ознакомившись с наиболее важными командами, Вы сможете использовать для дальнейшего изучения системы такой мощный аппарат как справочная система UNIX.

Самая старая и все еще самая важная справочная информация находится в "man page". Man page (сокращение от manual page - страница руководства) содержит сведения обо всех командах и отдельных компонентах UNIX. Страницы справки хороши тем, что, во-первых, в них ясно показаны все опции данной команды, причем для каждой имеется отдельное описание; во-вторых, справочная система обновляется всякий раз, когда программисты изменяют команды UNIX.

Для вызова на экран справки о команде используют команду man. Имя команды или компоненты UNIX, о которой Вы хотите получить справку, печатается после man. Например, командная строка

man date

выводит на экран справку о команде date. Движение по тексту справки осуществляется с помощью клавиши ENTER и клавиш стрелка-вверх, стрелка-вниз. Для выхода из справки и возвращения в оболочку UNIX следует нажать клавишу Q.

Страница справки для команд имеет следующие разделы:

- NAME (имя) содержит имя команды и краткое описание.

- SYNOPSIS (конспект) показывает команду со всеми опциями и параметрами, которые Вы можете использовать.

- DESCRIPTION (описание) описывает, как используется команда, а также каждая опция этой команды.

- OPTIONS (опции) содержит имя опции и ее краткое описание.

- EXAMPLES (примеры) приводит примеры использования команды.

- SEE ALSO (смотрите также) содержит список связанных команд, если они есть.

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

Вы, наверное, обратили внимание, что в верхних углах страницы-справки стоит имя компонента, о котором наводиться справка, а рядом в скобках – цифра (возможно, цифра и буква). Эта цифра показывает, что данный компонент принадлежит разделу с этим номером. А т.к. в каждом разделе справочной системы содержатся лишь компоненты одного типа, т.е. либо команды общего назначения (раздел 1), либо системные команды (раздел 1М), либо устройства (раздел 7) и т.д., то таким образом номер раздела указывает Вам, какое место занимает данный компонент в иерархии системы UNIX.

В системе MINIX разделы справки организованы следующим образом:

1. Пользовательские команды.

Команды общего пользования такие как ls, man, who, banner, cal.

2. Системные вызовы.

Программы нижнего уровня, которые напрямую взаимодействуют с ядром.

3. Библиотека программ.

Программы высокого уровня, написанные на языке Си.

4. Файлы устройств.

Описание устройств каталога /dev.

5. Форматы файлов.

Форматы файлов различных утилит и программ.

6. Игры.

7. Разное.

Различные дополнения.

8. Системные утилиты.

Команды системного администратора.

9. Документы.

Более детальное руководство по некоторым программам.

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

1. Виртуальные консоли

Системная консоль - это монитор и клавиатура, связанные непосредственно с системой. (Поскольку UNIX многопользовательская система, Вы можете иметь дополнительные терминалы, связанные через последовательные порты с вашей системой, но они не будут консолями). MINIX, как и некоторые другие версии UNIX, обеспечивает доступ к виртуальным консолям (или VC), которые позволяют войти в систему под несколькими именами в одно время.

Нажмите клавишу F2, удерживая нажатой клавишу Аlt. Вы должны снова увидеть приглашение, содержащее слово login. Это вторая виртуальная консоль.