- Как быстро и эффективно редактировать файлы конфигурации в Linux
- Подбор подходящего текстового редактора с графическим интерфейсом
- Не позволяйте системе подавить вас
- Конфигурационные файлы
- Содержание
- Редактирование конфигурационных файлов
- Критические системные файлы
- Что такое файлы конфигурации и как вы можете их редактировать?
- Что такое файлы конфигурации?
- Как выглядят файлы конфигурации?
- Как редактировать файлы конфигурации
- Что делать, если это не работает?
- Файлы конфигурации важны
Как быстро и эффективно редактировать файлы конфигурации в Linux
Оригинал: How to Effectively and Efficiently Edit Configuration Files in Linux
Автор: Jack Wallen
Дата публикации: 30 сентября 2016 г.
Перевод: А.Панин
Дата перевода: 3 декабря 2016 г.
Jack Wallen описывает инструменты с интерфейсом командной строки, которые значительно повышают эффективность работы с файлами конфигурации.
Каждый администратор Linux-систем рано или поздно столкнется с необходимостью редактирования файлов конфигурации (в ручном режиме). Не важно, настраиваете ли вы веб-сервер, устанавливаете ли параметры службы для соединения с базой данных, дорабатываете ли сценарий командной оболочки или настраиваете соединение с сетью — в любом случае вы не сможете обойтись без редактирования одного или нескольких файлов конфигурации системы. При этом для некоторых системных администраторов перспектива редактирования конфигурационных файлов системы в ручном режиме сродни ночному кошмару. Действительно, разбор на первый взгляд невообразимого количества строк с значениями параметров конфигурации и комментариями может привести к потере волос и самообладания.
На самом деле, все не так печально. Фактически, большинство администраторов Linux-систем выполняют задачи, связанные с отладкой или конфигурацией приложений с большим энтузиазмом. Исследование особенностей функционирования серверов и прикладных приложений является отличным времяпрепровождением. При этом описанные действия не должны осуществляться с помощью малоэффективных инструментов. Стоит помнить о том, что каждому систмному администратору доступны специализированные инструменты, которые претерпели множество эволюционных изменений с целью максимального упрощения процесса редактирования файлов конфигурации. Я собираюсь описать несколько таких инструментов, позволяющих немного упростить вашу профессиональную деятельность в роли администратора Linux-систем. В первую очередь я предлагаю обсудить инструменты с интерфейсом командной строки, которые просто необходимы в том случае, если вы хотите оптимизировать процесс редактирования файлов конфигурации системы.
Ну что же, давайте приступим к рассмотрению описанных инструментов.
Если вы никогда не использовали утилиту diff ранее, вы наверняка не подозреваете о том, что теряли. Утилита diff предназначена для решения простой задачи: она сравнивает один файл с другим и выводит информацию об их различиях. Позвольте мне объяснить более подробно.
Представьте, что у вас имеются два файла конфигурации. Файл File1 содержит следующий текст:
Файл File2 — следующий текст:
Если вы имеете дело с файлами с подобным содержимым, вы без труда сможете открыть их с помощью любого текстового редактора и самостоятельно найти различия в содержимом. Но что делать в том случае, если в данные файлы будут добавлены тысячи дополнительных строк с комментариями и другими значениями параметров конфигурации программного обеспечения? Да, внезапно данная простая задача станет более сложной.
Благодаря существованию утилиты diff мы сможем без каких-либо сложностей найти различия между этими файлами. Если мы откроем окно терминала и выполним с помощью него команду diff File1 File2 , мы увидим следующий вывод, четко отражающий различия между ними (Рисунок 1).
Рисунок 1: Утилита diff выводит информацию о различиях между файлами File1 и File2.
Вам следует обращать особое внимание на буквы a , c и d , причем:
- a обозначает, что строка была добавлена
- c обозначает, что строка была изменена
- d обозначает, что строка была удалена
В данном примере несложно обнаружить строку вывода 1c1 , которая обозначает, что строка 1 была изменена во втором файле.
Вывод утилиты diff является немного неочевидным, так как он предназначен для чтения специализированным программным обеспечением, а не людьми. Эта утилита была разработана с целью получения информации о том, как нужно модифицировать файлы для того, чтобы синхронизировать их содержимое. Однако, важно понимать, что в ее выводе отражаются лишь те строки файлов, которые различаются. В нашем примере все строки файлов являются идентичными за исключением их первых строк, точнее их фрагментов, а именно «/var/www» в первом файле и «/var/www/html» во втором. Использование утилиты diff значительно упрощает поиск различий между двумя файлами конфигурации. Конечно, утилита diff является гораздо более сложной, но понимание данного фундаментального приема ее использования может значительно облегчить задачу поиска различий в файлах.
Мы можем изменить содержимое файла File2 следующим образом:
В этом случае вывод утилиты diff будет более сложным. Чтобы упростить его, мы можем выполнить команду diff -c File1 File2 . Параметр c позволяет активировать контекстный формат вывода, который гораздо проще читается (Рисунок 2).
Рисунок 2: Более сложный вывод команды diff в более простом для понимания формате благодаря наличию параметра c.
В данном случае утилита diff выводит информацию о том, что строки 1 и 4 из файла File1 и строки 1 и 3 файла File2 отличаются. Теперь вы можете внести все необходимые изменения в них.
Утилита grep наверняка является одной из первых утилит, изученных вами в процессе подготовке к исполнению обязанностей администратора Linux-систем. Без нее вы будете, как в известной поговорке, искать иголку в стогу сена, особенно при редактировании сложных файлов конфигурации. Представьте, что вам нужно, к примеру, деактивировать директиву EnableSendfile в файле конфигурации веб-сервера Apache из состава дистрибутива CentOS. В этом случае вы можете либо открыть файл конфигурации /etc/httpd/httpd.conf с помощью любого текстового редактора и прокручивать его содержимое до момента появления нужной директивы, либо выполнить команду grep -n EnableSendfile /etc/httpd/conf/httpd.conf .
Утилита grep всего лишь выводит номера строк, которые совпадают с поисковым запросом. Да, все настолько просто. Однако, в случае добавления параметра -n она будет также выводить номера строк, в которых встречается поисковый запрос. В нашем случае утилита grep сообщает нам о том, что директива EnableSendfile встречается в строках под номерами 340, 346 и 349 (Рисунок 3).
Рисунок 3: Использование утилиты grep для поиска директивы в файле конфигурации.
Если вы используете такой текстовый редактор, как nano , для редактирования файлов конфигурации, вы можете открыть файл /etc/httpd/conf/httpd.conf , пролистать его содержимое немного вниз и воспользоваться сочетанием клавиш Ctrl+c для получения информации о текущем номере строки. Вам придется пролистывать содержимое файла до появления строки, которую нужно отредактировать. Также вы можете открыть этот файл в nano с использованием параметра -c для постоянного вывода номера текущей строки (без необходимости использования упомянутого сочетания клавиш — Рисунок 4).
Рисунок 4: Текстовый редактор nano выводит номер текущей строки.
Утилита grep является чрезвычайно мощной. Обратитесь к странице руководства (man grep) для получения информации обо всех возможностях данного полезного инструмента.
Подбор подходящего текстового редактора с графическим интерфейсом
Некоторые люди предпочитают использовать приложения с графическим интерфейсом вместо приложений с интерфейсом командной строки. Хотя я и настоятельно рекомендую вам разобраться с интерфейсом командной строки системы, существуют ситуации, в которых приложения с графическим интерфейсом могут значительно упростить решение задачи. В качестве примера такого приложения можно рассмотреть текстовый редактор GEdit. Этот текстовый редактор из состава окружения рабочего стола GNOME позволяет изменять параметры механизма подсветки синтаксиса в процессе работы с файлом и, следовательно, может достаточно просто адаптироваться к особенностям файла конфигурации, с которым вы работаете.
Представьте, что вы открыли файл конфигурации /etc/httpd/conf/httpd.conf с помощью GEdit. Так как данный файл конфигурации является по своей сути обычным текстовым файлом, GEdit будет использовать режим подсветки синтаксиса «Текст» после его открытия (другими словами, вообще не будет активировать механизм подсветки синтаксиса). Вы можете выбрать подходящий режим подсветки синтаксиса с помощью раскрывающегося меню в строке состояния в нижней части окна. Если вы выберите режим «PHP», будет осуществляться подсветка всех синтаксических конструкций данного языка программирования, а также тэгов HTML (Рисунок 5).
Рисунок 5: Активация механизма подсветки синтаксиса для упрощения процесса редактирования файла конфигурации.
На данный момент существует огромное количество достойных текстовых редакторов, которые могут немного упростить процесс редактирования сложных файлов конфигурации. Начните работу с инструмента, поставляемого в составе вашего окружения рабочего стола по умолчанию и оцените его пригодность для выполнения описанной работы в вашем случае. Если вас не устроит данный инструмент, вы всегда сможете открыть менеджер пакетов программного обеспечения и найти текстовый редактор, который удовлетворит все ваши потребности (такой, как Sublime Text , Geany или Leafpad ).
Не позволяйте системе подавить вас
Вы можете значительно упростить процесс редактирования конфигурационных файлов Linux-системы с помощью нескольких простых инструментов. Начав использовать их, вы со временем сможете подобрать другие инструменты, которые будут лучше совместимы с вашим рабочим процессом. В конце концов вы сможете собрать мощный инструментарий, позволяющий редактировать файлы конфигурации на профессиональном уровне. И не в коем случае не забывайте о страницах руководств используемых инструментов!
Источник
Конфигурационные файлы
Содержание
Практически все настройки практически всех приложений в Ubuntu, включая системные компоненты, хранятся в виде обычных текстовых файлов различного формата, называемых конфигурационными файлами или просто «конфигами». Это очень удобно, поскольку позволяет просто читать и менять их не только из конкретного приложения. Нормальные программы обычно содержат встроенный редактор параметров, основные настройки системы так же можно легко изменить с помощью графических утилит, доступных из меню «Система». Однако некоторые операции требуют редактирования системных файлов конфигурации, к которым нет доступа из графического окружения.
Редактирование конфигурационных файлов
Большинство конфигурационных файлов, которые приходится редактировать вручную, к тому же доступны для изменения только пользователю с привилегиями root. Если вам неоходимо отредактировать подобный файл, то вы можете поступить несколькими способами:
Самый простой путь: вызвать диалог запуска программ (по умолчанию — Alt + F2 ) и запустить обычный текстовый редактор с правами суперпользователя командой:
Пользователи Kubuntu должны подставить вместо gedit текстовый редактор KDE kate . У вас попросят ввести ваш пароль и, если вы являетесь администратором компьютера, откроется для редактирования нужный файл.
То же самое можно сделать из терминала, запустив редактор командой
В этом случае вместо графического окна с запросом пароля у вас появится запрос непосредственно в терминале.
Ну и наконец можно отредактировать текстовый файл непосредственно из терминала, не открывая графических приложений вообще. Существует масса текстовых редакторов для терминала, самыми популярными в среде линуксойдов являются vi и emacs , однако ни первым, ни вторым новичку пользовать в принципе нереально, поэтому лучше всего использовать простой в освоении редактор nano , доступный по умолчанию в любой версии Ubuntu. Для открытия текстового файла с правами суперпользователя в nano просто наберите в терминале
Критические системные файлы
Существует несколько критических конфигурационных файлов, от содержимого которых зависит в системе очень многое, классическим примером является файл /etc/sudoers . Для редактирования конкретно этого файла существует специально адаптированная версия редактора vi , которую можно вызвать командой
Будьте предельно внимательны при изменении подобных файлов, неправильная информация в /etc/sudoers может крайне просто привести к невозможности выполнить что-либо в системе.
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Источник
Что такое файлы конфигурации и как вы можете их редактировать?
Подавляющее большинство используемых нами компьютерных программ — будь то офисные пакеты, веб-браузеры или даже видеоигры — настраиваются через систему интерфейсов меню. Это стало практически стандартным способом использования наших машин. Но некоторые программы требуют, чтобы вы сделали шаг за этим, и вам действительно нужно отредактировать текстовый файл, чтобы заставить их работать так, как вы хотите.
Эти текстовые файлы, что неудивительно, называются «конфигурационными файлами». Если вы хотите перейти от «пользователя» к «продвинутому пользователю», вам нужно знать, как их настроить.
Что такое файлы конфигурации?
Прежде чем мы углубимся в технические подробности, давайте сначала конкретно определим, что такое файл конфигурации.
Файлы конфигурации — это, по сути, файлы, которые содержат информацию, необходимую для успешной работы программы, которые структурированы особым образом. Вместо того, чтобы быть жестко запрограммированным в программе, они настраиваются пользователем и обычно хранятся в текстовом файле (хотя ранее я видел программы, которые использовали базы данных 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 позволяет пользователю добавлять аннотации и комментарии, которые начинаются с символа хеша.
В Linux и Mac OS X некоторые программы требуют, чтобы пользователь сохранял файл конфигурации в домашнем каталоге с точкой в начале имени файла. Эти конфигурационные файлы иногда имеют расширение .rc и в разговорной речи называются «точечные файлы».
Одна программа, которая следует этому конкретному соглашению, является текстовым редактором 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 для начинающих и для среднего уровня? Позвольте мне знать в комментариях ниже.
Источник