- Структура файловой системы Linux
- Структура каталогов
- Подключение внешних носителей
- Понятие файла
- Принцип установки программ
- Регистр имен
- Отличия структуры файловых систем ос Windows и Linux.
- В чем отличие каталогов /var и /tmp.
- Назначение утилиты pwd.
- Назначение утилиты cat.
- Назначение утилиты ls. Использование ключей –f, -a.
Структура файловой системы Linux
Файловая система в ОС Linux, как и в ОС Windows, представляет собой иерархическую структуру каталогов и файлов (в виде дерева), но при этом имеет ряд кардинальных отличий.
Структура каталогов
В ОС Windows жесткие диски называются латинскими буквами (С:, D:, …), и каждый из дисков представляет собой корневой каталог с собственным деревом папок. Подключение же нового устройства приведет к появлению нового корневого каталога со своей буквой (например, F:). В ОС Linux файловая система представлена единым корневым каталогом, обозначаемым как слэш (/). Соответственно, при данной файловой структуре не диски содержат каталоги, а каталог — диски.
Подключение внешних носителей
В ОС Linux имеется процедура монтирования: когда подключается съемный носитель или диск, файл устройства будет виден в каталоге /dev (devices). Чтобы увидеть содержимое этого устройства, его нужно смонтировать в отдельную директорию /mnt. Также файловая система позволяет примонтировать его и в любое другое место, например /home.
Понятие файла
Понятие «файл» в Linux имеет несколько другое значение, нежели в Windows. «Файлом» можно назвать обычный файл, содержащий данные, и интерпретируемый программой. Директория также является «файлом», содержащим в себе ссылки на другие директории или файлы с данными. Файлы устройства указывает на драйвер, благодаря которому система взаимодействует с физическими устройствами. Имеются и многие другие типы файлов.
Принцип установки программ
Если в Windows программы, зачастую, хранят все данные в одной папке, например в «C:Program FilesProgramName», то в Linux файлы программы разделяются по каталогам в зависимости от типа. Например, исполняемые файлы в /bin, библиотеки в /lib, файлы конфигураций в /etc, логи и кэш в /var.
Регистр имен
Также стоит отметить чувствительность файловой системы Linux к регистру. Файлы Temp.txt и temp.txt будут интерпретироваться как разные файлы и могут находиться в одной директории, в отличие от ОС Windows, который не различает регистр имен. То же правило действует и на каталоги — имена в разных регистрах указывают на разные каталоги.
Назначение каждой директории регламентирует «Стандарт иерархии файловой системы» FHS (Filesystem Hierarchy Standard). Ниже опишем основные директории согласно стандарту FHS:
- / — root каталог. Содержит в себе всю иерархию системы;
- /bin — здесь находятся двоичные исполняемые файлы. Основные общие команды, хранящиеся отдельно от других программ в системе (прим.: pwd, ls, cat, ps);
- /boot — тут расположены файлы, используемые для загрузки системы (образ initrd, ядро vmlinuz);
- /dev — в данной директории располагаются файлы устройств (драйверов). С помощью этих файлов можно взаимодействовать с устройствами. К примеру, если это жесткий диск, можно подключить его к файловой системе. В файл принтера же можно написать напрямую и отправить задание на печать;
- /etc — в этой директории находятся файлы конфигураций программ. Эти файлы позволяют настраивать системы, сервисы, скрипты системных демонов;
- /home — каталог, аналогичный каталогу Users в Windows. Содержит домашние каталоги учетных записей пользователей (кроме root). При создании нового пользователя здесь создается одноименный каталог с аналогичным именем и хранит личные файлы этого пользователя;
- /lib — содержит системные библиотеки, с которыми работают программы и модули ядра;
- /lost+found — содержит файлы, восстановленные после сбоя работы системы. Система проведет проверку после сбоя и найденные файлы можно будет посмотреть в данном каталоге;
- /media — точка монтирования внешних носителей. Например, когда вы вставляете диск в дисковод, он будет автоматически смонтирован в директорию /media/cdrom;
- /mnt — точка временного монтирования. Файловые системы подключаемых устройств обычно монтируются в этот каталог для временного использования;
- /opt — тут расположены дополнительные (необязательные) приложения. Такие программы обычно не подчиняются принятой иерархии и хранят свои файлы в одном подкаталоге (бинарные, библиотеки, конфигурации);
- /proc — содержит файлы, хранящие информацию о запущенных процессах и о состоянии ядра ОС;
- /root — директория, которая содержит файлы и личные настройки суперпользователя;
- /run — содержит файлы состояния приложений. Например, PID-файлы или UNIX-сокеты;
- /sbin — аналогично /bin содержит бинарные файлы. Утилиты нужны для настройки и администрирования системы суперпользователем;
- /srv — содержит файлы сервисов, предоставляемых сервером (прим. FTP или Apache HTTP);
- /sys — содержит данные непосредственно о системе. Тут можно узнать информацию о ядре, драйверах и устройствах;
- /tmp — содержит временные файлы. Данные файлы доступны всем пользователям на чтение и запись. Стоит отметить, что данный каталог очищается при перезагрузке;
- /usr — содержит пользовательские приложения и утилиты второго уровня, используемые пользователями, а не системой. Содержимое доступно только для чтения (кроме root). Каталог имеет вторичную иерархию и похож на корневой;
- /var — содержит переменные файлы. Имеет подкаталоги, отвечающие за отдельные переменные. Например, логи будут храниться в /var/log, кэш в /var/cache, очереди заданий в /var/spool/ и так далее.
Отличия структуры файловых систем ос Windows и Linux.
Пользователь Linux всегда работает с единым деревом каталогов, даже если разные данные расположены на разных носителях: жестких или сетевых дисках, съемных дисках, CD-ROM и т. п. Такое представление отличается от технологии, применяемой в Windows, где для каждого устройства, на котором есть файловая система, используется свой корневой каталог, обозначенный литерой, например «a«, «c«, «d« и т. д. Для того чтобы отключать и подключать файловые системы на разных устройствах в состав одного общего дерева, используются процедуры монтирования и размонтирования. После того, как файловые системы на разных носителях подключены к общему дереву, содержащиеся на них данные доступны так, как если бы все они составляли единую файловую систему: пользователь может даже не знать, на каком устройстве какие файлы хранятся.
В чем отличие каталогов /var и /tmp.
/tmp — Этот каталог предназначен для временных файлов: в таких файлах программы хранят необходимые для работы промежуточные данные. После завершения работы программы временные файлы теряют смысл и должны быть удалены. Обычно каталог /tmp очищается при каждой загрузке системы.
/var Название этого каталога — сокращение от «variable« («переменные» данные). Здесь размещаются те данные, которые создаются в процессе работы разными программами и предназначены для передачи другим программам и системам (очереди печати, электронной почты и др.) или для сведения системного администратора (системные журналы, содержащие протоколы работы системы).
В отличие от каталога /tmp сюда попадают те данные, которые могут понадобиться после того, как создавшая их программа завершила работу.
Назначение утилиты pwd.
Команда pwd (print working directory) возвращает полный путь текущего каталога командной оболочки — естественно, именно той командной оболочки, при помощи которой была выполнена команда pwd.
Назначение утилиты cat.
Почти все утилиты по умолчанию читают и создают файлы в текущем каталоге. Например, утилита cat (concatenation – конкатенация) — выводит на экран содержимое файла «text«: [student@localhost student]$ cat text
В действительности, командная оболочка, прежде чем передавать параметр «text» (имя файла) утилите cat, подставляет значение текущего каталога — получается полный путь к этому файлу в файловой системе: «/home/student/text«. Содержимое данного файла утилита cat выведет на экран.
Назначение утилиты ls. Использование ключей –f, -a.
Чтобы иметь возможность ориентироваться в файловой системе, нужно знать, что содержится в каждом каталоге. Просмотреть содержимое любого каталога можно при помощи утилиты ls (сокращение от англ. «list» — «список»): Команда ls без параметров выводит список файлов и каталогов, содержащихся в текущем каталоге.
Утилита ls принимает один параметр — имя каталога, содержимое которого нужно вывести. Имя может быть задано любым доступным способом: в виде полного или относительного пути.
Ключ –F используется, чтобы отличать файлы от каталогов. При наличии этого ключа ls в конце имени каждого каталога ставит символ «/», чтобы показать, что в нем может содержаться что-то еще
Для того чтобы посмотреть полный список содержимого каталога, и используется ключ «-a» (all)