Опции:
-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
Режим вставки позволяет вписывать текст в нужную позицию. Выйти из него можно клавишей . Перед любой командой можно набрать число, тогда команда будет повторена это число раз. Например, ' 10dd
' удалит 10 строк (и поместит их вместе в буфер, потом можно будет их вставить в другом месте командой ' p
'). Повтор команды вставки или замены повторит и ввод, например ввод ' cwNEW_WORD
' приведёт в замене слова после курсора на ' NEW_WORD
', а если потом переместить курсор на начало другого слова и нажать '.', то оно также будет заменено на ' NEW_WORD
'.
Из расширенных команд особенно удобна команда массовой замены ' s
'. Её синтаксис взят из команды sed
. Перед командой можно указать через запятую диапазон строк, на которые она будет действовать, при этом '.' обозначает текущую строку, $
– последнюю, а знак +
указывает на то, что номер дан относительно текущей строки.
Читать дальше