Главная страница
Навигация по странице:

  • 1 КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ Файл

  • Система файлов: каталоги

  • Допустимые имена файлов и каталогов Linux всегда различает

  • 1.2 Размещение компонентов системы: стандарт FHS

  • Пример 1. Стандартные каталоги в / . Использование утилиты ls

  • Hierarchy Standard

  • 1.3 Текущий каталог Каждая выполняемая программа "работает" в строго определенном каталоге файловой системы. Такой каталог называется текущим каталогом .

  • 1.4 Домашний каталог В Linux у каждого пользователя обязательно есть собственный каталог

  • 1.5 Информация о содержимом каталога – утилита ls

  • ЛБ6 Файловые системы ОС Linux (2). Лабораторная работа 6 файловые системы ос linux


    Скачать 409.99 Kb.
    НазваниеЛабораторная работа 6 файловые системы ос linux
    Дата13.11.2022
    Размер409.99 Kb.
    Формат файлаpdf
    Имя файлаЛБ6 Файловые системы ОС Linux (2).pdf
    ТипЛабораторная работа
    #786676
    страница1 из 3
      1   2   3


    1
    ЛАБОРАТОРНАЯ РАБОТА №6 ФАЙЛОВЫЕ СИСТЕМЫ ОС LINUX
    Цель работы – практическое знакомство с организацией данных основной файловой системы ОС Linux и используемыми утилитами.
    1 КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
    Файл
    Данные, хранящиеся на любом носителе, образуют файл Linux.
    Более того, многие устройства, подключенные к компьютеру (начиная с клавиатуры и заканчивая любыми внешними устройствами), Linux представляет как файлы (так называемые специальные файлы). В Linux определено несколько различных типов файлов. В основном пользователь имеет дело с файлами трех типов: обычными файлами, предназначенными для хранения данных, каталогами и файлами-ссылками.
    Система файлов: каталоги
    Файловая система имеет иерархическую структуру. Linux может работать с различными типами файловых систем. В этой работе будут описаны возможности файловой системы Ext3fs. В файловой системe
    Ext3fs каждый каталог - это отдельный файл особого типа ("d", от англ.
    "directory"), отличающийся от обычного файлас данными: в нем могут содержаться только ссылки на другие файлыикаталоги.
    Допустимые имена файлов и каталогов
    Linux всегда различает заглавные и строчные буквы в именах файлов и каталогов, поэтому "student", "Student" и "STUDENT" будут тремя разными именами.
    Есть несколько символов, допустимых в именах файлов и каталогов, которые нужно использовать с осторожностью. Это спецсимволы "*", "\",
    "&", "<", ">", ";", "(", ")", "|", а также символы пробела и табуляции.
    Кодировки и раcширения
    В Linux в именах файлов и каталогов допустимо использовать не только символы латинского алфавита, но и любые символы любого языка.
    В файловой системеLinux нет никаких предписаний по поводу расширения: в имени файла может быть любое количество точек (в том числе ни одной), а после последней точки может стоять любое количество символов. Хотя расширения не обязательны, они широко используются: расширение позволяет программе, не открывая файл, только по его имени определить, какого типа данные в нем содержатся. Определить тип содержимого файла можно и на основании самих данных (сигнатур).
    Многие форматы предусматривают указание в начале файла, как следует интерпретировать дальнейшую информацию.

    2
    В Linux есть утилита file, которая предназначена для определения типа содержащихся в файле данных. Эта утилита никогда не доверяет расширению файла (если оно присутствует), а анализирует сами данные. file различает не только разные данные, но и разные типы файлов.
    1.1 Дерево каталогов
    В большинстве современных файловых систем используется иерархическая модель организации данных: существует один каталог, объединяющий все данные в файловой системе - это "корень" всей
    файловой системы, корневой каталог. Корневой каталог может содержать любые объекты файловой системы, и в частности, подкаталоги.
    Подкаталоги также могут содержать любые объекты файловой системы и
    подкаталоги и т. д. Таким образом, все, что записано на диске - файлы,
    каталоги и специальные файлы - обязательно "принадлежит" корневому
    каталогу: либо непосредственно (содержится в нем), либо на некотором уровне вложенности.
    Структуру файловой системы можно представить наглядно в виде дерева, "корнем" которого является корневой каталог, а в вершинах расположены все остальные каталоги. На рис. 1 изображено дерево
    каталогов, курсивом обозначены имена файлов, прямым начертанием - имена каталогов.
    Рис. 1. Дерево каталогов в ext3fs
    В любой файловой системе Linux всегда есть только один корневой
    каталог, который называется "/". Пользователь Linux всегда работает с единым деревом каталогов, даже если разные данные расположены на разных носителях: жестких или сетевых дисках, съемных дисках, CD-ROM и т. п.
    Такое представление отличается от технологии, применяемой в
    Windows, где для каждого устройства, на котором есть файловая система, используется свой корневой каталог, обозначенный литерой, например "a",
    "c", "d" и т. д. Для того чтобы отключать и подключать файловые системы на разных устройствах в состав одного общего дерева, используются процедуры монтирования и размонтирования. После того, как файловые

    3
    системы на разных носителях подключены к общему дереву, содержащиеся на них данные доступны так, как если бы все они составляли единую файловую систему: пользователь может даже не знать, на каком устройстве какие файлы хранятся.
    Положение любого каталога в дереве каталогов описывается при помощи полного пути. Полный путь всегда начинается от корневого каталога и состоит из перечисления всех вершин, встретившихся при движении по ветвям дерева до искомого каталога включительно.
    Названия соседних вершин разделяются символом "/" ("слэш"). В Linux
    полный путь, например, до каталога "methody" в файловой системе, приведенной на рис.
    1, записывается следующим образом
    /home/methody.
    1.2 Размещение компонентов системы: стандарт FHS
    Фрагмент дерева каталогов типичной файловой системы Linux приведен на рис. 1. Утилита ls выведет список всего, что в этом каталоге содержится.
    Пример 1. Стандартные каталоги в / . Использование утилиты ls
    [student@localhost

    ]$ ls / bin dev home lost+fount misc net proc tmp var boot etc lib sbin usr
    В примере 1 утилита ls вывела список подкаталогов корневого каталога. Этот список будет примерно таким же в любом дистрибутиве
    Linux. В корневом каталоге Linux-системы обычно находятся только подкаталоги со стандартными именами. Более того, не только имена, но и
    тип данных, которые могут попасть в тот или иной каталог, также регламентированы стандартом
    Filesystem
    Hierarchy
    Standard
    ("стандартная структура файловых систем"). Краткое описание стандартной иерархии каталогов Linux можно получить, выполнив команду man hier. Полный текст и последнюю редакцию стандарта FHS можно прочесть по адресу http://www.pathname.com/fhs/
    Содержимое подкаталоговкорневого каталога.
    /bin
    Название этого каталога происходит от слова "binaries"
    ("двоичные", "исполняемые"). В этом каталоге находятся исполняемые файлы самых необходимых утилит, которые могут понадобиться системному администратору или другим пользователям.
    /boot
    "Boot" - загрузка системы. В этом каталоге находятся файлы, необходимые для загрузки ядра - и, обычно, само ядро.
    Пользователю практически никогда не требуется непосредственно работать с этими файлами.

    4
    /dev
    В этом каталоге находятся все имеющиеся в системе файлы
    особого типа, предназначенные для обращения к различным системным ресурсам и устройствам. Например, файлы
    /dev/ttyN
    соответствуют виртуальным консолям, где
    N
    - номер виртуальной
    консоли. Данные, введенные пользователем на первой виртуальной
    консоли, система считывает из файла
    /dev/tty1; в этот же файл
    записываются данные, которые нужно вывести пользователю на эту консоль. В специаьных файлах в действительности не хранятся никакие данные, при их помощи данные передаются.
    /etc
    Каталог для системных конфигурационных файлов. Здесь хранится информация о специфических настройках данной системы: информация о зарегистрированных пользователях, доступных ресурсах, настройках различных программ.
    /home
    Здесь расположены каталоги, принадлежащие пользователям системы - домашние каталоги, отсюда и название "home".
    Отделение всех файлов, создаваемых пользователями, от прочих системных файлов дает очевидное преимущество: серьезное повреждение системы или необходимость обновления не затронет пользовательских файлов.
    /lib
    Название этого каталога - сокращение от "libraries" (англ.
    "библиотеки"). Чтобы не включать эти функции в текст каждой программы, используются стандартные функции библиотек - это значительно экономит место на диске и упрощает написание программ. В этом каталоге содержатся библиотеки, необходимые для работы наиболее важных системных утилит, размещенных в
    /bin и
    /sbin
    /mnt
    Каталог для монтирования (от англ. "mount") - временного подключения файловых систем, например, на съемных носителях
    (CD-ROM и др.).
    /proc
    В этом каталоге все файлы "виртуальные" - они располагаются не на диске, а в оперативной памяти. В этих файлах содержится информация о программах (процессах), выполняемых в данный момент в системе.
    /root
    Домашний каталог администратора системы - пользователя root
    Смысл размещать его отдельно от домашних каталогов остальных пользователей состоит в том, что
    /home может располагаться на отдельном устройстве, которое не всегда доступно (например, на сетевом диске), а домашний каталог root должен присутствовать в любой ситуации.
    /sbin
    Каталог для важнейших системных утилит (название каталога -

    5
    сокращение от "system binaries"): в дополнение к утилитам
    /bin здесь находятся программы, необходимые для загрузки, резервного копирования, восстановления системы. Полномочия на исполнение этих программ есть только у системного администратора.
    /tmp
    Этот каталог предназначен для временных файлов: в таких файлах
    программы хранят необходимые для работы промежуточные данные. После завершения работы программы временные файлы теряют смысл и должны быть удалены. Обычно каталог
    /tmp очищается при каждой загрузке системы.
    /usr
    Здесь можно найти такие же подкаталоги bin
    , etc
    , lib
    , sbin
    , как и в корневом каталоге. Однако в корневой каталог попадают только утилиты, необходимые для загрузки и восстановления системы в аварийной ситуации - все остальные программы и данные располагаются в подкаталогах
    /usr
    . Этот раздел
    файловой системы может быть очень большим.
    /var
    Название этого каталога - сокращение от "variable" ("переменные"
    данные). Здесь размещаются те данные, которые создаются в
    процессе работы разными программами и предназначены для передачи другим программам и системам (очереди печати, электронной почты и др.) или для сведения системного администратора (системные журналы, содержащие протоколы работы системы). В отличие от каталога
    /tmp сюда попадают те данные, которые могут понадобиться после того, как создавшая их программа завершила работу.
    Стандарт FHS регламентирует не только перечисленные каталоги, но и их подкаталоги, а иногда даже приводит список конкретных файлов,
    которые должны присутствовать в определенных каталогах. Этот стандарт последовательно соблюдается во всех Linux-системах.
    Командная оболочка "знает", что исполняемые файлы располагаются в каталогах /bin, /usr/bin и т. д. - именно в этих каталогах она ищет исполняемый файлcat. Благодаря этому каждая вновь установленная в системе программа немедленно оказывается доступна пользователю из командной строки. Для этого не требуется ни перезагружать систему, ни запускать какие-либо процедуры - достаточно просто поместить исполняемый файл в один из соответствующих каталогов.
    Рекомендации стандарта по размещению файлов и каталогов основываются на принципе размещения файлов, которые по-разному используются в системе, в разных подкаталогах. По типу использования файлы можно разделить на следующие группы:
    пользовательские/системные файлы
    Пользовательские файлы - это все файлы, созданные пользователем

    6
    и не принадлежащие ни одному из компонентов системы.
    изменяющиеся/неизменные файлы
    К неизмененным файлам относятся все статические компоненты программного обеспечения: библиотеки, исполняемые файлы и т. д. - все, что не изменяется само без вмешательства системного администратора.
    Изменяющиеся файлы изменяются без вмешательства человека в процессе работы системы: системные журналы, очереди печати и пр. Выделение неизменных файлов в отдельную структуру (например, /usr) позволяет использовать соответствующую часть файловой системы в режиме "только чтение", что уменьшает вероятность случайного повреждения данных и позволяет применять для хранения этой части файловой системыCD-ROM и другие носители, доступные только для чтения.
    разделяемые/неразделяемые файлы
    Это разграничение становится полезным, если речь идет о сети, в которой работает несколько компьютеров.
    Значительная часть информации при этом может храниться на одном из компьютеров и использоваться всеми остальными по сети (к такой информации относятся, например, многие программы и домашние каталоги пользователей).
    Однако часть файловнельзяразделять между системами (например, файлы для начальной загрузки системы).
    Полный путь к каталогу формально ничем не отличается от пути к файлу, т. е. по полному путинельзя сказать наверняка, является его последний элемент файломили каталогом. Чтобы отличать путь к каталогу, иногда используют запись с символом "/" в конце пути, например "/home/student/".
    1.3 Текущий каталог
    Каждая выполняемая программа "работает" в строго определенном
    каталоге файловой системы. Такой каталог называется текущим
    каталогом. Можно представлять, что программа во время работы "находится" именно в этом каталоге, это ее "рабочее место". В зависимости от текущего каталога поведение программы может меняться: зачастую программа будет по умолчанию работать с файлами, расположенными именно в текущем каталоге - до них она "дотянется" в первую очередь. Текущий каталог есть у любой программы, в том числе и у командной оболочки (shell) пользователя. Поскольку пользователь взаимодействует с системой через командную оболочку, можно говорить о том, что пользователь "находится" в том каталоге, который в данный момент является текущим каталогом его команднойоболочки.
    Все команды, выполняемые пользователем при помощи shell, наследуют текущий каталог shell, т. е. "работают" в том же каталоге. По этой причине пользователю важно знать текущий каталог shell. Для этого

    7
    служит утилита pwd
    :
    Команда pwd
    (print working directory) возвращает полный путь
    текущего каталога командной оболочки - естественно, именно той командной оболочки, при помощи которой была выполнена команда pwd
    Почти все утилиты по умолчанию читают и создают файлы в
    текущем каталоге. Например, утилита cat
    (concatenation – конкатенация) - выводит на экран содержимое файла "
    text
    ":
    [student@localhost student]$ cat text
    В действительности, командная оболочка, прежде чем передавать параметр "
    text
    " (имя файла) утилите cat
    , подставляет значение текущего
    каталога - получается полный путь к этому файлу в файловой системе:
    "
    /home/student/text
    ". Содержимое данного файла утилита cat выведет на экран.
    Относительный путь(relative path) - путь к объекту файловой
    системы, не начинающийся в корневом каталоге. Для каждого процесса
    Linux определен текущий каталог, с которого система начинает
    относительный путь при выполнении файловых операций.
    Относительный путь строится точно так же, как и полный - перечислением через "
    /
    " всех названий каталогов, встретившихся при движении к искомому каталогу или файлу. Между полным и
    относительным путем есть только одно существенное различие:
    относительный путь начинается от текущего каталога, в то время как
    полный путь всегда начинается от корневого каталога. Относительный
    путь любого файла или каталога в файловой системе может иметь любую конфигурацию - чтобы добраться до искомого файла, можно двигаться как по направлению к корневому каталогу, так и от него. Linux различает полный и oтносительный пути очень просто: если имя объекта начинается на "
    /
    " - это полный путь, в любом другом случае - относительный.
    Отделить путь к файлу от его имени можно с помощью команд dirname и basename соответственно.
    1.4 Домашний каталог
    В Linux у каждого пользователя обязательно есть собственный
    каталог, который и становится текущим сразу после регистрации в
    системе - домашний каталог.
    Домашний каталог(home directory) - это каталог, предназначенный для хранения собственных данных пользователя Linux. Как правило, является текущим непосредственно после регистрации пользователя в системе. Полный путь к домашнему каталогу хранится в переменной
    окружения
    HOME
    . Имя домашнего каталога
    Поскольку каждый пользователь располагает собственным

    8
    каталогом и по умолчанию работает в нем, решается задача разделения файлов разных пользователей. Обычно доступ других пользователей к чужому домашнему каталогу ограничен: наиболее типична ситуация, когда пользователи могут читать содержимое файлов друг друга, но не имеют права их изменять или удалять.
    1.5 Информация о содержимом каталога – утилита ls
    Чтобы иметь возможность ориентироваться в файловой системе, нужно знать, что содержится в каждом каталоге. Просмотреть содержимое любого каталога можно при помощи утилиты ls
    (сокращение от англ. "list" - "список"):
    Команда ls без параметров выводит список файлов и каталогов, содержащихся в текущем каталоге. Утилита ls принимает один параметр - имя каталога, содержимое которого нужно вывести. Имя может быть задано любым доступным способом: в виде полного или относительного
    пути.
    Кроме параметра, утилита ls может использовать множество ключей, которые нужны для того, чтобы выводить дополнительную информацию о файлах в каталогеили выводить список файлов выборочно. Чтобы узнать обо всех возможностях ls
    , нужно прочесть руководство по этой утилите с помощью команды man ls
    Ключ –F используется, чтобы отличать файлы от каталогов. При наличии этого ключа ls в конце имени каждого каталога ставит символ "/", чтобы показать, что в нем может содержаться что-то еще.
    Утилита ls по умолчанию не выводит информацию об объектах, чье имя начинается с "
    " - в том числе о "
    " и "
    ". Для того чтобы посмотреть полный список содержимого каталога, и используется ключ "
    -a
    " (all). Как правило, с "
    " начинаются имена конфигурационных файлов и
    конфигурационных каталогов (вроде
    .bashrc
    ), работа с которыми (т. е.
      1   2   3


    написать администратору сайта