Путешествие по файловой системе Linux

Установив Linux, многие начинающие пользователи и неопытные администраторы ОС Linux блуждают в поисках необходимых (в том числе и конфигурационных) файлов по, пока еще незнакомым им, каталогам. Действительно, как тут не заблудиться, если тут какие-то непонятные /etc, /usr, /var... Что это за каталоги?! И где искать мне в Linux, только что подключенный мной, диск D?!!! Эта статья поможет вам разобраться в структуре файловой системы ОС Linux, а также приобрести некоторые знания, которые будут вам хорошем подспорьем в вашем Linux-пути.


Перед тем, как начать наше путешествие по файловой системе ОС Linux, я должен предупредить вас заранее о том, что для того, чтобы полностью посмотреть содержимое некоторых каталогов и файлов, вам будут необходимы права суперпользователя root, которыми как я думаю, вы владеете. Если вы - обычный пользователь, и у вас нет прав суперпользователя, то не беда, вы просто не будете иметь доступ к некоторым файлам, доступ к которым запрещен обычным пользователям, в связи с политикой безопасности системы.

Находясь в сеансе суперпользователя будьте предельно осторожны в своих действиях, так как если вы случайно измените (или удалите) жизненно важные для системы файлы, то результатом ваших действий может быть полный крах системы.

Если вы находитесь в KDE, то для нашего путешествия вам понадобится файловый менеджер под названием Nautilus, а если менеджером рабочего стола вашей системы является Gnome, то вы будете использовать файловый менеджер Konqueror. Иногда, в некоторых дистрибутивах, необходимый нам для путешествия инструмент, так и называется - "Файловый менеджер" (иконку-значок с таким названием вы можете увидеть на нижней панели меню). Если вы истинный почитатель и приверженец консольного окна, то вам необходимо знать команды, с помощью которых вы будете уверенно передвигаться по недрам вашей файловой системы.Надеюсь, что вы их знаете! Ну, а теперь - вперед!

Корневой каталог /

Итак, "в начале было слово", а в самом верху файловой системы ОС Linux, находится корневой каталог / (не путайте его с /root, каталога имеющего название с английского - "корень"), который и содержит все элементы вашей файловой системы. На ранних стадиях загрузки, ядро системы подключает к себе в режиме "доступен только для чтения" раздел жесткого диска (его называют корневым разделом), на котором и находится этот каталог. Именно каталог / содержит все самое важное для функционирования системы. Далее в процессе загрузки подключаются (при помощи команды mount) и остальные разделы жесткого диска или даже разделы жестких дисков удаленных систем (обычно согласно записям в файле /etc/fstab).

Каталог /bin

В этом каталоге хранится целый набор исполняемых файлов (именно поэтому он и называется /bin - сокращенно от binaries, с английского - двоичные файлы), полезных для системных администраторов, а также для тех, кто уже хорошо освоил командную строку и знает хотя бы некоторые стандартные команды (если вы таковыми не являетесь, то вам будет полезно ознакомиться с командами ОС Linux, о которых речь пойдет в одной из последующих статей). Даже если вы работали только с графическими инструментами, то вы использовали программы, которые находятся в этом каталоге! Не верите? Давайте рассмотрим работу одной из этих программ:

Откройте терминал (консоль) и введите следующую строку:

mkdir test

и, нажав на клавишу Enter, выполните ее. Вы скажете - "Ну и что? Ничего не изменилось!". Действительно на экране ничего не изменилось, лишь курсор переместился на следующую строку, а система вновь выдала приглашение к вводу команд. Но, открыв менеджер файлов и, посмотрев в ваш домашний каталог, вы увидите там папку test. Это и есть результат выполнения программы mkdir, название которой сокращенно от make directory (с английского "создать каталог"). Заметим, что тот же результат будет если мы, используя менеджер файлов, нажмем на правую кнопку мыши и выберем "Создать каталог". Вот такие полезные программы находятся в каталоге /bin.

Каталог /boot

В этом каталоге Linux хранит свое действующее ядро, а также файлы загрузчика системы. Имя файла ядра начинается с "vmlinuz", далее следуют номер в виде, например, "2.6.21", который и показывает версию установленного ядра. Ни в коем случае не удаляйте содержимое этого каталога, иначе ваша система просто не будет запускаться. Стоит отметить, что этот каталог - первый каталог, к которому обращается компьютер после старта.

Каталог /dev

Вы еще не верите, что в Linux все представляется в виде файлов? Тогда загляните в каталог /dev. Этот каталог содержит файлы устройств вашего компьютера. Вот, например, файл hda1 - это не что иное как первый раздел вашего жесткого диска. А вот файл dsp - это файл вашего аудиоустройства. Имя файла устройства чтения и записи компакт-дисков - cdrom. А вообще, dev - это сокращенно от device (с английского - "устройство"), так что неудивительно, что файлы всех устройств находятся в каталоге с таким именем. Там им и место!

Не удаляйте файлы этого каталога и не вносите изменения в них! Эти действия могут привести к тому, что устройство перестанет работать в вашей системе!

Каталог /etc

Этот каталог примечателен тем, что именно в нем находятся основные конфигурационные файлы, которые отвечают за корректную работу вашей системы. Именно изменяя их, вы указываете системе как она должна работать. Но вносить изменения в эти конфигурационные файлы имеет право только суперпользователь. Представьте себе, если бы их мог изменять любой пользователь! Это хорошо, если в вашей системе зарегистрирован только один пользователь - вы, а если их несколько тысяч?! И каждый по своему желанию вносит изменения в конфигурацию системы! Нет, работать нормально она тогда точно не сможет! Итак, изменить вы их не сможете (если только вы конечно не суперпользователь), а вот ознакомиться с ними - можно. Стоит также заметить, что в каталоге /etc, помимо конфигурационных файлов, вы увидите еще и подкаталоги, содержимое которых также крайне важно для корректной работы системы.

В последующих статьях мы с вами более подробно рассмотрим содержимое и назначение этих конфигурационных файлов и каталогов, а пока обратим внимание лишь на некоторые из них:

/etc/passwd - файл, содержащий информацию о всех пользователях системы, включая root.

/etc/fstab - файл, в котором находится информация о подключаемых жестких дисках, а также о файловых системах, расположенных на их разделах.

/etc/inittab - один из самых важных конфигурационных файлов. Именно в нем содержится конфигурация важной для системы программы - init, отвечающей за запуск всех остальных служб.

/etc/syslog - файл конфигурации службы syslog, отвечающей за ведение журнальной информации о состоянии системы.

/etc/rc.d/ - каталог, в котором находятся стартовые скрипты системы. Каждый из этих скриптов имеет название в соответствии с уровнями запуска системы.

Каталог /home

Этот каталог - "территория" домашних каталогов пользователей, зарегистрированных в системе. Именно в них находятся все те файлы, которые пользователи создают, скачивают с Интернета и т.п. Каждый пользовательский каталог содержит также и файлы настроек для конкретного пользователя, которые определяют параметры приложений, запускаемых пользователем, и данные (архивы сообщений электронной почты, история Интернет-браузера и так далее).

Каталоги, располагаемые в /home обычно доступны только их владельцам. Суперпользователь (root) имеет право зайти в любой пользовательский каталог и удалить в нем что-либо по своему усмотрению (или по необходимости).

Каталог /lib

В этом каталоге хранятся так называемые "библиотеки". Они представляют из себя файл, в котором находится информация для работы различных программ (из каталогов /bin и /sbin) с разными форматами и данными. Так, например, графические программы используют библиотеки для чтения/записи из/в форматы jpeg, gif, bmp и т.д. Если вы раньше работали в Windows, то вы встречали их - они имели расширение .dll.

Я также не советую вам удалять что-то из этого каталога, так как подобные действия могут повлечь за собой неработоспособность программ или системы в целом.

Каталог /mnt

Если вы подключили к вашему компьютеру переносной USB-накопитель (flash-диск, устройство для чтения карт и т.п.) или просто вставили в ваш дисковод DVD-диск с новым, только что вышедшим на экраны кинотеатров, фильмом, то в данном каталоге обязательно появится иконка подключенного устройства, просмотреть содержимое которого вы сможете дважды щелкнув на иконке левой кнопкой мыши. В этот же каталог, как правило, подключаются (отсюда и название каталога - /mnt, сокращенно от английского mount - подключить, смонтировать) и дополнительные жесткие диски.

Прошу обратить внимание на то, что некоторые дистрибутивы автоматически подключают устройства и создают на них ссылки в виде иконки в каталоге /mnt (а некоторые и в каталоге /media), но есть и такие, которые даже и пальцем не пошевелят за вас сделать это. В этом случае вы сможете воспользоваться помощью команды mount, которая и служит для подключения (монтирования) устройств к системе.

Каталог /proc

Название этого каталога произошло от слова "process" (с английского "процессы"), а его содержимое - псевдофайловая система, которая находится в памяти операционной системы.

В /proc находятся текстовые файлы, которые отражают самую свежую информацию о состоянии вашей системы - выполняемые процессы (будь то открытое окно вашего Интернет-браузера или запущенная служба FTP), информацию о состоянии устройств, а также содержимое внутренних структур данных ядра (например, параметры, с которыми загрузилось ваше ядро и т.п.).

Не удивляйтесь, если при просмотре свойств содержимого этого каталога, вы увидите, что все файлы в нем имеют нулевой размер - при их чтении система выдаст вам всю необходимую информацию.

Давайте, для примера, проверим какая версия дистрибутива установлена у нас на компьютере. Для этого мы откроем и посмотрим содержимое файла /proc/version

Тем, кто пользуется консолью, необходимо набрать команду:

cat /proc/version

Мы увидим на экране примерно следующее:

Linux version 2.6.21 (root@litera) (gсс version 4.1.2) #2 Fri Dec 2 12:31:28 PDT 2005

(Узнать ту же информацию, но в большем объеме можно запустив на выполнение команду uname -a. Попробуйте это в консоли, это не страшно!)

Каталог /root

Этот каталог - домашние владения суперпользователя с одноименным именем - root. В целом он подобен каталогу обычного пользователя, но обычным пользователям системы туда вход воспрещен и невозможен.

Каталог /sbin

Если /bin - это каталог, в котором содержатся программы, которые вы запускаете (догадываясь об этом или нет) ежедневно, то каталог /sbin - это место, в котором, в основном, находятся инструменты для администрирования системы, право на запуск которых имеет суперпользователь. В /sbin вы найдете такие программы, как fdisk - для работы с разделами жестких дисков, mkraid - для создания RAID-массива, lilo - загрузчик Linux, ifconfig - для установки параметров сетевой платы и так далее.

Содержимое этого каталога также крайне важно для системы и, поэтому, будьте осторожны в своих действиях при использовании сеанса суперпользователя.

Каталог /sys

Этот каталог содержит в себе еще одну "виртуальную" файловую систему, созданную для упрощения обмена информацией между уровнями ядра и программами пользователя. В ней хранится информация о состоянии различных устройств (шины, устройства и т.д.), которые были обнаружены ядром.

Каталог /tmp

В этом каталоге система хранит данные, необходимые ей временно. Это могут быть открытые в приложениях файлы или, к примеру, файлы, загружаемые из Интернет. Не храните ваши данные в этом каталоге, так как при загрузке система очищает его, удаляя все его содержимое.

Каталог /usr

Зайдя в этот каталог мы увидим, что его содержимое, на первый взгляд, дублирует некоторые каталоги из корневого раздела (/usr/bin, /usr/lib, /usr/sbin). И это действительно так - /usr/bin содержит пользовательские команды, /usr/sbin - команды администрирования системы, а в /usr/lib находятся библиотеки. Вы спросите для чего это сделано? Ответ в решении разделения разделов, которое реализовано для того, чтобы разделить критичные компоненты, используемые на ранних стадиях загрузки системы от компонентов, работа с которыми происходит в многопользовательском режиме.

Каталог /var

В этом каталоге, в разных подкаталогах хранятся различные данные - системные журналы системы (/var/log), сведения о запущенных службах (/var/run), полученные почтовые сообщения (/var/mail или /var/spool/mail), спулер принтера (/var/spool/cups), а в некоторых системах также и документы, доступные через web-сервер (/var/www).

Итак, мы совершили небольшой поверхностный осмотр файловой системы ОС Linux и, заодно, узнали для чего предназначены каталоги нашей системы.

В последующих статьях мы будем более подробно рассматривать содержимое вышеописанных каталогов и назначение конфигурационных файлов системы. Также, с теми, кто еще не освоил консоль, мы рассмотрим основные команды ОС Linux, которые будут вам необходимы в работе с Linux.

Удачи вам и доброй дороги в Linux-пути!