概要
`lesspipe`は、`less`が通常のテキストファイル以外のさまざまなファイル形式を処理できるように支援するユーティリティです。`less`がファイルを開く際に`lesspipe`スクリプトを実行し、ファイルの内容を標準出力に変換し、その出力を`less`が受け取って表示します。
主な機能
- 圧縮ファイル(gzip、bzip2、xzなど)の内容を直接表示
- アーカイブファイル(tar、zip、rarなど)の内部リストと内容を表示
- PDF、画像などの非テキストファイルのテキストを抽出し表示(関連ツールが必要)
lessの強力な検索およびナビゲーション機能を維持
インストールと設定
`lesspipe`は、ほとんどのLinuxディストリビューションで`less`パッケージの一部として提供されるか、個別の`lesspipe`パッケージとして提供されます。重要なのは、`LESSOPEN`環境変数を設定して、`less`が`lesspipe`を使用するようにすることです。
インストール確認
ほとんどのシステムにはデフォルトでインストールされていますが、次のコマンドで存在を確認できます。
which lesspipe
パッケージインストール(必要な場合)
もしlesspipeがインストールされていない場合は、次のコマンドでインストールできます。
Debian/Ubuntu
sudo apt update && sudo apt install less
Fedora/RHEL
sudo dnf install less
LESSOPEN環境変数の設定
lesspipeを有効にするには、シェル設定ファイル(例: ~/.bashrc、~/.zshrc)にLESSOPEN環境変数を追加する必要があります。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(または該当パス)コマンドでスクリプトの内容を表示できます。