Московский физико-технический институт
Опубликован: 16.09.2004 | Доступ: свободный | Студентов: 7855 / 1653 | Оценка: 4.44 / 4.28 | Длительность: 15:33:00
Лекция 1:

Введение в курс практических занятий. Знакомство с операционной системой UNIX

Лекция 1: 1234567 || Лекция 2 >

Простейшие команды работы с файлами – cp, rm, mkdir, mv

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

Для создания новой поддиректории используется команда mkdir (сокращение от make directory). В простейшем виде команда выглядит следующим образом:

mkdir имя_директории

где имя_директории – полное или относительное имя создаваемой директории. У команды mkdir имеется набор опций, описание которых можно просмотреть с помощью утилиты man .

Команда cp

Синтаксис команды

cp файл_источник файл_назначения
cp файл1 файл2 ... файлN дир_назначения
cp -r дир_источник дир_назначения
cp -r дир1 дир2 ... дирN дир_назначения

Описание команды

Настоящее описание является не полным описанием команды cp , а кратким введением в ее использование. Для получения полного описания команды обратитесь к UNIX Manual.

Команда cp в форме

cp файл_источник файл_назначения

служит для копирования одного файла с именем файл_источник в файл с именем файл_назначения.

Команда cp в форме

cp файл1 файл2 ... файлN дир_назначения

служит для копирования файла или файлов с именами файл1, файл2, ... файлN в уже существующую директорию с именем дир_назначения под своими именами. Вместо имен копируемых файлов могут использоваться их шаблоны.

Команда cp в форме

cp -r дир_источник дир_назначения

служит для рекурсивного копирования одной директории с именем дир_источник в новую директорию с именем дир_назначения. Если директория дир_назначения уже существует, то мы получаем команду cp в следующей форме

cp -r дир1 дир2 ... дирN дир_назначения

Такая команда служит для рекурсивного копирования директории или директорий с именами дир1, дир2, ... дирN в уже существующую директорию с именем дир_назначения под своими собственными именами. Вместо имен копируемых директорий могут использоваться их шаблоны.

Для копирования файлов может использоваться команда 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.

Команда mv

Синтаксис команды

mv имя_источника имя_назначения
mv имя1 имя2 ... имяN дир_назначения

Описание команды

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

Команда mv в форме

mv имя_источника имя_назначения

служит для переименования или перемещения одного файла (неважно, регулярного или директории) с именем имя_источника в файл с именем имя_назначения. При этом перед выполнением команды файла с именем имя_назначения существовать не должно.

Команда mv в форме

mv имя1 имя2 ... имяN дир_назначения

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

Командой удаления файлов и директорий следует пользоваться с осторожностью. Удаленную информацию восстановить невозможно. Если вы системный администратор и ваша текущая директория – это корневая директория, пожалуйста, не выполняйте команду 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 и попробуйте перемещаться по директориям, создавать и редактировать файлы.

Лекция 1: 1234567 || Лекция 2 >
лия логовина
лия логовина

организовать двустороннюю поочередную связь процесса-родителя и процесса-ребенка через pipe, используя для синхронизации сигналы sigusr1 и sigusr2.

Макар Оганесов
Макар Оганесов