Различия между версиями 3 и 4
Версия 3 от 2008-09-14 12:33:27
Размер: 9509
Редактор: VsevolodKrishchenko
Комментарий:
Версия 4 от 2008-09-14 12:34:33
Размер: 9509
Редактор: VsevolodKrishchenko
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 3: Строка 3:
Проблема хранения и редактирования конфигурации в ОС Линукс до сих пор это решается старым, проверенным в unix-системах, способом: любой файл настроек --- человекочитаемый текст. Один из вопросов, который возникает в процессе диалога с гуру --- а что такое плоский текст? Когда говорят про текстовый файл, то имеет в виду файл в виде плоского текста (англ. '''plain text'). Если текст --- некий поток символов, то плоский текст хранит только собственно информацию, а размеченный текст хранит и некотрую метаинформацию о, например, их внешнем виде. Таким образом, когда вы видете содержимое плоского текстового файла, то вы видите именно то, что должны видеть. Размеченный же текст можно показывать в виде плоского текста и в формате представления. Когда говорят, что любой файл является текстовым, то это значит, что он всегда доступен как текст плоский, то есть его можно редактировать текстовым редактором. Проблема хранения и редактирования конфигурации в ОС Линукс до сих пор это решается старым, проверенным в unix-системах, способом: любой файл настроек --- человекочитаемый текст. Один из вопросов, который возникает в процессе диалога с гуру --- а что такое плоский текст? Когда говорят про текстовый файл, то имеет в виду файл в виде плоского текста (англ. ''plain text''). Если текст --- некий поток символов, то плоский текст хранит только собственно информацию, а размеченный текст хранит и некотрую метаинформацию о, например, их внешнем виде. Таким образом, когда вы видете содержимое плоского текстового файла, то вы видите именно то, что должны видеть. Размеченный же текст можно показывать в виде плоского текста и в формате представления. Когда говорят, что любой файл является текстовым, то это значит, что он всегда доступен как текст плоский, то есть его можно редактировать текстовым редактором.

Текстовые конфиги

Проблема хранения и редактирования конфигурации в ОС Линукс до сих пор это решается старым, проверенным в unix-системах, способом: любой файл настроек --- человекочитаемый текст. Один из вопросов, который возникает в процессе диалога с гуру --- а что такое плоский текст? Когда говорят про текстовый файл, то имеет в виду файл в виде плоского текста (англ. plain text). Если текст --- некий поток символов, то плоский текст хранит только собственно информацию, а размеченный текст хранит и некотрую метаинформацию о, например, их внешнем виде. Таким образом, когда вы видете содержимое плоского текстового файла, то вы видите именно то, что должны видеть. Размеченный же текст можно показывать в виде плоского текста и в формате представления. Когда говорят, что любой файл является текстовым, то это значит, что он всегда доступен как текст плоский, то есть его можно редактировать текстовым редактором.

В качестве отступления напомним, какие в ПСПО бывают текстовые редакторы. Все текстовые редакторы можно резделить на:

  • классические редакторы (vi, vim, emacs), которые могу раобоать как в консоле, так и в графическом окружении;
  • современные редакторы, требующие графической среды (например, редактор kate для среды KDE);
  • простое редакторы для эпизодического использования (в ПСПО входит простой редактор mcedit).

Важным следствием хранения конфигурации в текстовых файлов является возможность использовать стандартный набор утилит для обработки текста, таких как sed, grep , tail, head, cat. Особенно следует здесь отметить утилиту для автоматической замены в файлах sed.

Опишем теперь общие концепции системы настроек в unix-подобных системах.

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

  • У каждого пакета --- свои файлы конфигурации. Каждый файл принадлежит какому-то одному пакету, и имена подкаталогов в /etc соответствуют названиям пакетов, хотя и далеко не всегда с ними точно совпадают. Последний момент связан с тем, что имена каталогов, например /etc/ssh, обычно одинаковы для различных unix-подобных систем, а вот имена пакетов определеются внутренней политикой ПСПО и обычно совпадабт с названием программы.

  • Гибкость представления --- пишите, что хотите. Это приводит к разнообразию форматов: какие-то конфигурации линейны, какие-то --- древовидны, а какие-то вообще являются сценарием языка shell. За этот "зоопарк" часто упрекают unix-системы, но с другой стороны это позволяет выбирать удобный формат под коонкретную задачу.

  • Чтение и модификация с использованием разнообразных средств. С одной стороны, для ряда задач есть графические конфигураторы программы. В каком-то смысле они удобные, но обычно они делют настройку графического интерфейса и стандартных типовых задач. А каковы должны быть инструменты, которые бы позволили читать и изменять практически любой конфигурационный файл? Поскольку мы договорились, что конфиги представляются в виде текста, то у нас есть способ работы с текстом --- текстовый редактор, в случае, если нет задач автоматизации. Но редактор текста должен обладать не совсем таким набором возможностей, каким должен обладать редактор конфигурационных файлов. При редактировании литературного текста обычно необходимо проверять орфографию, писать и писать, и потом в конце переставить пару абзацев. Когда работаете с конфиг-файлов, элементы разметки или другие синт. единицы служат объектами оперирования, то есть, вы находите секцию, в которой хранится свойство, и изменяете это свойство. Поэтому редактор, который редактирует конфиг, должен быстро производить поиск, модификацию и модификацию автоматическую. типичный пример: заменить имя хоста. Почему бы это не оформить в виде парсера? Некоторые задачи можно решить вручную, но некоторые задачи можно решить машиной, и лучше, чтобы таких задач было как можно больше. И в таких случаях нужны процессоры обработки текста. Поэтому в линуксе есть много программ, которые работают с ФС, с пакетом, которые занимаются с плоской обработкой текста. Именно эти программы и являются инструментом, которые позволяют что угодно делать с настройкой.

vim, emacs. Сначала надо научиться ими пользоваться, а потом им пользоваться.


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

0

1

1

1

1

VsevolodKrishchenko, VsevolodKrishchenko, VsevolodKrishchenko


CategoryLectures CategoryCmc CategoryUneex

LecturesCMC/LinuxSoft2007/09/03TextConfigs (последним исправлял пользователь VsevolodKrishchenko 2008-10-04 11:15:44)