Сайт о телевидении

Сайт о телевидении

» » Файловая система Linux и структура каталогов. Структура каталогов Linux

Файловая система Linux и структура каталогов. Структура каталогов Linux

Введение в файловую систему

Операционная система (далее - ОС) Linux поддерживает множество файловых систем , в настоящее время наиболее широко используются: ext2, ext3,ext4, reiserfs . Так же, современные ОС Linux совместимы с файловыми системами (ФС далее), используемыми ОС Windows, такими как NTFS и FAT32 , но использование данных ФС в Linux крайне не желательно по причине того, что данные ФС разрабатывались под ОС Windows и поддержка Windows-разделов ядром Linux реализована с помощью сторонних утилит/драйверов/модулей, что накладывает некоторые ограничения (например, согласно проекту Linux-NTFS на момент написания статьи на разделах с NTFS поддерживается практически только чтение (запись - лишь в существующие файлы без изменения их размера), так же ОС Linux не имеет возможности разграничивать права доступа к файлам на разделах NTFS. Данная ситуация со временем может поменяться.

Базовые понятия

Начну с общей структуры файловой системы . ФС Linux/UNIX физически представляет собой пространство раздела диска разбитое на блоки фиксированного размера, кратные размеру сектора - 1024, 2048, 4096 или 8120 байт. Размер блока указывается при создании файловой системы.

Управлением обмена данными между ядром/приложениями и собственно байтами на диске занимается 2 базовых технологии, называемые виртуальная файловая система (VFS) и драйверы файловых систем . Виртуальная файловая система - это часть ядра linux, которая является неким абстрактным слоем (интерфейсам взаимодействия, если хотите) между ядром и конкретной реализацией файловой системы (ext2, fat32...). Данная технология позволяет ядру и приложениям взаимодействовать с файловой системой не учитывая подробностей работы конкретной файловой системы и управлять файловыми операциями с помощью типовых команд - прозрачно. Часто, VFS называют виртуальный коммутатор файловых систем. Виртуальная файловая система так же осуществляет стыковку блочных устройств с имеющимися файловыми системами.

Список поддерживаемых Вашим ядром Linux файловых систем можно увидеть в файле /proc/filesystems .

Структура каталогов и другие базовые понятия

Структуру каталогов , в общем случае можно представить в виде следующей схемы:

Данная схема отображает то, что у одного объекта файловой системы (файла) может быть несколько путей. Грубо говоря, несколько файлов в структуре каталогов Linux могут быть физически одним файлом на диске. Или же другими словами, 1 физический файл на диске может иметь несколько имен (путей). Это достигается тем, что в файловой системе каждый файл идентифицируется уникальным номером , называемым Inode (инод = Индексный дескриптор ).

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

В файловой структуре Linux имеется один корневой раздел - / (он же root , корень ). Все разделы жесткого диска (если их несколько) представляют собой структуру подкаталогов, "примонтированых" к определенным каталогам, схематично это можно представить следующим образом:

/- |-/etc-|-/etc/X11-|-/etc/X11/xinit.d | | |-... | |-files | |-... |-/opt |-/home <- |-/user1-|-/user1/Desktop # примонтированный раздел ext3, | | |-/user1/Documents # содержащий свое дерево каталогов | | |-... # (/home - точка монтирования) | |-/user2 | |-.... |-/usr |-/var

Операция монтирования служит для того, чтобы сделать доступной файловую систему, расположенную на каком-либо блочном устройстве. Суть операции монтирования заключается в том, что ядро ассоциирует некоторый каталог (называемый точкой монтирования) с устройством, содержащем файловую систему и драйвером файловой системы. Для этого оно передает ссылку на блочное устройство - драйверу файловой системы, и в случае, если драйвер успешно проидентифицировал эту файловую систему, ядро заносит в специальную таблицу монтирования информацию о том, что все файлы и каталоги, чей полный путь начинается с указанной точки монтирования, обслуживаются соответствующим драйвером файловой системы и расположены на указанном блочном устройстве. Посмотреть таблицу примонтированных файловых систем можно через файл /proc/mounts .

Примечание. Вообще говоря, привязываться к блочному устройству в данном случае не обязательно. Устройство, которое монтируется может быть не только блочным. Может быть, например, сетевым (если монтируется NFS или SMB\CIFS).

Посмотреть сколько файл имеет ссылок и инод файла можно командой:

$ ls -li 193 drwxr-xr-x 1 mc-sim root 368 Mar 30 2008 bin 1 drwxr-xr-x 1 mc-sim root 0 Jan 1 1970 dev 197 lrwxrwxrwx 1 mc-sim root 7 Mar 30 2008 etc -> tmp/etc ....

в приведенном примере первый столбец (значения 193,1,197) есть инод , а третий столбец (значения 1) есть количество ссылок на файл (читаем: путей файла ).

Инод , как уже говорилось, уникален в пределах определенной файловой системы и содержит следующую информацию :

  • о владельце объекта ФС
  • последнем времени доступа
  • размере объекта ФС
  • указании файл это или каталог
  • права доступа
Структура и описание каталогов Linux
. ссылка на текущий каталог. Данный элемент есть в каждом каталоге файловой структуры.
.. ссылка на родительский каталог. Данный элемент есть в каждом каталоге файловой структуры. (в корне - / данный элемент указывает на саму корневую систему)
/ корневой каталог ФС, сюда "завязаны" все остальные подкаталоги первого уровня
/bin/ Бинарные программы, основные программы для работы в системе: командные оболочки, файловые утилиты и.т.д.
/boot/ статичные файлы загрузчика (образ ядра, файлы GRUB, LILO)
|-- /grub/
|-- /lilo/ Каталог конфигурационных файлов
| config-kern_ver файл текущей конфигурации ядра
| initrd.img-kern_ver загрузочный образ инициализации initrd
| vmlinuz-kern_ver образ ядра Linux
/dev/ каталог, содержащий файлы устройств.
В Linux вообще всё рассматривается, как файл, даже различные устройства, такие как принтеры, жёсткие диски, сканеры и т.д. Для получения доступа к определённому устройству, необходимо чтобы существовал специальный файл. Аналогично устроено большинство UNIX-подобных операционных систем
|-- /pts/ фиктивная файловая система, представляющая собой файловую структуру, которая отражает псевдотерминалы пользователей вошедших в систему
| |-- 0 устройство псевдотерминала pts/0
| |-- 1 устройство псевдотерминала pts/1
| --- n устройство псевдотерминала pts/n
|-- null т.н. "черная дыра" или "урна для битов". Вся информация, отправляемая на данное устройства - пропадает/уничтожается.
--- zero "генератор нулей"
/etc/ Системные конфигурационные файлы, стартовые сценарии, конфигурационные файлы графической системы и различных приложений. Из данного каталога хотелось бы выделить следующие файлы:
|-- /default/ содержит системные Файлы конфигураций в дистрибутивах Debian (аналог /etc/sysconfig/ в RedHat)
|-- /logrotate.d/ директория конфигурационных файлов демона автоматической обработки логов;
| |-- apache
| |-- squid конфигурация логирования apache
| |-- syslog конфигурация логирования системных логов
| --- ...
|-- /pam.d/ каталог содержит файлы конфигурации PAM (указывают методы аутентификации в приложениях, использующих PAM)
|-- /ppp/ директория содержит конфигурации PPP-соединений:
| |-- options содержит общую для всех PPP-соединений конфигурацию;
| |-- options.* конфигурация конкретно взятого соединения (например модемное options.ttyS1)
| |-- ip-up скрипт выполняемый при/для соединения (демоном pppd);
| --- ip-down скрипт выполняемый при/для разъединении (демоном pppd).
|-- /rc.d/ директория системы (содержит сценарии инициализации)
| |-- /init.d/ содержит скрипты, для управления системными демонами (сервисами);
| --- /rcX.d/ директории уровней запуска X, содержат ссылки на скрипты в init.d;
|-- /samba/ содержит файлы конфигурации samba:
| |-- smb.conf главный конфигурационный файл SAMBA;
| |-- smbusers описывает соответствие SAMBA пользователей к системным пользователям;
| --- smbpasswd содержит хеши пользователей SAMBA, пароли устанавливаются утилитой smbpasswd.
|-- /ssh/ Каталог конфигурации демона sshd
| |-- ssh_config Конфигурационный файл ssh клиента
| --- sshd_config Конфигурационный файл ssh - сервера
|-- /sysconfig/ содержит системные Файлы конфигураций в дистрибутивах RedHat (аналог /etc/default/ в Debian)
| |-- keyboard описание текущей раскладки клавиатуры;
| |-- desktop установки графической среды (KDE,GNOME..);
| |-- network файл конфигурации сетевой подсистемы
| --- i18n конфигурация общесистемной локали (локаль отдельных пользователей может содержаться в {home}/i18n);
|-- /security/ содержит Файлы описывающие безопасность системы:
| |-- console.perms правила изменения прав доступа к устройствам, при аутентификации;
| |-- limits.conf конфигурация лимитов пользователей.
| --- network конфигурация сети;
|-- /skel/ шаблон директории пользователя (в момент создания пользователя содержимое директории пользователя копируется отсюда), своеобразный аналог каталога C:\Documents and settings\Default User\ в Windows.
|-- /xinetd.d/ директория содержит файлы конфигураций отдельных сервисов для суперсервера xinetd;
|-- /X11/ /fs/config содержит перечень каталогов со шрифтами для X;
| |-- XF86Config Файл конфигурации X (XFree86);
| --- xorg.conf Файл конфигурации X (XOrg);
|-- at.allow Список пользователей, разрешающий (allow) или запрещающий (deny) выполнение утилиты at
|-- at.deny
|-- cron.allow Список пользователей, разрешающий (allow) или запрещающий (deny) выполнение
|-- cron.deny
|-- anacrontab конфигурация задач выполняемых anacron;
|-- crontab конфигурация задач выполняемых cron;
|-- ethers Файл соответствия аппаратных MAC адресов сетевым IP адресам в сети, в случае несоответствия доступ для хоста будет закрыт;
|-- export конфигурация NFS-ресурсов доступных извне;
|-- filesystems список ФС, поддерживаемых ядром (отсюда берется ФС, если она не указана в /etc/fstab)
|-- fstab список ФС, монтирующихся автоматически при загрузке
|-- group база данных
|-- gshadow файл паролей групп пользователей
|-- hostname текущее имя машины;
|-- hosts перечень хостов и соответствующих им IP-адресов;
|-- host.allow список хостов которым вход разрешен;
|-- host.deny список хостов которым вход запрещен (для libc ver 5);
|-- host.conf указывает где и в каком порядке искать имена хостов (для libc ver 6);
|-- inittab ;
|-- inputrc конфигурация ресурсов ввода с клавиатуры;
|-- issue сообщение, выводимое при локальном подключении к системе
|-- issue.net сообщение, выводимое при удаленном подключении к системе
|-- ld.so.conf файл конфигурации, содержащий список каталогов, в которых , кроме указанных путей, компоновщик ищет в каталогах /lib и /usr/lib
|-- ld.so.cache кэш библиотечных файлов, для более быстрого поиска библиотек (своеобразный индекс)
|-- login.defs описывает поведение login и su;
|-- logrotate.conf конфигурация демона
|-- lilo.conf конфигурация boot-загрузчика LILO;
|-- man.conf конфигурация системы страниц помощи, команда man;
|-- motd сообщение, выводимое всем пользователям после ввода пароля и перед запуском интерпретатора, т.н. "сообщение дня"
|-- mtab Список текущих примонтированных ФС. Обычно, этот файл должен создаваться, как только монтируется новая файловая система.
|-- netgroup файл определяет сетевые группы, используемые для проверки прав доступа при выполнении удаленного входа.
|-- nologin наличие этого файла запрещает пользователям входить в систему с выдачей сообщения в файле;
|-- nsswitch.conf конфигурация последовательности поиска имен по различным источникам;
|-- passwd
|-- printcap Файл конфигурации принтеров;
|-- profile сценарий-профиль для интерпретатора BASH (выполняется после регистрации в системе и используется для всех пользователей системы);
|-- protocols файл описывает номера протоколов, названия и описания.
|-- resolv.conf конфигурация резолвера имён, содержит список DNS-серверов;
|-- rpc файл описывает службы RPC (соответствие имя сервера RPC, номер программы RPC и псевдонимы)
|-- services содержит сопоставления номеров портов/сокетов именам служб
|-- shadow
|-- sysctl.conf содержит команды для автоматической инициализации sysctl-параметров ядра;
|-- syslog.conf конфигурация демона системного логера (syslogd);
|-- sudoers указание на то какие пользователи и какие программы могут быть запущены с привилегиями root используя sudo.
--- xinetd.conf конфигурация суперсервера Internet (централизованное управление сокетами/портами);
/home/ {имя_юзера} каталог, содержащий подкаталоги пользователей (настройки интерфейса, личные файлы)
|-- .bashrc профиль конкретного пользователя для BASH (запускается при запуске bash или запуске копии bash);
|-- .cshrc профиль конкретного пользователя для TCSH;
|-- .bash_profile профиль конкретного пользователя для BASH (запускается при каждом входе в систему).
|-- .inputrc конфигурация ресурсы ввода с клавиатуры конкретного пользователя.
|-- .Xauthority файл авторизации для запуска X-приложений удаленно, файлы на удаленных машинах должны соответствовать;
|-- .xinitrc сценарий загрузки X сервера конкретного пользователя;
--- .plan
.project
.forward
данные файлы используются утилитой finger для вывода информации о пользователе
/lib/ Системные библиотеки, необходимые для программ и модули ядра. (В Windows библиотеки представляют собой dll модули)
/lost+found В lost+found скидываются файлы, на которых не было ссылок ни в одной директории, хотя их inod не были помечены как свободные.
/media/ Каталог для монтирования съемных носителей (CD, Flash)
|-- /cdrom/
/mnt/ В каталоге содержаться временные точки монтирования для устройств
/opt/ Дополнительные пакеты программ. Если программа установленная сюда больше не нужна, то достаточно удалить ее каталог без процедуры денсталляции. Сюда могут устанавливается программы не являющиеся частью дистрибутива. (например /opt/openoffice.org).
/proc/ Виртуальная ФС, хранящаяся в памяти компьютера при загруженной ОС. В данном каталоге расположены самые свежие сведения обо всех процессах, запущенных на компьютере. Содержимое каждого файла определяется в реальном времени. среди данного каталога, хотелось бы особо выделить следующие файлы и каталоги:
|-- /net/
| -- arp текущая arp-таблица
|-- /sys/kernel/
| |-- cap-bound управление дополнительными пра, как сделано в последней строке для дискеты.tr сценарий-профиль для интерпретатора BASH (выполняетсtd/tdtda name="proc"я после регистрации в системе и используется для всех пользователей системы);вами (root) (0 – root права аннулируются);
| |-- hostname текущее имя Компьютера
| |-- domainname Имя домена компьютера
| |-- osrelease версия ядра системы;
| |-- ostype тип ОС (Linux, *BSD, ...);
| --- version дата сборки ядра.
|-- cpuinfo Текущая информация о процессоре
|-- cmdline список параметров, переданных ядру при загрузке
|-- devices системные устройства
|-- dma Задействованные в данный момент DMA каналы
|-- interrupts Счетчики количества прерываний IRQ в архитектуре i386.
|-- ioports порты ввода/вывода
|-- filesystems поддерживаемые ФС
|-- loadvg информация о загруженности системы
|-- kcore содержимое физической памяти в текущий момент
|-- kmsg сообщения, выдаваемые ядром (копия syslog)
|-- mdstat отображение статистики программных RAID массивов
|-- meminfo информация о памяти
|-- modules загруженные модули ядра
|-- mounts смонтированные ФС
|-- partitions информация о разделах дисков
|-- pci Полный список всех PCI-устройств, найденных во время инициализации ядра, а также их конфигурация.
|-- swaps информация о всех своп-разделах, подключенных к системе
|-- uptime время работоспособности
|-- version версия ядра
|-- /цифровые/ каталоги, содержащие в названии наборы цифр, соответствуют GID -номеру процесса и содержат в себе информацию о работающем процессе, GIDу которого соответствует.
| |-- /fd/* содержит указатели на все, открытые процессом файлы
| |-- cmdline полную командную строку запуска процесса до тех пор, пока процесс не будет "выгружен" или не станет "зомби"
| |-- cwd символьная ссылка на текущий рабочий каталог процесса
| |-- environ содержит окружение процесса
| |-- exe содержит мягкую ссылку на бинарник процесса
| |-- limits содержит информацию о лимитах процесса (например, лимит открытых файлов, приоритет процесса и т.п.)
| |-- root мягкая ссылка на каталог пользователя root для процесса
| --- status Информация о процессе, представленная в довольно удобном для просмотра виде. Она содержит, в частности, следующие строки:
  • Имя исполняемого файла процесса в скобках;
  • Статус процесса;
  • Идентификатор процесса
  • Идентификатор родительского процесса
  • Идентификатор группы процессов процесса
  • и др.
/root/ домашний каталог пользователя root, данный каталог должен быть в корневой ФС, чтобы администратор мог войти в нее.
/sbin/ В данном каталоге содержаться основные системные бинарники, команды для системного администрирования, а также программы, выполняемые в ходе загрузки ОС. Здесь находятся элементы, запускаемые в фоновом режиме, в каком то смысле данный каталог является аналогом папки c:\Windows\system\ и c:\Windows\system32\.
--- shutdown утилита остановки системы
/srv/ данные предоставляемых сервисов от ОС
/sys/ это директория, к которой примонтирована виртуальная файловая система sysfs, которая добавляет в пространство пользователя информацию ядра Linux о присутствующих в системе устройствах и драйверах. (В версии ядра ниже 2.6 не использовалась)
|-- /block/ каталог содержит подкаталоги всех блочных устройств, присутствующих в данный момент в системе.
|-- /bus/ В этом каталоге находится список шин, определенных в ядре Linux (eisa, pci и т.д.).
--- /class/ Каталог содержит список группированных устройств по классам (printer, scsi-devices и т.д.).
/tmp/ Временные файлы. Данный каталог аналогичен c:\Windows\temp. Обычно Linux очищает этот каталог во время загрузки.
/usr/ В данном каталоге хранятся все установленные пакеты программ, документация, исходный код ядра и система X Window. Все пользователи кроме суперпользователя root имеют доступ только для чтения. Может быть смонтирована по сети и может быть общей для нескольких машин.
|-- /bin/ Директория дополнительных программ для всех учетных записей.
|-- /include/ Заголовочные файлы С++.
|-- /lib/ Системные библиотеки для программ, расположенных в каталоге/usr
| /local/ По стандарту /usr должен быть общим для нескольких компьютеров и смонтирован по сети, а /usr/local должен содержать установленные пакеты программы только на локальной машине (к примеру, /usr - бюджет семьи, а /usr/local - личный кошелек каждого). Но чаще всего директория /usr/local используется для установки программ, которые не предназначены для конкретного дистрибутива (к примеру для пакетного дистрибутива Ubuntu в /usr находятся "родные" установленные пакеты, а /usr/local находятся собранные пакеты из исходников).
| |-- /bin/
| |-- /lib/
| |-- ...
|-- /sbin/ Дополнительные системные программы.
|-- /share/ Общие данные установленных программ.
| |-- /icons/ В каталоге находятся все иконки системы.
| --- /doc/ Директория, в которой обычно находится справочная документация по установленным программам.
|-- /src/ Каталог содержит исходные коды (например, здесь располагаются исходные коды ядра).
|-- /X11R6/bin/ Х ссылка на текущий X сервер;
|-- magic.mime файлы, хранящие "магическое число". Данное число описывает тип файла для утилиты file .
--- magic
/var Здесь находятся часто меняющиеся данные (журналы операционной системы, системные log-файлы, cache-файлы и т. д.)
|-- /cache В этом месте хранятся все кэшированные данные различных программ.
|-- /lib Постоянные данные, изменяемые программами в процессе работы (например, базы данных, метаданные пакетного менеджера и др.).
| --- /rpm/ база данных пакетного менеджера RPM
|-- /lock Здесь лежат lock-файлы, указывающие на занятость некоторого ресурса.
|-- /log/ в данном каталоге лежат все лог файлы системы
| |-- wtmp (бинарный формат) содержит удачные попытки входа и выхода в систему
| |-- utmp (бинарный формат) содержит текущих вошедших пользователей в систему
| |-- lastlog (бинарный формат) содержит, когда каждый пользователь последний раз входил
| -- btmp (бинарный формат) содержит НЕ удачные попытки входа/выхода в систему
|-- /spool Задачи, ожидающие обработки (например, очереди печати, непрочитанные или не отправленные письма, задачи cron и т. д.).
--- /www В этом месте размещаются Web-страницы для сервера Apache.

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

На сегодня все. В следующей статье будет сделана шпаргалка по основным командам Linux.

Файловая система Linux представляет собой четкую структуру каталогов и файлов. В этой статье рассмотрим краткое назначение каждого из каталогов.

Файловые системы Linux содержат множество каталогов, большинство из которых определяются стандартом FHS(Filesystem Hierarchy Standard).

Назваие статьи состоит из терминов "каталог", "директория" и "папка". Рассмотрим их.

Каталог или директория (англ. directory - директория) - объект в файловой системе, упрощающий организацию файлов.

Папка (англ. folder) - этот термин используется для представления каталогов в графическом пользовательском интерфейсе.

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

Общая структура файловой системы ОС Linux

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

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

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

/bin - основные бинарные файлы (программы)

Содержит основные двоичные (бинарные) системные программы (модули), утилиты (ls, cp и т.п.) и командные оболочки (bash и т.п.), которые должны обеспечить минимальный уровень работоспособности системы в однопользовательском режиме. Размещение этих файлов в каталоге /bin гарантирует, что в системе эти важные утилиты будут даже в случае, если другие файловые системы не смонтированы.

/boot - файлы для загрузки ОС

Хранятся образы ядер Linux и файлы менеджеров загрузки (grub, lilo и т.д.).

/cdrom – точка монтирования для CD-дисков

Данный каталог не является частью стандарта FHS, содержится в Ubuntu и вышедших из него дистрибутивах. Используется как место для монтируования CD-ROM дисков.

/dev - файлы устройств

В Linux все устройства предоставлены в виде специфических файлов, расположеных в этом каталоге. Например, файл /dev/sda представляет диск SATA. Также в этом каталоге хранятся файлы псевдо-устройств (виртуальных), для этих файлов нет соответствующего реального устройства. Например, файл /dev/random генерирует случайные числа, а файл /dev/null является специальным устройством для удаления всех входных данных.

/etc - конфигурационные файлы

Содержит основные конфигурационные файлы операционной системы и различных программ.

/home - домашние каталоги пользователей

Содержит домашние каталоги пользователей. По идеологии UNIX для обеспечения безопасности ОС рекомендуется хранить пользовательские данные именно в этой директории. Например, если ваше имя пользователя mara, то у вас есть домашний каталог, который находится в /home/mara и содержит пользовательские конфигурационные файлы и личную информацию. Каждый пользователь имеет доступ на запись только в своем домашнем каталоге.

/lib - основные библиотеки

Эта директория предназначена для хранения системных библиотек и компонентов компилятора языка С, необходимых для работы программ из директорий /bin и /sbin и операционной системы в целом.

/lib64 - 64-битные основные библиотеки

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

/lost+found - восстановленные файлы

Присуствует во всех ОС Linux. При сбое в работе файловой системы и дальнейшей проверке файловой системы (при загрузке ОС), все найденные поврежденные файлы будут помещены в каталоге lost+found, их можно попытаться восстановить.

/media - точка для автоматического монтирования

Используемая для автоматического монтирования различных устройств CD-ROM, USB-накопителей и т.д.

/mnt - точка для ручного монтирования

Используется для временного ручного монтирования (с помощю команды mount) различных устройств, таких как CD-ROM, USB-накопителей и т.д.

/opt - вспомогательные пакеты программ

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

/proc – файлы ядра и процессов

В эту директорию примонтирована виртуальная файловая система procfs. В ней находятся специальные файлы, в которых представлена информация о системе и о выполняющихся процессах. Например, в файле /proc/cpuinfo собержиться информация о процессоре.

/root - Домашний каталог пользователя root

Домашний каталог пользователя root. Вместо того, чтобы находиться в /home/root, он помещается в /root для большей надёжности системы.

/run – файлы состояния приложений

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

/sbin - бинарные файлы (программы) для администрирования системы

Каталог /sbin похож на каталог /bin. В нем находятся важные двоичные файлы, которые, как правило, предназначены для их запуска пользователем при администрировании системы.

/selinux – виртуальная файловая система SELinux

В некоторых дистрибутивах (Red Hat, Fedora и т.п) для обеспечения безопасности используется пакет SELinux (Security-Enhanced Linux), при этом создается каталог с файлами /selinux.

/srv – данные сервисных служб

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

/sys - виртуальная файловая система sysfs

Этот каталог появился с выходом ядра версии 2.6 и в него примонтирована виртуальная файловая система sysfs с информацией об устройствах, драйверах, ядре ОС и т.п.

Описание вложеных каталогов:

/sys/block - содержит директории всех блочных устройств, присутствующих на данный момент в системе.

/sys/bus - содержит список шин, определенных в ядре Linux (eisa, pci и т.д.).

/sys/class - содержит список сгруппированных устройств по классам (printer, scsi-devices и т.д.).

/tmp - временные файлы

Временные файлы, обычно удаляются при перезагрузке системы. Является аналогом C:/Windows/Temp в ОС Windows. Все пользователи имеют права чтения и записи в этом каталоге.

/usr - пользовательские бинарные файлы, используемые только для чтения

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

Описание вложеных каталогов:

/usr/bin - исполняемые файлы для всех учетных записей.

/usr/games - каталог для компьютерных игр в системе.

/usr/include - файлы заголовков, предназначенные для компиляции С-программ.

/usr/lib - системные библиотеки и вспомогательные файлы, расположенные в директории /usr.

/usr/local - в этот каталог устанавливаются приложения, откомпилированные локально, что позволяет им не смешиваться с остальной частью системы.

/usr/local/bin - локальные исполняемые файлы.

/usr/local/etc - локальные системные команды и файлы конфигурации.

/usr/local/lib - локальные вспомогательные файлы.

/usr/local/sbin - локальные служебные системные команды.

/usr/local/src - исходные коды программ каталогов /usr/local/*

/usr/man - страницы интерактивной документации.

/usr/sbin - менее важные команды системного администрирования.

/usr/share - общие данные установленных программ (доступен только для чтения).

/usr/share/man - страницы интерактивной документации.

/usr/share/icons - иконки системы.

/usr/share/doc - справочная документация.

/usr/src - исходные коды нелокальных программных пакетов (например, здесь располагаются исходные кода ядра).

/var - каталог для часто меняющихся данных

В этом каталоге находятся журналы операционной системы, системные log-файлы, cache-файлы и т.д.

/var/adm - журнальные файлы, записи об инсталляции системы, административные компоненты.

/var/cache - все кэши для различных программ.

/var/games - файлы с игровыми достижениями.

/var/log - cистемные журнальные файлы (log-файлы).

/var/lock - лежат lock-файлы, указывающие на занятость некоторого ресурса.

/var/lib - изменяемые программами в процессе работы (например, базы данных, метаданные и др.).

/var/spool - буферные каталоги (например, очереди печати, непрочитанные или не отправленные письма, задачи cron и т.д.).

/var/tmp - каталог для временного хранения файлов.

/var/www - размещаются Web-страницы для сервера Apache.

Посмотреть структуру файловой системы можно используя команду ls -la. Ниже приведен пример вывода команды для дистрибутива OpenSUSE.

# ls -la total 260 drwxr-xr-x 24 root root 4096 Aug 30 2013 . drwxr-xr-x 24 root root 4096 Aug 30 2013 .. drwxr-xr-x 2 root root 4096 Aug 8 2012 .config -rw-r--r-- 1 root root 149519 Aug 30 2013 .readahead drwxr-xr-x 2 root root 4096 Aug 8 2012 bin drwxr-xr-x 3 root root 4096 Aug 8 2012 boot drwxr-xr-x 18 root root 3340 May 16 16:29 dev drwxr-xr-x 122 root root 12288 Jun 27 2013 etc drwxr-xr-x 4 root root 4096 Sep 21 2012 home drwxr-xr-x 16 root root 4096 Aug 23 2012 lib drwxr-xr-x 10 root root 12288 Aug 23 2012 lib64 drwx------ 2 root root 16384 Aug 8 2012 lost+found drwxr-xr-x 2 root root 40 Dec 11 2013 media drwxr-xr-x 2 root root 4096 Oct 25 2011 mnt drwxr-xr-x 3 root root 4096 Aug 23 2012 opt dr-xr-xr-x 194 root root 0 Dec 11 2013 proc drwx------ 31 root root 4096 Jun 10 14:38 root drwxr-xr-x 23 root root 780 Jul 9 17:39 run drwxr-xr-x 3 root root 12288 Aug 8 2012 sbin drwxr-xr-x 2 root root 4096 Oct 25 2011 selinux drwxr-xr-x 6 1004 users 4096 Sep 21 2012 srv drwxr-xr-x 12 root root 0 Dec 11 2013 sys drwxrwxrwt 95 root root 4096 Jul 9 17:39 tmp drwxr-xr-x 13 root root 4096 Nov 10 2011 usr drwxr-xr-x 16 root root 4096 Aug 9 2012 var

Вот и все. Рассмотрение предназначения основных встречающихся каталогов в файловой системы Линукс завершено.

Здравствуйте, уважаемые посетители, читатели, други и недруги, постоянные клиенты и прочие личности сайта.

Мы продолжаем цикл статей, посвященных Linux-системам. Сегодня мы поговорим о таких важных (может быть, и не совсем простых) понятиях, как:

  • Файловая система Linux ;
  • Основные каталоги корневой файловой системы;
  • Консольные команды для работы с файлами и каталогами.

Итак, начнем.

Корневая файловая система Linux

Сложно представить операционную систему (даже такую как Linux ) без файловой системы. На ней лежит всесистемный порядок. Файловая система строго следит за организацией, хранением, а также именованием данных. Например, когда программа обращается к файлу, она ничего не знает о том, где расположена информация о данном файле, на каком физическом носителе она записана. Единственное, что знает программа, это имя файла, к которому она обращается, его размер и другие параметры, которыми искомый файл отличается от множества других файлов (дату и время создания файла, имя владельца файла, права и метод доступа к файлу и т.д.). Все эти данные она получает от файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске или съемном устройстве). Все собранные в одном месте каталоги (по-другому папки), подкаталоги, а так же файлы и есть данные файловой системы. Причем один из этих каталогов в Linux -системах является самым наиважнейшим, а именно «верхушкой» (по-другому - «корнем») файловой системы - в нём содержатся все остальные каталоги и файлы.

Для того, чтобы Вы понимали, о чем идет речь, я открыл каталоги файловой системы Linux через файловый менеджер Midnight Commander (MC). Верхушку файловой системы (корневой каталог) указал красной стрелкой - и вот именно к ней монтируются все другие файловые системы. Далее мы попытаемся более доступно описать все, что в данный момент Вы видите на рисунке (по тексту мы будем останавливаться на тех или иных понятиях, чтобы было понятно, о чем идет речь, и Вы, поглядев на рисунок, смогли сориентироваться).

Если жёсткий диск разбит на разделы, то на каждом из них возникают отдельные файловые системы с собственным корнем и с собственной структурой каталогов. Любая операционная система поддерживает несколько файловых систем, например, Windows FAT , FAT32 , NTFS и др. Linux не исключение. Однако важно различать файловые системы, которые могут использоваться в качестве корневой файловой системы и файловые системы, которые просто поддерживают операционную систему, но не используются для установки Linux или Windows (к таким можно отнести, например, ISO9660 (эта модель обеспечивает совместимость носителей под разными операционными системами), UDF (а это особенный формат файловой системы, предназначенный для хранения файлов на оптических носителях) и др). Мы не будем рассматривать файловые системы Windows , не будем останавливаться на файловых системах, не использующихся для установки операционных систем, а просто сделаем краткий обзор и познакомимся с некоторыми наиболее известными корневыми файловыми системами Linux .

  • ext - Extended File System (расширенная файловая система) первая файловая система, разработанная специально для операционных систем на ядре Linux .
  • ext2 - Second Extended File System (дословно: «вторая расширенная файловая система») - стандартная, но уже устаревшая файловая система Linux . По скорости и производительности работы она может служить эталоном в тестах производительности файловых систем. Единственный ее минус - она не является журналируемой файловой системой (журналируемая файловая система это система, в которой ведется запись журнала и которая хранит список изменений, что в свою очередь, помогает сохранить целостность файловой системы при сбоях) . Этот недостаток был устранён в следующей файловой системе ext3.
  • ext3 - Third Extended File System (третья версия расширенной файловой системы) усовершенствованная версия файловой системы ext2 с поддержкой ведения журнала, что, несомненно, повышает ее надежность.
  • ext4 - Fourth Extended File System (четвёртая версия расширенной файловой системы) - новейшая файловая система Linux . Начиная с ядра Linux 2.6.28 (вышедшем 25.12.2008 г.) файловая система уже считается стабильной и используется по умолчанию во многих дистрибутивах Linux .
  • Файловая система ext4 рассматривается как переходный шаг на пути к файловой системе следующего поколения Btrfs , которая уже сейчас претендует на звание основной файловой системы Linux в будущем.

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

Еще раз повторимся (повторение - мать учения) :). При установке Linux на выбранном Вами разделе жесткого диска создается корневая файловая система, и для Linux именно она является самой важной. Именно к ней будут монтироваться все остальные файловые системы на других устройствах. Корневая файловая система тоже монтируется, но только не к другой файловой системе, а к «самой Linux », причём точкой монтирования служит корневой каталог. Поэтому при загрузке системы прежде всего монтируется корневая файловая система, а при завершении она размонтируется в последнюю очередь (о самом понятии монтирования и размонтирования мы поговорим в следующих статьях - это отдельная и тоже немаловажная тема) . Корневая файловая система содержит набор стандартных каталогов и утилит, без которых невозможна работа Linux . В Linux корневой каталог обозначается так - “/ ” (слеш). Полные имена (по-другому - пути) всех остальных каталогов получаются из “/ ”, к которому дописываются справа имена последовательно вложенных друг в друга каталогов. Имена каталогов в пути также разделяются символом “/”. Например, запись /home обозначает каталог “home ” в корневом каталоге (“/”) , а /home /Sonikelf - каталог “Sonikelf ” в каталоге “home ”, который, в свою очередь, находится в корневом каталоге. Перечисленные таким образом каталоги, завершающиеся именем файла, и составляют полный путь к файлу .

В Linux , помимо полного пути, есть и относительный путь , который строится точно так же, как и полный - перечислением через слеш (“/”) всех названий каталогов, встретившихся при движении к искомому каталогу или файлу. Между полным и относительным путём есть только одно немаловажное различие: относительный путь начинается от текущего каталога, а полный путь всегда начинается от корневого каталога. Linux различает полный и относительный пути просто: если имя объекта начинается на “/ ” - это полный путь, в любом другом случае - относительный.

Основные каталоги корневой файловой системы
В разных дистрибутивах Linux каталоги тоже могут быть разные: в некоторых будут дополнительные файлы/каталоги конфигурации, а некоторые файлы конфигурации, вполне возможно, будут называться как-то по-другому. Я приведу названия каталогов, которые входят в дистрибутив Fedora . Итак, поехали:

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

  • /bin - содержит стандартные утилиты Linux . Или, скажем так, - этот каталог содержит основные исполняемые файлы (в Windows такие файлы имеют расширение.exe) , доступные всем пользователям, а также содержит символьные ссылки на исполняемые файлы. Символьная ссылка это специальный файл в файловой системе, внутри которого есть только одна-две строки с указанием полного пути, который должен быть открыт при попытке обратиться к данной ссылке (файлу).
  • /boot - содержит конфигурационные файлы загрузчика GRUB , образы ядра (по умолчанию хранятся последние три), файлы Initrd. Чтобы было понятно, что это за такие мифические файлы Initrd , немного внесем ясность. Когда начинается начальная загрузка системы, сначала монтируется временный виртуальный диск, который содержит временную корневую файловую систему, с помощью которой, в свою очередь, осуществляется запуск ядра Linux . Файл Initrd - образ этой временной корневой системы, который хранится на загрузочном устройстве.
  • /dev - содержит файлы устройств. В Linux устройством называется оборудование, которое подключается к системе в процессе загрузки ядра или в процессе работы системы. Эти устройства представляют методы для ввода или вывода информации. Например, жесткий диск - устройство для ввода (запись) и вывода (чтение) , мышь - устройство ввода. Каждое движение или нажатие на кнопки мыши отправляет символ на устройство /dev /mouse , клавиатура - тоже устройство ввода. Большинство устройств в Linux представляют из себя файлы в особой файловой системе (исключение составляют сетевые карты) . И вот эти файлы хранятся в каталоге /dev , куда к ним обращается система для выполнения задач, связанных с вводом/выводом.
  • /etc - содержит конфигурационные файлы операционной системы и всех сетевых служб. Данный каталог можно сравнить с реестром Windows , но в Windows общесистемные настройки хранятся в одном большом бинарном файле, а в Linux - в разных конфигурационных файлах, которые можно редактировать обычным текстовым редактором.
  • /home - название каталога говорит само за себя. Здесь содержатся домашние каталоги всех пользователей, которые зарегистрированы в системе. В домашних каталогах пользователей хранятся пользовательские файлы, а также пользовательские настройки различных программ. Как мы уже упоминали в предыдущей статье, и поэтому каждый пользователь имеет свой уникальный и неповторимый каталог для своих личных, персональных файлов. Этот каталог называется Домашним каталогом пользователя и обозначается, как мы уже говорили немного ранее, /home/Имя_Пользователя. Такое разделение пользовательских каталогов и файлов операционной системы упрощает сохранение данных и повышает надежность самой операционной системы.
  • /lib - здесь находятся различные библиотеки и модули ядра. В процессе установки различных программ в Linux (в том числе и драйверов) устанавливаются (о них мы уже говорили) для корректной работы программы. Вот эти зависимости в большинстве случаев и есть библиотеки - набор собранных особым образом файлов, которые подключаются во время установки к устанавливаемой программе.
  • /lost+found - этот каталог нужен для хранения испорченных файлов при проблемах с файловой системой, которые были восстановлены после, например, некорректного размонтирования файловой системы. Это очень ценный каталог, удалить его не получится (он всё равно снова появится).
  • /misc - может содержать все что угодно.
  • /mnt и /media - обычно в этих каталогах содержатся точки монтирования. В современных дистрибутивах Linux этот процесс обычно происходит автоматически. При этом в каталогах /mnt или /media создается подкаталог, имя которого совпадает с именем монтируемого тома.
  • /opt - здесь обычно размещаются установленные программы, имеющие большой дисковый объем, или вспомогательные пакеты, например, у меня в этом каталоге всего две программы - это Adobe Reader и Google Chrome
  • /proc - это не совсем обычный каталог, это каталог псевдофайловой системы procfs, которая используется для предоставления информации о процессах (по-другому это виртуальная файловая система, которая обеспечивает связь с ядром и монтируется в каталогу /proc) . Да-да, в системе Linux присутствует виртуальный файловый объект, именуемый каталогом /proc. Он существует только во время работы системы в оперативной памяти компьютера. Каталог представляет интерес и с точки зрения безопасности. Многие из утилит, выводящие информацию о системе (например, команда ps) , берут свои исходные данные именно из этого каталога.
  • /root - каталог пользователя (кто это такой, мы упоминали в одной из предыдущих статей).
  • /run - это совершенно новый каталог, который появился совсем недавно. И создан он (по задумке разработчиков) для хранения данных, которые были запущены приложениями, требующимися в процессе работы (это могут быть и службы, запускаемые самой системой, и программы, которые Вы запускаете сами).
    Сюда входят:
    • Идентификаторы процессов PID (каждый запущенный в среде Linux процесс имеет свой уникальный идентификатор - по-другому это адрес (в числовом виде) процесса, с которым будут взаимодействовать другие запущенные процессы во время работы);
    • Информация о межпроцессорном взаимодействии (проще говоря, это обмен данными между запущенными процессами) ;
    • Заблокированные файлы (если в процессе работы приложение или не запускается, или работает нестабильно? это может означать, что некоторые файлы этого приложения заблокированы другими процессами и происходит это тогда, когда сразу несколько приложений пытаются использовать один общий ресурс); - ну и другие данные, необходимые во время работы.
  • /sbin - набор утилит для системного администрирования, содержит исполняемые файлы, необходимые для загрузки системы и ее восстановления в различных щекотливых ситуациях. Запускать эти утилиты имеет право только root.
  • /tmp - каталог, в котором хранятся временные файлы. Linux , в отличие от Windows , следит за чистотой и регулярно очищает этот каталог.
  • /usr - содержит пользовательские программы, документацию, исходные коды программ и ядра. По размеру это один из самых больших каталогов файловой системы. В этот каталог устанавливаются практически все программы. И его (этот каталог) с большой натяжкой можно сравнить с каталогом Program Files в Windows .
  • /var - содержит файлы, которые подвергаются наиболее частому изменению. Например, кэши различных программ; файлы блокировки для недопустимости одновременного использования одной программы несколькими пользователями; файлы системных журналов; временные файлы (при выключении компьютера содержимое очищается); информация о различных программах; общая информация о состоянии системы с момента последней загрузки, входа в систему и т.д.; очередь печати, факсов, а также входящие почтовые ящики пользователей и т.д.

Вывод. Файловая система в Linux это неразделимое целое, начинающееся с корневого каталога (так называемой "верхушки"), а внутри каталога могут находиться целые диски или их разделы (с другими файловыми системами), которые можно легко примонтировать (присоединить) и также легко отмонтировать (отсоединить) от единственного, единого, неразделимого, целого дерева. Специально выделил эти слова, чтобы было понятно отличие от файловой системы Windows . Если кто не в курсе, в Windows каждый логический диск это корневой каталог. Например, если есть три логических диска - C, D, F , значит будет три корневых каталога.

Необходимые команды, которые нужно знать для работы с файлами и каталогами

Сейчас, когда в Linux есть неплохой графический интерфейс, консолью пользуются все реже и реже (что лично меня приводит в уныние). В любом случае знание простого базиса, а именно, простых и полезных команд, необходим любому пользователю (например, у Вас произошел сбой X- сервера (грубо говоря, это так называемый графический интерфейс в Linux - это не совсем точное определение, но в данный момент, мы не будет углубляться в дебри терминологии) или Вам понадобилось установить программу из исходного кода, или еще что-то). Без консоли (или терминала) Вам не обойтись. А чтобы эффективно работать в консоли, нужно знать команды Linux. Вообще команд очень много, поэтому охватить их все будет просто нереально (по крайней мере, в рамках данной статьи), поэтому мы ограничимся пока что командами для работы с файлами и каталогами.

Примечание:
Обращаю Ваше внимание, что все имена файлов и названия команд нужно вводить в правильном регистре, т.е. имена в Linux «чувствительны к регистру». Например, команда cd - совсем не то же самое, что команда Cd или CD . То же относится к именам файлов и каталогов.

Команда cd - используется для движения по дереву каталогов. Если Вы введете эту команду без аргументов (т.е. просто напишите cd - смотрите первую строку на рисунке), то попадете в свой домашний каталог, а чтобы попасть в любой другой каталог, необходимо указать путь к нему. По умолчанию Вы всегда изначально находитесь в своем домашнем каталоге (/home). В первой строке указан относительный путь, во второй - полный. Если Вам нужно передвинуться в какой-либо другой каталог, то введите cd , обязательно пробел и тот каталог, куда Вам нужно перейти, например cd /usr . На четвертой строке рисунка в квадратных скобках указано, что мы перешли в каталог usr. Можно сразу указать весь путь, например, cd /usr/games . Вы попадете в каталог games, который находится в каталоге usr, который, в свою очередь, находится в корневом каталоге системы. Чтобы вернуться обратно в свою домашнюю директорию, достаточно указать относительный путь cd ~.

Теперь, когда Вы, немного потренировавшись, уже умеете переходить из каталога в каталог, самое время узнать, как просмотреть содержимое каталога. И в этом нам поможет команда ls . С ее помощью Вы можете вывести на экран список файлов и каталогов текущего каталога. У команды ls много опций. Сама по себе команда ls (без ключа) не покажет все файлы в каталоге. Некоторые файлы являются скрытыми и их можно увидеть, только задав дополнительный ключ (опцию) команде ls . Если набрать ls -a , то нашему взору представится список всех файлов каталога (откроются даже скрытые).

Не обязательно находиться в том каталоге, содержимое которого Вы хотите узнать с помощью команды ls. Например, чтобы увидеть, что имеется в каталоге /etc , находясь при этом в вашем домашнем каталоге, введите:

ls -al /etc

Здесь мы указали два ключа - это показывать скрытые файлы (a) и вывести информацию (l). Обратите внимание, мы можем сразу указывать несколько ключей, чтобы получить всю информацию о каталоге или файле.

Приведу наиболее часто употребляемые ключи команды ls:

-a (all) - выведет список всех файлов каталога, в том числе и скрытые файлы;

-l (long) - выведет информацию о содержимом каталога, включая права доступа (первая графа), владельца (вторая графа), группу (третья графа), размер (четвертая графа), время создания (пятая графа), является ли файл символьной ссылкой на другой файл и на какой именно (шестая графа);

-r (reverse) - выведет список содержимого каталога в обратном порядке;

-S (size) - отсортирует файлы по размеру.

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

Посмотрите на первую строку. В квадратных скобках указано, что я нахожусь в каталоге services. А вот где он находится, в каких или какой директории совершенно непонятно. Введя вышеназванную команду, мне открылся полный путь к этому каталогу (вторая строка). С этой командой Вы точно не заблудитесь в файловой системе Linux .

Команда mkdir - создание нового каталога. В домашнем каталоге пользователя - /home , как и в любом другом, можно создавать неограниченное число подкаталогов, в них - свои подкаталоги и т.д. Другими словами, Вам принадлежит "поддерево" файловой системы, корнем которого является домашний каталог пользователя.
Чтобы организовать такое поддерево, потребуется создать каталоги внутри домашнего. Вот для этого и используется утилита mkdir . Она используется с одним обязательным параметром: именем создаваемого каталога. По умолчанию каталог будет создан в текущем каталоге.

Давайте создадим каталог globus (первая строка на рисунке). Введем команду mkdir globus . Чтобы удостовериться, что каталог создан, введем команду ls с ключом -F (для каждого имени каталога добавлять суффикс "/"). Каталог создан.

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

Давайте немного потренируемся: создайте в домашнем каталоге два каталога - Globus и Dos и создайте файл - dokument . А теперь приступим к практике:

1) Переименуем один файл в другой. Чтобы переименовать, например, файл dokument в dokument.old , введите:

mv dokument dokument.old

2) А теперь переместим один каталог в другой. Чтобы переместить каталог Globus Dos , введите:

mv Globus Dos

Если каталог Dos уже существует (как в нашем случае), mv поместит Globus внутрь Dos . А если каталога Dos Вы не создали, то mv ПЕРЕИМЕНУЕТ (перезапишет) Globus в Dos

3) Чтобы переместить файл или каталог, который не находится в текущем каталоге, укажите в качестве опции его полное имя и путь.

Например, чтобы переместить файл /usr/tmp/dokument в текущий рабочий каталог, введите:

mv /usr/tmp/dokument txt.txt

Файл dokument был изначально в /usr/tmp/ , мы его переместили в домашний каталог переименовав в txt.txt

4) А теперь чтобы переместить файл txt.txt из текущего рабочего каталога в каталог /usr/tmp , наберите:

mv txt.txt /usr/tmp

Файлов в каталоге tmp может быть много, поэтому картинку для удобства разделил и уменьшил. Вторая строка означает, что чтобы удостоверится в перемещении нашего файла, мы должны перейти в этот каталог, что и сделали с помощью команды cd . А с помощью команды ls мы открыли для просмотра каталог tmp и убедились, что перемещение произошло успешно.

Следующая полезная и нужная команда - cp.
Она создает копию файла. Утилита cp тоже требует присутствия двух обязательных параметров: первый - то, что мы хотим скопировать (файл или каталог), второй - куда мы хотим это скопировать (пункт назначения). Например, надо скопировать файл dokument в каталог Globus - введите команду

cp dokument Globus

и в каталоге Globus появится файл dokument (это будет копия файла dokument , который находится в нашем домашнем каталоге)

С помощью команды cp можно копировать не только по одному файлу или каталогу - можно путем перечисления всего того, что Вы хотите скопировать, указать это команде cp . Например, нам надо скопировать два файла dokument и dokument.old в каталог Dos , ничего нет проще - перечислите все файлы или каталоги через пробел:

cp dokument dokument.old Dos

Можно не только копировать, но и удалять файлы и каталоги, и в этом нам помогут команды rm (удаляет файлы)..

.. И rmdir (удаляет каталоги). rmdir согласится удалить каталог только в том случае, если он пуст, т.е. в нём нет никаких файлов и подкаталогов.

Удалить каталог вместе со всем его содержимым можно командой rm с ключом «-r ». Команда rm -r имя каталога(ов) - очень удобный способ потерять в одночасье все файлы: она рекурсивно (этот термин обозначает примерно то же, что у Windows запустить uninstaller ) обходит весь каталог, удаляя всё, что попадётся - файлы, подкаталоги и т.д., а ключ «-f » (force) делает её работу ещё более неотвратимой, так как подавляет запросы вида «удалить защищённый от записи файл», так что rm работает безмолвно и безостановочно. Будьте внимательны при использовании этой команды.

Команда cat - позволяет вывести на экран содержимое любого файла, однако в таком виде эта команда практически не используется. Если файл слишком большой, то его содержимое пролистается на экране, а Вы увидите только последние строки файла. С помощью этой команды можно комбинировать и объединять копии файлов, а также создавать новые файлы. Если набрать просто в командной строке cat и нажать Enter , то можно вводить (и соответственно видеть) текст на экране. Повторное нажатие клавиши Enter удвоит строку и позволит начать следующую. Когда текст набран, следует одновременно нажать клавиши Ctrl и d .

Так происходит потому, что первую строку вводите Вы сами, а вторую копирует команда cat на экран. Если переадресовать (т.е. записать) вывод в файл txt , то никакого удвоения не произойдет, зато в рабочем каталоге появится новый файл с набранным текстом, который спокойно можно просмотреть через эту команду:

cat > txt

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

Некоторые опции, которые можно использовать с этой командой:

  • -A показывает все невидимые символы;
  • -E показывает символы конца строки;
  • -e показывает непечатаемые символы плюс символ конца строки;
  • -b нумерует непустые строки;
  • -n нумерует все строки.

Давайте попробуем объединить два файла в один с помощью команды cat :
У нас есть два файла - dokument и txt , мы объединим их в один galina , введя команду

cat dokument txt >galina

Вот и все - наши два файла объединены в один с сохранением и первого, и второго файлов в одном общем файле:)

Если файл слишком большой, то для просмотра на экране надо воспользоваться командами more и less .

  • more выводит содержимое файла на экран постранично, размером как раз на целый экран. Для того, чтобы увидеть следующую страницу, надо нажать на клавишу пробела. Выйти из режима просмотра можно с помощью клавиши Q.
  • less содержит все функции и команды управления выводом, имеющиеся в more и дополнительные, например, для перемещения по тексту Вы можете использовать клавиши Стрелка вверх , Стрелка вниз , PgUp , PgDown .
  • Команда locate - выполняет поиск файла. С помощью этой команды Вы можете увидеть все файлы или каталоги, названия которых содержат искомый образец. Например, для поиска файла, содержащего в названии слово dokument.old, введите в командной строке

locate dokument.old

Команда locate нашла все файлы dokument.old . В системе их оказалось три. Можно задать и более расширенный поиск, например, если вместо dokument.old Вы укажите "кусочек" названия, например "doku ". Будут найдены ВСЕ файлы, где встречается это буквосочетание.

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

Еще одна полезная команда - which . Она показывает положение исполняемых файлов. Команда полезна при создании кнопки запуска какого-либо приложения.

Чтобы создать кнопку запуска, Вы должны знать команду запуска приложения, для которого захотите создать кнопку запуска на рабочем столе. На данном рисунке видно, что команда запуска ls - это /usr/bin/ls

Команда clear (а также сочетание клавиш Ctrl+L ) - очищает окно терминала. Это бывает полезным, когда Вы передвигаетесь по каталогам, файлам, поскольку окно терминала заполняется кучей команд или просто какой-нибудь информацией. При этом приглашение командной строки будет смещено вниз – что не всегда удобно. Чтобы не выходить из командной строки и снова заходить в нее, нужно воспользоваться командой clear .

Ну и напоследок хочу отметить еще две полезных и очень нужных команды.

Первая это history . Само название команды говорит само за себя. Это история команд, которую Вы вводили в окне терминала. Для новичков или даже продвинутых пользователей довольно утомительно запоминать, как пишется та или иная команда (я говорю не об однословных командах, а о командах, содержащих в себе 2-3-4 слова, например, system-config-authentication). Эта команда выведет на экран список ранее введенных команд (список этих команд можно ещё посмотреть в файле.bash_history . Он находится в вашей домашней папке пользователя). Просто наберите: !"номер команды в history ", например !847 .

И закончим мы знакомство, пожалуй, с самой важной командой в Linux . Это команда man - сокращенно от "manual " (руководство). Ею можно вызвать страницы документации о предназначении и об использовании команд в системе. Введя man , пробел и название любой команды, Вы увидите страницу документации по выбранной команде, например, введите man clear

Выход из справки - q

Как и любая другая справочная система, система man имеет собственную man -страницу. Введите man man и получите подробнейшую документацию по самой команде man .

Послесловие.

Как-то так. Как и всегда ждем от Вас комментариев, дополнений и всего такого прочего.

На этом мы закончим нашу очередную лекцию:). Будут и следующие, надеюсь, что интересные и захватывающие. Если есть, что дополнить (добавить), милости прошу, добавляйте в своих комментариях.

P.S. За существование данной статьи спасибо члену команды Pantera

Любая операционная система поддерживает несколько файловых систем, например, Windows поддерживает такие известные всем файловые системы, как FAT , FAT32 , NTFS и др. Linux не исключение.

Файловая система Linux представляет собой четкую структуру каталогов и файлов. В этой статье рассмотрим краткое назначение каждого из каталогов.

Файловые системы Linux содержат множество каталогов, большинство из которых определяются стандартом FHS(Filesystem Hierarchy Standard).

Назваие статьи состоит из терминов "каталог", "директория" и "папка". Рассмотрим их.

Каталог или директория (англ. directory - директория) - объект в файловой системе, упрощающий организацию файлов.

Папка (англ. folder) - этот термин используется для представления каталогов в графическом пользовательском интерфейсе.

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

Общая структура файловой системы ОС Linux

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

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

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

/bin - основные бинарные файлы (программы)

Содержит основные двоичные (бинарные) системные программы (модули), утилиты (ls, cp и т.п.) и командные оболочки (bash и т.п.), которые должны обеспечить минимальный уровень работоспособности системы в однопользовательском режиме. Размещение этих файлов в каталоге /bin гарантирует, что в системе эти важные утилиты будут даже в случае, если другие файловые системы не смонтированы.

/boot - файлы для загрузки ОС

Хранятся образы ядер Linux и файлы менеджеров загрузки (grub, lilo и т.д.).

/cdrom – точка монтирования для CD-дисков

Данный каталог не является частью стандарта FHS, содержится в Ubuntu и вышедших из него дистрибутивах. Используется как место для монтируования CD-ROM дисков.

/dev - файлы устройств

В Linux все устройства предоставлены в виде специфических файлов, расположеных в этом каталоге. Например, файл /dev/sda представляет диск SATA. Также в этом каталоге хранятся файлы псевдо-устройств (виртуальных), для этих файлов нет соответствующего реального устройства. Например, файл /dev/random генерирует случайные числа, а файл /dev/null является специальным устройством для удаления всех входных данных.

/etc - конфигурационные файлы

Содержит основные конфигурационные файлы операционной системы и различных программ.

/home - домашние каталоги пользователей

Содержит домашние каталоги пользователей. По идеологии UNIX для обеспечения безопасности ОС рекомендуется хранить пользовательские данные именно в этой директории. Например, если ваше имя пользователя mara, то у вас есть домашний каталог, который находится в /home/mara и содержит пользовательские конфигурационные файлы и личную информацию. Каждый пользователь имеет доступ на запись только в своем домашнем каталоге.

/lib - основные библиотеки

Эта директория предназначена для хранения системных библиотек и компонентов компилятора языка С, необходимых для работы программ из директорий /bin и /sbin и операционной системы в целом.

/lib64 - 64-битные основные библиотеки

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

/lost+found - восстановленные файлы

Присуствует во всех ОС Linux. При сбое в работе файловой системы и дальнейшей проверке файловой системы (при загрузке ОС), все найденные поврежденные файлы будут помещены в каталоге lost+found, их можно попытаться восстановить.

/media - точка для автоматического монтирования

Используемая для автоматического монтирования различных устройств CD-ROM, USB-накопителей и т.д.

/mnt - точка для ручного монтирования

Используется для временного ручного монтирования (с помощю команды mount) различных устройств, таких как CD-ROM, USB-накопителей и т.д.

/opt - вспомогательные пакеты программ

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

/proc – файлы ядра и процессов

В эту директорию примонтирована виртуальная файловая система procfs. В ней находятся специальные файлы, в которых представлена информация о системе и о выполняющихся процессах. Например, в файле /proc/cpuinfo собержиться информация о процессоре.

/root - Домашний каталог пользователя root

Домашний каталог пользователя root. Вместо того, чтобы находиться в /home/root, он помещается в /root для большей надёжности системы.

/run – файлы состояния приложений

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

/sbin - бинарные файлы (программы) для администрирования системы

Каталог /sbin похож на каталог /bin. В нем находятся важные двоичные файлы, которые, как правило, предназначены для их запуска пользователем при администрировании системы.

/selinux – виртуальная файловая система SELinux

В некоторых дистрибутивах (Red Hat, Fedora и т.п) для обеспечения безопасности используется пакет SELinux (Security-Enhanced Linux), при этом создается каталог с файлами /selinux.

/srv – данные сервисных служб

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

/sys - виртуальная файловая система sysfs

Этот каталог появился с выходом ядра версии 2.6 и в него примонтирована виртуальная файловая система sysfs с информацией об устройствах, драйверах, ядре ОС и т.п.

Описание вложеных каталогов:

/sys/block - содержит директории всех блочных устройств, присутствующих на данный момент в системе.

/sys/bus - содержит список шин, определенных в ядре Linux (eisa, pci и т.д.).

/sys/class - содержит список сгруппированных устройств по классам (printer, scsi-devices и т.д.).

/tmp - временные файлы

Временные файлы, обычно удаляются при перезагрузке системы. Является аналогом C:/Windows/Temp в ОС Windows. Все пользователи имеют права чтения и записи в этом каталоге.

/usr - пользовательские бинарные файлы, используемые только для чтения

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

Описание вложеных каталогов:

/usr/bin - исполняемые файлы для всех учетных записей.

/usr/games - каталог для компьютерных игр в системе.

/usr/include - файлы заголовков, предназначенные для компиляции С-программ.

/usr/lib - системные библиотеки и вспомогательные файлы, расположенные в директории /usr.

/usr/local - в этот каталог устанавливаются приложения, откомпилированные локально, что позволяет им не смешиваться с остальной частью системы.

/usr/local/bin - локальные исполняемые файлы.

/usr/local/etc - локальные системные команды и файлы конфигурации.

/usr/local/lib - локальные вспомогательные файлы.

/usr/local/sbin - локальные служебные системные команды.

/usr/local/src - исходные коды программ каталогов /usr/local/*

/usr/man - страницы интерактивной документации.

/usr/sbin - менее важные команды системного администрирования.

/usr/share - общие данные установленных программ (доступен только для чтения).

/usr/share/man - страницы интерактивной документации.

/usr/share/icons - иконки системы.

/usr/share/doc - справочная документация.

/usr/src - исходные коды нелокальных программных пакетов (например, здесь располагаются исходные кода ядра).

/var - каталог для часто меняющихся данных

В этом каталоге находятся журналы операционной системы, системные log-файлы, cache-файлы и т.д.

/var/adm - журнальные файлы, записи об инсталляции системы, административные компоненты.

/var/cache - все кэши для различных программ.

/var/games - файлы с игровыми достижениями.

/var/log - cистемные журнальные файлы (log-файлы).

/var/lock - лежат lock-файлы, указывающие на занятость некоторого ресурса.

/var/lib - изменяемые программами в процессе работы (например, базы данных, метаданные и др.).

/var/spool - буферные каталоги (например, очереди печати, непрочитанные или не отправленные письма, задачи cron и т.д.).

/var/tmp - каталог для временного хранения файлов.

/var/www - размещаются Web-страницы для сервера Apache.

Посмотреть структуру файловой системы можно используя команду ls -la. Ниже приведен пример вывода команды для дистрибутива OpenSUSE.

# ls -la total 260 drwxr-xr-x 24 root root 4096 Aug 30 2013 . drwxr-xr-x 24 root root 4096 Aug 30 2013 .. drwxr-xr-x 2 root root 4096 Aug 8 2012 .config -rw-r--r-- 1 root root 149519 Aug 30 2013 .readahead drwxr-xr-x 2 root root 4096 Aug 8 2012 bin drwxr-xr-x 3 root root 4096 Aug 8 2012 boot drwxr-xr-x 18 root root 3340 May 16 16:29 dev drwxr-xr-x 122 root root 12288 Jun 27 2013 etc drwxr-xr-x 4 root root 4096 Sep 21 2012 home drwxr-xr-x 16 root root 4096 Aug 23 2012 lib drwxr-xr-x 10 root root 12288 Aug 23 2012 lib64 drwx------ 2 root root 16384 Aug 8 2012 lost+found drwxr-xr-x 2 root root 40 Dec 11 2013 media drwxr-xr-x 2 root root 4096 Oct 25 2011 mnt drwxr-xr-x 3 root root 4096 Aug 23 2012 opt dr-xr-xr-x 194 root root 0 Dec 11 2013 proc drwx------ 31 root root 4096 Jun 10 14:38 root drwxr-xr-x 23 root root 780 Jul 9 17:39 run drwxr-xr-x 3 root root 12288 Aug 8 2012 sbin drwxr-xr-x 2 root root 4096 Oct 25 2011 selinux drwxr-xr-x 6 1004 users 4096 Sep 21 2012 srv drwxr-xr-x 12 root root 0 Dec 11 2013 sys drwxrwxrwt 95 root root 4096 Jul 9 17:39 tmp drwxr-xr-x 13 root root 4096 Nov 10 2011 usr drwxr-xr-x 16 root root 4096 Aug 9 2012 var

Вот и все. Рассмотрение предназначения основных встречающихся каталогов в файловой системы Линукс завершено.

4.3. Назначение основных системных каталогов

Если вы работали, например, с Windows 95, то вы знаете, что, хотя пользователь имеет полную свободу в организации структуры каталогов, некоторые "обычаи" все же сохраняются. Так системные файлы располагаются обычно в подкаталоге C:\Windows, вновь устанавливаемые программы по умолчанию размещаются в каталоге C:\Program Files и т. д.. В Linux типовая структура каталогов выдерживается, пожалуй, даже более строго. Более того, существует даже стандарт на структуру каталогов для UNIX-подобных ОС, так называемый Filesystem Hierarchy Standart (FHS), полный текст которого можно найти по адресу http://www.pathname.com/fhs/ (Примеч.10). Дистрибутив Red Hat в основном придерживается стандарта FHS.

В табл. 4.1 дан краткий перечень основных стандартно создаваемых каталогов той файловой структуры, которая создается при установке дистрибутива Red Hat (и его последователей).

В левом столбце перечислены подкаталоги корневого каталога, во втором столбце — некоторые основные (далеко не все!) подкаталоги второго уровня, а в третьем столбце даны краткие пояснения о назначении всех этих каталогов. Пояснения по необходимости очень краткие, более подробно с основными каталогами вы можете познакомиться по тексту стандарта FHS (http://www.pathname.com/fhs/ ).

Таблица 4.1. Структура каталогов Red Hat Linux

Каталог

Подкаталоги

Назначение

/bin

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

/boot

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

/dev

Каталог специальных файлов или файлов устройств. О них мы поговорим чуть подробнее в одном из следующих подразделов. Можете также заглянуть в man mknod(1)

/etc

Этот каталог и его подкаталоги содержат большинство данных, необходимых для начальной загрузки системы и основные конфигурационные файлы. В /etc находятся, например, файл inittab, определяющий загружаемую конфигурацию, и файл паролей пользователей passwd. Часть конфигурационных файлов может находится и в /usr/etc . Каталог /etc не должен содержать двоичных файлов (их следует перенести в /bin или /sbin). Ниже приводится назначение основных (но далеко не всех!) подкаталогов каталога /etc

/etc/rc.d

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

/etc/skel

Когда создается новый пользователь и account для него, то файлы из этого каталога копируются во вновь созданный домашний каталог пользователя

/etc/sysconfig

Каталог, содержащий некоторые (но не все) конфигурационные файлы системы

/etc/X11

/home

Обычно в этом каталоге находятся домашние каталоги пользователей

/lib

Этот каталог содержит разделяемые библиотеки функций, необходимых компилятору языка C и модули (драйверы устройств). Даже если в системе не установлен компилятор языка C, разделяемые библиотеки необходимы, поскольку они используются многими прикладными программами. Они загружаются в память по мере необходимости выполнения каких-то функций, что позволяет уменьшить объем кода программ — в противном случае один и тот же код многократно повторялся бы в различных программах

/lost+found

Этот каталог используется при восстановлении файловой системы командой fsck . Если fsck обнаруживает файл, родительский каталог которого определить невозможно, она помещает такой файл в каталог /lost+found. Поскольку родительский каталог потерян, то таким файлам присваиваются имена, совпадающие с номерами их индексных дескрипторов

/mnt

Это точка монтирования для временно монтируемых файловых систем. Если на компьютере запускается поочередно Linux и MS DOS, то этот каталог обычно используется, чтобы монтировать файловую систему MS DOS. Если вы имеете привычку монтировать несколько дополнительных носителей, например, дискеты, CD-ROM, дополнительный жесткий диск и т. д., то можно создать в нем соответственно дополнительные подкаталоги для каждого носителя

/proc

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

/root

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

/sbin

Подобно каталогу /bin содержит в основном исполняемые файлы — программы и утилиты ОС, используемые в процессе загрузки и запускаемые системным администратором. В стандарте FHS говорится, что в этот каталог надо помещать те исполняемые файлы, которые используются после успешного подключения файловой системы /usr. Минимальное содержимое этого каталога включает программы clock, getty, init, update, mkswap, swapon, swapoff, halt, reboot, shutdown, fdisk, fsck.*, mkfs.*, lilo, arp, ifconfig, route

/tmp

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

/usr

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

/usr/bin

Готовые к исполнению программы — утилиты и приложения, которые часто вызывают обычные пользователи.

/usr/bin/X11 — Обычное место для расположения готовых к исполнению программ из X-Window в Linux. Часто это символическая ссылка на /usr/X11R6/bin

/usr/dict

Этот каталог содержит файлы со словарным запасом для программ проверки корректности написания слов.

/usr/etc

Здесь содержатся конфигурационные файлы для группы машин. Однако, команды и программы должны смотреть в каталог /etc , в котором должны быть линки к файлам в каталоге /usr/etc

/usr/include

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

/usr/lib

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

    /usr/lib/X11 — Обычное место для помещения файлов связанных с X-Window, а также конфигурационных файлов самой системы X-Window. В Linux это обычно символическая ссылка на каталог /usr/X11R6/lib/X11 .

    /usr/lib/gcc-lib — Содержит готовые к исполнению программы и файлы типа include для компилятора GNU C (gcc).

    /usr/lib/groff — Файлы для системы форматирования текстов groff.

    /usr/lib/uucp — Файлы для UUCP.

    usr/lib/zoneinfo — Файлы для определения временной зоны. Смотрите также страницы руководств named-xfer (8) , tzfile (5) , tzselect (8) , zdump (8) , zic (8)

/usr/local

Обычно здесь помещают программы и подкаталоги, которые являются локальными (уникальными) для данной машины.

    /usr/local/bin — Обычно здесь помещают готовые к исполнению программы, которые являются локальными (уникальными) для данной машины.

    /usr/local/doc — Здесь располагается документация ко всем установленным на Вашем компьютере пакетам прикладного ПО.

    /usr/local/etc — Конфигурационные файлы для локально установленных программ.

    /usr/local/lib — Библиотеки и файлы для локально установленных программ и систем.

    /usr/local/info — Страницы описаний, которые просматриваются посредством программы info, для локально установленных программ.

    /usr/local/man — Страницы описаний, которые просматриваются посредством программы man, для локально установленных программ.

    /usr/local/sbin — Локальные программы системного администратора.

    /usr/local/src — Исходные тексты программ, установленных на данной машине

/usr/man

Страницы интерактивного руководства man в исходном формате (не подготовленные для просмотра).

/usr/man//man — Эти каталоги содержат страницы руководств на различных языках (в зависимости от значения locale). Системы, которые используют один язык и один кодовый набор, могут не использовать подстроку

/usr/sbin

Этот каталог содержит готовые к исполнению программы для системного администрирования, которые не используются во время загрузки

/usr/src

Исходные тексты для различных частей Linux.
/usr/src/linux — исходные тексты для ядра Linux

/usr/tmp

Еще одно место для хранения временных файлов. Обычно это символическая ссылка на каталог /var/tmp

/usr/X11R6

Файлы относящиеся к системе X-Window (версии 11, релиз6).

    /usr/X11R6/bin — Готовые к исполнению программы системы X-Window.

    /usr/X11R6/lib — Файлы и библиотеки, связанные с системой X-Window

/var

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

/var/adm

Содержит учетную и диагностическую информацию, необходимую системному администратору

/var/backups

/var/catman/cat

Этот каталог используется, чтобы хранить уже сформированные страницы руководств в соответствии с номером главы

/var/lock

Здесь содержатся управляющие файлы системы, которые используются для резервирования использования тех или иных ресурсов системы

/var/log

Различные файлы протоколов (логи)

/var/run

Переменные файлы времени выполнения различных программ. Они содержат идентификаторы процессов (PIDs) и записывают текущую информацию (utmp). Файлы в этом каталоге обычно очищаются во время загрузки системы

/var/spool

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

    /var/spool/at — Файлы заданий, запущенных посредством команды at .

    /var/spool/cron — Файлы системы cron.

    /var/spool/lpd — Файлы, ожидающие вывода на печать.

    /var/spool/mail — Пользовательские почтовые ящики.

    /var/spool/news — Файлы системы news.

    /var/spool/uucp — Файлы системы uucp

/var/tmp

Временные файлы

В. Костромин (kos at rus-linux dot net) - 4.3. Назначение основных системных каталогов