– все набранное на клавиатуре будет записано в файл
ls.txt
. Оборвать ввод можно сочетанием клавиш
Ctrl-D
.
Команда
cat
выдаёт все содержимое на экран. Если файл большой, то на экране можно будет увидеть только последние строки.
Для просмотра текстовых файлов порциями можно напрямую использовать команды:
•
more file.txt
•
less file.txt
Команда
less
содержит большой набор внутренних команд для перемещения
по файлу, поиска контекста и даже редактирования:
Таблица 10: некоторые клавиатурные команды less
tail [опции] файл —
просмотр конца файла. По умолчанию выдаётся 10 последних строк. С помощью опций можно начать просмотр с любой позиции.
Опции:
– n number
– сколько выдавать строк;
– r number
– отображение в обратном порядке;
– f
– непрерывная выдача файла по мере его заполнения.
Прерывание интерактивной выдачи комбинацией
Ctrl-С
.
grep [опции] строка [файл][файл]…
– поиск контекста «строка» в указанных файлах.
Опции:
– i
– поиск без учёта регистра;
– n
– отображать номера строк, содержащих контекст;
– v
– отображать строки, не содержащие контекста.
find [опции] каталог выражение
– рекурсивный поиск файлов в указанном каталоге по различным атрибутам, таким как имя, размер, время модификации, права доступа.
Выражения:
– name filename
– поиск файла с именем
filename
. Возможно использование шаблонов, но тогда надо брать их в кавычки '
test*
' либо экранировать символы шаблона
test\*
;
– size [+|-]number
– поиск файлов с заданным размером, превышающим его (+) или меньшим (-). Размер указывается в блоках по 512 байт;
– atime number
– поиск файлов, к которым происходил доступ number суток назад;
– mtime number
– поиск файлов, которые были модифицированы number суток назад;
– exec command \{\} \;
– выполнить команду
command
над списком файлов, найденных командой
find
. Здесь выражение «
{}
» будет заменяться именем найденного файла, а ';' означает конец команды. Так как эти символы обрабатываются оболочкой, то их надо экранировать, например:
– рекурсивно удалить все core-файлы, начиная с текущего каталога.
Следует отметить, что многие действия из перечисленных выше и связанных с манипуляциями с каталогами и файлами можно выполнять с помощью специальной программы – файлового менеджера Midnight Commander. Он не требует графической оболочки, вызывается в терминальном окне командой:
С помощью этой программы можно перемещаться по дереву каталогов, просматривать содержимое каталогов и файлов, создавать каталоги (но не файлы), удалять, копировать, перемещать каталоги и файлы, вести поиск файлов. Для многих пользователей
текстовый редактор Midnight Commander является очень хорошим выбором. Его можно вызвать отдельно командой
mcedit
.
Редактирование файлов – отдельная важная тема. Существует большое число редакторов, работающих как в текстовом, так и в графическом режимах. Нас как администраторов в первую очередь будет интересовать редактор, который может работать в самых сложных условиях – без графического интерфейса, возможно, по сети, когда функциональные клавиши недоступны или работают неверно. Таких редакторов существует несколько, например
gnu nano
. Но, на наш взгляд, самый гарантированно работающий вариант, который, ко всему прочему установлен на 99% Linux-систем, – это редактор
vi
.
Его интерфейс на первый взгляд совсем не дружественен и не логичен, на деле же большинство его команд продуманы и удобны. Главное его преимущество – возможность работы практически в любых условиях и быстрое выполнение массовых операций (поиск, замена и т. п.). Он имеет два режима работы – командный и режим вставки. Изначально файл открывается в командном режиме. Для перемещения по тексту используйте клавиши курсора, если же они не работают, – клавиши '
h,j,k,l
' (посмотрите на клавиатуру и поймёте, почему такой странный набор). Клавиши
w
и
b
перемещают вперёд и назад на слово. И конечно, «главная» команда – выход с сохранением: '
:wq
' или просто '
ZZ
' (заглавными буквами). Выйти без сохранения можно командой '
:q!
'.
Полезные команды:
Таблица 11: некоторые клавиатурные команды vi
Режим вставки позволяет вписывать текст в нужную позицию. Выйти из него можно клавишей
<ESC>
. Перед любой командой можно набрать число, тогда команда будет повторена это число раз. Например, '
10dd
' удалит 10 строк (и поместит их вместе в буфер, потом можно будет их вставить в другом месте командой '
p
'). Повтор команды вставки или замены повторит и ввод, например ввод '
cwNEW_WORD<ESC>
' приведёт в замене слова после курсора на '
NEW_WORD
', а если потом переместить курсор на начало другого слова и нажать '.', то оно также будет заменено на '
NEW_WORD
'.
Из расширенных команд особенно удобна команда массовой замены '
s
'. Её синтаксис взят из команды
sed
. Перед командой можно указать через запятую диапазон строк, на которые она будет действовать, при этом '.' обозначает текущую строку,
$
– последнюю, а знак
+
указывает на то, что номер дан относительно текущей строки.
Например, заменить адрес old-cluster на new-supercomputer в 10 строках после текущей включительно можно, набрав:
< image l:href="#"/>
Очень непривычно, но очень эффективно. Обязательно почитайте учебник по
vi
и попробуйте использовать его для редактирования. Такие возможности, как быстрая замена слов и предложений, исправление переставленных местами букв, моментальная навигация, поддержка работы с файлами огромных объёмов делают его исключительно эффективным для редактирования файлов конфигурации, журналов и многих других.