Где хранятся настройки linux

Обновлено: 04.07.2024

(1) существует ли стандарт/соглашение относительно размещения в файлах конфигурации? Для системы или квази-система программ, они, кажется, обычно где-то в /etc. Это кажется менее ясным для простых прикладных программ или pgms, которые с недостаточными привилегиями для /etc.

(2)Существует несколько способов предоставления информации программе, например переменные среды, параметры командной строки, ini-файлы и т. д. При обработке параметров программы существует стандартная иерархия того, что имеет приоритет? Е. Г. ли параметр командной строки переопределить файл инициализации? Наоборот? Или это полностью зависит от разработчика?

  1. обычно system / global config хранится где-то под /etc.
  2. пользовательский config хранится в домашнем каталоге пользователя, часто как скрытый файл, иногда как скрытый каталог, содержащий не скрытые файлы (и, возможно, больше подкаталогов).

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

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

  • $XDG_DATA_HOME (по умолчанию: "$HOME/.local/share" ): пользовательские данные.
  • $XDG_CONFIG_HOME (по умолчанию: "$HOME/.config" ): пользовательские файлы конфигурации.
  • $XDG_DATA_DIRS (по умолчанию: "/usr/local/share/:/usr/share/" ): приоритет-упорядоченный набор каталогов данных системы.
  • $XDG_CONFIG_DIRS (по умолчанию: "/etc/xdg" ): приоритет-упорядоченный набор каталогов конфигурации системы.
  • $XDG_CACHE_HOME (по умолчанию: "$HOME/.cache" ): пользовательские файлы несущественных данных.

вы должны сначала определить, если файл в вопрос есть:

  1. файл конфигурации ( $XDG_CONFIG_HOME:$XDG_CONFIG_DIRS );
  2. файл данных ( $XDG_DATA_HOME:$XDG_DATA_DIRS ) или
  3. несущественный (кэш) файл ( $XDG_CACHE_HOME ).

рекомендуется, чтобы ваше приложение помещало свои файлы в подкаталог вышеуказанных каталогов. Обычно, что-то вроде $XDG_DATA_DIRS/<application>/filename или $XDG_DATA_DIRS/<vendor>/<application>/filename .

при загрузке сначала попробуйте загрузить файл из пользовательских каталогов ( $XDG_*_HOME ) и, если не удалось, из системных каталогов ( $XDG_*_DIRS ). При сохранении сохраняйте только в пользовательских каталогах (поскольку пользователь, вероятно, не будет иметь доступа на запись в системные каталоги).

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

Новые Приложения

/.config/yourapp/* может быть INF, JSON, YML или любой формат плавает вашу лодку и любые файлы. yourapp должно соответствовать вашему исполняемому имени или быть пространством имен с вашей организацией/компанией/именем пользователя/дескриптором

Старые Приложения

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

/.yourapp/ для нескольких файлов + данные, как правило, в

глобальные конфигурации, как правило, в /etc/appname файл или .

глобальные данные приложения: /var/lib/yourapp/

кэширование данных: /var/cache/

данные журнала: /var/log/yourapp/

в структура каталогов Linux и других Unix-подобных систем и деталей каталога.

в Windows почти все программы устанавливают свои файлы (все файлы) в каталог с именем: "Program Files" в Linux это не так. Система каталогов классифицирует все установленные файлы. Все файлы конфигурации находятся в /etc , все двоичные файлы находятся в /bin или /usr/bin или /usr/local/bin . Здесь вся структура каталогов вместе с тем, что они содержат:

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

/bin - содержит исполняемые программы, которые являются частью операционной системы Linux. Многие команды Linux, такие как cat, cp, ls, more и tar, находятся в /bin

/boot - содержит ядро Linux и другие файлы, необходимые менеджерам загрузки LILO и GRUB.

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

/etc - содержит большинство файлов конфигурации системы и скрипты инициализации в /etc/rc.d поддиректории.

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

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

/lost+found - каталог потерянный файл. Каждый раздел диска имеет потерянный + найденный каталог.

/media - каталог для монтажа файловых систем на съемных носителях, таких как диски CD-ROM, дискеты и Zip-накопители.

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

/opt - дополнительные программные пакеты копировать / устанавливать файлы здесь.

/proc - специальный каталог в виртуальной файловой системе. Он содержит информацию о различных аспектах Linux система.

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

/sbin - содержит административные двоичные файлы. Такие команды, как mount, shutdown, umount, находятся здесь.

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

/tmp - временный каталог, который можно использовать в качестве scratch directory (хранилище для временных файлов). Содержимое этого каталога очищается при каждой загрузке системы.

/usr - содержит подкаталоги для многих программ, таких как X Window System.

/usr/bin - содержит исполняемые файлы для многих команд Linux. Он не является частью ядра операционной системы Linux.

/usr/include - содержит заголовочные файлы для языков программирования C и c++

/usr/lib - содержит библиотеки для Языками программирования C и C++.

/usr/local - содержит локальные файлы. Он имеет аналогичные каталоги в /usr содержит.

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

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

/usr/src - содержит исходный код ядра Linux.

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

/var/cache - помещение для хранения кэшированных данных для приложений.

/var/lib - содержит информацию, касающуюся текущего состояния приложений. Программы изменяют это при запуске.

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

/var/log - содержит файлы журнала для различных приложения.

/var/mail - содержит электронные письма пользователей.

/var/opt - содержит переменные данные для пакетов, хранящихся в директории /opt.

/var/run - содержит данные, описывающие систему с момента ее загрузки.

/var/spool - содержит данные, которые ожидают какой-то обработки.

/var/tmp - содержит временные файлы, которые сохраняются между перезагрузками системы.

В дистрибутиве который у меня стоял раньше, сеть настраивалась в файле /etc/network/interfaces, всё понятно и красиво, как во всех гайдах в интернете. Но вот сейчас я поставил минт, и смотрю что в этом файле кроме локальной петли ничего нету. Я сразу подумал, как же тогда интерфейс при запуске сам поднялся то, если там не прописано чтобы он поднимался, там вообще ничего нет. Потом ещё заметил ненормальные названия интерфейсов и пошел гуглить. Из нагугленного понял, что виновник всей этой вакханалии и хаоса некий systemd, который кроме своей задачи запуска системы позволяет себе ещё что-то делать. Ну полез я в папку /etc/systemd/network, а там пусто. Ну и где мне теперь искать куда настройки сети прописаны? Гугл выдет только стандартный путь как в нормальных дистрибутивах.


mint на базе убунты а там netplan.io запилили вроде


cast intelfx

И как уже им пользоваться? Зачем они вообще всё это делают? Всё же прекрасно работало.

Ну и что это? Это же управление нетворк менеджером из терминала. Я и так в нетворк менеджере могу всё прописать. Мне надо знать где сами конфиги лежат в минте этом, и зачем оно так работает.


как во всех гайдах в интернете
Потом ещё заметил ненормальные названия интерфейсов
некий systemd

Ты к нам из 2013го?

Ну и где мне теперь искать куда настройки сети прописаны?

Читай в документации к своему дистрибутиву. В линуксе есть несколько способов настройки сети — interfaces, network manager, networkd etc. Настраиваются они все по разному.

0 Имеем подсказку nmcli c s

1 Читаем man nmcli , в секции SEE ALSO находим nm-settings(5)

2 Внимательно читаем nm-settings(5)

3 Обращаем внимание в секции FILES на

/etc/NetworkManager/system-connections or distro plugin-specific location

5 Настраиваем сеть.

Так зачем мне нетворк менеджер? Я и так могу в нетворк менеджере натыкать. Мне нужен сам файл где эти все настройки прописаны.

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


Имена интерфейсов можно назначать через правила udev привязав конкретное имя к конкретному MAC.
при этом само имя может быть любым.

torvn77 ★★★★★ ( 17.08.19 17:18:54 )
Последнее исправление: torvn77 17.08.19 17:19:38 (всего исправлений: 1)

Хорошо, давай вместе.

Покажи вывод nmcli c s

Покажи вывод ls -l /etc/NetworkManager/system-connections/

А можно сделать чтобы всё по человечески было как раньше?


Ну так в минте этом только и в графической оболочке через нетворк менеджер и настраивается

Графические оболочки есть не только у NM. Но, если в минте действительно по умолчанию используется NM (что может быть не так, так как в первом же коммите сказали про убунтовский netplan), то и смотри в его файлы настройки, в чём проблема.

У всех всё работает.

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

ПРОБЛЕМА В ТОМ ЧТО Я НЕ МОГУ НАЙТИ ФАЙЛЫ НАСТРОЙКИ Ну зачем это всё? Кому от этого лучше стало?

Оно включено не во всех дистрибутивах с systemd


Смотрю в 18 убунте: Файл interfaces есть, то есть можно выключить нэтворк-манагер и прописать в него всё по-старинке. Разве нет?

Файл конфигурации соединения для NetworkManager

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

А как должен? Сейчас такие времена, что в одном дистрибутиве могут поддерживаться и ifupdown и systemd-networkd и netplan и NetworkManager


ПРОБЛЕМА В ТОМ ЧТО Я НЕ МОГУ НАЙТИ ФАЙЛЫ НАСТРОЙКИ

Затем, что сейчас не 1999, а 2019. С одной стороны, ноутбуки ­— тут ноут может быть подключен по проводу, там по одной вайфай сети, тут по другой, а где-то вообще через usb-модем с мобильным инетом, interfaces тут сильно не в тему. С другой стороны, контейнеры, облака и прочая, где часто требуется централизованное управление большим количеством сетевых настроек, там и interfaces не в тему, да и голый NM не годится, отсюда всякие netplan/networkd.

То, что вы настраивали а etc network interfaces это одно, это конфигурационный файл для сервиса networking.

Настройки networkmanager это вообще другое, файл interfaces networkmanager не читает и не использует.

Более того настраивать интерфейсы одновременно в etc network interfaces и networkmanager нельзя.

Где networkmanager хранит свои настройки смотрите в его документации.

Фактически на основе файла etc network interfaces вызываются скрипты, в которых вызываются консольные утилиты iproute2, а ранее ifconfig.

Даже сейчас в Ubuntu с нетплан вы можете прописать настройки сети в файле interfaces.


в одном дистрибутиве могут поддерживаться и ifupdown и systemd-networkd и netplan и NetworkManager

NM при этом может ещё поддерживать старую редхатовскую ifcfg схему через плагин ifcfg-rh :)

Файлы настройки чего, какого сервиса?

У Нетворк манагер свои файлы и их не надо руками трогать, у нетворкинг - свои.

Откройте документацию по нетворкманагер и документацию по убунту и прочтите как настраивается сеть.

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

Так я вот и не знаю какой именно сервис у меня тут сеть подымает, ведь они все тут есть.

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

Можете посмотреть настройки сети в генту с опенрс, слакваре.

Структура файла настроек сети зависит от сервиса, который управляет сетью в дистрибутиве.

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

Их можно отключить. Почитай как в системд включать и отключать сервисы (юниты).

Ок. И ради чего весь этот цирк сделали?

чтобы поглумиться над такими недоумками, что не могут понять, очевидно же


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

У меня Debian Buster и networkmanager просто не поставлен, или поставлен и тут же удалён обратно. В общем не чисти их конфиги, просто удали не нужные сервисы.


И ради чего весь этот цирк сделали?

Ради того чтобы затруднить создание дистров отличных от RedHat, который являясь лидером разработки systemd через него будет контролировать развитие конкурирующих проектов.

torvn77 ★★★★★ ( 17.08.19 18:23:36 )
Последнее исправление: torvn77 17.08.19 18:24:00 (всего исправлений: 1)

Ну так ты скажешь мне, недоумку, зачем?

Ну как, тебе как дистростроителю не нравится уже что-то существующее, ты хочешь что-то новое, со своим видением.

Ты пишешь свою вещь и она постепенно едет в продакшн в твоём дистрибутиве.

Откуда по твоему появился systemd, pulseaudio, cinnamon, mate.

У тебя, как администратора локалхоста есть выбор что использовать, если тебе не нравится сделанное разработчиками дистрибутива.

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

Так я вот и не знаю какой именно сервис у меня тут сеть подымает, ведь они все тут есть.

Скорее всего, в mint сеть обслуживают ifupdown и NetworkManager.

  • смотрим, что за файлы в каталоге /etc/netplan и их содержимое
  • проверяем systemd-networkd networkctl status
  • проверяем как стартовала сеть systemctl status networking.service
  • проверяем systemctl status network-manager.service
  • проверим разрешённость NetworkManager nmcli n
  • посмотрим, какими интерфейсами управляет NetworkManager nmcli d s

Проанализировав состояние, можем настраивать /etc/network/interfaces, отключать ненужные сервисы и т.д.

Мне надо знать где сами конфиги лежат

И что ты будешь делать с этим знанием?

В убунтах уже давно, по умолчанию, netplan. Открываешь /etc/netplan, там файл конфига в формате yaml, что то типа:

Всё было включено, нетворк менеджер управлял интерфейсами, всё остановил, а сеть работает дальше.

Пропишу в конфиги то что мне нужно.

Ради того чтобы затруднить создание дистров отличных от RedHat, который являясь лидером разработки systemd через него будет контролировать развитие конкурирующих проектов.

1. Red Hat пилит systemd и не только для своих нужд. 2. Компания делится своими разработками с сообществом. 3. Разработчики дистров сами решают стоит ли им использовать эти наработки. 4. Не хотите использовать systemd, берите что-то другое. Сами его поддерживаете и обеспечивайте его интеграцию с другими проектами.

Все легко и просто.

Нетпалм у меня управляется нетворк менеджером, я отключил его, но сеть всеравно работает дальше. Что за сатанизм то? Есть ещё что-то на чём сеть может висеть?

Судя по всему, сеть настроил NetworkManager, смотри nmcli -t c s Проводное\ соединение\ 1

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

Немного не по теме. Пока разбирался с systemd увидел там вот эту вот забавную фигню gvfs-metadata.service, это что анальные зонды от разрабов убунты?

Если тебе не нужно ничего такого, что нельзя сделать через nmcli, то и настраивай через nmcli без прописывания в конфиги.

Да это дрочево какое-то. Намного проще же просто в конфиг прописать. Как например в этом nmcli pppoe настроить?

Обычно так говорят виндо- и макоюзеры о любом командно-строчном интерфейсе и любых конфигах.

Намного проще же просто в конфиг прописать.

Ага, только сначала надо как минимум выяснить, где он находится.

Как например в этом nmcli pppoe настроить?

Не знаю, я вообще pppoe настраивал один раз в жизни свыше 10 лет назад. Попробуй посмотреть man nmcli-examples .


ты думаешь networkmanager VS netplan — нет же, оно всё работает совместно (надеюсь и не поломается, потому как чинить никто[может я ошибаюсь?] не умеет).


виновник всей этой вакханалии и хаоса некий systemd, который кроме своей задачи запуска системы позволяет себе ещё что-то делать

И ещё детей ест.


gvfs-metadata.service, это что анальные зонды от разрабов убунты

Нет. Это от рептилоидов-жидомасонов. Они прописывают себя в BIOS и потом сразу в прошивку сетевой карты твоего роутера. Так что всё, ты под колпаком, можешь уже не дёргаться.

> ПРОБЛЕМА В ТОМ ЧТО Я НЕ МОГУ НАЙТИ ФАЙЛЫ НАСТРОЙКИ

Теперь реестр. Если хочешь без реестра/systemd, используй Devuan, Knoppix или PClinuxOS

Файловая система Linux очень сильно отличается от того, к чему привык пользователь Windows. Тут нет привычных дисков с их буквенным обозначением и нет папки Program Files.

Файловая система Линукс располагает папки по типу дерева, которое идет от некого корня.

И главное, любая папка может физически находится на другом диске, как логическом, так и физическом.

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

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

И так, мы отвлеклись. Каждая папка Linux хранит свой тип файлов:

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

/dev это папка файлов устройств, да в Линуксе каждое устройство это файл.

/boot это загрузчик

/media сюда монтируются съемные носители

Но это все тема отдельная, нас интересует именно куда программы то ставятся.

Тут я имею ввиду программы, которые ставит установщик из стандартных пакетов.

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

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

Ну ладно, продолжим.

/usr/bin - сюда помещаются исполняемые файлы программ

usr/lib - а здесь библиотеки, которые нужны программе

usr/sbin - сюда помещаются исполняемые файлы от имени администратора

/usr/share - прочие файлы программ

Как я писал выше, что существует правило распределения файлов, но оно не всегда соблюдается.

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

Но некоторые программы "идут еще дальше и , как сказать, ставят себя в папку /home/имя_пользователя/opt

Узнать, куда разместились файлы программы можно командой:

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

Изображение пользователя Mike.

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

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

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

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

- Файловая система /home содержит все домашние каталоги пользователей системы, то есть, все реальные данные системы. Отделение пользовательских каталогов от системы упрощает резервирование данных. Если пользователей много, эта файловая система может быть разделена на несколько (например, /home/students и /home/teacher).

Хотя различные части выше были названы файловыми системами, это не значит, что они фактически находятся на отдельных дисках. Они могут храниться на одном диске, если речь идето небольшом сервере или личном однопользовательском компьютере. Дерево каталогов может быть также разделено по-другому, в зависимости от того, насколько большие диски использованы, и как распределено место на них для различных целей, тем не менее, важно, чтобы все стандартные имена работали; даже если, скажем, /var и /usr фактически на том же самом разделе, имена /usr/lib/libc.a и /var/log/messages должны работать, например, перемещая файлы из /var в /usr/var, и делая /var ссылкой на /usr/var.

Структура файловой системы в Unix группирует файлы по их назначению, то есть, все команды находятся в одном месте, все файлы данных в другом, документация в третьем и так далее. Альтернативный вариант группировал файлы согласно программе, которой они принадлежат, то есть, все Emacs-файлы были бы в одном каталоге, весь TeX в другом, и так далее. Проблема с последним подходом состоит в том, что это делает трудным совместно использовать файлы (каталог программ часто содержит статические, общие, изменяющиеся и личные файлы), и иногда даже находить файлы, например, man-страницы в огромном числе мест, благодаря чему поиск их программой просмотра сильно осложняется.

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

Файловая система root должна быть небольших размеров, так как она содержит важные файлы и команды. Чем меньше объем файловой системы и чем реже она подлежит изменениям, тем меньше вероятность ее повреждения. Если система root повреждена, то обычно это означает, что начальная загрузка компьютера невозможна (кроме отдельных методов, например при помощи дискет).

Файловая система дистрибутива имеет архитектуру классической файловой системы ОС Linux с единым корневым каталогом, обозначаемым символом обратной косой черты ("слэш") — /.

Ниже приведено описание основных каталогов верхнего уровня.

/bin - В этом каталоге хранятся основные команды, необходимые пользователю для работы в системе. Например, такие как командные оболочки и команды файловой системы (ls, cp и т.д.). Каталог /bin обычно не изменяется после установки. Если изменяется, то обычно лишь при обновлениях пакетов программ, предоставленных разработчиками операционной системы.

/boot - В этом каталоге хранятся файлы, используемые загрузчиком ОС — LInux LOader (LILO). Этот каталог так же практически не изменяется после установки.

/dev - В этом каталоге размещены описания устройств системы. В Linux всё рассматривается, как файл, даже различные устройства, такие как последовательные порты, жёсткие диски и сканеры. Для получения доступа к определённому устройству, необходимо чтобы существовал специальный файл, называемый device node. Все эти файлы находятся в каталоге /dev. Аналогично устроено большинство UNIX-подобных операционных систем.

/etc - Этот каталог содержит файлы настроек: всё, от конфигурационных файлов системы X Window, базы данных пользователей и до стартовых сценариев.

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

/lib - В этом каталоге находятся системные библиотеки, необходимые для основных программ: библиотека C, динамический загрузчик, библиотека ncurses, модули ядра и другое.

/lib/modules - Подгружаемые модули для ядра (например, сетевые драйверы или поддержка дополнительных файловых систем).

/lost+found - В этом каталоге сохраняются восстановленные части файловой системы. При загрузке системы происходит проверка файловых систем на наличие ошибок. Для исправления ошибок файловой системы запускается программа fsck.

/mnt - Этот каталог предоставляется как временная точка монтирования для жёстких дисков, дискет, компакт-дисков или отключаемых устройств.

/opt - В этом каталоге размещаются дополнительные пакеты программ. Особенность Linux в том, что все пакеты программ, устанавливаются в этот каталог, например /opt/<программный пакет>. В последствии если этот пакет больше не будет нужен, то достаточно всего лишь удалить соответствующий каталог. В дистрибутивах SlackWare некоторые программы изначально поставляются в каталоге /opt (например, KDE - в /opt/kde).

/proc - Это специальный каталог не входящий в файловую систему. Каталог /proc представляет собой виртуальную файловую систему, которая предоставляет доступ к информации ядра. Различная информация, которую ядро может сообщить пользователям, находится в "файлах" каталога /proc. Например, в файле /proc/modules находится список загруженных модулей ядра. А в файле /proc/cpuinfo — информация о процессоре компьютера.

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

/sbin - В этом каталоге хранятся основные программы, выполняемые пользователем root а так же программы, выполняемые в процессе загрузки. Обычные пользователи не могут пользоваться этими программами.

/tmp - Временное хранилище данных. Все пользователи имеют права чтения и записи в этом каталоге.

/usr - Это один из самых больших каталогов в системе. Практически всё остальное расположено здесь. Программы, документация, исходный код ядра и система X Window. Именно в этот каталог, чаще всего, устанавливаются программы.

/var - В этом каталоге хранятся системные лог-файлы, кэш-файлы и файлы-замки программ. Это каталог для часто меняющихся данных.

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

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

/etc/passwd - База данных пользователей, в которой содержится информация об имени пользователя, его настоящем имени, личном каталоге, зашифрованный пароль и другие данные. Формат этого файла рассмотрен в man-руководстве к команде passwd.

/etc/fdprm - Таблица параметров флоппи-дисковода, определяющая формат записи. Устанавливается программой setfdprm.

/etc/fstab - Список файловых систем, автоматически монтируемых во время запуска системы командой mount -a (она запускается из командного файла /etc/rc.d/rc.S). Здесь также содержится информация о swaр-областях, автоматически устанавливаемых командой swapon -a.

/etc/group - Подобен файлу /etc/рasswd, только здесь содержится информация о группах, а не о пользователях.

/etc/inittab - Конфигурационный файл демона init.

/etc/issue - Выводится программой getty перед приглашением login. Обычно здесь содержится краткое описание системы.

/etc/magic - Конфигурационный файл команды file. Содержит описания различных форматов файлов, опираясь на которые эта команда определяет тип файла. Также см. руководства к magic и file.

/etc/mtab - Список смонтированных на данный момент файловых систем. Изначально устанавливается командными файлами при запуске, а затем автоматически модифицируется командой mount. Используется при необходимости получения доступа к смонтированным файловым системам (например, командой df).

/etc/shadow - Теневая база данных пользователей. При этом информация из файла /etc/рasswd перемещается в /etc/shadow, который недоступен для чтению никому, кроме пользователя root. Это усложняет взлом системы.

/etc/login.defs - Конфигурационный файл команды login.

/etc/printcap - То же, что и /etc/termcap, только используется при работе с принтером.

/etc/profile - Этот командный файл выполняется оболочкой Bourne Shell при запуске системы, что позволяет изменять системные установки для всех пользователей.

/etc/securetty - Определяет терминалы, с которых может подключаться к системе пользователь root. Обычно это только виртуальные консоли, что усложняет взлом системы через модем или сеть.

/etc/shells - Список рабочих оболочек. Команда chsh позволяет менять рабочую оболочку только на оболочки, находящиеся в этом файле. Процесс ftрd, предоставляющий работу с FTР, проверяет наличие оболочки пользователя в файле /etc/shells и не позволяет пользователю подключится к системе, пока ее имя не будет найдено в этом файле.

/etc/termcap - База данных совместимости терминалов. Здесь находятся escape-последовательности для различных типов терминалов, что позволяет работать программам на разных типах терминалов.

Каталог /dev - В этом каталоге находятся файлы устройств. Названия этих файлов соответствуют специальным положениям, рассмотренным в списке устройств (Device list). Файлы устройств создаются во время установки системы, а затем с помощью скрипта /dev/MAKEDEV. Файл /dev/MAKEDEV.local используется при создании локальных файлов устройств или ссылок (т.е. тех, что не соответствуют стандарту MAKEDEV).

Каталог /usr - Обычно файловая система /usr достаточно большая по объему, так как многие программы установлены именно здесь. Вся информация в каталоге /usr помещается туда во время установки системы. Отдельно устанавливаемые пакеты программ и другие файлы размещаются в каталоге /usr/local. Некоторые подкаталоги системы /usr рассмотрены ниже (для более подробной информации см. описание стандарта FSSTND).

/usr/X11R6 - Все файлы, используемые системой X Window. Для упрощения установки и администрирования, файлы системы X Window размещаются в отдельной структуре каталогов, которая находится в /usr/X11R6 и идентична структуре /usr.

/usr/bin - Практически все команды, хотя некоторые находятся в /bin или в /usr/local/bin.

/usr/sbin - Команды, используемые при администрировании системы и не предназначенные для размещения в файловой системе root (например, здесь находится большинство программ-серверов).

/usr/man, /usr/info, /usr/doc - Файлы man-руководств, документации GNU Info и другая документация.

/usr/include - Подключаемые файлы библиотек для языка С.

/usr/src - Исходные тексты программ, установленных в системе, в том числе ядра Linux.

/usr/lib - Неизменяемые файлы данных для программ и подсистем, включая некоторые конфигурационные файлы. Имя lib происходит от library (библиотека); первоначально библиотеки подпрограмм для программирования хранились в /usr/lib.

/usr/local - Здесь размещаются отдельно устанавливаемые пакеты программ и другие файлы.

Каталог /var - Эта файловая система содержит файлы, изменяемые при нормально работающей системе. Она специфична для каждого компьютера и не может быть разделена в сети между несколькими машинами.

/var/man/cat* - Временный каталог для форматируемых страниц руководств. Источником этих страниц является каталог /usr/man/man*. Некоторые руководства поставляются в отформатированном виде. Они располагаются в /usr/man/cat*. Остальные руководства перед просмотром должны быть отформатированы. Затем они помещаются в каталог /var/man и при повторном просмотре в форматировании не нуждаются. Каталог /var/man/cat часто очищается, таким же образом, как и прочие временные каталоги.

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

/var/local - Изменяемые данные для программ, установленных в /usr/local (то есть, программы которые были установлены администратором системы). Обратите внимание, что даже в местном масштабе установленные программы должны использовать другие /var каталоги, например, /var/lock.

/var/lock - Файлы-защелки. Многие программы при обращении к какому-либо файлу устройства создают здесь файл-защелку. Другие программы при обращении к какому-либо устройству сначала проверяют наличие файла-защелки в этом каталоге, а затем уже производят доступ к этому устройству.

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

/var/spool - Каталоги, используемые для хранения почты, новостей, очереди для принтера, а также для других задач. Для каждой задачи существует отдельный каталог в /var/spool, например, почтовые ящики пользователей хранятся в /var/spool/mail.

/var/tmp - Каталог для временных файлов, размер которых достаточно велик или время существования которых больше, чем в /tmp. Хотя администратор системы не должен бы держать очень уж старые файлы в /var/tmp.

Каталог /proc - Файловая система /proc является виртуальной и в действительности она не существует на диске. Ядро создает ее в памяти компьютера. Система /proc предоставляет информацию о системе (изначально только о процессах — отсюда ее название). Некоторые наиболее важные файлы и каталоги рассмотрены ниже. Более подробную информацию о структуре и содержании файловой системы /proc можно найти в man-руководстве к proc.

/proc/1 - Каталог, содержащий информацию о процессе номер 1. Для каждого процесса существует отдельный каталог в /proc, именем которого является его числовой идентификатор.

/proc/cpuinfo - Информация о процессоре, такая как тип процессора, его модель, производительность и др.

/proc/devices - Список драйверов устройств, встроенных в действующее ядро.

/proc/dma - Задействованные в данный момент каналы DMA.

/proc/filesystems - Файловые системы, встроенные в ядро.

/proc/interruрts - Задействованные в данный момент прерывания.

/proc/ioports - Задействованные в данный момент порты ввода/вывода.

/proc/kcore - Отображение физической памяти системы в данный момент. Размер этого файла точно такой же, как и у памяти компьютера, только он не занимает места в самой памяти, а генерируется на лету при доступе к нему программ. Однако при копировании этого файла куда-либо, он не займет места на диске.

/proc/ksyms - Таблица символов ядра.

/proc/loadavg - Ориентировочная загруженность системы.

/proc/meminfo - Информация об использовании памяти, как физической, так и swap-области.

/proc/modules - Список модулей ядра, загруженных в данный момент.

/proc/net - Информация о сетевых протоколах.

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

/proc/stat - Различная статистическая информация о работе системы.

/proc/uptime - Время, в течение которого система находится в рабочем состоянии.

/proc/version - Версия ядра.

Хотя многие файлы имеют обычный текстовый формат, некоторые из них имеют собственный. Существует много программ, которые не только преобразуют такие файлы в формат, доступный для чтения, но и предоставляют некоторые функции. Например, программа free считывает файл /proc/meminfo и преобразует значения, указанные в байтах, в килобайты (а также предоставляет некоторую дополнительную информацию).

Читайте также: