Поиск по сайту:

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, известным как vimVi улучшенный»), который поддерживает больше функций, чем в оригинальном 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.

  1. vi всегда доступен (независимо от того, какой дистрибутив вы используете), поскольку он требуется POSIX.
  2. 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, чтобы вставить скопированные строки в буфер с именем < б>а:

    1. Введите «ap», чтобы вставить строки, скопированные в буфер, после текущей строки, на которой находится курсор.
    2. Введите «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]

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