Редактирование конфигурационных файлов 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 отличаются. Теперь вы можете внести все необходимые изменения в них.

Читайте также:  Qualcomm atheros bluetooth bus windows 10

Утилита 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.
Глава 8: Администрирование

Да, Ubuntu работает довольно гладко прямо «из коробки», и если у вас есть система, которой пользуется один человек, вам, возможно, мало что потребуется менять в конфигурации системы. Тем не менее, может наступить время, когда вам потребуется добавить новых пользователей или предоставить техническую поддержку своим друзьям и близким, которых вы сагитировали использовать Ubuntu. В этом случае обратитесь к советам в этой главе, которые вам помогут.

Есть много других случаев, при которых вам, возможно, потребуется стать системным администратором, и для этих случаев в этой главе также проведены советы, которые вам помогут. Возможно, вам потребуется управлять внешними дисками и их монтировать, либо монтировать директории на удаленных серверах. И вот однажды что-то может пойти не так: во многих случаях вы сможете заглянуть в системный журнал, чтобы выяснить, что произошло, но иногда нужно воспользоваться спасательным диском.

Читайте также:  Ошибка активации windows реестр

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

Совет # 74: Редактируем конфигурационные файлы

Если вам из командной строки потребуется отредактировать конфигурационный файл, воспользуйтесь редактором vim.

Если о чем-то можно утверждать, что в этом в Linux нет недостатка, то это — текстовые редакторы. Это в значительной степени отражает текстовый характер Linux, начиная от командной строки и до исходного кода и конфигурационных файлов, к которым обращаются программы. Когда вы находитесь в среде рабочего стола, вы можете использовать один из многих графических инструментов, предназначенных для редактирования текстовых файлов; но в чрезвычайной ситуации, или когда вы получаете дистанционный доступ к машине, вам, возможно, потребуется прибегнуть текстовому редактору, работающего из командной строки. В Ubuntu текстовым редактором, используемым по умолчанию, является редактор vim, и в этом совете вы получите базовые сведения, необходимые для внесения изменений в конфигурационные файлы с использованием vim.

Редактор vi имеет довольно неоднозначную репутацию. Некоторым людям нравится, как с его помощью можно быстро редактировать файлы, а другие ненавидят его из-за сложности его освоения. Редактор vim (сокращение от «Vi Improved» — «Улучшенный Vi») представляет собой редактор vi, к которому не только добавлен целый ряд мощных усовершенствований, но также и целый ряд удобных изменений, таких как интегрированная среда подсказки. В Ubuntu по умолчанию используется vim и даже если вы запустите vi, на самом деле вы запускаете vim в режиме эмуляции vi.

Таким образом, чтобы отредактировать файл, запустите в командной строке vim и в качестве аргумента укажите имя файла. Например, для того,чтобы отредактировать таблицу файловых систем (/etc/fstab), наберите следующее:

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

Нормальный режим является основным режимом, в котором вы по умолчанию оказываетесь при запуске vim. В этом режиме вы можете для перемещения по файлу пользоваться различные клавиши. В таблице 8-1 перечислены некоторые основные навигационные клавиши и указаны их функции.

Таблица 8-1. Функциональные клавиши VIM, используемые в нормальном режиме

Перемещение курсора соответственно влево, вверх, вниз или вправо. Клавиши со стрелками также перемещают курсор.

Перемещение на одно слово соответственно вперед или назад. Полезные, если вы хотите быстро пройтись по файлу.

Переход соответственно к началу или к концу текущей строки.

Источник

Что такое файлы конфигурации и как вы можете их редактировать?

Подавляющее большинство используемых нами компьютерных программ — будь то офисные пакеты, веб-браузеры или даже видеоигры — настраиваются через систему интерфейсов меню. Это стало практически стандартным способом использования наших машин. Но некоторые программы требуют, чтобы вы сделали шаг за этим, и вам действительно нужно отредактировать текстовый файл, чтобы заставить их работать так, как вы хотите.

Эти текстовые файлы, что неудивительно, называются «конфигурационными файлами». Если вы хотите перейти от «пользователя» к «продвинутому пользователю», вам нужно знать, как их настроить.

Что такое файлы конфигурации?

Прежде чем мы углубимся в технические подробности, давайте сначала конкретно определим, что такое файл конфигурации.

Файлы конфигурации — это, по сути, файлы, которые содержат информацию, необходимую для успешной работы программы, которые структурированы особым образом. Вместо того, чтобы быть жестко запрограммированным в программе, они настраиваются пользователем и обычно хранятся в текстовом файле (хотя ранее я видел программы, которые использовали базы данных 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 для начинающих и для среднего уровня? Позвольте мне знать в комментариях ниже.

Источник

Читайте также:  Windows не может найти wifi
Оцените статью
Навигационная клавиша Функция