Обзор
`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` (или соответствующего пути).