Опубликован: 27.07.2006 | Доступ: свободный | Студентов: 4408 / 1102 | Оценка: 4.28 / 4.13 | Длительность: 26:56:00
Специальности: Программист
Лекция 2:

Операционные системы и сети

Удаление файлов

Для удаления файлов используется команда rm. При добавлении ключа - r эта команда удалит каталог (директорию) вместе со всем его содержимым. Например, следующая последовательность команд удаляет файл с именем file и директорию catalog вместе со всем его содержимым:

rm file
rm -r catalog

Но не забывайте, что удалять вы можете только свои файлы и директории, и даже это следует делать очень осторожно, потому что удаленный файл вернуть нельзя!

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

Работа с дискетой MS DOS

Гибкий магнитный диск до сих пор остается распространенным средством для передачи небольших порций информации с компьютера на компьютер. В системе Linux имеется набор утилит mtools, которые обеспечивают доступ к дискетам, отформатированным для использования в MS DOS (или в MS Windows). Для работы с такими дискетами достаточно вставить ее в дисковод и воспользоваться одной из этих утилит.

Для копирования файлов используется команда mcopy, дискета MS DOS обозначается как a: (дисковод A).

Пример

Сначала файл mydata копируется на дискету MS DOS, а затем файл title копируется в текущий каталог (.) пользователя:

mcopy mydata a:
mcopy a:title.

При копировании групп файлов можно использовать шаблоны, состоящие из символов * и ?. Например, для копирования всех файлов из текущей директории, имеющих расширение doc, на дискету можно воспользоваться командой

mcopy *.doc a:

Перечислим другие команды из набора утилит mtools.

Команда Назначение
mdel Удаляет файл MS DOS
mmd Создает каталог MS DOS
mrd Удаляет каталог MS DOS
mren Переименовывает файл MS DOS
mtype Отображает содержимое файла MS DOS
mformat Создает на дискете файловую систему MS DOS

Команда mdir позволит получить список файлов и каталогов, размещенных на дискете, а команда mcd - перемещаться по каталогам дискеты. В следующем примере выдается перечень файлов, а затем пользователь перемещается в каталог tmp:

mdir a:
mcd a:tmp

Архивация и сжатие файлов

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

Большинство программ архивации при создании архива пытаются уменьшить его результирующий размер, применяя различные алгоритмы сжатия. Команда tar является самым распространенным инструментом для создания файловых архивов в ОС Linux. Формат команды tar опции имя_архива файлы/каталоги.

Здесь "опции" есть список опций, a "файлы/каталоги" - список файлов или каталогов, добавляемых в архив или извлекаемых из него. При работе с каталогами tar рекурсивно, т. е. вместе со всеми поддиректориями, добавляет их в архив. Перечислим наиболее распространенные опции команды tar:

c создает новый архивный файл;
v выводит имя каждого архивируемого файла;
f задает имя архивного файла;
z осуществляет сжатие или распаковку сжатого архива;
x распаковывает архивный файл;
t показывает содержимое архива.

Например, команда

tar cvf backup.tar /etc

упакует все файлы, содержащиеся в /etc, в архив с именем backup.tar. При этом архив не будет сжат.

Если создают архивный файл, используя сжатие, то для отражения этого факта расширение файла заменяют на tgz. Команда создания такого архива имеет вид

tar cvfz имя.tgz файлы

А следующая команда создаст архив backup.tgz, который будет иметь значительно меньший размер по сравнению с архивом backup.tar.

tar cvfz backup.tgz /etc

Пример

Первая команда покажет содержимое архива backup.tgz, а вторая раскроет его, создав в текущем каталоге подкаталог etc:

tar tvfz backup.tgz
tar xvfz backup.tgz

Другой распространенной программой для сжатия и архивации является утилита zip. Она создает файл несколько большего размера, но широко используется в операционных системах MS DOS и Windows. Архив, созданный в одной операционной системе, без проблем будет раскрыт в другой. Таким образом, утилиту zip можно использовать для обмена информацией между различными ОС. Формат команды

zip -опции имя_архива файлы/каталоги

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

zip -r foo my_dir

создаст архив с именем foo.zip, в который поместит директорию my_dir вместе со всем ее содержимым.

Для распаковки архива служит команда

unzip имя_архива

Например, команда

unzip foo.zip

создаст в текущем каталоге подкаталог my_dir и поместит в него содержимое архива.

Для более подробного знакомства с утилитами архивации воспользуйтесь командами: man tar, man zip и man unzip.

Изменение прав доступа к файлам

Для изменения прав доступа к файлам и каталогам используется команда chmod (change mode). Изменять права можно только у тех файлов и директорий, владельцем которых вы являетесь. Любое из прав доступа можно добавить или отменить. Для добавления соответствующего права используется символ +, для отмены применяется знак -, например,

chmod +x-w prog

В данном примере для всех групп пользователей добавляется право на выполнение и отменяется право на запись.

Можно добавить или отменить право у отдельных категорий пользователей; категория владелец обозначается символом u (от user), группа - символом g (group), прочие пользователи обозначаются символом o (other), для обозначения всех групп сразу используется символ a (all), предполагаемый по умолчанию.

Пример

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

chmod o+r-wx my_script

Право на выполнение показывает, что файл содержит команды и может непосредственно исполняться системой. Такое право часто устанавливается для файлов, содержащих команды shell.

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

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

Код доступа --- --x -w- -wx r-- r-x rw- rwx
Двоичная маска 000 001 010 011 100 101 110 111
Восьмеричная цифра 0 1 2 3 4 5 6 7

Для создания двоичной маски права каждой категории пользователей кодируются трехзначным двоичным числом. Наличие соответствующего права обозначается цифрой 1, отсутствие - цифрой 0. Далее каждое число переводится в восьмеричную систему счисления (см. таблицу). Получившиеся три восьмеричных цифры используются в качестве аргумента команды chmod.

Пример

Маска, соответствующая коду rwx, имеет вид 111=78, а для кода r-x (запрет на запись) - 101=58. Заметьте, что каждый раз полученная маска состоит из трех цифр, каждая из которых это либо 0, либо 1.

Получившийся набор цифр и используется в качестве параметра команды chmod, например,

chmod 755 my_script

Задания

  1. Создайте директорию public_html. Попробуйте удалить директорию public_html у другого пользователя.
  2. Скопируйте файл /var/log/dmesg в свою корневую директорию. Просмотрите содержимое файла dmesg с помощью команд more и less, а затем с помощью команды cat. Сформулируйте отличия в работе данных команд.
  3. С помощью команды ls -la посмотрите, есть ли в вашей домашней директории файлы, начинающиеся с символов .saves или .nfs. Если да, то удалите их.
  4. Создайте три архива директории /usr/share/dict (dict.tar, dict.tgz, dict.zip), используя различные способы архивации, и сравните размеры получившихся файлов.
Дмитрий Фаттахов
Дмитрий Фаттахов
Виктория Бельгесова
Виктория Бельгесова

Добрый день. Как получить удостоверение о прохождении данного курса?