Время прочтения: 6 мин.

Файлы, каталоги и папки в Linux. Структура файловой системы
Структура файлов UNIX подобных операционных систем основана на стандарте FHS (англ. Filesystem Hierarchy Standard). Стандарт позволяет унифицировать иерархию директорий и файлов, имеющих общее назначение, в файловой системе. Для управления папками Linux необходимо понимать основы структуры иерархии файлов.
Стандарт FHS определяет структуру и содержимое каталогов в Unix-подобных операционных системах. В FHS все папки и файлы отображаются в корневом каталоге /, независимо от места хранения (физическое или виртуальное устройство). Каталоги в UNIX системах имеют общий принцип использования. Приведенная ниже информация актуальна только для Linux систем, но не для X Window System и аналогов.

Дерево файлов и каталогов начинается с корня первичной иерархии (/). Единственный пользователь root имеет право на запись в этом каталоге. /root – домашний каталог пользователя root, который не совпадает с корнем /.
- /bin – бинарные файлы (программы). Каталог содержит основные пользовательские файлы, необходимые при монтировании системы. /bin непосредственно содержит исполняемые файлы многих основных команд оболочки, таких как ps, ls, ping, grep, cp.
- /sbin – системные исполняемые файлы. Каталог аналогичен каталогу /bin. Содержит важные двоичные файлы, которые обычно предназначены для запуска пользователем root для системного администрирования.
- /etc – каталог содержит файлы конфигурации, обычно редактируемые вручную в текстовом редакторе. Каталог /etc/содержит общесистемные файлы конфигурации (например имя хоста) - пользовательские файлы конфигурации находятся в домашнем каталоге каждого пользователя.
- /dev – файлы устройств. Каталог содержит ряд специальных файлов, представляющих устройства (Например, /dev/sda представляет первый диск SATA в системе. /dev/random производит случайные числа. /dev/null - специальное устройство, которое автоматически отбрасывает весь ввод).
- /proc – информация о процессах. Каталог содержит специальные файлы, представляющие информацию о системе и процессе. Это псевдофайловая система, содержащая информацию о запущенных процессах. Примеры использования: узнать аптайм /proc/uptime, проверить информацию о процессоре /proc/cpuinfo или проверить использование памяти вашей системой Linux /proc/meminfo.
- /var – переменные файлы. Это место хранения информации о времени выполнения программ (системный журнал, отслеживание пользователей, кэши и другие создаваемые системой файлы).
- /tmp – временные файлы приложений. Эти файлы обычно удаляются при перезапуске вашей системы и могут быть удалены в любое время с помощью таких утилит, как tmpwatch.
- /usr – программы пользователя. Это место, куда по умолчанию устанавливаются локально скомпилированные приложения, чтобы не испортить остальную часть системы. Каталог содержит приложения и файлы, используемые пользователями. Библиотеки для каждого из них находятся в каталоге /usr/lib. Каталог также содержит файлы, не зависящие от архитектуры, такие как графика, находятся в /usr/share.
- /home – домашняя папка. Домашняя папка содержит файлы данных пользователя и пользовательские файлы конфигурации. Каждый пользователь имеет право записи только в свою домашнюю папку и должен получить права администратора(root) для изменения других файлов в системе.
- /boot – файлы загрузчика. Это файлы, необходимые для загрузки системы (Например, файлы загрузчика GRUB и ядра Linux).
- /lib – системные библиотеки, необходимые для основных двоичных файлов в папке /bin и /sbin. Библиотеки, необходимые для двоичных файлов в папке /usr/bin, находятся в /usr/lib.
- /opt – дополнительные программы. Каталог содержит подкаталоги для дополнительных пакетов программного обеспечения. Обычно используется проприетарным программным обеспечением, которое не подчиняется стандартной иерархии файловой системы.
- /mnt – монтирование. Это то место, где системные администраторы монтируют временные файловые системы во время их использования. Например, монтируемый раздел Windows для восстановления файлов – /mnt/windows. Монтировать другие файловые системы можно в любом месте системы.
- /srv – сервер. Каталог содержит данные об услугах, предоставляемых системой. Если для обслуживания веб-сайта используется HTTP-сервер Apache, файлы веб-сайта сохраняются внутри каталога /srv.
- /run – процессы. В каталоге хранятся временные файлы, которые нельзя хранить в /tmp (Например, сокеты и идентификаторы процессов). Важно помнить, что /tmp файлы могут быть удалены.
- /sys – информация о системе. Это виртуальная файловая система, к которой можно получить доступ для установки или получения информации о представлении системы ядром.

Наиболее частые задачи работы с файловыми системами - это навигация, манипуляции с файлами и каталогами, и смена прав доступа. Рассмотрим основные команды для решения этих задач.
Базовые команды используемые для навигации в терминале
cd (англ. change directory) – переход в другой каталог.
ls (англ. list) – просмотр содержимого каталога.

Создать текстовый файл в терминале Linux можно тремя основными способами. Это команда touch, перенаправление потока вывода и текстовые редакторы. Рассмотрим способы подробнее.
Чтобы посмотреть содержимое файла, используйте cat. Для больших файлов - связку cat и more.
Для поиска по названию или содержимому используйте find и grep.
Чтобы создать папку через терминал, используйте команду mkdir (make directory) и укажите имя каталога (mkdir name). Важно: для названий из двух и более слов используйте кавычки, пробел будет интерпретирован системой как команда для создания отдельных папок (mkdir “new name”). В названиях используйте минусы (“-”) вместо пробелов и обратные слеши (“\”) для экранирования специальных символов.
Создание файлов из командной строки более универсально и намного быстрее, чем создавать файлы по отдельности в приложениях. Необходимо указать имя файла и желаемое расширение, чтобы исключить процесс «Сохранить как» в различных приложениях.