Как быстро и эффективно редактировать файлы конфигурации в 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-системы с помощью нескольких простых инструментов. Начав использовать их, вы со временем сможете подобрать другие инструменты, которые будут лучше совместимы с вашим рабочим процессом. В конце концов вы сможете собрать мощный инструментарий, позволяющий редактировать файлы конфигурации на профессиональном уровне. И не в коем случае не забывайте о страницах руководств используемых инструментов!
Источник
How to Edit Config Files in Ubuntu
Configuration files contain the information required to control the operation of a program. Linux users, especially Linux administrators, must know how to edit configuration files to maintain an Ubuntu server or desktop. Configuration files on Ubuntu are stored in subdirectories of the /etc folder as a text file and can be edited using text editors. Some of the examples of config files are host.conf, hosts. resolv.conf, networks, syslog.conf etc. in Linux-based operating systems.
To make any configuration changes, you have to open and edit the file using a text editor. In this article, I will describe multiple ways to edit config files in Ubuntu. The steps described in this guide have been tested on Ubuntu 20.04, but they will work on other Ubuntu versions too.
- Using Gedit Editor
- Using Nano Editor
- Using Vim Editor
- Using Gvim Editor
- Using Emacs Editor
Now let’s take a look at these text editors. By using these editors, you can easily edit files in terminal .
Using Gedit Editor
Gedit is the default text editor of the Gnome desktop environment. It supports tabs so you can open different files in multiple tabs. It is the simpler and easier text editor as compared to other available text editors.
To edit a config file in text editor, launch Terminal by pressing Ctrl+Alt+T key combinations. Then type the below command as sudo:
Replace /path/to/filename with the actual file path of the configuration file that you want to edit. When prompted for a password, enter sudo password.
Example: editing of the /etc/resolv.conf file
It is like the notepad editor in Windows OS. As soon as the editor window opens, you can start typing or editing without entering in any mode. Once you have done with the editing, press Ctrl+S to save the file.
Using Nano Editor
Nano is the simplest and the powerful built-in editor in the many Linux distributions. You do not have to learn the Nano editor before using it and also there is no need to remember the commands. They are displayed at the bottom and can be triggered with the Ctrl key. For instance to save a file, press Ctrl+O.
To edit any config file, simply open the Terminal window by pressing the Ctrl+Alt+T key combinations. Navigate to the directory where the file is placed. Then type nano followed by the filename that you want to edit.
Replace /path/to/filename with the actual file path of the configuration file that you want to edit. When prompted for a password, enter sudo password.
Now you can edit and make changes in the config file using Nano editor.
Once you have done editing, press Ctrl+O to save and Ctrl+X to exit the Editor.
Using Vim Editor
Vim or Vi editor also comes pre-installed with most Linux distributions. It has no visible prompts or control that can be a little harder for beginners. However, once you learned it, it is the more quick and powerful tool for editing. Using Vim, you can edit and view multiple files in one session.
To open a file in Vim editor, open the Terminal window by pressing the Ctrl+Alt+T key combinations. Then type vi as sudo followed by filename along with the file path like:
Replace /path/to/filename with the actual file path of the configuration file that you want to edit. When prompted for a password, enter sudo password.
Then edit the file using Vim editor. Note that when the editor opens, you enter command mode. Here are the few steps to edit a file in Vim editor:
- To edit the file, Press I from keyboard to enter into insert mode, here you can do editing just like the normal editor.
- When done with editing, get out of this mode by pressing Esc. It will return you to normal mode.
- To save the file, type :w in command mode
- To quit the editor, type :q in command mode
- To combine the above actions type :wq to save and quit simultaneously.
Using Gvim Editor
Gvim is a Vim editor with a graphical user interface. To install Gvim, launch Terminal by pressing Ctrl+Alt+T. then type the below command in Terminal to start the installation.
Once done with the installation, you can open and edit any config file in it. Type the below command with sudo in Terminal to open any config file in Gvim:
Press I to enter in insert mode where you can edit the file.
In Gvim editor, you can do various functions using the toolbar just like any normal GUI application like saving the file, undo, redo, finding a keyword, etc.
Using Emacs Editor
Emacs is also a text editor but it is not a built-in editor. You have to manually install it using the Ubuntu Terminal. It has so many features including a built-in web browser, calculator, calendar, Terminal, etc.
To install Emacs editor, launch Terminal by pressing Ctrl+Alt+T key combinations. Type the below command in Terminal as sudo:
Once done with the installation, you can open and edit any config file in it.
To open a config file using emacs editor, type emacs followed by filename along with the file path in the below syntax:
Replace /path/to/filename with the actual file path of the configuration file that you want to edit. When prompted for a password, enter sudo password.
Edit the file as normal and save it using the toolbar.
You can also open the config file in bash instead of a separate window.
Type the following command as sudo in Terminal:
Edit the file as a normal text file. Then press Ctrl+X and Ctrl+C to save the file. When it prompts for saving the file, press y to save and quit the editor.
So these were some simple editors you can use to easily and safely edit config files in your Ubuntu operating system.
Karim Buzdar
About the Author: Karim Buzdar holds a degree in telecommunication engineering and holds several sysadmin certifications. As an IT engineer and technical author, he writes for various web sites. You can reach Karim on LinkedIn
Источник