Командная строка Linux. Полное руководство - [46]

Шрифт
Интервал

Приезжий: Простите, как попасть в Карнеги-холл?

Прохожий: Репетировать, репетировать и репетировать!

Освоение командной строки Linux, как становление пианиста-виртуоза, невозможно за один день. Для этого требуются годы практики. В этой главе вы познакомитесь с текстовым редактором vi (произносится как «ви ай»), одной из традиционных программ Unix. Редактор vi известен своим сложным пользовательским интерфейсом, но когда вы увидите, как мастер садится за клавиатуру и начинает «играть», вы станете свидетелем высокого искусства. Вы не станете мастерами, прочитав эту главу, но закончив ее, вы будет знать, как сыграть «Собачий вальс» на vi.

Зачем осваивать vi


Зачем в современном мире редакторов с графическим интерфейсом и простых в использовании редакторов с текстовым интерфейсом, таких как nano, осваивать vi? На то есть три веские причины:

• vi всегда под рукой. Он может прийти на помощь в системах, где отсутствует графический интерфейс, например на удаленном сервере или в локальной системе с нерабочей конфигурацией X. Редактор nano, хотя и чрезвычайно популярен, все же недостаточно универсален. POSIX, стандарт программной совместимости систем Unix, требует наличия в них vi.

• vi легковесный и быстрый. Для многих задач гораздо проще запустить vi, чем найти в меню редактор с графическим интерфейсом и ждать, пока несколько мегабайтов загрузится в память. Кроме того, vi специально проектировался для скоростного ввода с клавиатуры. Как будет показано ниже, опытный пользователь vi никогда не отрывает рук от клавиатуры во время редактирования.

• Мы не хотим, чтобы другие пользователи Linux и Unix считали нас неженками.

Хорошо, пусть будет две веские причины.

Немного предыстории


Первая версия vi была написана Билли Джоем, студентом Калифорнийского университета в городе Беркли, который позднее стал сооснователем Sun Microsystems в 1976 году. Название vi произошло от слова visual (экранный), потому что редактор предназначался для редактирования на экране видеотерминала с возможностью перемещения курсора по всей его поверхности. До экранных редакторов существовали строчные редакторы, позволяющие редактировать текст только по одной строке. Чтобы внести изменения в строчном редакторе, нужно было сначала перейти к требуемой строке а затем описать требуемое изменение: добавление или удаление текста. С появлением видеотерминалов (взамен терминалов с печатающим устройством, таких как телетайпы) стало возможным визуальное редактирование на экране. В действительности vi включает в себя мощный строчный редактор ex, и его можно использовать для ввода команд во время работы в vi.

Большинство дистрибутивов Linux содержат не настоящий редактор vi, а его улучшенную замену с именем vim (сокращенно от Vi IMproved — Vi улучшенный), созданную Брамом Моленаром (Bram Moolenaar). vim существенно совершеннее традиционного редактора vi и в системах Linux обычно используется под символической ссылкой (или псевдонимом) vi. В обсуждении ниже будет предполагаться, что у вас есть программа с именем vi, которая в действительности является редактором vim.

Запуск и завершение vi


Чтобы запустить vi, введите следующую команду:

[me@linuxbox ~]$ vi

На экране должно появиться:

~

~

~ VIM - Vi IMproved

~

~ version 7.1.138

~ by Bram Moolenaar et al.

~ Vim is open source and freely distributable

~

~

~ Sponsor Vim development!

~ type :help sponsor for information

~

~ type :q to exit

~ type :help or for on-line help

~ type :help version7 for version info

~

~ Running in Vi compatible mode

~ type :set nocp for Vim defaults

~ type :help cp-default for info on this

~

~

~

Так же как при знакомстве с nano, которое произошло в предыдущей главе, сначала научимся выходить из редактора. Для этого введите следующую команду (обратите внимание: двоеточие — это часть команды):

:q

В окне терминала должно появиться приглашение к вводу командной оболочки. Если по какой-то причине выход из vi не получился (скорее всего, потому что вы внесли какие-то изменения и еще не сохранили их), сообщите vi, что вы действительно хотите выйти, добавив в команду восклицательный знак:

:q!

ПРИМЕЧАНИЕ

Если вы «заблудились» в vi, попробуйте дважды нажать ESC, чтобы вернуться на верный путь.

Режимы редактирования


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

[me@linuxbox ~]$ rm -f foo.txt

[me@linuxbox ~]$ vi foo.txt

В случае успеха на экране должно появиться следующее:

~

~

~

~

~

~

~

~

~

~

~

~

~

~

~

~

~

~

~

~

~

"foo.txt" [New File]

Начальные символы тильды (~) сообщают об отсутствии текста в соответствующих строках. Таким способом vi сообщает нам, что файл пуст. Не вводите пока ничего!

Вторая важная вещь, которую нужно усвоить (после того, как вы научились выходить), — vi является режимным редактором. Сразу после запуска vi оказывается в командном режиме. В этом режиме практически каждая клавиша является командой, поэтому если вы начнете ввод, vi может запутаться сам и запутать вас.