Командная строка 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
~
~ type :q
~ type :help
~ type :help version7
~
~ Running in Vi compatible mode
~ type :set nocp
~ type :help cp-default
~
~
~
Так же как при знакомстве с 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 может запутаться сам и запутать вас.