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, чтобы проверить полный синтаксис каждой упомянутой здесь команды.