Практическая работа № 20. Практическая работа 20. Работа с файловыми системами и дисками в Linux
Скачать 18.19 Kb.
|
Практическая работа № 20. Работа с файловыми системами и дисками в Linux. 1. Цель работы Целью работы является изучение структуры файловой системы OC LINUX, изучение команд создания, удаления, модификации файлов и каталогов, функций манипулирования данными. 2. Теоретическая часть 2.1. Файловая структура системы LINUX В операционной системе LINUX файлами считаются обычные файлы, каталоги, а также специальные файлы, соответствующие периферийным устройствам (каждое устройство представляется в виде файла). Доступ ко всем файлам однотипный, в том числе, и к файлам периферийных устройств. Такой подход обеспечивает независимость программы пользователя от особенностей ввода/вывода на конкретное внешнее устройство. Файловая структура LINUX имеет иерархическую древовидную структуру. В корневом каталоге размещаются другие каталоги и файлы, включая 5 основных каталогов: bin - большинство выполняемых командных программ и shell - процедур; tmp - временные файлы; usr - каталоги пользователей (условное обозначение); etc - преимущественно административные утилиты и файлы; dev - специальные файлы, представляющие периферийные устройства; при добавлении периферийного устройства в каталог /dev должен быть добавлен соответствующий файл (черта / означает принадлежность корневому каталогу). Текущий каталог - это каталог, в котором в данный момент находится пользователь. При наличии прав доступа, пользователь может перейти после входа в систему в другой каталог. Текущий каталог обозначается точкой (.); родительский каталог, которому принадлежит текущий, обозначается двумя точками (..). Полное имя файла может включать имена каталогов, включая корневой, разделенных косой чертой, например: /home/student/file.txt. Первая косая черта обозначает корневой каталог, и поиск файла будет начинаться с него, а затем в каталоге home, затем в каталоге student. Один файл можно сделать принадлежащим нескольким каталогам. Для этого используется команда ln (link): ln <имя файла 1> <имя файла 2> Имя 1-го файла - это полное составное имя файла, с которым устанавливается связь; имя 2-го файла - это полное имя файла в новом каталоге, где будет использоваться эта связь. Новое имя может не отличаться от старого. Каждый файл может иметь несколько связей, т.е. он может использоваться в разных каталогах под разными именами. Команда ln с аргументом -s создает символическую связь: ln -s <имя файла 1> <имя файла 2> Здесь имя 2-го файла является именем символической связи. Символическая связь является особым видом файла, в котором хранится имя файла, на который символическая связь ссылается. LINUX работает с символической связью не так, как с обычным файлом - например, при выводе на экран содержимого символической связи появятся данные файла, на который эта символическая связь ссылается. В LINUX различаются 3 уровня доступа к файлам и каталогам: 1) доступ владельца файла; 2) доступ группы пользователей, к которой принадлежит владелец файла; 3) остальные пользователи. Для каждого уровня существуют свои байты атрибутов, значение которых расшифровывается следующим образом: r – разрешение на чтение; w – разрешение на запись; x – разрешение на выполнение; - – отсутствие разрешения. Первый символ байта атрибутов определяет тип файла и может интерпретироваться со следующими значениями: - – обычный файл; d – каталог; l – символическая связь; в – блок-ориентированный специальный файл, который соответствует таким периферийным устройствам, как накопители на магнитных дисках; с – байт-ориентированный специальный файл, который может соответствовать таким периферийным устройствам как принтер, терминал. В домашнем каталоге пользователь имеет полный доступ к файлам (READ, WRITE, EXECUTE; r, w, x). Атрибуты файла можно просмотреть командой ls -l и они представляются в следующем формате: d rwx rwx rwx | | | | | | | | Доступ для остальных пользователей | | | Доступ к файлу для членов группы | | Доступ к файлу владельца | Тип файла (директория) Пример. Командой ls -l получим листинг содержимого текущей директории student: - rwx --- --- 2 student 100 Mar 10 10:30 file_1 - rwx --- r-- 1 adm 200 May 20 11:15 file_2 - rwx --- r-- 1 student 100 May 20 12:50 file_3 После байтов атрибутов на экран выводится следующая информация о файле: - число связей файла; - имя владельца файла; - размер файла в байтах; - дата создания файла (или модификации); - время; - имя файла. Атрибуты файла и доступ к нему, можно изменить командой: chmod <коды защиты> <имя файла> Коды защиты могут быть заданы в числовом или символьном виде. Для символьного кода используются: знак плюс (+) - добавить права доступа; знак минус (-) - отменить права доступа; r,w,x - доступ на чтение, запись, выполнение; u,g,o - владельца, группы, остальных. Коды защиты в числовом виде могут быть заданы в восьмеричной форме. Для контроля установленного доступа к своему файлу после каждого изменения кода защиты нужно проверять свои действия с помощью команды ls -l. Примеры: chmod g+rw,o+r file.1 - установка атрибутов чтения и записи для группы и чтения для всех остальных пользователей; ls -l file.1 - чтение атрибутов файла; chmod o-w file.1 - отмена атрибута записи у остальных пользователей; >letter - создание файла letter. Символ > используется как для переадресации, так и для создания файла; cat - вывод содержимого файла; cat file.1 file.2 > file.12 - конкатенация файлов (объединение); mv file.1 file.2 - переименование файла file.1 в file.2; mv file.1 file.2 file.3 directory - перемещение файлов file.1, file.2, file.3 в указанную директорию; rm file.1 file.2 file.3 - удаление файлов file.1, file.2, file.3;. cp file.1 file.2 - копирование файла с переименованием; mkdir namedir - создание каталога; rm dir_1 dir_2 - удаление каталогов dir_1 dir_2; ls [acdfgilqrstv CFR] namedir - вывод содержимого каталога; если в качестве namedir указано имя файла, то выдается вся информация об этом файле. Значения аргументов: - l –- список включает всю информацию о файлах; - t – сортировка по времени модификации файлов; - a – в список включаются все файлы, в том числе и те, которые начинаются с точки; - s – размеры файлов указываются в блоках; - d – вывести имя самого каталога, но не содержимое; - r – сортировка строк вывода; - i – указать идентификационный номер каждого файла; - v – сортировка файлов по времени последнего доступа; - q – непечатаемые символы заменить на знак ?; - с – использовать время создания файла при сортировке; - g – то же что -l, но с указанием имени группы пользователей; - f – вывод содержимого всех указанных каталогов, отменяет флаги -l, -t, -s, -r и активизирует флаг -а; - С – вывод элементов каталога в несколько столбцов; - F – добавление к имени каталога символа / и символа * к имени файла, для которых разрешено выполнение; - R – рекурсивный вывод содержимого подкаталогов заданного каталога. cd pwd - вывод имени текущего каталога; grep [-vcilns] [шаблон поиска] <имя файла> - поиск файлов с указанием или без указания контекста (шаблона поиска). Значение ключей: - v – выводятся строки, не содержащие шаблон поиска; - c – выводится только число строк, содержащих или не содержащих шаблон; - i – при поиске не различаются прописные и строчные буквы; - l – выводятся только имена файлов, содержащие указанный шаблон; - n – перенумеровать выводимые строки; - s – формируется только код завершения. Примеры. 1. Напечатать имена всех файлов текущего каталога, содержащих последовательность "student" и имеющих расширение .txt: grep -l student *.txt 2. Определить имя пользователя, входящего в ОС LINUX с терминала tty23: who | grep tty23 3. Порядок выполнения работы 1. Ознакомиться с файловой структурой ОС LINUX. Изучить команды работы с файлами. 2. Используя команды ОС LINUX, создать два текстовых файла. 3. Полученные файлы объединить в один файл и его содержимое просмотреть на экране. 4. Создать новую директорию и переместить в нее полученные файлы. 5. Вывести полную информацию обо всех файлах и проанализировать уровни доступа. 6. Добавить для всех трех файлов право выполнения членам группы и остальным пользователям. 7. Просмотреть атрибуты файлов. 8. Создать еще один каталог. 9. Установить дополнительную связь объединенного файла с новым каталогом, но под другим именем. 10. Создать символическую связь. 11. Сделать текущим новый каталог и вывести на экран расширенный список информации о его файлах. 12. Произвести поиск заданной последовательности символов в файлах текущей директории и получить перечень соответствующих файлов. 13. Получить информацию об активных процессах и имена других пользователей. 14. Сдать отчет о работе и удалить свои файлы и каталоги. 15. Выйти из системы. 4. Контрольные вопросы 1. Что считается файлами в OC LINUX? 2. Объясните назначение связей с файлами и способы их создания. 3. Что определяет атрибуты файлов и каким образом их можно просмотреть и изменить? 4. Какие методы создания и удаления файлов, каталогов Вы знаете? 5. В чем заключается поиск по шаблону? 6. Какой командой можно получить список работающих пользователей и сохранить его в файле? |