Муниципальное образовательное учреждение дополнительного образования детей

advertisement
Муниципальное образовательное учреждение дополнительного
образования детей
Центр детского (юношеского) технического творчества «Городской» г. Липецка
Адрес: 398043, г. Липецк, ул. Терешковой, 32/2а, т. 4-742- 35-58-53, cdtt@cominfo.lipetsk.ru
Цикл уроков
Автор: Шапошникова
Светлана Вячеславовна,
педагог дополнительного образования
кружков компьютерной техники
Липецк, 2007
1
Аннотация
Данная методическая разработка содержит три занятия на тему “Файловая система”:
“Файловая структура”, “Изменение файловой структуры”, “Ссылки”. Каждое занятие
представляет собой сдвоенный урок (2*45 мин), первая часть которого – лекция, вторая –
практическая работа. В качестве операционной системы рассматривается Linux. Учащимся
предлагается изучить работу с файловой системой как в графической среде, так и с помощью
оболочки bash. Разработка ориентирована на применение в системе дополнительного
образования детей; для возрастной группы 12 - 16 лет, первого года обучения.
Необходимый предварительный минимум ЗУНов учащихся:

начальные знания о внешнем и внутреннем устройстве компьютера;

понятие об операционной системе как управляющей программе;

понятия о Рабочем столе (Desktop), Панели задач, Главном меню; умение запускать
программы в графической оболочке Linux (Gnome или KDE), выделять объекты.

представление о текстовом режиме и командной оболочке; знание правил записи команд
в оболочке bash.
Литература
1. Лебланк, Д-А. Linux для “чайников”. М: Издательский дом “Вильямс”, 2005. - 336 с.: ил.
2. Немет Э., Снайдер Г., Хейн, Т. Руководство администратора Linux. М: Издательский дом
“Вильямс”, 2005. - 880 с.: ил.
3. Костромин В. А. Основы работы в ОС Linux. http://www.intuit.ru/department/os/baselinuxwork/
4. Курячий Г. В., Маслинский К. А. Операционная система Linux. http://www.intuit.ru/department/os/linux/
2
Урок 1. Файловая структура
План
Новый материал
Что такое файл и каталог?
Получаем дерево?!
Каждому файлу - адрес!
Файловый менеджер – ваш помощник.
Навигация и создание файлов
- графический режим
- текстовый режим
Практическая работа № 1. “Создание каталогов и файлов”
Часть 1. Работа в графическом режиме
Часть 2. Работа в текстовом режиме
Вопросы
Выводы
Новый материал
Что такое файл и каталог?
Одно из назначений компьютера – это долговременное хранение данных, которые чаще
всего сохраняются на жестком диске. Выясним, каким образом организовано их хранение.
Данные – это любая информация. Данными можно назвать текст, рисунок, таблицу.
Сохраняя определенные данные на диске, мы предполагаем, что когда-нибудь они нам
понадобятся снова. Но как их потом найти? Необходимо знать, где были сохранены эти данные,
а также имя, по которому к ним обращаться. Для сохранения адреса и имени области диска, где
хранятся конкретные данные, было введено понятие файла. Итак, файл – это именованное
место на диске для хранения данных определенного типа.
Файлов может быть слишком много и они могут находиться в разных местах жесткого
диски. Однако человеку ориентироваться в беспорядочном размещении файлов вряд ли будет
удобно. Для того, чтобы упорядочить и систематизировать файлы, был придуман особый тип
файла – каталог, который представляет собой список ссылок на файлы с данными или другие
каталоги. Если в операционной системе открыть каталог, то можно увидеть файлы и другие
каталоги, которые как бы в нем хранятся. На самом деле эти вложенные файлы могут
находиться в разных местах жесткого диска, но операционная система покажет их вместе.
Часто каталоги называют также директориями или папками. Все три термина
обозначают одно и тоже.
Получаем дерево?!
3
Итак, каждый файл в операционной системе должен находиться в каталоге, а также,
каждый каталог (за одним исключением) должен находиться в другом каталоге. Исключением
является так называемый “корневой каталог”, с которого все начинается. Кроме того, не может
быть ситуации, когда один каталог ссылается на второй, а тот, обратно, на первый.
Описанное выше можно представить в виде дерева (рис. 1), у которого ствол и ветви
являются каталогами, а листья – файлами. От любой ветви может отрастать ветка следующего
порядка и/или листья, т.е. любой каталог может содержать вложенные каталоги и/или файлы с
данными.
системы
Рис. 1. Древовидная
структура файловой
Можно сделать следующий вывод: файловая система в операционной системе – это
логическая структура файлов и каталогов. Структуру, описанную выше, часто называют
иерархической или древовидной. Она характерна для большинства операционных систем.
Однако существуют и некоторые отличия. Так в операционных системах, основанных на ядре
Linux, существует лишь один корневой каталог. Обозначается он символом слеша (/) и
содержит больше десятка вложенных каталогов. В ОС семейства Windows корневых каталогов
столько, сколько разделов жесткого диска доступно системе.
Каждому файлу – адрес!
Из вышеописанной структуры можно заключить, что у каждого файла и каталога
должен быть свой адрес.
На рисунке 1 можно видеть, что каталог less находиться в каталоге sasha. Тот в свою
очередь в каталоге home, который находится непосредственно в корневом каталоге. Адрес
записывается следующим образом: сначала пишется корневой каталог «/», и далее указываются
каталоги, начиная с самого верхнего (родительского) и заканчивая самым нижним (дочерним),
разделяемые между собой все тем же «/». В нашем примере адрес каталога less, будет
выглядеть так: /home/sasha/less. Адрес и имя файла, формируют его полное имя. При этом
следует запомнить правило: в операционной системе не может быть двух файлов (или
каталогов) с одинаковыми полными именами.
Адресация, описанная выше, является абсолютной (т.е. адрес записывается,
начиная с корневого каталога). Помимо абсолютной нередко используют относительную
адресацию, где запись адреса начинается не с корневого каталога, а относительно текущего
(того, который открыт в данный момент). Например, если мы, находясь в каталоге sasha (рис.
4
1), захотим перейти в каталог vaniy, то следует написать такой адресный путь: ../vaniy. Здесь
две точки обозначают переход на уровень выше (в данном случае каталог /home). Если из
каталога sasha потребуется перейти в каталог less, то достаточно будет указать просто имя этого
каталога less; хотя более правильным будет такой вариант: ./less. Одна точка обозначает
текущий каталог.
Файловый менеджер – ваш помощник
Как перемещаться по дереву каталогов, просматривать их содержимое и управлять
им? Для этих целей используется так называемые файловые менеджеры (современные
менеджеры графических оболочек называют также браузерами, т.к. они позволяют
просматривать некоторые типы файлов).
В графической оболочке GNOME по умолчанию таким менеджером/браузером
является Nautilus (рис. 2). Запустить его можно через Главное меню (Приложения -> Система >
Обозреватель
файлов) или другими
способами.
Рис. 2. Браузер Nautilus (Наутилус)
Опишем структуру окна данного браузера и основные принципы навигации в нем.
В окне Наутилуса можно выделить пять частей. Первая, – строка меню (содержит
пункты Файл, Правка, Вид и т.д.) - где осуществляется доступ к командам браузера. Вторая –
панель инструментов (кнопки Назад, Вперед, Вверх и т.д.) - содержит наиболее используемые
команды меню, реализованные в виде кнопок. Третья – адресная строка – содержит поле,
отображающее адрес текущего каталога. Четвертая (слева) – это боковая панель – в данном
случае отображающее дерево каталогов. И пятая (самая большая часть) – это область просмотра
– отображает содержимое текущего каталога.
Остановимся на боковой панели, отображающей дерево каталогов (помимо этого
панель может быть настроена на отображения сведений, заметок и истории текущего каталога).
Знак , расположенный у каталога обозначает, что в нем находятся другие каталоги и/или
файлы. Если нажать на этот знак, то отобразятся вложенные в него каталоги, а превратится
в . Повторное нажатие (уже на знаке
) закроет структуру каталога. Если щелкнуть левой
кнопкой мыши непосредственно по каталогу, то его содержимое отобразится в области
просмотра.
Кнопка Назад на Панели инструментов возвращает нас в каталог, который был
5
текущим до этого. Кнопка Вверх позволяет перейти в родительский каталог по отношению к
текущему. Кнопка Перезагрузить обновляет вид содержимого текущего каталога (полезна в
случаях, когда известно, что в каталоге произошли изменения, но браузер их еще не отобразил).
Кнопка Домой делает текущим домашний каталог пользователя (который находится по адресу
/home/имя_пользователя).
Помимо Наутилуса существует много других файловых менеджеров. Например, в
графической оболочке KDE по умолчанию им является Konqueror.
Навигация и создание файлов
- графический режим
Файлы и папки можно создавать несколькими способами. Одним из них является
создание с помощью контекстного меню. Для этого необходимо щелкнуть в пустое место
текущего каталога правой кнопкой мыши и в контекстном меню выбрать пункт Создать папку
или Создать документ (в последнем случае появляется подменю, где выбирается тип
документа). После этого вводится имя объекта.
Если понадобится переименовать объект, то это можно сделать следующими
способами:
- выделить папку/файл, затем щелкнуть по нему левой кнопкой мыши (не путать с двойным
кликом, когда щелчки происходят быстро друг за другом);
- выделить папку/файл, затем нажать на клавиатуре клавишу F2;
- кликнуть папку/файл правой кнопкой мыши и в появившемся контекстном меню выбрать
пункт Переименовать.
После любого из этих трех действий следует ввести новое имя файла и нажать Enter.
- текстовый режим
В графическом режиме навигация (перемещение по дереву каталогов)
осуществляется с помощью файлового менеджера. В режиме командной оболочки - с помощью
специальных команд. Рассмотрим эти команды.
Команда cd (от «change directory»– изменить директорию) позволяет изменять
текущий каталог. В качестве параметра указывается адрес каталога.
Приведем пример смены каталога через абсолютную и относительную адресацию.
Например, если находиться в папке с полным именем /home/aleksey, то перейти в папку
/home/aleksey/music можно следующими двумя способами:
1. абсолютный адрес: cd /home/aleksey/music
2. относительный адрес: cd music
Относительный адрес может быть и более сложным. Например, если находиться в
папке /home/aleksey/music, то для того, чтобы перейти в папку, имеющую путевое имя
/home/aleksey/Desktop, следует дать такую команду:
cd ../Desktop
6
Как вы помните, две точки обозначают родительский каталог (т.е. каталог на
уровень выше).
Команда
cd
(/home/имя_пользователя).
без
параметров
перемещает
в
домашний
каталог
Новые директории создаются командой mkdir. Например, чтобы создать каталог
Work в текущей директории (по умолчанию ей является домашний каталог) необходимо
выполнить следующую команду:
mkdir ./Work
Существует несколько способов создания файлов. Один из них – это создание
пустого файла с помощью команды touch. В качестве параметров ей записываются путь и имя
файла. Второй способ – это перенаправление вывода какой-либо команды в файл. Пример:
cal > ./Work/January
Здесь команда cal выводит календарь на текущий месяц, а поскольку стоит знак «>»
(в данном случае обозначающий «направить результат выполнения команды в ...»), то вывод
команды будет записан в файл January, находящийся в папке Work.
Практическая работа № 1. Создание файлов и каталогов
Часть 1. Работа в графическом режиме
Задание. Создайте в своем домашнем каталоге следующую структуру.
_______________
Обозначения: эллипс – каталог, прямоугольник – файл.
Часть 2. Работа в текстовом режиме
Задание. Создайте в домашней директории определенную структуру файлов и каталогов,
7
следуя инструкционной карте.
Инструкционная карта «Создание файлов и каталогов в текстовом режиме»
№
Действия
Команды
1 Создайте каталог folder
mkdir адрес/имя
2 Перейдите в него
cd адрес/имя
3 Создайте в нем каталоги text и pictures
mkdir адрес/имя_1 адрес/имя_2
Перенаправте вывод команды date (дата) в
4 файл ./text/today
Перенаправте вывод команды cal (календарь)
5 в файл ./text/month
команда > адрес/имя
Создайте в каталоге pictures два графических touch адрес/имя_1 /адрес/имя_2
6 файла graphic.png и calendar.gif
Просмотрите содержимое каталогов folder,
7 text и pictures с помощью команды ls
ls адрес/имя_1 адрес/имя_2 адрес/имя_3
Вопросы
1. Почему файловую систему называют древовидной и иерархической?
2. Что такое файл?
3. Как обозначается корневой каталог в Linux? В каком каталоге по умолчанию содержатся
каталоги пользователей?
4. Что такое абсолютный адрес? относительный адрес? В каких случаях более уместно
употреблять относительный адрес?
5. Пользователь находится в каталоге /home/stepun/documents и ему надо перенаправить
вывод команды date в файл, который должен будет находиться по адресу
/home/stepun/Desktop. Какую команду (или несколько команд) необходимо выполнить,
чтобы решить эту задачу?
Выводы

Файлы представляют собой именованные места на диске для хранения данных. Структура
данных может быть различна.

Структура каталогов операционных систем устроена по иерархическому принципу и имеет
древовидную структуру.

Каждый объект файловой структуры имеет свой уникальный адрес, запись которого
начинается от корневого каталога и заканчивается искомым объектом (файлом или
каталогом). Переходить по структуре каталогов можно как с помощью указания абсолютных
адресов, так и относительных.

В операционных системах предусмотрены различные файловые менеджеры для просмотра и
8
управления структурой файлов и каталогов.

Помимо системных файлов и каталогов человек может создавать и собственные. Создавать
папки и файлы можно как в графическом режиме, так и с помощью командной оболочки в
текстовом режиме.
Урок 2. Изменение файловой структуры
План
Новый материал
Что еще можно делать с файлами?
Копирование, перемещение и удаление файлов
- графический режим
- текстовый режим
Практическая работа № 2. Изменение файловой структуры
Часть 1. Работа в графическом режиме
Часть 2. Работа в текстовом режиме
Вопросы
Выводы
Новый материал
Что еще можно делать с файлами?
С файлами и папками, помимо их создания, выделения и открытия можно совершать
и другие операции. А точнее, эти операции просто необходимы для полноценной работы
системы и пользователей.
Предположим такую ситуацию. Есть файл, содержащий текстовые данные.
Требуется создать еще один файл, содержащий те же данные за исключением небольших
изменений; при этом первый файл должен остаться без изменений. Это можно сделать
следующими способами:
– создать еще один файл и ввести туда данные от начала и до конца;
– создать копию первого файла, а затем внести туда необходимые изменения.
Не трудно сделать вывод, что второй способ позволит справиться с задачей намного
быстрее. Значит операционная система должна позволять копировать файлы.
Часто возникает необходимость просто переместить объект в другой каталог
9
файловой структуры. Например, мы создали файл на Рабочем столе, а затем решили его убрать
в свой домашний каталог.
Многие файлы со временем становятся ненужными, и поэтому в операционных
системах предусмотрена операция их удаления.
Копирование, перемещение и удаление файлов
- графический режим
Копировать, перемещать и удалять файлы можно несколькими способами (рис. 3): с
помощью комбинаций клавиш, контекстного меню и различными вариантами перетаскивания
мышью. Выбор того или иного способа зависит от ситуации и ваших предпочтений.
Рис 3. Способы операций с файлами в графическом режиме
и файлы.
Каталоги копируются, перемещаются и удаляются в графическом режиме так же, как
Опишем каждый способ копирования и перемещения в окне файлового менеджера
наподобие Наутилуса.
Операции с помощью контекстного меню:
а. щелкнуть файл (или предварительно выделенную группу файлов) правой кнопкой
мыши;
б. в появившемся контекстом меню выбрать (щелкнуть левой кнопкой мыши) команду
Копировать или Вырезать (последний вариант - в случае перемещения);
в. перейти в каталог, куда необходимо поместить файла или его копию (или остаться в
прежнем, если копия будет находиться в том же каталоге);
10
г. щелкнуть в пустое место области просмотра браузера правой кнопкой мыши;
д. в появившемся контекстом меню выбрать команду Вставить.
Операции с помощью комбинаций клавиш:
а. выделить файл(ы);
б. нажать на клавиатуре комбинацию клавиш (две клавиши сразу) Ctrl + C для
копирования или Ctrl + X для того, чтобы вырезать файл;
в. перейти в каталог, куда необходимо поместить файл или его копию (или остаться в
прежнем, если копия будет находиться в том же каталоге);
г. нажать комбинацию клавиш Ctrl + V.
Операции с помощью перетаскивания файла мышью:
Существуют несколько способов таких операций, которые зависят не только от ваших
предпочтений, но и от места, куда копируется или перемещается файл.
Если копирование осуществляется между разными разделами жесткого диска или с
дискеты на жесткий диск и т.д., то достаточно перетащить файл, зажав левую кнопку мыши.
Если копия помещается на тот же раздел диска, то перетаскивание левой кнопкой мыши
приведет не к копированию, а перемещению файла. Можно сформулировать такое правило:
перетаскивание с зажатой левой кнопкой мыши в пределах одного диска приводит к
перемещению, перетаскивание с одного на другой диск – к копированию.
Существует способ копирования, когда используется мышь и клавиатура одновременно
– перетаскивание при зажатой клавише Ctrl. Опишем его подробно:
а. зажать кнопку Ctrl (и не отпускать ее);
б. зажать левую кнопку над файлом (или предварительно выделенной группой файлов)
и, не отпуская ее, передвинуть курсор мыши в место назначения;
в. отпустить сначала кнопку мыши, а затем клавишу Ctrl.
Для удаления каталогов и файлов работают все те же три основных способа. Однако
чаще всего используют удаление с помощью клавиши Delete (сначала надо выделить файл, а
затем нажать Delete на клавиатуре). После удаления файл оказывается в каталоге Корзина,
представляющем собой область на диске, отведенную для временного хранения удаленных
файлов. (Обычно значок Корзины присутствует на Рабочем столе.) Если файл снова
понадобится или был удален ошибочно, то, зачастую, его можно восстановить (т.е. вернуть
обратно).
- текстовый режим
Для копирования файлов в оболочке используется команда cp (от «copy»–
копировать), при этом в качестве аргументов обязательно указываются
1. адрес и имя исходного файла,
11
2. адрес и имя создаваемой копии.
Адрес может быть как абсолютным, так и относительным. Если операции с файлами
выполняются в текущем (открытом каталоге), то адрес не указывается, а пишется только имя
исходного файла и имя копии. При этом следует помнить, что файлов с одинаковыми именами
и адресами не может быть, поэтому имя копии должно отличаться от имени исходного файла.
Рассмотрим несколько примеров.
cp readme readme2
В данном случае создается копия файла readme, которая остается в той же
директории под именем readme2.
cp /home/irina/tux.png /mnt/D/tux.png
Здесь копируется файл из домашнего каталога пользователя irina в каталог D,
используются абсолютные адреса. Имя копии в данном случае можно оставить прежним, т.к.
полные имена (адрес + имя) файлов различны.
cp ./list.sxw ./Desktop/list.sxw
Здесь происходит копирование файла из домашнего каталога на Рабочий стол
(Desktop). Используется относительная адресация (каталог Desktop является дочерним по
отношению к домашнему каталогу).
Чтобы скопировать каталог необходимо после команды cp прописать параметр r:
cp -r ./letters ./oldletters
Для перемещения и переименования в текстовом режиме Linux используется одна
команда – mv (от «move»– перемещать). Синтаксис команды аналогичен команде копирования,
а выбор того или иного действия (перемещения или переименования) зависит от аргументов.
При перемещении файл меняет свой адрес, следовательно, если в первом и втором аргументах
указаны различные адреса, то произойдет перемещение, если одинаковые (а различны только
имена) – переименование.
В случае перемещения во втором аргументе может быть указан только каталог
(перемещение без переименования), куда требуется переместить файл.
mv ./document.txt ./Work
mv ./document.txt ./Work/doc23.txt
Здесь в первом случае файл document.txt перемещается в каталог Work, а во-втором
случае одновременно происходит перемещение файла и его переименование: файл document.txt
перемещается в директорию Work и получает новое имя doc23.txt.
При использовании команды mv для переименования в качестве второго аргумента
указывается новое имя:
mv ./order.txt ./orderNew.txt
Для удаления каталогов используется команда rmdir. Удалять можно только пустые
12
каталоги, т. е. не содержащие файлов и поддиректорий (вложенных папок). Для удаления
файлов используется команда rm. Например:
rm ./file
Практическая работа № 2. Изменение файловой структуры
Часть 1. Работа в графическом режиме
Задание. Измените структуру папок и файлов, которую вы создали на прошлом
занятии таким образом, чтобы получилась структура, изображенная на схеме.
При
это
м
фай
л
char
t.pn
g
явл
яетс
я
копией файла graph.png;
- файл tab_old.sxc является переименованным файлом table.sxc;
- файл tab_new.sxc является копией файла tab_old.sxc.
Часть 2. Работа в текстовом режиме
Задание. Измените структуру каталогов и файлов, созданную на прошлом занятии,
следуя следующей инструкционной карте.
Инструкционная карта “Изменение файловой структуры”
№
Действия
Команды
1.
Перейдите в каталог folder
cd адрес/имя
2.
Создайте копию каталога text c именем
yesterday.
cp -r адрес/имя адрес/имя_копии
3.
Переместите файл calendar.gif из каталога
pictures в каталог yesterday.
mv адрес/имя_файла адрес/имя_папки
4.
Также переместите файл graphic.png
13
5.
Удалите каталог pictures
rmdir адрес/имя
6.
Измените имя каталога folder на dates.
mv адрес/имя адрес/новое_имя
7.
Просмотрите содержимое каталогов dates ls адрес/имя_1 адрес/имя_2
и yesterday.
Вопросы
1. Перечислите возможные операции с файлами и папками. Обоснуйте необходимость
каждой.
2. Какие существуют способы копирования и перемещения файлов в графическом режиме?
3. Какая комбинация клавиш используется для копирования файла? вырезания и вставки
файла?
4. Как удалить файл? Для чего в операционных системах предусмотрен каталог Корзина?
5. В каком из приведенных ниже примерах происходит перемещение файла? его
переименование? одновременно оба действия?
а) mv ./work/tech/comp.png ./work/tech/my_car.png
б) mv ./work/tech/comp.png ./Desktop
в) mv ./work/tech/comp.png ./work/tech/computer.png
Выводы



В операционной системе файлы и каталоги можно не только создавать, но и копировать,
перемещать, переименовывать и удалять. Следовательно, файловая структура не является
постоянной, а зависит от потребностей человека и операционной системы.
Выполнять операции с файлами в графическом режиме можно различными способами: с
помощью комбинаций клавиш, вызова контекстного меню, с помощью перетаскивания
мышью.
При копирование и перемещение файлов обязательно должны быть указаны места откуда и
куда копируется/перемещается файл. Для этого в графическом режиме делается текущим
сначала каталог, где находится файл, а затем каталог, куда файл копируется/перемещается. В
режиме командной оболочки исходный адрес и адрес места назначения указываются
последовательно после команды копирования/перемещения.
14
Урок 3. Ссылки
План
Новый материал
Что такое индексный дескриптор?
Какие ссылки бывают жесткими?
Сколько имен у файла?
В чем "мягкость" мягких ссылок?
Ссылка – это не копия!
Создание ссылок
Практическая работа № 3. Особенности жестких и символьных ссылок
Вопросы
Выводы
Новый материал
Что такое индексный дескриптор?
Мы знаем, что файл – это область данных на диске, которую можно найти по имени.
Однако в операционных системах на базе ядра Linux вся информация о файле привязана не к
имени, а так называемому индексному дескриптору. У каждого файла есть свой уникальный
(единственный и неповторимый) индексный дескриптор, который содержит сведения о файле: в
каких блоках диска хранится содержимое файла, размер файла, время его создания и др.
Пронумерованные индексные дескрипторы файлов содержатся в специальной
таблице. Каждый логический и физический диск имеет собственную таблицу индексных
дескрипторов.
Именно номер индексного дескриптора является истинным именем файла в
системе.
Какие ссылки бывают жесткими?
15
Поскольку индексные дескрипторы представляют собой номера, а файлов в
операционной системе обычно очень много, то искать файл по номеру его дескриптора очень
неудобно: человеку работать с осмысленными словами куда удобнее, чем с огромными
числами. Поэтому любому файлу в системе обычно дается осмысленное имя (обычно
словесное), которое не содержит информации о файле, а лишь указывает (ссылается) на его
дескриптор.
Имя файла, ссылающееся на его индексный дескриптор, называется жесткой
ссылкой. Механизм жестких ссылок – это основной способ обращаться к файлу по имени в
операционных системах, основанных на ядре Linux.
Сколько имен у файла?
Файл в системе идентифицирует (определяет) номер его индексного дескриптора, а
имя файла содержит лишь указатель на него. Естественно, что таких указателей можно создать
множество, хотя все они будут направлять на один объект. Для образного сравнения, можно
представить придорожные указатели на какую-нибудь бензоколонку: их много, они находятся в
разных местах трассы, но указывают на одну и туже точку. Другими словами, у файла в Linux
может быть несколько имен.
Но почему бывает недостаточно одного имени файла? Все дело в удобстве доступа
(а также предоставлении доступа).
Например, человек работает над проектом и постоянно обращается к файлу,
местоположение которого предусмотрено во вложенном каталоге. Чтобы открыть этот файл в
графическом режиме, придется по крайней мере открыть последовательно два каталога. Но
куда удобнее будет поместить еще одно имя файла на Desktop (Рабочий стол).
Или предположим такую ситуацию. Администратор системы (человек,
управляющий операционной системой) в одном каталоге создал файл, доступ к которому
должен быть обеспечен и рядовому пользователю. Однако открывать этот каталог пользователь
не имеет права, а переместить файл в каталог пользователя тоже нельзя, т.к он необходим и в
данном каталоге. В такой ситуации единственным выходом будет создать еще одну жесткую
ссылку на файл и поместить ее в каталог пользователя.
Также, из механизма жестких ссылок вытекает и следующее утверждение: удаление
одной жесткой ссылки на файл не приводит к его удалению их системы при наличии у него
других жестких ссылок (имен). И это понятно, если учесть, что все жесткие ссылки равны
между собой, независимо от времени создания, местонахождения в структуре каталогов и др.
Файл будет доступен системе, пока будет существовать хоть одна жесткая ссылка на него. В
случае удаления всех ссылок, файл удалится из системы, т.к. станет просто недоступен ей.
В чем "мягкость" мягких ссылок?
Несмотря на всю прелесть жестких ссылок, у них есть и ограничения: их можно
создавать только на файлы, но не на каталоги. Также жесткую ссылку нельзя создать с одного
диска на другой. Последнее означает, что нельзя создать жесткую ссылку на файл
находящийся, например, на съемном носителе (дискеты, флэш-память, CD-R и др.) или другом
разделе жесткого диска.
В такой ситуации на помощь приходят мягкие ссылки. Часто их также называют
символьными ссылками. Они представляют собой файлы, указывающие не на индексные
дескрипторы, а на имена файлов.
Следует понимать, что понятия жесткой и мягкой ссылки, несмотря на их
созвучность, различны по сути. Жесткая ссылка указывает непосредственно на индексный
16
дескриптор, а мягкая указывает на жесткую ссылку. Если удалить все жесткие ссылки файла, то
ни одна мягкая ссылка «не сработает».
Рис. 4. Связь индексного
дескриптора, имен и символьных ссылок
На рисунке 4 изображена односторонняя связь между символьными ссылками и
именами файла, а также между именами и индексным дескриптором. Верхний квадрат
соответствует индексному дескриптору файла, квадраты со скругленными углами – именам
файла, а круги – символьным ссылкам. Индексный дескриптор файла всегда один, а имен
может быть множество. Также может существовать неограниченное количество символьных
ссылок на каждое имя файла. При удалении жесткой ссылки, на имя которой имелась мягкая
ссылка, последняя не наследует связь с дескриптором и утрачивает свою "работоспособность".
Если в данном примере (рис. 4) удалить жесткую ссылку с именем logotip, то файлы pic1 и tux
станут бесполезны, т.к. открыть файл 555795 с их помощью уже будет нельзя. Такие ссылки
часто называют “битыми”.
Ссылка – это не копия!
Кому-то может показаться, что копирование файлов и создание ссылок почти одно и
то же, т.к. в итоге получаются два файла. Однако это абсолютно разные операции, приводящие
к совершенно разным результатам.
При копировании файла создается новый файл, данные которого записываются в
свободное место на диске и который имеет собственный индексный дескриптор. В случае же
создания жесткой ссылки, файл по-прежнему остается в единственном числе, появляется лишь
дополнительный указатель на него.
Практически это имеет следующие последствия. При внесении изменений в файл,
обращение к которому было под одним именем, эти изменения обнаружатся и тогда, когда
обращение к файлу произойдет под другим именем. При создании копии файла и последующем
изменении данных этой копии, данные первоначального файла не изменятся.
В случае мягких ссылок, хоть и создается новый файл (с собственным индексным
дескриптором), но он не содержит данных файла-оригинала, а лишь ссылается на жесткую
ссылку.
17
Создание ссылок
В графической среде GNOME создать символьную ссылку достаточно просто. Для
этого необходимо щелкнуть по файлу (или каталогу) правой кнопкой мыши и в контекстном
меню выбрать пункт Создать ссылку. Далее ссылку можно переместить куда угодно, она
сохранит свою работоспособность в любом каталоге.
В командной оболочке для того, чтобы добавить файлу еще одно имя (создать еще
одну жесткую ссылку на файл) необходимо выполнить команду ln (от «link» - соединять,
связывать). В качестве первого параметра указывается существующее имя файла, второго - имя
новой ссылки.
ln list l_class
В данном случае, в текущем каталоге была создана еще одна жесткая ссылка на файл
с именем list. Созданная ссылка находится в том же каталоге, что и первая. Далее можно
переместить ссылку в другой каталог при помощи команды mv.
Можно сразу указать место назначения ссылки с помощью адреса. Например:
ln list ./Desktop/l_class
ln /root/list /home/vasy/Desktop/l_class
В последнем варианте указаны полные имена исходного и нового имен файла.
Число жестких ссылок на файл (т. е. разных имен файла) можно узнать, выполнив
команду ls с параметром -l, которая построчно выводит на экран сведения о каждом файле
каталога. В данном примере в одной из строк будет содержаться примерно следующая
информация:
-rw-rw-r-- 2 alex alex 83 Май 3 16:45 list
Сразу за перечислением прав доступа (-rw-rw-r--) к файлу следует число, которое и
обозначает количество жестких ссылок на файл. В данном случае их две. Если попытаться
получить информацию о второй жесткой ссылке (l_class), она будет точно такой же.
Символьную ссылку можно создать при помощи команды ln с параметром "-s" (от
«symbolic»). В качестве первого параметра пишется абсолютный адрес и имя исходного файла,
в качестве второго – адрес и имя мягкой ссылки. Например:
ln -s /home/alex/HelloW/code.c ./Desktop/code.c
Если теперь выполнить команду ls -l ./Desktop, то среди прочего можно увидеть
строку такого типа:
lrwxrwxrwx 1 alex alex 15 Май 3 15:18 code.c -> /home/alex/HelloW/code.c
Маркированная часть строки в данном случае показывает, что файл code.c является
символьной ссылкой на файл /home/sveta/HelloW/code.c
В отличие от жестких ссылок символьные ссылки можно создавать и на каталоги.
Например:
ln -s /media/w_save/working/entries ./Desktop
После выполнения этой команды на рабочем столе пользователя появится ссылка на
18
каталог расположенный по адресу /media/w_save/working/entries.
Практическая работа № 3. Особенности жестких и символьных ссылок
Задание. Выполните действия и ответьте на вопросы согласно инструкционной карте.
Инструкционная карта «Особенности жестких и символьных ссылок»
№
Действия
Команды
1.
Создайте на Desktop'е еще одно имя
файла month, находящегося по адресу
./dates/yesterday/. Имя новой ссылки
month2.
ln адрес/имя_файла адрес/имя_ссылки
2.
Выведите список файлов каталогов
yesterday и Desktop.
ls –li адрес/каталог1 адрес/каталог2
3.
Сравните размер, время создания жестких ссылок month и month2, сравните индексные
дескрипторы файлов (первый номер в строке), на которые они ссылаются. Объясните
причины совпадения или различия.
4.
На Desktop'е создайте символьную ссылку ln –s абсолютный_адрес/имя адрес/имя_ссылки
на файл month и назовите ее month3.
5.
Выведите список файлов каталога
Desktop.
6.
Сравните размер, время создания файлов month2 и month3, сравните индексные
дескрипторы файлов, на которые они ссылаются. Объясните причины совпадения или
различия показателей.
7.
Скопируйте файл month2, имя копии month4
сp адрес/имя адрес/имя_копии
8.
Откройте файл month4 в редакторе vi
vi адрес/имя
9.
Перейдите в режим редактирования.
Клавиша Insert
10.
Внесите любые изменения в данные
файла (например, допишите какое-нибудь
слово).
11.
Вернитесь в командный режим редактора Клавиша Esc
vi.
12.
Сохраните изменения
:w (затем клавиша Enter)
13.
Закройте редактор vi
:q (затем клавиша Enter)
14.
Откройте файл month2 в редакторе vi
vi адрес/имя
15.
Содержит ли файл month2, изменения внесенные в файл month4? Объясните причину
увиденного. Закройте редактор.
16.
Повторите п. 6 – 11, но уже для файла month3. Откройте файл month2. Ответьте на
вопрос п. 15.
17.
Нарисуйте для данного случая схему связи ссылок и файла, аналогичную рисунку 4 (см.
лекцию).
ls –li адрес/каталога
Вопросы
1. Какие сведения могут храниться в индексном дескрипторе файла?
19
2. Каковы причины назначения файлам имен?
3. Перечислите отличия жестких и мягких ссылок.
4. В каком случае мягкая ссылка становится “битой”?
5. В чем отличие создания дополнительной ссылки на файл от его копирования?
6. С помощью какой команды создаются ссылки?
Выводы

Вся существенная информация о файле привязана к его индексному дескриптору, который
представляет собой номер.

Обратиться к файлу можно по его имени связанному с индексным дескриптором.
Количество имен не ограничено. Файл останется доступен операционной системе до тех пор,
пока не будут удалены все его имена.

Символьная (мягкая) ссылка – это особый тип файла, ссылающийся на жесткую ссылку. В
случае удаления последней мягкая ссылка становится бесполезной.
20
Download