Глава 9. Операции с файлами и разделами
9.1. Введение
Хорошее понимание основных принципов работы файловых систем абсолютно необходимо для понимания того, как работает Linux. В системе все объекты интерпретируются как файлы — файлы данных, разделы, каналы (pipes), сокеты и устройства. Каталог также представляет собой файл, содержащий информацию о других файлах.
Спецификация иерархии файловых систем (FHS, Filesystem Hierarchy Standard) была разработана как «добровольный стандарт», соблюдаемый в большинстве версий Linux. Далее перечислены обязательные элементы корневой файловой системы Linux:
- / — корневой каталог;
- /bin — важнейшие системные команды;
- /boot — файлы статического загрузчика;
- /dev — файлы устройств;
- /etc — системные конфигурационные файлы, специфические для хоста;
- /lib — общие библиотеки, необходимые для работы локальной системы;
- /mnt — временные точки монтировки;
- /opt — дополнительные программные пакеты (в Linux используются мало);
- /proc — текущая информация о конфигурации и состоянии ядра;
- /sbin — команды администрирования системы;
- /tmp — временные файлы (в нормальных системах они уничтожаются между перезапусками);
- /usr — общие файлы, данные только для чтения и двоичные файлы;
- /var — файлы переменного размера (такие, как почтовые ящики и журналы).
Следующие каталоги считаются необязательными, потому что они могут находиться в любом месте сети, тогда как обязательные каталоги должны присутствовать для нормальной работы компьютера:
- /home — личные файлы пользователя;
- /root — личные файлы суперпользователя.
Те, кого действительно заинтересует эта тема, найдут дополнительную информацию в спецификации FHS. Вот лишь некоторые обстоятельства, которые должны учитывать пользователи Linux:
- каталоги /tmp и /var могут размещаться в отдельных разделах с целью повышения безопасности. Если вследствие каких-то сбоев начнётся неконтролируемое заполнение этих каталогов, они будут изолированы от остальных компонентов системы;
- каталог /home может находиться в собственном разделе или на выделенном сервере для упрощения создания резервных копий и защиты данных при обновлении системы. В этом случае содержимое /home останется нетронутым даже после полного уничтожения и переустановки системы Linux;
- хранение всех конфигурационных файлов в /etc и /home упрощает создание резервных копий. Вы можете ограничиться архивацией только содержимого /etc и /home, а остальные компоненты восстановить с установочных дисков системы. Но это будет означать, что при восстановлении будут потеряны обновления программ — учтите это при разработке чрезвычайных планов.
Типы файлов Linux
Помните, что в Linux любой объект интерпретируется как файл. Файлы Linux делятся на семь типов, перечисленных в таблице 9.1.
Таблица 9.1. Типы файлов
Признак типа | Тип файла |
---|---|
- | Обычный файл |
d | Каталог |
l | Ссылка |
c | Символьное устройство |
s | Сокет |
p | Именованный канал |
b | Блочное устройство |
Признак типа выводится в самом начале записи в списке файлов:
# ls -l /dev/initctl
prw 1 root root 0 Jan 12 00:00 /dev/initctl
# ls -l /tmp/.ICE-unix/551
srwx- 1 caria caria 0 Jan 12 09:00 /tmp/.ICE-unix/551
Тип файлов может указываться в командной строке find:
# find / -type p
# find / -type s
Если поиск занимает слишком много времени, работу команды можно прервать клавишами Ctrl+C.
Атрибуты файлов
Также стоит обратить внимание на атрибуты файла — например, сценария sortusers:
# ls -l sortusers
-rwxr-xr-x 1 meredydd programmers 3783 Jan 7 13:29 sortusers
Строка -rwxr-xr-x 1 meredydd programmers сообщает программисту много полезных сведений:
- первый символ — является признаком обычного файла. Этот атрибут не может изменяться пользователем. По этому признаку Linux определяет тип файла, поэтому с точки зрения системы расширение является лишним. Расширения нужны только для пользователей и приложений;
- подстрока rwx задает разрешения владельца файла;
- первая подстрока r-x задает разрешения владельца группы;
- вторая подстрока r-x задает разрешения для «всего мира», то есть для каждого, кто имеет доступ к файлу;
- 1 — количество жёстких ссылок на файл. У каждого файла имеется как минимум одна ссылка из родительского каталога;
- в подстроке meredydd programmers содержится владелец файла и группа, которой принадлежит файл.
См. также