В конфигурационных файлах вам часто будут встречаться закомментированные строки, чтобы предотвратить их влияние на соответствующую программу. Это делается с целью показать читателю возможные варианты настройки или примеры правильного синтаксиса оформления настроек. Например, файл .bashrc в Ubuntu 8.04 содержит следующие строки:
# несколько других псевдонимов команды ls
#alias ll='ls -l'
#alias la='ls -A'
#alias l='ls -CF'
Последние три строки — это допустимые определения псевдонимов, только закомментированные. Если удалить начальные символы # из этих трех строк (это называется раскомментировать), псевдонимы будут активированы. Напротив, если добавить символ # в начало строки, можно деактивировать конфигурационную строку, сохранив информацию, хранящуюся в ней.
Активация изменений
Изменения, произведенные в файле .bashrc, не вступят в силу, пока вы не закроете терминал и не запустите новый, потому что оболочка читает содержимое файла .bashrc только в начале сеанса. Однако существует возможность принудить bash повторно прочитать измененный файл .bashrc следующей командой:
[[email protected] ~]$ source .bashrc
После этого изменения должны вступить в силу. Попробуйте, например, один из новых псевдонимов:
[[email protected] ~]$ ll
Заключительное замечание
В этой главе вы приобрели основные навыки правки конфигурационных файлов в текстовом редакторе. По мере чтения страниц справочного руководства (man) для команд обращайте внимание на переменные окружения, поддерживаемые командами. Эта информация может оказаться весьма ценной. В следующих главах вы познакомитесь с еще одним мощным инструментом — функциями командной оболочки, которые также можно включать в файлы запуска bash, чтобы расширить арсенал собственных команд.
12. Плавное введение в vi
Существует старая шутка о человеке, впервые приехавшем в Нью-Йорк и спрашивающем у прохожего дорогу к известному концертному залу:
Приезжий: Простите, как попасть в Карнеги-холл?
Прохожий: Репетировать, репетировать и репетировать!
Освоение командной строки 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, введите следующую команду:
[[email protected] ~]$ 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<Enter> for information
~
~ type :q<Enter> to exit
~ type :help<Enter> or <F1> for on-line help
~ type :help version7<Enter> for version info
~
~ Running in Vi compatible mode
~ type :set nocp<Enter> for Vim defaults
~ type :help cp-default<Enter> for info on this
~
~
~
Так же как при знакомстве с nano, которое произошло в предыдущей главе, сначала научимся выходить из редактора. Для этого введите следующую команду (обратите внимание: двоеточие — это часть команды):
:q
В окне терминала должно появиться приглашение к вводу командной оболочки. Если по какой-то причине выход из vi не получился (скорее всего, потому что вы внесли какие-то изменения и еще не сохранили их), сообщите vi, что вы действительно хотите выйти, добавив в команду восклицательный знак:
:q!
ПРИМЕЧАНИЕ
Если вы «заблудились» в vi, попробуйте дважды нажать ESC, чтобы вернуться на верный путь.
Режимы редактирования
Давайте снова запустим vi, но на этот раз укажем имя несуществующего файла. Именно так можно с помощью vi создать новый файл:
[[email protected] ~]$ rm -f foo.txt
[[email protected] ~]$ vi foo.txt
В случае успеха на экране должно появиться следующее:
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"foo.txt" [New File]
Начальные символы тильды (~) сообщают об отсутствии текста в соответствующих строках. Таким способом vi сообщает нам, что файл пуст. Не вводите пока ничего!
Вторая важная вещь, которую нужно усвоить (после того, как вы научились выходить), — vi является режимным редактором. Сразу после запуска vi оказывается в командном режиме. В этом режиме практически каждая клавиша является командой, поэтому если вы начнете ввод, vi может запутаться сам и запутать вас.