Что такое конфигурационные файлы
Что такое файлы конфигурации и как вы можете их редактировать?
Подавляющее большинство используемых нами компьютерных программ — будь то офисные пакеты, веб-браузеры или даже видеоигры — настраиваются через систему интерфейсов меню. Это стало практически стандартным способом использования наших машин. Но некоторые программы требуют, чтобы вы сделали шаг за этим, и вам действительно нужно отредактировать текстовый файл, чтобы заставить их работать так, как вы хотите.
Эти текстовые файлы, что неудивительно, называются «конфигурационными файлами». Если вы хотите перейти от «пользователя» к «продвинутому пользователю», вам нужно знать, как их настроить.
Что такое файлы конфигурации?
Прежде чем мы углубимся в технические подробности, давайте сначала конкретно определим, что такое файл конфигурации.
Файлы конфигурации — это, по сути, файлы, которые содержат информацию, необходимую для успешной работы программы, которые структурированы особым образом. Вместо того, чтобы быть жестко запрограммированным в программе, они настраиваются пользователем и обычно хранятся в текстовом файле (хотя ранее я видел программы, которые использовали базы данных SQLite
как их файлы конфигурации).
Удивительно, но не существует определенного стандарта о том, как должны работать файлы конфигурации или как они должны выглядеть. Это полностью зависит от прихоти разработчика программы.
Некоторые конфигурационные файлы структурированы в формате собственного дизайна разработчика. Другие используют широко известные стандарты, используемые для структурирования данных, такие как формат JSON (нотация объектов JavaScript), YAML (язык разметки YAML) или XML (расширяемый язык разметки). Некоторые программы загружают информацию, хранящуюся в их конфигурационных файлах, когда они запускаются, в то время как другие периодически проверяют, была ли она изменена.
Если вы пользователь Linux, вы, вероятно, будете знакомы с ними, так как многие основные задачи обслуживания требуют редактирования файлов конфигурации. Если вы хотите настроить GRUB для двойной загрузки вашей системы
или настроить веб-сервер
вам придется иметь с ними дело.
Хотя это не исключительно Linux. В зависимости от того, что вы делаете, вам, возможно, придется редактировать их в Windows или Mac OS X.
Как выглядят файлы конфигурации?
Теперь давайте взглянем на некоторые реальные конфигурационные файлы. Как мы упоминали ранее, они бывают разных форм и размеров. Один файл конфигурации, с которым вы почти наверняка знакомы, — это файл hosts, который используется в Windows, Mac и Linux для сопоставления IP-адресов с именами узлов вручную.
В Windows вы можете найти его под C: \ WINDOWS \ system32 \ Drivers \ Etc \ хостов. На Mac и Linux это будет в / и т.д. / хосты.
Как вы заметили, файл hosts использует пробелы для разделения элементов, причем каждое имя хоста имеет свою собственную строку. Кроме того, файл hosts позволяет пользователю добавлять аннотации и комментарии, которые начинаются с символа хеша.
Одна программа, которая следует этому конкретному соглашению, является текстовым редактором Vim
, В прошлом мы говорили о том, как настроить VIM, отредактировав его конфигурационный файл.
Файлы конфигурации даже используются в видеоиграх для определения и управления некоторыми действиями, такими как сопоставления клавиш. Приведенный ниже файл конфигурации взят из Black Mesa — фанатского ремейка оригинального Half Life.
В оригинальной версии Deus Ex, выпущенной в 2000 году, пользователю фактически пришлось отредактировать файл конфигурации, чтобы включить читы!
Как редактировать файлы конфигурации
Итак, теперь мы знаем, для чего используются конфигурационные файлы, давайте поговорим о том, как мы можем их редактировать.
Для этого вам понадобится текстовый редактор. Не используйте текстовый процессор, так как они могут добавить форматирование в файл, что помешает их чтению программой.
Пользователи Windows уже имеют предустановленный текстовый редактор. Я говорю о блокноте. Хотя стоит подчеркнуть, что для Windows доступно множество отличных сторонних текстовых редакторов, включая Notepad ++, Atom и Sublime Text Editor.
В Linux ближайшим аналогом Notepad является Gedit
, Вы также можете рассмотреть возможность использования текстового редактора командной строки, такого как Nano или Vim
, Ради большей эффективности я сильно склоняюсь к текстовому редактору Vim. Это позволяет мне легко переходить на разные позиции в файле конфигурации, просто используя несколько нажатий клавиш.
На Mac OS X (или MacOS Sierra, скоро это станет известно
), есть несколько текстовых редакторов, которые поставляются предварительно установленными. Вы, вероятно, знакомы с TextMate. Он также включает ряд текстовых редакторов командной строки, таких как Vim и Nano.
Когда вы редактируете файл, важно убедиться, что вы соблюдаете его соглашения. Это можно решить, просто взглянув на это. Некоторые конфигурационные файлы, такие как файл hosts, объяснят вам эти соглашения. Другие заставят вас прочитать некоторую документацию или пару постов в блоге.
Наконец, если редактируемый файл конфигурации структурирован в формате JSON или XML, вы можете использовать более мощный текстовый редактор с подсветкой синтаксиса. Я рекомендую Атом. Это повысит вашу точность, показывая, когда вы допустили ошибку.
Что делать, если это не работает?
Наконец, давайте коснемся того, что происходит, когда что-то идет не так. По моему опыту, проблемы, связанные с редактированием конфигурационных файлов, имеют тенденцию делиться на два лагеря.
Первый — это разрешения. Если вы не можете сохранить свои изменения, это может быть потому, что вы пытаетесь сделать это как обычный пользователь. Во избежание случайного повреждения многие файлы конфигурации доступны для редактирования только тем, у кого есть права администратора.
Исправить это легко. В Mac и Linux попробуйте повысить свои права с помощью команды sudo. Итак, если вы редактировали файл hosts, вы запустили бы:
В Windows щелкните правой кнопкой мыши Блокнот (или любой текстовый редактор, который вы используете) и выберите Запустить от имени администратора.
Вторая распространенная проблема — ошибка пользователя. Если что-то не работает, это может быть ваша вина. Убедитесь, что вы не сделали никаких опечаток, и что вы следовали соглашениям файла конфигурации. Я знаю, это кажется очевидным, но простая орфографическая ошибка или забвение закрыть пару речевых меток может сделать весь файл бесполезным.
Хороший способ избежать проблем — сделать копию файла конфигурации, прежде чем вносить какие-либо изменения. Таким образом, если что-то пойдет не так, вы можете восстановить копию и начать заново!
Файлы конфигурации важны
Более того, они являются неотъемлемой частью использования Linux. Знание того, как правильно их редактировать, поможет вам бесконечно.
Есть ли какие-то другие важные навыки, которые, по вашему мнению, должны знать пользователи Linux для начинающих и для среднего уровня? Позвольте мне знать в комментариях ниже.
Настройка приложений с использованием файлов конфигурации
С помощью классов из пространства имен System.Configuration управляемый код может считывать установки из конфигурационных файлов, но не записывать их в эти файлы.
В этом разделе описан синтаксис файлов конфигурации и приведены сведения о трех типах таких файлов: конфигурации компьютера, приложения и безопасности.
Формат файлов конфигурации
Как и во всех XML-файлах, в файлах конфигурации учитывается регистр.
Файлы конфигурации компьютеров
В файле конфигурации компьютера, Machine.config, задаются параметры, влияющие на работу компьютера в целом. Этот файл находится в каталоге %путь установки среды выполнения%\Config. В файле Machine.config задаются параметры конфигурации для привязки сборок компьютера, встроенных каналов удаленного взаимодействия и ASP.NET.
При развертывании приложения с помощью команды XCOPY файл конфигурации компьютера не копируется.
Дополнительные сведения об использовании файла конфигурации компьютера средой CLR для привязки сборок см. в разделе Обнаружение сборок в среде выполнения.
Файлы конфигурации приложений
В файле конфигурации приложения находятся параметры приложения. В этом файле содержатся параметры конфигурации, считываемые средой CLR (например, политика привязки сборок, удаленные объекты и т. д.) и приложением.
Имя и расположение файла конфигурации приложения зависят от места размещения приложения, которым может быть одно из указанных ниже.
Приложение, размещенное в исполняемом файле.
Такие приложения имеют два файла конфигурации: исходный файл конфигурации, который изменяется разработчиком во время разработки, и выходной файл, распространяемый с приложением.
При разработке в Visual Studio разместите исходный файл конфигурации приложения в каталоге проекта и установите для его свойства Копировать в выходной каталог значение Всегда копировать или Копировать, если новее. Имя файла конфигурации — это имя приложения с расширением CONFIG. Например, исходный файл конфигурации приложения myApp.exe должен называться myApp.exe.config.
Visual Studio автоматически копирует исходный файл конфигурации в каталог, где находится скомпилированная сборка, чтобы создать выходной файл конфигурации, развертываемый вместе с приложением. В некоторых случаях Visual Studio может изменить выходной файл конфигурации; дополнительные сведения см. в разделе Перенаправление версий сборки на уровне приложения статьи Перенаправление версий сборки.
Приложение, размещенное в ASP.NET.
дополнительные сведения о ASP.NET файлах конфигурации см. в разделе ASP.NET configuration Параметры.
Приложение, размещенное в Internet Explorer.
В этом теге location — это URL-адрес файла конфигурации. Таким образом задается базовая папка приложения. Файл конфигурации должен находиться на том же веб-сайте, что и приложение.
Файлы конфигурации безопасности
В файлах конфигурации безопасности содержатся сведения об иерархии групп кода и наборах разрешений, связанных с уровнем политики. Для изменения политики безопасности настоятельно рекомендуется использовать средство политики безопасности доступа кода (Caspol.exe), что гарантирует целостность файлов конфигурации безопасности.
Ниже приведено расположение файлов конфигурации безопасности.
Файл конфигурации политики предприятия: %путь-установки-среды-выполнения%\Config\Enterprisesec.config
Файл конфигурации политики компьютера: %путь-установки-среды-выполнения%\Config\Security.config
Файл конфигурации политики пользователя: %USERPROFILE%\Application data\Microsoft\CLR security config\v xx.xx\Security.config
в этом разделе
Практическое руководство. Поиск сборок с помощью DEVPATH
Описание процесса настройки среды выполнения для использования переменной среды DEVPATH при поиске сборок.
Перенаправление версий сборки
Инструкции по указанию местоположения и версии сборки, которая должна использоваться приложением.
Указание расположения сборки
Сведения о том, как указать среде выполнения, где она должна осуществлять поиск сборки.
Настройка криптографических классов
Описание процесса сопоставления имени алгоритма криптографическому классу и идентификатора объекта в криптографическому алгоритму.
как создать политику Publisher
Сведения о том, куда и каким образом нужно добавить файл политики издателя, чтобы задать перенаправление сборки и параметры базового каталога кода.
Схема файла конфигурации
Описывается иерархия схемы для запуска, среды выполнения, сети и других типов параметров конфигурации.
Что такое файлы конфигурации и как их редактировать?
Подавляющее большинство используемых нами компьютерных программ — будь то офисные пакеты, веб-браузеры или даже видеоигры — настраиваются через систему интерфейсов меню. Это стало практически стандартным способом использования наших машин. Но некоторые программы требуют, чтобы вы сделали шаг за этим, и вам действительно нужно отредактировать текстовый файл, чтобы заставить их работать так, как вы хотите.
Эти текстовые файлы, что неудивительно, называются «конфигурационными файлами». Если вы хотите перейти от «пользователя» к «продвинутому пользователю», вам нужно знать, как их настроить.
Что такое файлы конфигурации?
Прежде чем мы углубимся в технические подробности, давайте сначала конкретно определим, что такое файл конфигурации.
Файлы конфигурации — это, по сути, файлы, которые содержат информацию, необходимую для успешной работы программы, которые структурированы особым образом. Вместо того, чтобы быть жестко запрограммированными в программе, они настраиваются пользователем и, как правило, хранятся в текстовом файле (хотя ранее я видел программы, которые использовали базы данных SQLite. как их конфигурационные файлы).
Удивительно, но не существует определенного стандарта о том, как должны работать файлы конфигурации или как они должны выглядеть. Это полностью зависит от прихоти разработчика программы.
Некоторые конфигурационные файлы структурированы в формате собственного дизайна разработчика. Другие используют широко известные стандарты, используемые для структурирования данных, такие как формат JSON (нотация объектов JavaScript), YAML (язык разметки YAML) или XML (расширяемый язык разметки). Некоторые программы загружают информацию, хранящуюся в их конфигурационных файлах, когда они запускаются, в то время как другие периодически проверяют, была ли она изменена.
Хотя это не исключительно Linux вещь. В зависимости от того, что вы делаете, вам, возможно, придется редактировать их в Windows или Mac OS X.
Как выглядят файлы конфигурации?
Теперь давайте взглянем на некоторые реальные конфигурационные файлы. Как мы упоминали ранее, они бывают разных форм и размеров. Один файл конфигурации, с которым вы почти наверняка знакомы, — это файл hosts, который используется в Windows, Mac и Linux для сопоставления IP-адресов с именами узлов вручную.
Как вы заметите, файл hosts использует пробелы для разделения элементов, причем каждое имя хоста имеет свою собственную строку. Кроме того, файл hosts позволяет пользователю добавлять аннотации и комментарии, которые начинаются с символа хеша.
Как редактировать файлы конфигурации
Итак, теперь мы знаем, для чего используются файлы конфигурации, давайте поговорим о том, как мы можем их редактировать.
Для этого вам понадобится текстовый редактор. Не используйте текстовый процессор, так как они могут добавить форматирование в файл, что помешает их чтению программой.
Пользователи Windows уже имеют предустановленный текстовый редактор. Я говорю о блокноте. Хотя стоит подчеркнуть, что для Windows существует множество отличных текстовых редакторов сторонних производителей, включая Notepad ++, Atom и Sublime Text Editor.
В Mac OS X (или MacOS Sierra, скоро станет известно, ), есть несколько текстовых редакторов, которые поставляются предварительно установленными. Вы, вероятно, знакомы с TextMate. Он также включает несколько текстовых редакторов командной строки, таких как Vim и Nano.
Когда вы редактируете файл, важно убедиться, что вы соблюдаете его соглашения. Это можно решить, просто взглянув на это. Некоторые конфигурационные файлы, такие как файл hosts, объяснят вам эти соглашения. Другие заставят вас прочитать некоторую документацию или пару постов в блоге.
Наконец, если редактируемый файл конфигурации структурирован в формате JSON или XML, вы можете использовать более мощный текстовый редактор с подсветкой синтаксиса. Я рекомендую Атом. Это повысит вашу точность, показывая, когда вы допустили ошибку.
Что, если это не работает?
Наконец, давайте коснемся того, что происходит, когда что-то идет не так. По моему опыту, проблемы, связанные с редактированием конфигурационных файлов, имеют тенденцию делиться на два лагеря.
Первый — это разрешения. Если вы не можете сохранить свои изменения, это может быть потому, что вы пытаетесь сделать это как обычный пользователь. Чтобы предотвратить случайное повреждение, многие конфигурационные файлы доступны для редактирования только тем, у кого есть права администратора.
Исправить это легко. В Mac и Linux попробуйте повысить свои права с помощью команды sudo. Итак, если вы редактировали файл hosts, вы бы запустили:
Вторая распространенная проблема — ошибка пользователя. Если что-то не работает, это может быть ваша вина. Убедитесь, что вы не сделали никаких опечаток, и что вы следовали соглашениям файла конфигурации. Я знаю, это кажется очевидным, но простая орфографическая ошибка или забывание закрыть пару речевых меток может сделать весь файл бесполезным.
Хороший способ избежать проблем — сделать копию файла конфигурации, прежде чем вносить какие-либо изменения. Таким образом, если что-то пойдет не так, вы можете восстановить копию и начать заново!
Файлы конфигурации важны
Более того, они являются неотъемлемой частью использования Linux. Знание того, как правильно их редактировать, поможет вам бесконечно.
Есть ли какие-то другие важные навыки, которые, по вашему мнению, должны знать пользователи Linux от начального до среднего уровня? Позвольте мне знать в комментариях ниже.
Файл конфигурации
Файл конфигурации или конфигурационный файл используется для хранения настроек компьютерных программ, в том числе и операционных систем.
Как правило, конфигурационные файлы имеют текстовый формат и могут быть прочитаны и отредактированы пользователем программы.
Наиболее широко файлы конфигурации в качестве средства настройки используются в ОС семейства Unix: FreeBSD, GNU/Linux и др.
Известные форматы
В ОС GNU/Linux в качестве файлов конфигурации системы зачастую используются сценарии (скрипты) для командной оболочки.
Смотреть что такое «Файл конфигурации» в других словарях:
Файл конфигурации рабочего стола — Ярлык в Windows NT Ярлык (англ. shortcut), элемент рабочего стола (англ. desktop entry) или файл конфигурации рабочего стола (англ. desktop configuration file)), в компьютерной терминологии файл, служащий указателем на объект (например, файл,… … Википедия
Файл (компьютер) — Файл (англ. file папка, скоросшиватель) концепция в вычислительной технике: сущность, позволяющая получить доступ к какому либо ресурсу вычислительной системы и обладающая рядом признаков: фиксированное имя (последовательность символов, число или … Википедия
Файл — У этого термина существуют и другие значения, см. Файл (значения). Файл (англ. file) блок информации на внешнем запоминающем устройстве компьютера, имеющий определённое логическое представление (начиная от простой последовательности… … Википедия
Файл инициализации — Редактирование файла INI с помощью англ. Initialization file) это файл конфигурации, который содержит данные настроек для Microsoft Windows, Windows NT и некоторых приложений. Появились с самых первых версий Windows. В версии Windows 1.01 это… … Википедия
Конфигурационный файл — Файл конфигурации или конфигурационный файл используется для хранения настроек компьютерных программ, в том числе и операционных систем. Как правило, конфигурационные файлы имеют текстовый формат и могут быть прочитаны и отредактированы… … Википедия
Компьютерный файл — Файл (англ. file папка, скоросшиватель) концепция в вычислительной технике: сущность, позволяющая получить доступ к какому либо ресурсу вычислительной системы и обладающая рядом признаков: фиксированное имя (последовательность символов, число или … Википедия
язык описания конфигурации системы — Данный язык обеспечивает возможность обмена информацией о конфигурации устройств в стандартизованном формате между программным обеспечением различных фирм производителей. [Новости Электротехники №3(75). Релейная защита. МЭК 61850] Все параметры… … Справочник технического переводчика
Файлы — Файл (англ. file папка, скоросшиватель) концепция в вычислительной технике: сущность, позволяющая получить доступ к какому либо ресурсу вычислительной системы и обладающая рядом признаков: фиксированное имя (последовательность символов, число или … Википедия
Конфиг — Файл конфигурации или конфигурационный файл используется для хранения настроек компьютерных программ, в том числе и операционных систем. Как правило, конфигурационные файлы имеют текстовый формат и могут быть прочитаны и отредактированы… … Википедия
1С:FAQ:Обновление — А что мне будет за использование пиратской 1С ки? Релиз конфигурации и платформы Где взять: обновления конфигураций и форм отчетности Обновление релиза (версии) … Бухгалтерская энциклопедия
Конфигурационные файлы. Библиотека libconfig
Введение
Как-то находясь в поиске как мне прикрутить конфигурационные ini файлы или json к моему сервачку перебирал варианты, но почему-то они были неудобны или слишком простые, или велосипеды. И хоть я люблю xml конфигурирование, но порою это чрезмерно огромные файлы и неудобно для небольшого количества настроек писать много текста. Раз задал другу вопрос по этой теме, он то мне и подкинул библиотеку. Напоминает она json в смеси с yaml.
Библиотека имеет два интерфейса: функциональный и объектный. Они очень похожи, так как объектный использует внутри функциональную реализацию, но имеют некоторые различия, рассмотренные в данном посте.
Настройка и подключение
Библиотека есть во многих репозиториях, поэтому установка простая:
В исходниках С++ подключается одним лишь инклудом:
Конфигурационный файл
Файл конфига представляет собой следующего вида структуру:
Основными видами записей в конфиге являются такие типы:
Элемент (Setting)
Это минимальная значимая часть конфигурационной структуры и имеют вид ключ-значение:
Группы (Groups)
Группы могут содержать любое число элементов, но каждый элемент должен содержать уникальный ключ в пределах группы. Записывается в фигурных скобках:
Массивы (Arrays)
Содержат любое количество элементов, даже ноль, но все элементы состоят лишь из значений и должны иметь один и тот же скалярный тип в пределах массива. Записывает в квадратных скобках:
Списки (Lists)
Списки содержат ноль или более элементов скалярного типа, массивов, групп или списков. Записывается в круглых скобках:
Целочисленые значения (Integers)
Дробные числа с плавающей запятой (floats)
Записывается тоже привычным нам способом
Запись с экспонентой стандартная с ‘e’.
Булевые значения (Boolean)
Строки (Strings)
Комментарии
Внешние подключения (Includes)
Это, в общем, самая вкусная вкусняшка.
С API
В данной части я не стану расписывать все функции, только лишь основные, так как они в целом похожие, и основные нюансы.
Описание использованых функций ниже
Небольшое описание функционала
config_t — тип файла конфигурации (это ещё не запись). Грубо говоря, основной контейнер.
config_setting_t — объект элемента конфигурации. В примере используется указатель, возвращаемый контейнером на искомый элемент.
int config_read_file(config_t * config, const char * filename) — функция читает конфигурационный файл filename в память и заполняет объект типа config_t. Можно не читать из файла, а сразу «скормить» строку в config_read_string() или отдать дескриптор файла в config_read()
int config_lookup_string (const config_t * config, const char * path, const char ** value) — ищет и возвращает значение в виде указателя на строку value, по заданному пути path внутри конфига config.
config_setting_t * config_lookup (const config_t * config, const char * path) — ищет запись внутри конфига по заданному внутреннему пути и возвращает её.
config_setting_t * config_setting_get_elem (const config_setting_t * setting, unsigned int index) — используется для массивов, списков чтобы возвращать из него элементы с таким-то номером по порядку
int config_setting_lookup_string (const config_setting_t * setting, const char * name, const char ** value) —
возвращает значение value дочернего элемента name относительно заданной записи setting
Когда же надо получить значение в конкретно заданной записи, то используются функции типа
int config_setting_get_int (const config_setting_t * setting)
C++ API
Тот же пример, но на С++. Полная документация на сайте
Тут тот же принцип, что и в функциональном стиле, только перед получением данных из конфига необходимо получать корневой элемент cfg.getRoot(); и уже потом от него обращаться к остальным элементам. Так же надо быть внимательным к тому, что практически на все ошибки кидаются исключения
Заключение
Кроме считывания удобных конфигов, в API предоставлен так же функционал создания элементов конфига и его записи на носитель.
Всё в документации [en] на сайте библиотеки.
Примеры идут вместе с исходниками. Их можно скачать следующей командой в консоли:
или же из исходников по прямой ссылке.
Документация представлена в форматах HTML и PDF.
Лицензия GNU LGPL.