Unix / Linux - Основы файловой системы
Файловая система - это логическая совокупность файлов на разделе или диске. Раздел - это контейнер для информации, который при желании может охватывать весь жесткий диск.
На вашем жестком диске могут быть различные разделы, которые обычно содержат только одну файловую систему, например, одна файловая система, в которой находится /file system или другой, содержащий /home file system.
Одна файловая система на раздел обеспечивает логическое обслуживание и управление различными файловыми системами.
Все в Unix считается файлом, включая физические устройства, такие как DVD-ROM, USB-устройства и дисководы для гибких дисков.
Структура каталогов
Unix использует иерархическую структуру файловой системы, очень похожую на перевернутое дерево, с корнем (/) в основе файловой системы, а все остальные каталоги распространяются оттуда.
Файловая система Unix - это набор файлов и каталогов, который имеет следующие свойства:
У него есть корневой каталог (/), который содержит другие файлы и каталоги.
Каждый файл или каталог однозначно идентифицируется своим именем, каталогом, в котором он находится, и уникальным идентификатором, обычно называемым inode.
По соглашению корневой каталог имеет inode количество 2 и lost+found каталог имеет inode количество 3. Номера inode0 и 1не используются. Номера файловых индексов можно увидеть, указав-i option к ls command.
Он самодостаточен. Между одной файловой системой и другой нет никаких зависимостей.
Каталоги имеют определенные цели и обычно содержат информацию одного и того же типа для облегчения поиска файлов. Ниже приведены каталоги, существующие в основных версиях Unix.
Sr. No. | Каталог и описание |
---|---|
1 | / Это корневой каталог, который должен содержать только каталоги, необходимые на верхнем уровне файловой структуры. |
2 | /bin Здесь находятся исполняемые файлы. Эти файлы доступны всем пользователям |
3 | /dev Это драйверы устройств |
4 | /etc Команды каталога супервизора, файлы конфигурации, файлы конфигурации диска, допустимые списки пользователей, группы, Ethernet, хосты, куда отправлять критические сообщения |
5 | /lib Содержит файлы общей библиотеки и иногда другие файлы, относящиеся к ядру |
6 | /boot Содержит файлы для загрузки системы |
7 | /home Содержит домашний каталог для пользователей и других учетных записей |
8 | /mnt Используется для монтирования других временных файловых систем, например cdrom и floppy для CD-ROM диск и floppy diskette driveсоответственно |
9 | /proc Содержит все процессы, отмеченные как файл process number или другая информация, которая является динамической для системы |
10 | /tmp Хранит временные файлы, используемые между загрузками системы |
11 | /usr Используется для разных целей и может использоваться многими пользователями. Включает административные команды, общие файлы, файлы библиотеки и другие |
12 | /var Обычно содержит файлы переменной длины, такие как файлы журнала и печати, а также файлы любого другого типа, которые могут содержать переменный объем данных. |
13 | /sbin Содержит двоичные (исполняемые) файлы, обычно для системного администрирования. Например,fdisk и ifconfig удобства |
14 | /kernel Содержит файлы ядра |
Навигация по файловой системе
Теперь, когда вы понимаете основы файловой системы, вы можете начать переход к нужным файлам. Следующие команды используются для навигации по системе -
Sr. No. | Команда и описание |
---|---|
1 | cat filename Отображает имя файла |
2 | cd dirname Перемещает вас в указанный каталог |
3 | cp file1 file2 Копирует один файл / каталог в указанное место |
4 | file filename Определяет тип файла (двоичный, текстовый и т. Д.) |
5 | find filename dir Находит файл / каталог |
6 | head filename Показывает начало файла |
7 | less filename Просматривает файл с конца или с начала |
8 | ls dirname Показывает содержимое указанного каталога |
9 | mkdir dirname Создает указанный каталог |
10 | more filename Просматривает файл от начала до конца |
11 | mv file1 file2 Перемещает местоположение или переименовывает файл / каталог |
12 | pwd Показывает текущий каталог, в котором находится пользователь |
13 | rm filename Удаляет файл |
14 | rmdir dirname Удаляет каталог |
15 | tail filename Показывает конец файла |
16 | touch filename Создает пустой файл или изменяет существующий файл или его атрибуты |
17 | whereis filename Показывает расположение файла |
18 | which filename Показывает расположение файла, если он находится в вашем PATH |
Вы можете использовать справку Manpage, чтобы проверить полный синтаксис каждой упомянутой здесь команды.
Команда df
Первый способ управлять пространством раздела - использовать df (disk free)команда. Командаdf -k (disk free) отображает disk space usage in kilobytes, как показано ниже -
$df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vzfs 10485760 7836644 2649116 75% /
/devices 0 0 0 0% /devices
$
Некоторые из каталогов, например /devices, показывает 0 в столбцах kbytes, used и avail, а также 0% для емкости. Это особые (или виртуальные) файловые системы, и хотя они находятся на диске в каталоге /, сами по себе они не занимают дисковое пространство.
В df -kвывод обычно одинаков во всех системах Unix. Вот что он обычно включает -
Sr. No. | Колонка и описание |
---|---|
1 | Filesystem Имя физической файловой системы |
2 | kbytes Общее количество килобайт свободного места на носителе |
3 | used Общее количество использованных килобайт (файлами) |
4 | avail Всего килобайт, доступных для использования |
5 | capacity Процент общего пространства, используемого файлами |
6 | Mounted on На что смонтирована файловая система |
Вы можете использовать -h (human readable) option для отображения вывода в формате, который показывает размер в более понятной нотации.
Du Command
В du (disk usage) command позволяет указать каталоги для отображения использования дискового пространства в конкретном каталоге.
Эта команда полезна, если вы хотите определить, сколько места занимает конкретный каталог. Следующая команда отображает количество блоков, используемых каждым каталогом. Один блок может занимать 512 байтов или 1 килобайт в зависимости от вашей системы.
$du /etc
10 /etc/cron.d
126 /etc/default
6 /etc/dfs
...
$
В -h опция упрощает понимание вывода -
$du -h /etc
5k /etc/cron.d
63k /etc/default
3k /etc/dfs
...
$
Монтирование файловой системы
Файловая система должна быть смонтирована, чтобы ее можно было использовать. Чтобы узнать, что в настоящее время смонтировано (доступно для использования) в вашей системе, используйте следующую команду -
$ mount
/dev/vzfs on / type reiserfs (rw,usrquota,grpquota)
proc on /proc type proc (rw,nodiratime)
devpts on /dev/pts type devpts (rw)
$
В /mntкаталог, согласно соглашению Unix, - это место, где находятся временные монтирования (например, приводы CDROM, удаленные сетевые диски и дисководы гибких дисков). Если вам нужно смонтировать файловую систему, вы можете использовать команду mount со следующим синтаксисом -
mount -t file_system_type device_to_mount directory_to_mount_to
Например, если вы хотите установить CD-ROM в каталог /mnt/cdrom, вы можете ввести -
$ mount -t iso9660 /dev/cdrom /mnt/cdrom
Это предполагает, что ваше устройство CD-ROM называется /dev/cdrom и что вы хотите установить его на /mnt/cdrom. Обратитесь к странице руководства по mount для получения более конкретной информации или введите команду mount-h в командной строке для получения справочной информации.
После монтирования вы можете использовать команду cd для навигации по новой доступной файловой системе через только что созданную точку монтирования.
Отключение файловой системы
Чтобы размонтировать (удалить) файловую систему из вашей системы, используйте umount команда, указав точку монтирования или устройство.
Например, to unmount cdromиспользуйте следующую команду -
$ umount /dev/cdrom
В mount command позволяет получить доступ к файловым системам, но в большинстве современных систем Unix automount function делает этот процесс невидимым для пользователя и не требует вмешательства.
Квоты пользователей и групп
Квоты для пользователей и групп предоставляют механизмы, с помощью которых объем пространства, используемого одним пользователем или всеми пользователями в определенной группе, может быть ограничен значением, определенным администратором.
Квоты работают вокруг двух ограничений, которые позволяют пользователю предпринять некоторые действия, если объем пространства или количество дисковых блоков начинают превышать установленные администратором ограничения:
Soft Limit - Если пользователь превышает установленный предел, существует льготный период, который позволяет пользователю освободить место.
Hard Limit - Когда достигнут жесткий предел, независимо от льготного периода, дополнительные файлы или блоки не могут быть выделены.
Есть несколько команд для управления квотами -
Sr. No. | Команда и описание |
---|---|
1 | quota Отображает использование диска и ограничения для пользователя группы |
2 | edquota Это редактор квот. Квоту пользователей или групп можно изменить с помощью этой команды |
3 | quotacheck Сканирует файловую систему на предмет использования диска, создает, проверяет и восстанавливает файлы квот |
4 | setquota Это редактор квот командной строки |
5 | quotaon Это сообщает системе, что дисковые квоты должны быть включены в одной или нескольких файловых системах. |
6 | quotaoff Это сообщает системе, что дисковые квоты должны быть отключены для одной или нескольких файловых систем. |
7 | repquota Это напечатает сводку использования диска и квот для указанных файловых систем. |
Вы можете использовать справку Manpage, чтобы проверить полный синтаксис каждой упомянутой здесь команды.