организовать двустороннюю поочередную связь процесса-родителя и процесса-ребенка через pipe, используя для синхронизации сигналы sigusr1 и sigusr2. |
Введение в курс практических занятий. Знакомство с операционной системой UNIX
Команда man – универсальный справочник
По ходу изучения операционной системы UNIX вам часто будет требоваться информация о том, что делает та или иная команда или системный вызов, какие у них параметры и опции, для чего предназначены некоторые системные файлы, каков их формат и т.д. Мы постарались, по мере возможности, включить описания большинства используемых в курсе команд и системных вызовов в наш текст. Однако иногда для получения более полной информации мы отсылаем читателей к UNIX Manual – руководству по операционной системе UNIX. К счастью, большая часть информации в UNIX Manual доступна в интерактивном режиме с помощью утилиты man .
Пользоваться утилитой man достаточно просто – наберите команду
man имя
где имя – это имя интересующей вас команды, утилиты, системного вызова, библиотечной функции или файла. Попробуйте с ее помощью посмотреть информацию о команде pwd.
Чтобы пролистать страницу полученного описания, если оно не поместилось на экране полностью, следует нажать клавишу <пробел>. Для прокрутки одной строки воспользуйтесь клавишей <Enter>. Вернуться на страницу назад позволит одновременное нажатие клавиш <Ctrl> и <b>. Выйти из режима просмотра информации можно с помощью клавиши <q>.
Иногда имена команд интерпретатора и системных вызовов или какие-либо еще имена совпадают. Тогда чтобы найти интересующую вас информацию, необходимо задать утилите man категорию, к которой относится эта информация (номер раздела). Деление информации по категориям может слегка отличаться от одной версии UNIX к другой. В Linux, например, принято следующее разделение:
- Исполняемые файлы или команды интерпретатора.
- Системные вызовы.
- Библиотечные функции.
- Специальные файлы (обычно файлы устройств) – что это такое, вы узнаете на семинарах 13–14.
- Формат системных файлов и принятые соглашения.
- Игры (обычно отсутствуют).
- Макропакеты и утилиты – такие как сам man .
- Команды системного администратора.
- Подпрограммы ядра (нестандартный раздел).
Если вы знаете раздел, к которому относится информация, то утилиту man можно вызвать в Linux с дополнительным параметром
man номер_раздела имя
В других операционных системах этот вызов может выглядеть иначе. Для получения точной информации о разбиении на разделы, форме указания номера раздела и дополнительных возможностях утилиты man наберите команду
man man
Команды cd – для смены текущей директории и ls – для просмотра состава директории
Для смены текущей директории командного интерпретатора можно воспользоваться командой cd (change directory). Для этого необходимо набрать команду в виде
cd имя_директории
где имя_директории – полное или относительное имя директории, которую вы хотите сделать текущей. Команда cd без параметров сделает текущей директорией вашу домашнюю директорию.
Просмотреть содержимое текущей или любой другой директории можно, воспользовавшись командой ls (от list). Если ввести ее без параметров, эта команда распечатает вам список файлов, находящихся в текущей директории. Если же в качестве параметра задать полное или относительное имя директории:
ls имя_директории
то она распечатает список файлов в указанной директории. Надо отметить, что в полученный список не войдут файлы, имена которых начинаются с символа "точка" – ".". Такие файлы обычно создаются различными системными программами для своих целей (например, для настройки). Посмотреть полный список файлов можно, дополнительно указав команде ls опцию -a, т.е. набрав ее в виде
ls -a
или
ls -a имя_директории
У команды ls существует и много других опций, часть из которых мы еще рассмотрим на семинарах. Для получения полной информации о команде ls воспользуйтесь утилитой man .
Путешествие по структуре файловой системы
Пользуясь командами cd , ls и pwd, попутешествуйте по структуре файловой системы и просмотрите ее содержимое. Возможно, зайти в некоторые директории или посмотреть их содержимое вам не удастся. Это связано с работой механизма защиты файлов и директорий, о котором мы поговорим позже. Не забудьте в конце путешествия вернуться в свою домашнюю директорию.
Команда cat и создание файла. Перенаправление ввода и вывода
Мы умеем перемещаться по логической структуре файловой системы и рассматривать ее содержимое. Хотелось бы уметь еще и просматривать содержимое файлов, и создавать их. Для просмотра содержимого небольшого текстового файла на экране можно воспользоваться командой cat . Если набрать ее в виде
cat имя_файла
то на экран выплеснется все его содержимое.
Внимание! Не пытайтесь рассматривать на экране содержимое директорий – все равно не получится! Не пытайтесь просматривать содержимое неизвестных файлов, особенно если вы не знаете, текстовый он или бинарный. Вывод на экран бинарного файла может привести к непредсказуемому поведению вашего терминала.
Если даже ваш файл и текстовый, но большой, то все равно вы увидите только его последнюю страницу. Большой текстовый файл удобнее рассматривать с помощью утилиты more (описание ее использования вы найдете в UNIX Manual). Команда cat будет нам интересна с другой точки зрения.
Если мы в качестве параметров для команды cat зададим не одно имя, а имена нескольких файлов
cat файл1 файл2 ... файлN
то система выдаст на экран их содержимое в указанном порядке. Вывод команды cat можно перенаправить с экрана терминала в какой-нибудь файл, воспользовавшись символом перенаправления выходного потока данных – знаком "больше" – ">". Команда
cat файл1 файл2 ... файлN > файл_результата
сольет содержимое всех файлов, чьи имена стоят перед знаком ">", воедино в файл_результата – конкатенирует их (от слова concatenate и произошло ее название). Прием перенаправления выходных данных со стандартного потока вывода (экрана) в файл является стандартным для всех команд, выполняемых командным интерпретатором. Вы можете получить файл, содержащий список всех файлов текущей директории, если выполните команду ls -a с перенаправлением выходных данных
ls -a > новый_файл
Если имена входных файлов для команды cat не заданы, то она будет использовать в качестве входных данных информацию, которая вводится с клавиатуры, до тех пор, пока вы не наберете признак окончания ввода – комбинацию клавиш <CTRL> и <d>.
cat > новый_файл
позволяет создать новый текстовый файл с именем новый_файл и содержимым, которое пользователь введет с клавиатуры. У команды cat существует множество различных опций. Посмотреть ее полное описание можно в UNIX Manual.
Заметим, что наряду с перенаправлением выходных данных существует способ перенаправить входные данные. Если во время выполнения некоторой команды требуется ввести данные с клавиатуры, можно положить их заранее в файл, а затем перенаправить стандартный ввод этой команды с помощью знака "меньше" – "<" и следующего за ним имени файла с входными данными. Другие варианты перенаправления потоков данных можно посмотреть в UNIX Manual для командного интерпретатора.
Создание файла с помощью команды cat
Убедитесь, что вы находитесь в своей домашней директории, и создайте с помощью команды cat новый текстовый файл. Просмотрите его содержимое.