rmnssnvsk / structure-dir-linux.md
В этом каталоге хранятся основные команды операционной системы, такие как команды оболочки и команды файловой системы (ls, cp и т.д.).
Здесь хранятся образы ядер Linux и менеджер загрузки: grub, lilo и т.д.
Директория содержит файлы устройств, подключенные к операционной системе. В Linux вообще всё рассматривается, как файл, даже различные устройства, такие как принтеры, жёсткие диски, сканеры и т.д. Для получения доступа к определённому устройству, необходимо чтобы существовал специальный файл. Аналогично устроено большинство UNIX-подобных операционных систем.
В этой директории находится основная часть конфигурационных файлов самой операционной системы (настройки сети, список пользователей, групп и т.д.) и различных программ (Apache, Samba и т. д.).
В этом месте должна размещаться вся личная информация пользователей системы. Почему должна? Потому что владелец компьютера может хранить свою личную информацию в любом понравившемся ему месте. В целях безопасности самой операционной системы и пользовательских данных хранить последние строго рекомендуется в директории /home. Для получения более высокой надежности операционной системы и сохранности пользовательской информации директорию /home рекомендуется выделить в отдельный раздел жесткого диска.
Это Домашняя папка пользователя usermame. В ней хранится пользовательская часть конфигурационных файлов (настройки пользовательских программ) и вся личная информация пользователя. Linux является многопользовательской системой и поэтому каждый пользователь имеет уникальный каталог для персональных файлов. Этот каталог называется Домашней папкой пользователя. Домашняя папка суперпользователя root располагается в корне файловой системы. Такое разделение пользовательских директорий от файлов операционной системы упрощает резервирование данных и повышает надежность самой операционной системы.
В lost+found скидываются файлы, на которых не было ссылок ни в одной директории, хотя их inod не были помечены как свободные. Допустим при удалении файла из директории произошёл сбой (выключилось питание), то в системе останется потерянный inod, который вроде как и указывает на корректный файл, но этот файл не содержится ни в одной директории. В ext2 и других нежурналируемых файловых системах задача восстановления таких файлов ложится на fsck. Он находит inod, на которые нет ссылок, и создаёт на них ссылки в lost+found. После этого пользователь сможет просмотреть файлы и при необходимости переместить им куда надо, вернув нужные имена. В ext3 и в других журналируемых файловых системах fsck просматривает журнал и видя, что операция завершилась не полностью, откатывает ее. Поэтому потерянных inod в журналируемых файловых системах находиться меньше.
Эта директория предназначена для хранения системных библиотек, необходимые для работы программ из директорий /bin и /sbin и операционной системы вцелом.
Директория, используемая для автоматического монтирования различных устройств USB-накопителей, CD-ROM и т.д. При вставке в привод CD-ROM диска он автоматически подключается во вложенный каталог этой директории.
Обычно эта директория используется для ручного подключения устройств. В эту директорию командой mount «руками» монтируются различные USB-накопители, CD-ROM и т.д.
Директория, в которой обычно размещаются установленные программы, имеющие большой дисковый размер или вспомогательные пакеты (например /opt/openoffice.org).
/proc — это директория, к которой примонтирована виртуальная файловая система procfs. Различная информация, которую ядро может сообщить пользователям, находится в «файлах» каталога /proc. Например, в файле /proc/modules находится список загруженных модулей ядра. А в файле /proc/cpuinfo — информация о процессоре компьютера. Подробнее можно прочитать здесь.
Это домашний каталог или Домашняя папка суперпользователя. Эта директория фактически ничем не отличается от директории обычного пользователя. Данная директория по умолчанию всегда расположена в корневом каталоге файловой системы. Это было сделано для предотвращения проблем с доступом к директории /home. В случае когда к каталогу /home по какой-то причине невозможно получить доступ, в системе всегда есть возможность залогиниться под учетной записью суперпользователя, для решения возникших проблем с доступом.
Основные системные программы для администрирования и настройки системы (iptables, ifconfig и т.д.).
Параметры, которые специфичные для окружения системы. Чаще всего данная директория пуста.
/sys — это директория, к которой примонтирована виртуальная файловая система sysfs, которая добавляет в пространство пользователя информацию ядра Linux о присутствующих в системе устройствах и драйверах. В версии ядра ниже 2.6 не использовалась.
/sys/block содержит директории всех блочных устройств, присутствующих в данный момент в системе.
В этой директории находится список шин, определенных в ядре Linux (eisa, pci и т.д.).
Каталог содержит список группированных устройств по классам (printer, scsi-devices и т.д.).
Временное хранилище данных. Аналог папки в ОС Windows — C:/Windows/Temp. Все пользователи имеют права чтения и записи в этом каталоге.
В этом каталоге хранятся все установленные пакеты программ, документация, исходный код ядра и система X Window. Все пользователи кроме суперпользователя root имеют доступ только для чтения. Может быть смонтирована по сети и может быть общей для нескольких машин.
Директория дополнительных программ для всех учетных записей.
Каталог для размещения доступных компьютерных игр в системе.
Системные библиотеки для программ, расположенных в директории /usr.
По стандарту /usr должен быть общим для нескольких компьютеров и смонтирован по сети, а /usr/local должен содержать установленные пакеты программы только на локальной машине (к примеру, /usr — бюджет семьи, а /usr/local — личный кошелек каждого). Но чаще всего директория /usr/local используется для установки программ, которые не предназначены для конкретного дистрибутива (к примеру для пакетного дистрибутива Ubuntu в /usr находятся «родные» установленные пакеты, а /usr/local находятся собранные пакеты из исходников).
Дополнительные системные программы.
Общие данные установленных программ.
В каталоге находятся все иконки системы.
Директория, в которой обычно находится справочная документация по установленным программам.
Исходные кода (например, здесь располагаются исходные кода ядра).
Это каталог для часто меняющихся данных. Здесь находятся журналы операционной системы, системные log-файлы, cache-файлы и т. д.
В этом месте хранятся все кэши различных программ.
В этом месте расположены файлы с игровыми достижениями.
Постоянные данные, изменяемые программами в процессе работы (например, базы данных, метаданные пакетного менеджера и др.).
Здесь лежат lock-файлы, указывающие на занятость некоторого ресурса.
В этом месте хранятся все log-файлы.
Задачи, ожидающие обработки (например, очереди печати, непрочитанные или не отправленные письма, задачи cron и т. д.).
В этом месте размещаются Web-страницы для сервера Apache.
Поиск команд в терминале Linux
Если известно расположение команды, для ее запуска можно ввести полный путь к команде. Например, для запуска команды date из каталога /bin можно ввести :
Конечно, этот способ может оказаться неудобным, особенно если команда расположена в каталоге с длинным именем. Лучше хранить команды в известных каталогах и добавить их в значение переменной среды PATH.
Значение этой переменной состоит из списка каталогов, которые последовательно просматриваются при поиске вводимых команд. Для получения информации о текущем значении переменной PATH введите следующую команду:
echo $РАТН /bin: /usr/bin: /usr/local/bin: /usr/bin/Xll: /usr/XHR6/bin: /home/pavel/bin
Вывод команды соответствует принятому по умолчанию пути поиска команд для обычного пользователя Linux. Для разделения каталогов применяется двоеточие.
Каталоги, в которых расположены команды Linux
Большинство пользовательских команд в составе операционной системы Linux хранятся в каталогах /bin,/usr/bin и /usr/local/bin. Хотя многие команды графического интерфейса находятся в каталоге /usr/bin, существуют специальные команды X Window, которые расположены в каталогах /usr/bin/Xll и /usr/XHR6/bin. Последним в списке показан каталог bin в домашнем каталоге пользователя.
Если необходимо добавить собственные команды или сценарии командного интерпретатора, разместите их в каталоге bin в собственном домашнем каталоге (например, /home/pavel/bin для пользователя pavel). Данный каталог автоматически добавляется в путь поиска команд Linux. Это значит, что после добавления команды в собственный каталог с правом на выполнение (дополнительная информация о правах доступа приводится в разделе «Информация о правах доступа к файлам») команду можно сразу использовать, вводя ее имя в командной строке.
В путь поиска команд в Linux для пользователя root включаются каталоги /sbin и /usr/sbin, содержащие команды администрирования.
Порядок просмотра каталогов имеет важное значение. Каталоги просматриваются слева направо. В данном случае, если команда fоо расположена одновременно в каталогах /bin и usr/bin, будет выполняться команда из каталога /bin. Для запуска другой команды foo придется или ввести полный путь к команде, или изменить значение переменной PATH. (Изменение значения переменной PATH и добавление каталогов в путь поиска команд рассматриваются нами чуть ниже.)
Не все запускаемые команды расположены в каталогах, перечисленных в переменной PATH. Некоторые команды встроены в командный интерпретатор. Кроме этого, команды можно переопределить с помощью псевдонимов, позволяющих указать параметры запускаемой команды. Также можно определить функцию, содержащую последовательность команд.
Ниже приведен порядок проверки вводимых команд командным интерпретатором:
- Псевдонимы — имена, устанавливаемые с помощью команды alias и представляющие конкретную команду с набором параметров. (Введите alias для просмотра списка установленных псевдонимов.) Часто псевдонимы позволяют определить короткое имя для длинной сложной команды.
- Зарезервированные слова командного интерпретатора— ключевые слова, зарезервированные командным интерпретатором для специального применения. Многие из этих ключевых слов используются при создании функций, например do, while, case и else.
- Функции — наборы команд, которые выполняются вместе в пределах одного интерпретатора.
- Встроенные команды — команды, встроенные в командный интерпретатор. Такая команда не имеет представления в файловой системе. Некоторые распространенные команды являются встроенными, например:
- cd (для смены текущего каталога)
- echo (для вывода текста на экран)
- exit (для выхода из командного интерпретатора)
- f g (для вывода команды из фонового режима)
- history (для просмотра списка запускавшихся ранее команд)
- pwd (для получения текущего каталога)
- set (для установки параметров командного интерпретатора)
- type (для определения расположения команды).
- Команда в файловой системе — такая команда хранится в файловой системе. (Для поиска этих команд в Linux используется список каталогов в переменной PATH.)
Для определения источника конкретной команды можно воспользоваться командой type
(Если применяется не bash, а другой командный интерпретатор, воспользуйтесь командой which.) Например, для определения расположения интерпретатора bash введите следующую команду:
type bash bash is /bin/bash
Введите вместе с командой type такие ключевые слова: which, case и return. Если команда одновременно присутствует в нескольких местах, можно добавить параметр -а для просмотра списка всех экземпляров команды.
Иногда после ввода команды выводится сообщение о том, что команда не найдена или отсутствуют права на ее запуск. В первом случае необходимо проверить правильность ввода команды и ее присутствие в пути, указанном в переменной path. Во втором случае команда может находиться в пути из переменной path, но для нее могут отсутствовать права на запуск.