VIM Linux
базовые команды
Основная концепция Linux звучит как «Все есть файл», это означает, что почти к любой функции операционной системы можно обратиться как к файлу, открыв его в текстовом редакторе и внеся в него определенные изменения.
В серверных Linux системах нет графического интерфейса, то нам приходится работать с файлами конфигураций напрямую, внося в них нужные изменения, а для этого нам понадобится текстовый редактор
В системах Linux встроенным текстовым редактором является VIM. Давайте запустим справку по данному текстовому редактору
man vim
vim — Vi IMproved (Улучшенный Vi), текстовый редактор для программистов
Vim — текстовый редактор, обратно-совместимый с Vi. Он может быть использован для правки всех видов простого текста. Особенно он хорош для правки исходных текстов программ
И так, давайте разберем следующую задачу, чтобы понимать, как работать через текстовый редактор VIM. Как вы помните, я в начале рассказывал, что для SSH сервера лучше сменить порт по умолчанию для подключений. Давайте именно это и сделаем через редактор VIM.
Для начала, выясним, а в какой файле могут находиться настройки порта для SSH соединений?
grep -ri 'port 22' /etc/
Появляются некоторые ошибки, в которых говорится, что у нас недостаточно прав для просмотра некоторых файлов. Чтобы устранить данный недостаток, запустим эту же команду с подставкой sudo
sudo grep -ri 'port 22' /etc/
У нас запрашивается повторный пароль, после чего все проходит успешно. Если вкратце, то данная команда позволяет выполнять команду с повышенными правами, опять же, если это разрешено для текущего пользователя.
Мы видим, что фильтр нашел файлы с нужными нам записями, поэтому давайте перейдем в нужную нам папку и запустим файл для редактирования
cd /etc/ssh/
vim sshd_config
Мы открыли файл в редакторе VIM, так что давайте изучим различные функции данного текстового редактора.
Для перемещения по документу используют комбинации клавиш
Ctrl-f (forward) - листать страницу вперед (вперед)
Ctrl-b (back) - листать страницу назад (назад)
Так как документы бывают очень большими, допустим лог файлы, то последняя информация записывается в самый конец файла, так что, чтобы сразу переместиться в конец файла используйте комбинацию
Shift + g (G) - перемещение на последнюю строку
Так как файлы у нас могут быть длинными, довольно часто может понадобиться функция поиска какого-то текста в файле, чтобы не просматривать его вручную.
:/Port - поиск строки Port вперёд
n - следующее совпадение
N - прошлое совпадение
:/Host - тут больше вхождений данного слова
Режим редактирования
i (insert) - переход к режиму редактирования файла (Вставить)
И тут появляется предупреждение, что данный файл доступен только для чтения, поэтому мы закроем редактор комбинацией клавиш ZQ, выход без сохранения и запустим данный файл для редактирования с повышенными правами
sudo vim sshd_config i
Теперь сообщений не появляется, можем редактировать файл
Заменим строчку #Port 22 на Port 2222
Выйдем из режима редактирования Esc
Сохраним внесенные изменения комбинацией клавиш ZZ
:w (write) - сохранить изменения
:q (quit) - выход
:q! или ZQ - выход без сохранения
:wq или ZZ - выход с сохранением
Теперь давайте перезапустим службу SSH
sudo systemctl restart sshd
Закрываем PuTTY и пытаемся подключиться к серверу вновь. Появляется ошибка «Network error: Connection refused» Давайте попробуем изменить порт в программе на 2222 и подключиться заново. Все отлично, подключиться получилось!
Вот, подобным образом вносятся настройки в различные сервисы через терминал Linux.
Резюме:
vim sshd_config - редактирование файла sshd_config
{vim} Ctrl-f (forward) - листать страницу вперед (вперед) {vim}
{vim} Ctrl-b (back) - листать страницу назад (назад) {vim}
{vim} Shift + g (G) - перемещение на последнюю строку {vim}
{vim} :/Port - поиск строки Port вперёд {vim}
{vim} :?Port - поиск строки Port назад {vim}
{vim} n - следующее совпадение {vim}
{vim} N - прошлое совпадение {vim}
{vim} i (insert) - переход к режиму редактирования файла (Вставить) {vim}
{vim} :w (write) - сохранить изменения {vim}
{vim} :q (quit) - выход {vim}
{vim} :q! или ZQ - выход без сохранения {vim}
{vim} :wq или ZZ - выход с сохранением {vim}