Следует отметить, что многие действия из перечисленных выше и связанных с манипуляциями с каталогами и файлами можно выполнять с помощью специальной программы – файлового менеджера Midnight Commander. Он не требует графической оболочки, вызывается в терминальном окне командой:
С помощью этой программы можно перемещаться по дереву каталогов, просматривать содержимое каталогов и файлов, создавать каталоги (но не файлы), удалять, копировать, перемещать каталоги и файлы, вести поиск файлов. Для многих пользователей текстовый редактор Midnight Commander является очень хорошим выбором. Его можно вызвать отдельно командой mcedit
.
Редактирование файлов – отдельная важная тема. Существует большое число редакторов, работающих как в текстовом, так и в графическом режимах. Нас как администраторов в первую очередь будет интересовать редактор, который может работать в самых сложных условиях – без графического интерфейса, возможно, по сети, когда функциональные клавиши недоступны или работают неверно. Таких редакторов существует несколько, например gnu nano
. Но, на наш взгляд, самый гарантированно работающий вариант, который, ко всему прочему установлен на 99% Linux-систем, – это редактор vi
.
Его интерфейс на первый взгляд совсем не дружественен и не логичен, на деле же большинство его команд продуманы и удобны. Главное его преимущество – возможность работы практически в любых условиях и быстрое выполнение массовых операций (поиск, замена и т. п.). Он имеет два режима работы – командный и режим вставки. Изначально файл открывается в командном режиме. Для перемещения по тексту используйте клавиши курсора, если же они не работают, – клавиши 'h,j,k,l
' (посмотрите на клавиатуру и поймёте, почему такой странный набор). Клавиши w
и b
перемещают вперёд и назад на слово. И конечно, «главная» команда – выход с сохранением: ':wq
' или просто 'ZZ
' (заглавными буквами). Выйти без сохранения можно командой ':q!
'.
Полезные команды:
Режим вставки позволяет вписывать текст в нужную позицию. Выйти из него можно клавишей
. Перед любой командой можно набрать число, тогда команда будет повторена это число раз. Например, '10dd
' удалит 10 строк (и поместит их вместе в буфер, потом можно будет их вставить в другом месте командой 'p
'). Повтор команды вставки или замены повторит и ввод, например ввод 'cwNEW_WORD
' приведёт в замене слова после курсора на 'NEW_WORD
', а если потом переместить курсор на начало другого слова и нажать '.', то оно также будет заменено на 'NEW_WORD
'.
Из расширенных команд особенно удобна команда массовой замены 's
'. Её синтаксис взят из команды sed
. Перед командой можно указать через запятую диапазон строк, на которые она будет действовать, при этом '.' обозначает текущую строку, $
– последнюю, а знак +
указывает на то, что номер дан относительно текущей строки.
Например, заменить адрес old-cluster на new-supercomputer в 10 строках после текущей включительно можно, набрав:
Очень непривычно, но очень эффективно. Обязательно почитайте учебник по vi
и попробуйте использовать его для редактирования. Такие возможности, как быстрая замена слов и предложений, исправление переставленных местами букв, моментальная навигация, поддержка работы с файлами огромных объёмов делают его исключительно эффективным для редактирования файлов конфигурации, журналов и многих других.
Пакеты
Во всех Linux-дистрибутивах есть прекрасная (на наш взгляд) система – упаковка ПО в так называемые «пакеты». Самих вариантов систем пакетирования много, наиболее популярны rpm (RedHat, Fedora, CentOS, SuSE и другие), deb (Debian, Ubuntu, Mint и другие), ports (Arch Linux и производные), ebuild (Gentoo и производные), pkg (Slackware и производные). Все они предлагают хранение дерева всех файлов некоторого ПО, например web-сервера, или его части, например модуля шифрования, в одном файле (обычно это сжатый архив). Кроме файлов в пакете хранятся метаданные, такие как название пакета, описание и другие данные. Набор метаданных в разных пакетных системах разный, поэтому и возможности тоже разные.
Самые важные особенности метаданных пакетов на наш взгляд:
• зависимости – указание других пакетов, установка которых необходима или желательна. Вместо пакетов может указываться функция (например smtp-сервер), если из метаданных её можно получить;
• хэш-суммы файлов;
• указание, какие файлы являются конфигурационными.
С помощью зависимостей установка ПО становится намного проще, можно быстро выяснить, какие дополнительные пакеты необходимо установить. Часто вычисление и установку всех дополнительных пакетов берут на себя «пакетные менеджеры», такие как yum (RedHat), apt или aptitude (Debian), pacman (Arch Linux) и т. п.