Местоположение ini/config файлов в linux/unix?

С поддержкой await и обещанием Bluebird :

await bluebird.delay(1000);

Это будет работать как синхронный sleep(1) языка c. Мое любимое решение.

61
задан ergosys 27 January 2011 в 07:27
поделиться

7 ответов

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

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

61
ответ дан 24 November 2019 в 16:55
поделиться
7
ответ дан 24 November 2019 в 16:55
поделиться

Что касается пользовательской конфигурации, я заметил тенденцию к отходу от индивидуального ~ / .myprogramrc в структуру ниже ~ / .config . Например, Qt 4 использует ~ / .config / / с настройками по умолчанию QSettings . Основные среды рабочего стола KDE и Gnome также используют файловую структуру под определенной папкой (не уверен, что KDE 4 использует ~ / .config , XFCE действительно использует ~ / .config ).

2
ответ дан 24 November 2019 в 16:55
поделиться

Ваше приложение должно соответствовать спецификации XDG Base Directory Specification . Большинство ответов здесь либо устарели, либо неверны.

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

  • $ 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 / / filename или $ XDG_DATA_DIRS / / /filename[1134294 provided.

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

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

156
ответ дан 24 November 2019 в 16:55
поделиться
  1. Typically in a dotfile (like .myprogramrc) in the user's home directory.
  2. It is of course up to the programmer but normally command line arguments override everything else. If environment variables are used it is usually as an alternative to the command line arguments or to specify where the configuration is located.
3
ответ дан 24 November 2019 в 16:55
поделиться

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

(2) Общесистемный ini-файл -> пользовательский ini-файл -> среда -> параметры командной строки (от низшего к высшему)

1
ответ дан 24 November 2019 в 16:55
поделиться
/ var / log / yourapp /


Некоторая дополнительная информация с tutorialhelpdesk.com

Структура каталогов 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 - A каталог для временно смонтированных файловых систем.

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

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

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

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

/ srv - Содержит данные для служб (HTTP, FTP и т. Д.), Предлагаемых системой.

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

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

/ 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 - содержит данные, описывающие систему с момента ее загрузки.

26
ответ дан 24 November 2019 в 16:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: