организовать двустороннюю поочередную связь процесса-родителя и процесса-ребенка через pipe, используя для синхронизации сигналы sigusr1 и sigusr2. |
Введение в курс практических занятий. Знакомство с операционной системой UNIX
Простейшие команды работы с файлами – cp, rm, mkdir, mv
Для нормальной работы с файлами необходимо не только уметь создавать файлы, просматривать их содержимое и перемещаться по логическому дереву файловой системы. Нужно уметь создавать собственные поддиректории, копировать и удалять файлы, переименовывать их. Это минимальный набор операций, не владея которым нельзя чувствовать себя уверенно при работе с компьютером.
Для создания новой поддиректории используется команда mkdir (сокращение от make directory). В простейшем виде команда выглядит следующим образом:
mkdir имя_директории
где имя_директории – полное или относительное имя создаваемой директории. У команды mkdir имеется набор опций, описание которых можно просмотреть с помощью утилиты man .
Для копирования файлов может использоваться команда cp (сокращение от copy). Команда ср умеет копировать не только отдельный файл, но и набор файлов, и даже директорию целиком вместе со всеми входящими в нее поддиректориями (рекурсивное копирование). Для задания набора файлов могут использоваться шаблоны имен файлов. Точно так же шаблон имени может быть использован и в командах переименования файлов и их удаления, которые мы рассмотрим ниже.
Шаблоны имен файлов Шаблоны имен файлов могут применяться в качестве параметра для задания набора имен файлов во многих командах операционной системы. При использовании шаблона просматривается вся совокупность имен файлов, находящихся в файловой системе, и те имена, которые удовлетворяют шаблону, включаются в набор. В общем случае шаблоны могут задаваться с использованием следующих метасимволов: * – соответствует всем цепочкам литер, включая пустую; ? – соответствует всем одиночным литерам; [...] – соответствует любой литере, заключенной в скобки. Пара литер, разделенных знаком минус, задает диапазон литер. Так, например, шаблону *.c удовлетворяют все файлы текущей директории, чьи имена заканчиваются на .c. Шаблону [a-d]* удовлетворяют все файлы текущей директории, чьи имена начинаются с букв a, b, c, d. Существует одно ограничение на использование метасимвола * в начале имени файла, например, в случае шаблона *c. Для таких шаблонов имена файлов, начинающиеся с символа точка, считаются не удовлетворяющими шаблону. |
Для удаления файлов или директорий применяется команда rm (сокращение от remove). Если вы хотите удалить один или несколько регулярных файлов, то простейший вид команды rm будет выглядеть следующим образом:
rm файл1 файл2 ... файлN
где файл1, файл2, ... файлN – полные или относительные имена регулярных файлов, которые требуется удалить. Вместо имен файлов могут использоваться их шаблоны. Если вы хотите удалить одну или несколько директорий вместе с их содержимым (рекурсивное удаление), то к команде добавляется опция -r:
rm -r дир1 дир2 ... дирN
где дир1, дир2, ... дирN – полные или относительные имена директорий, которые нужно удалить. Вместо непосредственно имен директорий также могут использоваться их шаблоны. У команды rm есть еще набор полезных опций, которые описаны в UNIX Manual. На самом деле процесс удаления файлов не так прост, как кажется на первый взгляд. Более подробно он будет рассмотрен нами на семинарах 11–12, когда мы будем обсуждать операции над файлами в операционной системе UNIX.
Командой удаления файлов и директорий следует пользоваться с осторожностью. Удаленную информацию восстановить невозможно. Если вы системный администратор и ваша текущая директория – это корневая директория, пожалуйста, не выполняйте команду rm -r * !
Для переименования файла или его перемещения в другой каталог применяется команда mv (сокращение от move). Для задания имен перемещаемых файлов в ней тоже можно использовать их шаблоны.
История редактирования файлов – ed, vi
Полученные знания уже позволяют нам достаточно свободно оперировать файлами. Но что нам делать, если потребуется изменить содержимое файла, отредактировать его?
Когда появились первые варианты операционной системы UNIX, устройства ввода и отображения информации существенно отличались от существующих сегодня. На клавиатурах присутствовали только алфавитно-цифровые клавиши (не было даже клавиш курсоров), а дисплеи не предполагали экранного редактирования. Поэтому первый редактор операционной системы UNIX – редактор ed – требовал от пользователя строгого указания того, что и как будет редактироваться с помощью специальных команд. Так, например, для замены первого сочетания символов "ra" на "ru" в одиннадцатой строке редактируемого файла потребовалось бы ввести команду
11 s/ra/ru
Редактор ed1Описание редактора ed можно найти, например, в [ 11 ] . В электронном виде описание есть в документе http://cs.mipt.ru/docs/comp/rus/os/unix/user_guide/unixuser/gl6_1.htm., по существу, являлся построчечным редактором. Впоследствии появился экранный редактор – vi2Описание редактора vi тоже можно найти в [ 11 ] . В электронном виде описание есть в документе http://cs.mipt.ru/docs/comp/rus/os/unix/user_guide/unixuser/gl7_1.htm., однако и он требовал строгого указания того, что и как в текущей позиции на экране мы должны сделать, или каким образом изменить текущую позицию, с помощью специальных команд, соответствующих алфавитно-цифровым клавишам. Эти редакторы могут показаться нам сейчас анахронизмами, но они до сих пор входят в состав всех вариантов UNIX и иногда (например, при работе с удаленной машиной по медленному каналу связи) являются единственным средством, позволяющим удаленно редактировать файл.
Система Midnight Commander – mc. Встроенный mc редактор и редактор joe
Наверное, вы уже убедились в том, что работа в UNIX исключительно на уровне командного интерпретатора и встроенных редакторов далека от уже привычных для нас удобств. Но не все так плохо. Существуют разнообразные пакеты, облегчающие задачу пользователя в UNIX. К таким пакетам следует отнести Midnight Commander – аналог программ Norton Commander для DOS и FAR для Windows 9x и NT – со своим встроенным редактором, запускаемый командой mc, и экранный редактор joe. Информацию о них можно найти в UNIX Manual. Большими возможностями обладают многофункциональные текстовые редакторы, например, emacs3В электронном виде описание редактора emacs см. в документе http://cs.mipt.ru/docs/comp/rus/os/unix/user_guide/emacs/index.html..
Войдите в mc и попробуйте перемещаться по директориям, создавать и редактировать файлы.