Байланысты: Cамоучитель системного администратора книга
Глава 2
Текстовые редакторы: vi и другие
Из первых версий UNIX в современные системы перекочевал текстовый редак-
тор vi. То, что ему больше тридцати лет, — видно сразу. Более неудобного редак-
тора нам не встречалось! Согласны, что тогда это был прорыв, но сегодня редактор
смотрится уж очень архаично.
Некоторые гурманы (мы бы их назвали мазохистами) говорят, что к нему нужно
привыкнуть. Может, и так, но сначала следует изучить длинную инструкцию (man)
и выучить наизусть команды редактора. Как такового интерфейса пользователя
практически нет, можно сказать, что вообще нет — то, что есть, сложно назвать
интерфейсом. Однако в этой книге мы рассмотрим vi, хотя бы вкратце. Тому есть
две причины. Первая — это критики. Мол, как это в книге, посвященной системно-
му администрированию, не будет «классики». Вторая — некоторые системы, где по
непонятным нам причинам до сих пор используется по умолчанию vi, а другие
редакторы недоступны. Да, можно изменить переменную окружения
EDITOR
, но нет
никакой гарантии, что в системе будет установлен какой-нибудь другой редактор.
Итак, приступим к рассмотрению редактора vi. Он может работать в трех режимах:
основной (визуальный) режим — в нем и осуществляется редактирование текста;
командный режим — в нем выполняется ввод специальных команд для работы
с текстом (если сравнивать vi с нормальным редактором, то этот режим ассо-
циируется с меню редактора, где есть команды вроде «сохранить», «выйти» и т. д.);
режим просмотра — предназначен только для просмотра файла (если надумаете
использовать этот режим, вспомните про команду
less
).
После запуска редактора вы можете переключать режимы (как — будет сказано
позже), но выбрать режим можно и при запуске редактора:
vi
файл
vi -e
файл
vi -R
файл
Первая команда запускает vi и загружает файл. Вторая команда запускает vi в ко-
мандном режиме и загружает файл. Третья команда — это режим просмотра файла.
Если указанный файл не существует, то он будет создан. По умолчанию активиру-
ется именно командный режим, поэтому в ключе
-e
нет смысла.
После запуска vi главное — знать, как из него выйти. Ведь в нем не будет знакомой
строчки меню, редактор также не станет реагировать на привычные комбинации
клавиш вроде + или +. На рис. 2.11 представлен редактор vi,
в который загружен файл
/etc/passwd
.
В табл. 2.5 приведены основные команды редактора vi. Команды, которые начина-
ются с двоеточия, будут отображены в нижней строке окна редактора, остальные
просто выполняются, но не отображаются. Как уже было отмечено, у редактора vi
есть два основных режима (режим просмотра не считается): режим команд и режим
редактирования (визуальный). Переключение в режим команд осуществляется на-
жатием клавиши . Нажатие клавиш , и др. переключает редактор
60
Глава 2
в режим вставки, когда набираемые символы трактуются именно как символы, а не
как команды. Для переключения обратно в командный режим служит клавиша
. В некоторых случаях (например, когда вы пытаетесь передвинуть курсор
левее первого символа в строке) переход в командный режим осуществляется
автоматически.
Теперь немного практики — введите команду:
$ vi file.txt
Далее нажмите клавишу , чтобы переключиться в режим вставки. Наберите лю-
бой текст, но постарайтесь не ошибаться, поскольку исправление ошибок в vi —
дело, требующее отдельного разговора.
Затем нажмите клавишу и введите
:wq
. После выхода из редактора введите
команду:
cat file.txt
Так вы убедитесь, что файл создан и в нем сохранен введенный вами текст.
Продолжим изучать редактор. Если ввести не команду
i
, а команду
a
, то вы тоже
перейдете в режим вставки, но с одним отличием — введенный текст будет встав-
ляться не перед символом, в котором находится курсор, а после него. Также в ре-
жим вставки можно перейти командами
o
и
O
. В первом случае будет добавлена
пустая строка после текущей строки, а во втором — перед текущей строкой, а весь
дальнейший ввод будет восприниматься именно как ввод текста, а не команд.
Чтобы удалить символ, нужно перейти в режим команд и над удаляемым символом
нажать . Да, клавиши и тут не работают. Точнее,
работает, но для удаления последней непрерывно введенной последо-
вательности символов. Например, у нас есть текст:
vi - текстовый редактор
. Вы
перейдете в режим вставки и измените текст так:
vi - неудобный текстовый редак-
тор
. Нажатие удалит слово
неудобный
, но не сможет удалить дефис и
другие символы.
Чтобы удалить строку, в которой находится курсор, нужно выполнить команду
dd
.
Помните, что vi считает строкой не то, что вы видите на экране, а последователь-
ность символов до первого символа новой строки (
\n
). Если строка длиннее
80 символов, то она переносится на две экранных строки и визуально выглядит как
две строки, а не как одна.
Чтобы перейти в конец строки (клавиши и тоже не работают, как
вы успели заметить, если уже запускали vi), нужно ввести команду
$
. При навига-
ции курсор перемещается не по экранным линиям, а как раз по строкам текста.
Для отмены последней операции служит команда
u
. Вот только истории изменений
нет, да и по команде
u
отменяется вся предыдущая команда целиком. Например, вы
создали файл, перешли в режим вставки (команда
i
) и набрали весь текст Большой
медицинской энциклопедии. Если вы введете команду
u
, то она отменит всю пре-
дыдущую команду, т. е. удалит весь введенный вами текст. Так что будьте осто-
рожны.
Выбор аппаратных и программных средств
61
Азы vi мы вам преподали. Но не думаем, что вы будете им пользоваться. Если есть
желание продолжить знакомство, введите команду:
man vi
А мы тем временем познакомимся с другими текстовыми редакторами. Самый
удобный из известных нам текстовых редакторов — редактор nano (раньше он на-
зывался pico и входил в состав почтового клиента pine).
Внизу (под текстом) есть подсказка по комбинациям клавиш для управления редак-
тором. Символ
^
означает . То есть, для выхода из редактора нужно нажать
комбинацию клавиш +, а для сохранения текста — +.
В некоторых системах (например, в FreeBSD) вместо nano используется редактор
ee. Он похож на nano, однако подсказки выводятся до текста (вверху экрана), а не
после него, но идея та же. Также довольно удобен редактор joe.
В пакет mc (файловый менеджер) входит довольно удобный редактор mcedit, кото-
рый запускается при нажатии в mc клавиши . Но вы можете запустить редак-
тор отдельно:
mcedit <
имя файла
>
Кстати, редакторы joe, nano и ee запускаются аналогично:
joe <
имя файла
>
nano <
имя файла
>
ee <
имя файла
>
Выполнение команд с правами другого пользователя
Команда
sudo
позволяет запустить любую команду с привилегиями root. Использо-
вать ее нужно так:
sudo <команда_которую_нужно_выполнить_с_правами_root>
Например, вам необходимо изменить файл
/etc/apt/sources.list
. Для этого следует от-
дать команду:
sudo gedit /etc/apt/sources.list
П
ОЯСНЕНИЕ
Программа gedit — это тоже текстовый редактор, мы ему передаем один параметр —
имя файла, который нужно открыть.
Если ввести эту же команду, но без
sudo
(просто
gedit /etc/apt/sources.list
), тек-
стовый редактор тоже запустится и откроет файл, но сохранить изменения вы не
сможете, поскольку у вас не хватит полномочий.
Программа
sudo
перед выполнением указанной вами команды запросит у вас па-
роль:
sudo gedit /etc/apt/sources.list
Password: