Различия между версиями 2 и 3
Версия 2 от 2008-07-24 18:12:48
Размер: 6193
Редактор: eSyr
Комментарий:
Версия 3 от 2008-09-14 12:33:27
Размер: 9509
Редактор: VsevolodKrishchenko
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 3: Строка 3:
Какая ситуация в линуксе: до сих пор это решается старым юниксовым способом --- любой файл --- человекочитаемый текст. Один из вопросов, который возник в процессе диалога с гуру --- что такое плоский текст. Когда лектор говорит про текстовый файл, то он имеет в виду файл в виде плоского текста. Если текст --- некий поток символов, тол плоский текст хранит только информацию, а размеченный текст хранит метаинформацию. То есть, когда вы видете плоский текст, то вы видите то, что должны видеть, а размеченный текст можно показывать в виде плоского текста и в формате представления. Так вот. Когда лектор говорит, что любой файл является текстовым, то это значит, что он всегда доступен как текст плоский, то есть его можно редактировать текстовым редактором. Проблема хранения и редактирования конфигурации в ОС Линукс до сих пор это решается старым, проверенным в unix-системах, способом: любой файл настроек --- человекочитаемый текст. Один из вопросов, который возникает в процессе диалога с гуру --- а что такое плоский текст? Когда говорят про текстовый файл, то имеет в виду файл в виде плоского текста (англ. '''plain text'). Если текст --- некий поток символов, то плоский текст хранит только собственно информацию, а размеченный текст хранит и некотрую метаинформацию о, например, их внешнем виде. Таким образом, когда вы видете содержимое плоского текстового файла, то вы видите именно то, что должны видеть. Размеченный же текст можно показывать в виде плоского текста и в формате представления. Когда говорят, что любой файл является текстовым, то это значит, что он всегда доступен как текст плоский, то есть его можно редактировать текстовым редактором.
Строка 5: Строка 5:
Теперь попробуем описать, как это выглядит:
 * Пространство имён --- файловая система. Зачем множить сущности (дерево), если дерево уже есть. В /etc/ лежат файлы, необходимые для настройки остальной части системы
  * Каждый файл принадлежит пакету, и названия в etc соответствуют названиям пакетов. Это способ локализации
 *
Гибкость представления --- пишите что хотите. За это упрекают линукс. Что-то плоско, что древовидно, что-то --- программа на шелле. Но это нормально
 * Чтение и модификация. С одной стороны, есть гуёвые программы. В каком-то смысле они удобные. Но хорошо граф. интерфейс делает настройку граф. интерфейса и стандартных типовых задач. А каковы должны быть инструменты, которые бы позволили читать и изменять практически любой конфиг файл? Поскольку мы договорились, что конфиги представляются в виде текста, то у нас есть способ работы с текстом --- текстовый редактор, в случае, если нет задач автоматизации. Но редактор текста должен обладать не совсем таким набором возможностей, каким должен обладать редактор конфигурационных файлов. При редактировании литературного текста обычно необходимо проверять орфографию, писать и писать, и потом в конце переставить пару абзацев. Когда работаете с конфиг-файлов, элементы разметки или другие синт. единицы служат объектами оперирования, то есть, вы находите секцию, в которой хранится свойство, и изменяете это свойство. Поэтому редактор, который редактирует конфиг, должен быстро производить поиск, модификацию и модификацию автоматическую. типичный пример: заменить имя хоста. Почему бы это не оформить в виде парсера? Некоторые задачи можно решить вручную, но некоторые задачи можно решить машиной, и лучше, чтобы таких задач было как можно больше. И в таких случаях нужны процессоры обработки текста. Поэтому в линуксе есть много программ, которые работают с ФС, с пакетом, которые занимаются с плоской обработкой текста. Именно эти программы и являются инструментом, которые позволяют что угодно делать с настройкой.
В качестве отступления напомним, какие в ПСПО бывают текстовые редакторы. Все текстовые редакторы можно резделить на:
 * классические редакторы (vi, vim, emacs), которые могу раобоать как в консоле, так и в графическом окружении;
 * современные редакторы, требующие графической среды (например, редактор kate для среды KDE);
 * простое редакторы для эпизодического использования (в ПСПО входит простой редактор mcedit).
Важным следствием хранения конфигурации в текстовых файлов является возможность использовать стандартный набор утилит для обработки текста, таких как `sed`, `grep` , `tail`, `head`, `cat`. Особенно следует здесь отметить утилиту для автоматической замены в файлах `sed`.

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

'''
Пространство имён --- файловая система'''. Для того, чтобы настройки одной поограммы не путалтись с настройками другой, необходимо использовать пространства имён. В нашем случае пространство имён дает файловая система: зачем множить сущности (некоторую древовидную классификацию настрроек), если дерево каталогов уже есть? В каталоге `/etc` лежат файлы, необходимые для настройки остальной части системы, а пользовательские настройки лежат в каталоге пользователя в файлах и каталогах, имя которых начинается с точки ("."), по-умолчанию пользователю их не видно.
  * '''У каждого пакета --- свои файлы конфигурации'''. Каждый файл принадлежит какому-то одному пакету, и имена подкаталогов в `/etc` соответствуют названиям пакетов, хотя и далеко не всегда с ними точно совпадают. Последний момент связан с тем, что имена каталогов, например `
/etc/ssh`, обычно одинаковы для различных unix-подобных систем, а вот имена пакетов определеются внутренней политикой ПСПО и обычно совпадабт с названием программы.
 * '''Гибкость представления --- пишите, что хотите'''. Это приводит к разнообразию форматов: какие-то конфигурации линейны, какие-то --- древовидны, а какие-то вообще являются сценарием языка shell. За этот "зоопарк" часто упрекают unix-системы, но с другой стороны это позволяет выбирать удобный формат под коонкретную задачу.
 * ''Чтение и модификация с использованием разнообразных средств'''. С одной стороны, для ряда задач есть графические конфигураторы программы. В каком-то смысле они удобные, но обычно они делют настройку графического интерфейса и стандартных типовых задач. А каковы должны быть инструменты, которые бы позволили читать и изменять практически любой конфигурационный файл? Поскольку мы договорились, что конфиги представляются в виде текста, то у нас есть способ работы с текстом --- текстовый редактор, в случае, если нет задач автоматизации. Но редактор текста должен обладать не совсем таким набором возможностей, каким должен обладать редактор конфигурационных файлов. При редактировании литературного текста обычно необходимо проверять орфографию, писать и писать, и потом в конце переставить пару абзацев. Когда работаете с конфиг-файлов, элементы разметки или другие синт. единицы служат объектами оперирования, то есть, вы находите секцию, в которой хранится свойство, и изменяете это свойство. Поэтому редактор, который редактирует конфиг, должен быстро производить поиск, модификацию и модификацию автоматическую. типичный пример: заменить имя хоста. Почему бы это не оформить в виде парсера? Некоторые задачи можно решить вручную, но некоторые задачи можно решить машиной, и лучше, чтобы таких задач было как можно больше. И в таких случаях нужны процессоры обработки текста. Поэтому в линуксе есть много программ, которые работают с ФС, с пакетом, которые занимаются с плоской обработкой текста. Именно эти программы и являются инструментом, которые позволяют что угодно делать с настройкой.
Строка 19: Строка 26:
|| 0 || 1 || 1 || 1 || || 1 || ArtemSerebriyskiy, [[Allena]], VsevolodKrishchenko || || || || 0 || 1 || 1 || 1 || || 1 || VsevolodKrishchenko, VsevolodKrishchenko, VsevolodKrishchenko || || ||

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

Проблема хранения и редактирования конфигурации в ОС Линукс до сих пор это решается старым, проверенным в 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)