Материал: os_7

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Лабораторная работа 7. Тема «Файловые системы ос Linux».

1. Ознакомиться с теоретическими сведениями.

2. После загрузки ОС Linux и запроса имени ввести имя и пароль пользователя.

3. По окончании загрузки ОС запустить терминал.

4. Знать команды, приведенные в предыдущем пункте. Привести пример работы команд, выбранных преподавателем (3 действия).

ls, pwd, cat, man, cd, mkdir, mv, cp, ln, cat ls –s, ls –i, rm, rmdir, chmod u=rwx g=rwx o=rwx,

df –h, du –s –u /directory, free –m, top, htop, iftop, uname –a (sys info), lsb_release,

adduser newuser, passwd newuser

5. Создать файл с информацией общего плана о вашей системе, включая

информацию о дисках и их разметки.

6. Создать в домашнем каталоге следующую структуру подкаталогов (существующие каталоги не удалять!):

7. Скопировать файл /etc/group в каталоги 1, 2, 3 и 4 используя абсолютные имена копируемого файла и каталога назначения.

8. С помощью утилиты file вывести на экран сведения о 3 - 4 различных файлах (в том числе из каталогов /bin и /dev).

9. Выполнить команду ls –l /dev используя таблицу обозначений типов файлов, перечислить типы файлов, хранящихся в каталоге /dev.

10.

11. Используя справочную систему, ознакомиться с ключами утилиты ls -R,-1 (единица), -m,

--color, ключи, определяющие порядок вывода.

12. Создать жесткую и символическую ссылки для одного из созданных в п.2 файлов.

Получить информацию о разделе, расположенном на устройстве /dev/sda1 с использованием dumpe2fs

Вывести информацию об операциях чтения/записи, а также общей

статистики

Вывести значения системных счетчиков с помощью команды sar:

Показать параметры ядра с помощью команды sysctl

Отобразить информацию, хранящуюся в inode с помощью команды stat

Проверить с помощью команды filefrag фрагментацию файла.

Контрольные вопросы

  1. Типы файлов ос Linux

Данные, хранящиеся на любом носителе, образуют файл Linux. Более того, многие устройства, подключенные к компьютеру (начиная с клавиатуры и заканчивая любыми внешними устройствами), Linux представляет как файлы (так называемые специальные файлы). В Linux определено несколько различных типов файлов. В основном пользователь имеет дело с файлами трех типов: обычными файлами, предназначенными для хранения данных, каталогами и файлами-ссылками.

  1. Назначение утилиты file.

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

  1. Структура дерева каталогов ос Linux.

Структуру файловой системы можно представить наглядно в виде дерева, "корнем" которого является корневой каталог, а в вершинах расположены все остальные каталоги. На рис. 1 изображено дерево каталогов, курсивом обозначены имена файлов, прямым начертанием - имена каталогов.

В любой файловой системе Linux всегда есть только один корневой каталог, который называется "/"

  1. Отличия структуры файловых систем ос Windows и Linux.

Пользователь Linux всегда работает с единым деревом каталогов, даже если разные данные расположены на разных носителях: жестких или сетевых дисках, съемных дисках, CD-ROM и т. п. Такое представление отличается от технологии, применяемой в Windows, где для каждого устройства, на котором есть файловая система, используется свой корневой каталог, обозначенный литерой, например "a", "c", "d" и т. д. Для того чтобы отключать и подключать файловые системы на разных устройствах в состав одного общего дерева, используются процедуры монтирования и размонтирования. После того, как файловые системы на разных носителях подключены к общему дереву, содержащиеся на них данные доступны так, как если бы все они составляли единую файловую систему: пользователь может даже не знать, на каком устройстве какие файлы хранятся.

  1. В чем отличие каталогов /var и /tmp.

/tmp --- Этот каталог предназначен для временных файлов: в таких файлах программы хранят необходимые для работы промежуточные данные. После завершения работы программы временные файлы теряют смысл и должны быть удалены. Обычно каталог /tmp очищается при каждой загрузке системы.

/var Название этого каталога - сокращение от "variable" ("переменные" данные). Здесь размещаются те данные, которые создаются в процессе работы разными программами и предназначены для передачи другим программам и системам (очереди печати, электронной почты и др.) или для сведения системного администратора (системные журналы, содержащие протоколы работы системы).

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

  1. Назначение утилиты pwd.

Команда pwd (print working directory) возвращает полный путь текущего каталога командной оболочки - естественно, именно той командной оболочки, при помощи которой была выполнена команда pwd.

  1. Назначение утилиты cat.

Почти все утилиты по умолчанию читают и создают файлы в текущем каталоге. Например, утилита cat (concatenation – конкатенация) - выводит на экран содержимое файла "text": [student@localhost student]$ cat text

В действительности, командная оболочка, прежде чем передавать параметр "text" (имя файла) утилите cat, подставляет значение текущего каталога - получается полный путь к этому файлу в файловой системе: "/home/student/text". Содержимое данного файла утилита cat выведет на экран.

  1. Назначение утилиты ls. Использование ключей –f, -a.

Чтобы иметь возможность ориентироваться в файловой системе, нужно знать, что содержится в каждом каталоге. Просмотреть содержимое любого каталога можно при помощи утилиты ls (сокращение от англ. "list" - "список"): Команда ls без параметров выводит список файлов и каталогов, содержащихся в текущем каталоге.

Утилита ls принимает один параметр - имя каталога, содержимое которого нужно вывести. Имя может быть задано любым доступным способом: в виде полного или относительного пути.

Ключ –F используется, чтобы отличать файлы от каталогов. При наличии этого ключа ls в конце имени каждого каталога ставит символ "/", чтобы показать, что в нем может содержаться что-то еще

Для того чтобы посмотреть полный список содержимого каталога, и используется ключ "-a" (all)

  1. Утилита mkdir.

В домашнем каталоге, как и в любом другом, можно создавать сколько угодно подкаталогов, в них - свои подкаталоги и т. д. Иными словами, пользователю принадлежит фрагмент (поддерево) файловой системы, корнем которого является его домашний каталог. Чтобы организовать такое поддерево, потребуется создать каталоги внутри домашнего. Для этого используется утилита mkdir. Она применяется с одним обязательным параметром: именем создаваемого каталога. По умолчанию каталог будет создан в текущем каталоге.

  1. Утилиты копирования и перемещения файлов.

Для перемещения файлов и каталогов предназначена утилита mv (от англ. "move" - "перемещать"). У mv два обязательных параметра: первый - перемещаемый файл или каталог, второй - файл или каталог назначения. Имена файлов и каталогов могут быть заданы в любом допустимом виде: при помощи полного или относительного пути. Кроме того, mv позволяет перемещать не только один файл или каталог, а сразу несколько. За подробностями о допустимых параметрах и ключах следует обратиться к руководству по mv:

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

Иногда требуется создать копию файла: для большей сохранности данных, для того, чтобы создать модифицированную версию файла и т. п. В Linux для этого предназначена утилита cp (от англ. "copy" - "копировать").

Утилита cp требует использования двух обязательных параметров: первый - копируемый файл или каталог, второй - файл или каталог назначения. Как обычно, в именах файлов и каталогов можно использовать полные и относительные пути. Существует несколько вариантов комбинации файлов и каталогов в параметрах cp - о них можно прочесть в руководстве. Нужно иметь в виду, что в Linux утилита cp нередко настроена таким образом, что при попытке скопировать файл поверх уже существующего файла никакого предупреждения не выводится. В этом случае файл будет просто перезаписан, а данные, которые содержались в старой версии файла, безвозвратно потеряны. Поэтому при использовании cp следует всегда быть внимательным и проверять имена файлов, которые нужно скопировать.

Созданная при помощи cp копия файла связана с оригиналом только в воспоминаниях пользователя, в файловой же системе исходный файл и его копия - две совершенно независимые и ничем не связанные единицы. Поэтому при наличии нескольких копий одного и того же файла в рамках одной файловой системы повышается вероятность запутаться в копиях или забыть о некоторых из них. Если задача состоит в том, чтобы обеспечить доступ к одному и тому же файлу из разных точек файловой системы, нужно использовать специально предназначенный для этого механизм файловой системы Linux - ссылки.

  1. Жесткие ссылки: назначение и создание.

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

Пользователь Linux может добавить файлу еще одно имя (создать еще одну жесткую ссылку на файл) при помощи утилиты ln (от англ. "link" - "соединять, связывать"). Первый параметр - это имя файла, на который нужно создать ссылку, второй - имя новой ссылки. По умолчанию ссылка будет создана в текущем каталоге:

Пример 2. Создание жестких ссылок

[student@localhost ~]$ ln text text-hardlink

В примере 2 в домашнем каталоге пользователя student создана жесткая ссылка с именем "text-hardlink" на файл "text". Если вывести подробный список файлов текущего каталога и его подкаталогов ("ls -lR"), то у файлов "text" и "text-hardlink" совпадут и размер, и время создания. Теперь "text-hardlink" и "text" - это два имени одного и того же файла.

Доступ к одному и тому же файлу при помощи нескольких имен может понадобиться в следующих случаях:

  • Одна и та же программа известна под несколькими именами.

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

  • Современные файловые системы даже на домашних персональных компьютерах могут насчитывать до нескольких десятков тысяч файлов и тысячи каталогов. Обычно у таких файловых систем сложная многоуровневая иерархическая организация - в результате пути ко многим файлам становятся очень длинными. Чтобы организовать более удобный доступ к файлу, который находится очень "глубоко" в иерархии каталогов, также можно использовать жесткую ссылку в более доступном каталоге.

  • Полное имя некоторых программ может быть весьма длинным (например, i586-alt-linux-gcc-3.3), к таким программам удобнее обращаться при помощи сокращенного имени (жесткой ссылки) - gcc-3.3.

  1. Cоздание файлов.

Для создания пустого файла с текущим временем создания служит команда touch имя_нового_файла. Для указания даты создания в формате ГГГГММДДhhmm используется ключ –t. Например

touch –t 0904080000 tst файл создан 8 апреля 2009 г.

  1. Символьные ссылки.

У жестких ссылок есть два существенных ограничения:

Жесткая ссылка может указывать только на файл, но не на каталог, потому что в противном случае в файловой системе могут возникнуть циклы - бесконечные пути.

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

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

Cимвольная ссылка (symbolic link, файл-ссылка) - это файл особого типа ("l"), в котором содержится путь к другому файлу. Если на пути к файлу встречается cимвольная ссылка, система выполняет подстановку: исходный путь заменяется тем, что содержится в ссылке.