Cуперкомпьютеры: администрирование - страница 49

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


.

Редактирование файлов – отдельная важная тема. Существует большое число редакторов, работающих как в текстовом, так и в графическом режимах. Нас как администраторов в первую очередь будет интересовать редактор, который может работать в самых сложных условиях – без графического интерфейса, возможно, по сети, когда функциональные клавиши недоступны или работают неверно. Таких редакторов существует несколько, например >gnu nano. Но, на наш взгляд, самый гарантированно работающий вариант, который, ко всему прочему установлен на 99% Linux-систем, – это редактор >vi.

Его интерфейс на первый взгляд совсем не дружественен и не логичен, на деле же большинство его команд продуманы и удобны. Главное его преимущество – возможность работы практически в любых условиях и быстрое выполнение массовых операций (поиск, замена и т. п.). Он имеет два режима работы – командный и режим вставки. Изначально файл открывается в командном режиме. Для перемещения по тексту используйте клавиши курсора, если же они не работают, – клавиши '>h,j,k,l' (посмотрите на клавиатуру и поймёте, почему такой странный набор). Клавиши >w и >b перемещают вперёд и назад на слово. И конечно, «главная» команда – выход с сохранением: '>:wq' или просто '>ZZ' (заглавными буквами). Выйти без сохранения можно командой '>:q!'.

Полезные команды:


Таблица 11: некоторые клавиатурные команды vi


Режим вставки позволяет вписывать текст в нужную позицию. Выйти из него можно клавишей >. Перед любой командой можно набрать число, тогда команда будет повторена это число раз. Например, '>10dd' удалит 10 строк (и поместит их вместе в буфер, потом можно будет их вставить в другом месте командой '>p'). Повтор команды вставки или замены повторит и ввод, например ввод '>cwNEW_WORD' приведёт в замене слова после курсора на '>NEW_WORD', а если потом переместить курсор на начало другого слова и нажать '.', то оно также будет заменено на '>NEW_WORD'.

Из расширенных команд особенно удобна команда массовой замены '>s'. Её синтаксис взят из команды >sed. Перед командой можно указать через запятую диапазон строк, на которые она будет действовать, при этом '.' обозначает текущую строку, >$ – последнюю, а знак >+ указывает на то, что номер дан относительно текущей строки.

Например, заменить адрес old-cluster на new-supercomputer в 10 строках после текущей включительно можно, набрав: