LFCS #2: Как установить и использовать Vi/Vim в Linux
Пару месяцев назад Linux Foundation запустил сертификацию LFCS (Linux Foundation Certified Sysadmin), чтобы помочь людям со всего мира подтвердить, что они способны выполнять базовые и промежуточные задачи системного администрирования в системах Linux.
Задачи администрирования Linux включают в себя устранение неполадок и обслуживание из первых рук, а также разумное принятие решений, чтобы знать, когда пришло время поднимать вопросы перед вышестоящими командами поддержки.
Серия будет называться «Подготовка к LFCS» (Сертифицированному системному администратору Linux Foundation), части 1–33, и охватывать следующие темы:
- Part 1
Как использовать команду «Sed» для управления файлами в Linux
- Part 2
Как установить и использовать Vi/Vim в Linux
- Part 3
-
Как сжать файлы и каталоги и найти файлы в Linux
- Part 4
Разбиение устройств хранения на разделы, форматирование файловых систем и настройка раздела подкачки
- Part 5
Монтирование/отключение локальных и сетевых (Samba и NFS) файловых систем в Linux
- Part 6
Сборка разделов в виде RAID-устройств – создание резервных копий системы и управление ими
- Part 7
Управление процессами и службами запуска системы (SysVinit, Systemd и Upstart).
- Part 8
Как управлять пользователями и группами, разрешениями для файлов и доступом к Sudo
- Part 9
Управление пакетами Linux с помощью Yum, RPM, Apt, Dpkg, Aptitude и Zypper
- Part 10
Изучение основных сценариев оболочки и устранение неполадок файловой системы
- Part 11
Как управлять LVM и создавать его с помощью команд vgcreate, lvcreate и lvextend
- Part 12
Как изучить Linux с установленной справочной документацией и инструментами
- Part 13
-
Как настроить и устранить неполадки загрузчика Grand Unified Bootloader (GRUB)
- Part 14
Мониторинг использования ресурсов процессов Linux и установка ограничений процессов для каждого пользователя
- Part 15
Как установить или изменить параметры времени выполнения ядра в системах Linux
- Part 16
Реализация обязательного контроля доступа с помощью SELinux или AppArmor в Linux
- Part 17
Как настроить списки контроля доступа (ACL) и дисковые квоты для пользователей и групп
- Part 18
Установка сетевых служб и настройка автоматического запуска при загрузке
- Part 19
Полное руководство по настройке FTP-сервера для анонимного входа в систему
- Part 20
Настройте базовый DNS-сервер рекурсивного кэширования и настройте зоны для домена
- Part 21
Как установить, защитить и настроить производительность сервера базы данных MariaDB
- Part 22
Как установить и настроить NFS-сервер для общего доступа к файловой системе
- Part 23
-
Как настроить Apache с виртуальным хостингом на основе имени с сертификатом SSL
- Part 24
Как настроить брандмауэр Iptables для обеспечения удаленного доступа к службам в Linux
- Part 25
Как превратить Linux в маршрутизатор для статической и динамической обработки трафика
- Part 26
Как настроить зашифрованные файловые системы и обмен данными с помощью инструмента Cryptsetup
- Part 27
Как отслеживать использование системы, сбои в работе и устранять неполадки серверов Linux
- Part 28
Как настроить сетевой репозиторий для установки или обновления пакетов
- Part 29
Как проверить производительность, безопасность сети и устранить неполадки
- Part 30
Как устанавливать виртуальные машины и контейнеры и управлять ими
- Part 31
Изучите основы Git для эффективного управления проектами
- Part 32
Руководство для начинающих по настройке адресов IPv4 и IPv6 в Linux
- Part 33
Руководство для начинающих по созданию сетевых соединений и мостов в Ubuntu
Этот пост является Частью 2 серии из 33 руководств. В этой части мы рассмотрим основные операции редактирования файлов и режимы редактирования в редакторе Vi/Vim, необходимые для сдачи сертификационного экзамена LFCS.
Выполнение основных операций редактирования файлов в редакторе Vi
Vi был первым полноэкранным текстовым редактором, написанным для Unix. Несмотря на то, что он был задуман как небольшой и простой, он может оказаться немного сложным для людей, привыкших исключительно к текстовым редакторам с графическим интерфейсом, таким как NotePad++ или gedit, и это лишь некоторые из них. Примеры.
Чтобы использовать Vi, мы должны сначала понять 3 режимы, в которых работает эта мощная программа, чтобы позже начать изучать ее мощные процедуры редактирования текста.
Обратите внимание, что большинство современных дистрибутивов Linux поставляются с вариантом vi, известным как vim («Vi улучшенный»), который поддерживает больше функций, чем в оригинальном vi есть. По этой причине в этом руководстве мы будем использовать vi и vim как взаимозаменяемые.
Если в вашем дистрибутиве не установлен Vim, вы можете установить его следующим образом.
sudo apt install vim [On Debian, Ubuntu and Mint]
sudo yum install vim [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/vim [On Gentoo Linux]
sudo apk add vim [On Alpine Linux]
sudo pacman -S vim [On Arch Linux]
sudo zypper install vim [On OpenSUSE]
Почему я должен изучать Vi?
Есть как минимум две веские причины изучить редактор vi.
- vi всегда доступен (независимо от того, какой дистрибутив вы используете), поскольку он требуется POSIX.
- vi не потребляет значительное количество системных ресурсов и позволяет нам выполнять любые мыслимые задачи, не отрывая пальцев от клавиатуры.
Кроме того, vi имеет очень обширное встроенное руководство, которое можно запустить с помощью команды :help
сразу после запуска программы. Это встроенное руководство содержит больше информации, чем страница руководства vi/m.
Запуск редактора Vi
Чтобы запустить vi, введите vi в командной строке.
vi
Затем нажмите i
, чтобы войти в режим Вставка, и вы можете начать печатать.
Другой способ запустить vi/m.
vi filename
Это откроет новый буфер (подробнее о буферах позже) с именем filename, который вы позже сможете сохранить на диск.
Понимание режимов Vi
Редактор Vi имеет несколько режимов, каждый из которых служит определенной цели и позволяет пользователям выполнять определенные действия.
Вот основные режимы, о которых вам следует знать:
Режим командной строки Vi
В командном режиме vi позволяет пользователю перемещаться по файлу и вводить команды vi, которые представляют собой краткие комбинации одного или нескольких символов с учетом регистра. еще буквы. Почти все из них могут иметь префикс с цифрой, позволяющей повторить команду указанное количество раз.
Например, yy (или Y) копирует всю текущую строку, тогда как 3yy (или 3Y) копирует всю текущую строку вместе с двумя следующими строками (всего 3 строки).
Мы всегда можем войти в командный режим (независимо от того, над каким режимом мы работаем), нажав клавишу Esc. Тот факт, что в командном режиме клавиши клавиатуры интерпретируются как команды, а не как текст, может сбить с толку новичков.
Режим ViEx
В режиме ex мы можем манипулировать файлами (включая сохранение текущего файла и запуск внешних программ). Чтобы войти в этот режим, мы должны ввести двоеточие (:
) из командного режима, за которым следует имя команды бывшего режима, которую необходимо использовать. После этого vi автоматически возвращается в командный режим.
Режим вставки Vi
В режиме insert (для входа в этот режим обычно используется буква i
) мы просто вводим текст. Большинство нажатий клавиш приводят к появлению текста на экране (одним важным исключением является клавиша Esc, которая выходит из режима вставки и возвращается в командный режим).
Использование команд Vi
В следующей таблице показан список часто используемых команд vi. Команды редактирования файла можно активировать, добавив к команде восклицательный знак (например, :q!
обеспечивает выход без сохранения).
- Key Command
Описание
- h or left arrow
Перейти на один символ влево
- j or down arrow
Идти вниз на одну строку
- k or up arrow
Поднимитесь на одну строку вверх
- l (lowercase L) or right arrow
Перейти на один символ вправо
- H
Перейти в верхнюю часть экрана
- L
Перейти в нижнюю часть экрана
- G
Перейти в конец файла
- w
Переместить одно слово вправо
- b
Переместить одно слово влево
- 0 (zero)
Перейти к началу текущей строки
- ^
Перейти к первому непустому символу в текущей строке
- $
Перейти в конец текущей строки
- Ctrl-B
Вернуться на один экран назад
- Ctrl-F
Пройти вперед на один экран
- i
Вставить в текущую позицию курсора
- I (uppercase i)
Вставить в начало текущей строки
- J (uppercase j)
Соединить текущую строку со следующей (переместить следующую строку)
- a
Добавить после текущей позиции курсора
- o (lowercase O)
Создает пустую строку после текущей строки
- O (uppercase o)
Создает пустую строку перед текущей строкой
- r
Заменить символ в текущей позиции курсора
- R
Перезаписать в текущей позиции курсора
- x
Удалить символ в текущей позиции курсора
- X
Удалить символ непосредственно перед (слева) от текущей позиции курсора.
- dd
Вырезать (для последующей вставки) всю текущую строку
- D
Вырезать от текущей позиции курсора до конца строки (эта команда эквивалентна d$)
- yX
Дайте команду перемещения X, скопируйте (выдерните) необходимое количество символов, слов или строк из текущей позиции курсора.
- yy or Y
Восстановить (скопировать) всю текущую строку
- p
Вставить после (следующей строки) текущей позиции курсора.
- P
Вставить перед (предыдущей строкой) текущую позицию курсора.
- . (period)
Повторите последнюю команду
- u
Отменить последнюю команду
- U
Отмените последнюю команду в последней строке. Это будет работать до тех пор, пока курсор все еще находится на строке.
- n
Найдите следующее совпадение в поиске
- N
Найдите предыдущее совпадение в поиске
- :n
Следующий файл; если для редактирования указано несколько файлов, эта команда загружает следующий файл.
- :e file
Загрузите файл вместо текущего файла.
- :r file
Вставьте содержимое файла после (следующей строки) текущей позиции курсора.
- :q
Выйти без сохранения изменений.
- :w file
Запишите текущий буфер в файл. Чтобы добавить к существующему файлу, используйте :w >> file.
- :wq
Запишите содержимое текущего файла и выйдите. Эквивалент х! и ЗЗ
- :r! command
Выполните команду и вставьте вывод после (следующей строки) текущей позиции курсора.
Варианты Vi
Следующие параметры могут пригодиться при запуске vim (нам нужно добавить их в наш файл ~/.vimrc).
echo set number >> ~/.vimrc
echo syntax on >> ~/.vimrc
echo set tabstop=4 >> ~/.vimrc
echo set autoindent >> ~/.vimrc
- set Number показывает номера строк, когда vi открывает существующий или новый файл.
- синтаксис on включает подсветку синтаксиса (для файлов с несколькими расширениями), чтобы сделать код и файлы конфигурации более читабельными.
- set tabstop=4 устанавливает размер табуляции равным 4 пробелам (значение по умолчанию — 8).
- set autoindent переносит предыдущий отступ на следующую строку.
Поиск и замена текста в Vi
vi имеет возможность перемещать курсор в определенное место (в одной строке или по всему файлу) на основе поиска. Он также может выполнять замену текста с подтверждением пользователя или без него.
Поиск внутри строки
Команда f
выполняет поиск в строке и перемещает курсор к следующему вхождению указанного символа в текущую строку.
Например, команда fh
переместит курсор на следующий экземпляр буквы h
в текущей строке. Обратите внимание, что ни буква f
, ни символ, который вы ищете, не появятся нигде на вашем экране, но символ будет выделен после того, как вы нажмете Enter.
Например, вот что я получаю после нажатия f4
в командном режиме.
Поиск всего файла
Используйте команду /
, а затем слово или фразу, которую нужно найти. Поиск можно повторить, используя предыдущую строку поиска с помощью команды n
или следующую (с помощью команды N
). Это результат ввода /Jane
в командном режиме.
Поиск и замена текста
Vi использует команду (похожую на sed) для выполнения операций замены над диапазоном строк или над всем файлом.
Чтобы изменить слово «old
» на «young
» для всего файла, мы должны ввести следующую команду.
:%s/old/young/g
Примечание: двоеточие в начале команды.
Двоеточие (:
) запускает команду ex, в данном случае s
(для замены), %
— это сокращение означает от первой строки до последней строки (диапазон также может быть указан как n
, m
, что означает «от строки n до строки m > »), old — это шаблон поиска, а young — текст замены, а g
указывает, что замена должна выполняться при каждом появлении. строки поиска в файле.
Альтернативно, в конец команды можно добавить c
, чтобы запросить подтверждение перед выполнением какой-либо замены.
:%s/old/young/gc
Прежде чем заменить исходный текст на новый, vi/m выдаст нам следующее сообщение.
- y: выполнить замену (да)
- n: пропустить это вхождение и перейти к следующему (нет)
- a: выполнить замену в этом и всех последующих экземплярах шаблона.
- q или Esc: прекратить замену.
- l (строчная L): выполнить эту замену и выйти (последним).
- Ctrl-e, Ctrl-y: прокрутите вниз и вверх соответственно, чтобы просмотреть контекст предлагаемой замены.
Редактирование нескольких файлов в Vi
Давайте наберем vim file1 file2 file3 в командной строке.
vim file1 file2 file3
Сначала vim откроет file1. Чтобы переключиться на следующий файл (file2), нам нужно использовать команду :n
. Когда мы захотим вернуться к предыдущему файлу, :N
выполнит эту работу.
Чтобы переключиться с file1 на file3.
a). Команда :buffers
покажет список файлов, редактируемых в данный момент.
:buffers
b). Команда :buffer 3
(без s
в конце) откроет file3 для редактирования.
На изображении выше знак решетки (#
) указывает, что файл в данный момент открыт, но находится в фоновом режиме, а %a
отмечает файл, который в данный момент редактируется.
С другой стороны, пробел после номера файла (3 в приведенном выше примере) указывает на то, что файл еще не открыт.
Временные буферы Vi
Чтобы скопировать пару последовательных строк (например, 4) во временный буфер с именем a (не связанный с файлом) и поместить эти строки в другую часть файла позже в текущем vi раздел, нам нужно…
- Нажмите клавишу
ESC
, чтобы убедиться, что мы находимся в командном режиме vi. - Поместите курсор на первую строку текста, который мы хотим скопировать.
- Введите «a4yy», чтобы скопировать текущую строку вместе с тремя последующими строками в буфер с именем a. Мы можем продолжить редактирование нашего файла – нам не нужно сразу вставлять скопированные строки.
Когда мы доберемся до места скопированных строк, используйте «a перед командами p или P, чтобы вставить скопированные строки в буфер с именем < б>а:
- Введите «ap», чтобы вставить строки, скопированные в буфер, после текущей строки, на которой находится курсор.
- Введите «aP», чтобы вставить строки, скопированные в буфер a, перед текущей строкой.
Если мы хотим, мы можем повторить описанные выше шаги, чтобы вставить содержимое буфера в несколько мест нашего файла. Временный буфер, подобный описанному в этом разделе, удаляется при закрытии текущего окна.
Краткое содержание
Как мы видели, vi/m — мощный и универсальный текстовый редактор для CLI. Не стесняйтесь делиться своими хитростями и комментариями ниже.
Обновление. Если вы хотите расширить свои навыки редактора VI, я бы посоветовал вам прочитать следующие два руководства, которые помогут вам освоить некоторые полезные советы и рекомендации по редактору VI.
Электронная книга LCS уже доступна для покупки. Закажите копию сегодня и начните свой путь к тому, чтобы стать сертифицированным системным администратором Linux!
Product Name | Price | Buy |
---|---|---|
The Linux Foundation’s LFCS Certification Preparation Guide | $19.99 | [Buy Now] |
И последнее, но не менее важное: рассмотрите возможность покупки ваучера на экзамен по следующим ссылкам, чтобы заработать нам небольшую комиссию, которая поможет нам обновлять эту книгу.