Найти тему

Изменяем консольный текстовый редактор по-умолчанию на сервере Linux

Оглавление

На канале выходило пару заметок, посвященных консольным текстовым редакторам - одна обзорная и вторая, посвященная идеальному для начинающего системного администратора, редактору Nano. Допустим, читатель или подписчик, прочитав вторую статью, понял, что Nano ему идеально подходит, принял решение работать на клиентских серверах через него, установил на сервер нужный пакет (если его не шло «из коробки»).

Но при добавлении задачи в Cron или иных операциях с различными файлами все равно открывается редактор vi. Чтобы при любых операциях на сервере открывался конкретный редактор, нужно изменить настройки по-умолчанию, про что ниже и расскажу.

Переменные окружения в Linux

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

Например, переменная $HOME содержит информацию о полном пути до домашней директории текущего пользователя, а переменная $USER содержит значение имени текущего пользователя. Чтобы вызвать переменные в терминале и посмотреть их содержимое воспользуемся командой echo:

echo $HOME

echo $USER

Пример вызова переменных окружения при помощи команды echo
Пример вызова переменных окружения при помощи команды echo

Абсолютно также имеется переменная, содержащая информацию о текстовом редакторе по-умолчанию. С ней-то мы и будем работать.

Меняем редактор по-умолчанию

Все действия буду осуществлять на домашнем ПК через консоль, но они будут абсолютно также работать и на любом сервере. Вначале посмотрим, какой текстовый редактор открывается по-умолчанию. Например, попробуем добавить задачу Cron, введя соответствующую команду crontab -e.

-3

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

Первым шагом нужно определить, где находится редактор nano. Для этого введем эту команду:

which nano

Определяем путь до редактора nano
Определяем путь до редактора nano

«Выхлоп» покажет местоположение исполняемого файла редактора, который нужно скопировать для дальнейшей настройки.

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

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

export EDITOR=/usr/bin/nano

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

Если вы намерены постоянно работать с сервером и вам необходимо всегда иметь в качестве системного редактора nano, необходимо внести изменения в файл настройки оболочки консоли. Так как в большинстве случаев на сервере вы будете работать с оболочкой BASH, то изменять нужно файл .bashrc, который находится в домашней директории текущего пользователя.

На моем ПК в качестве оболочки установлен ZSH, поэтому я буду редактировать файл .zshrc. Но суть вводимых в оба файла строки не меняется, она будет работать везде, независимо от используемой оболочки, меняется только конфигурационный файл для редактирования. Открываем конфиг-файл нужной оболочки и вставляем туда следующую строку:

export EDITOR=/usr/bin/nano

После необходимо перезапустить оболочку. Сделать это можно при помощи следующих команд:

(для BASH) source $HOME/.bashrc

(для ZSH) exec zsh

-5

Снова протестируем добавлением задачи в Cron и посмотрим какой редактор используется теперь.

-6

Как видим, открывается необходимый нам редактор Nano, что говорит о том, что задача решена правильно.

Что если не nano и как откатить изменения?

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

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

Подведем итог

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

На данную статью меня вдохновил коллега по блогерскому цеху с канала «Поясни за Devops», ранее выпустивший похожую статью, на которую я наткнулся в ленте Дзена.

Как настроить редактор по умолчанию в терминале Linux
Поясни за DevOps18 января 2023

После прочтения вспомнил, что сам ранее ни раз натыкался на сюрприз в виде «не своего» текстового редактора при работе на серверах и решил написать статью для новичков.

Хочу напомнить про важность подписки и обратной связи в виде лайков, комментариев и репостов. Количество подписчиков растет, потому данные по активным участникам канала также нужно улучшать!