Обзор
`lesspipe` — это утилита, которая помогает `less` обрабатывать различные типы файлов, помимо обычных текстовых файлов. Когда `less` открывает файл, он выполняет скрипт `lesspipe` для преобразования содержимого файла в стандартный вывод, который затем получает и отображает `less`.
Основные функции
- Просмотр содержимого сжатых файлов (gzip, bzip2, xz и т. д.) напрямую
- Просмотр списка файлов и содержимого внутри архивных файлов (tar, zip, rar и т. д.)
- Извлечение и просмотр текста из нетекстовых файлов, таких как PDF и изображения (требуются соответствующие инструменты)
- Сохранение мощных функций поиска и навигации
less
Установка и настройка
`lesspipe` поставляется как часть пакета `less` или как отдельный пакет `lesspipe` в большинстве дистрибутивов Linux. Ключевым моментом является настройка переменной окружения `LESSOPEN`, чтобы `less` использовал `lesspipe`.
Проверка установки
В большинстве систем он установлен по умолчанию, но вы можете проверить его наличие следующей командой.
which lesspipe
Установка пакета (при необходимости)
Если lesspipe не установлен, вы можете установить его следующей командой.
Debian/Ubuntu
sudo apt update && sudo apt install less
Fedora/RHEL
sudo dnf install less
Настройка переменной окружения LESSOPEN
Чтобы активировать lesspipe, вам необходимо добавить переменную окружения LESSOPEN в ваш файл конфигурации оболочки (например, ~/.bashrc, ~/.zshrc). Точный путь к lesspipe может отличаться в зависимости от системы, поэтому проверьте его с помощью which lesspipe.
Пример настройки LESSOPEN
export LESSOPEN="|/usr/bin/lesspipe %s"
export LESS_ADVANCED_PREPROCESSOR=1
source ~/.bashrc
Типичная настройка выглядит следующим образом. Примените изменения немедленно с помощью команды `source`.
Описание переменной LESSOPEN
|: Означает, что выводlesspipeбудет передан вlessчерез конвейер.%s: Это заполнитель, представляющий путь к файлу, которыйlessпытается открыть.LESS_ADVANCED_PREPROCESSOR=1: Используется для включения расширенных функций предварительной обработки в некоторых версияхlesspipe.
Примеры использования
Если `lesspipe` настроен правильно, вы можете использовать команду `less` как обычно, и она автоматически будет обрабатывать различные типы файлов.
Просмотр содержимого сжатого файла gzip
less my_log.gz
Просматривайте содержимое файла `.gz` напрямую с помощью `less` без его распаковки.
Просмотр списка файлов внутри архива tar
less my_archive.tar.gz
Просматривайте список файлов внутри файла `.tar.gz` с помощью `less` без его распаковки.
Просмотр списка файлов внутри zip-архива
less my_documents.zip
Просматривайте список файлов внутри файла `.zip` с помощью `less` без его распаковки.
Просмотр текстового содержимого PDF-файла
less document.pdf
Если установлены такие инструменты, как `pdftotext`, вы можете просматривать текстовое содержимое PDF-файла с помощью `less`.
Просмотр строк в бинарном файле
less /bin/ls
Для бинарных файлов вы можете просматривать извлеченные строки с помощью команды `strings` через `less`.
Советы и замечания
Советы и соображения для эффективного использования `lesspipe`.
Пользовательский скрипт lesspipe
Базовый скрипт lesspipe является скриптом оболочки, поэтому вы можете изменить его по мере необходимости или создать свой собственный скрипт lesspipe и указать его в переменной LESSOPEN. Например, вы можете добавить дополнительную логику обработки для определенных типов файлов.
- Копирование и изменение существующего скрипта
lesspipe - Добавление логики обработки новых типов файлов
- Указание пути к пользовательскому скрипту в переменной
LESSOPEN
Соображения по производительности
При открытии очень больших сжатых файлов или архивов с помощью lesspipe извлечение и преобразование содержимого файла может занять некоторое время. В этом случае может возникнуть небольшая задержка перед запуском less.
Меры предосторожности
lesspipe выполняет внешние команды для обработки файлов. Поэтому, если вы используете ненадежный скрипт lesspipe или если вредоносный файл обрабатывается через lesspipe, могут возникнуть проблемы с безопасностью. Всегда используйте lesspipe из надежных источников и будьте осторожны при настройке переменной LESSOPEN.
Проверка поддерживаемых типов файлов
Просмотрев содержимое скрипта lesspipe, установленного в вашей системе, вы можете узнать, какие типы файлов он поддерживает и какие внешние инструменты использует. Обычно вы можете просмотреть содержимое скрипта с помощью команды cat /usr/bin/lesspipe (или соответствующего пути).