less(レス)は、
Unix系オペレーティングシステムで
テキストファイルの内容を閲覧するために使用される、強力な
ページャプログラムです。`more`コマンドと同様の機能を提供しますが、`less`はより高度な機能を備えており、特に
テキストファイルのスクロールにおいて前方向だけでなく後方向にも自由に移動できる点が特徴です。
less の基本機能と使用法
lessの基本的な構文は次のとおりです。
bash
less [options]
``には閲覧したいテキストファイルのパスを指定します。
`less`は、様々なオプションを通じてその挙動をカスタマイズできます。例えば、画面に表示する行数を調整したり、特定の表示形式を設定したりできます。これらのオプションはシステムによって異なる場合がありますので、`man less`コマンドでマニュアルを参照するのが良いでしょう。
閲覧中は、`more`や`vi`などのエディタに似たキーバインドで操作できます。例えば、スペースキーで次のページに進んだり、`b`キーで前のページに戻ったりできます。また、`/`キーを押して検索したいパターンを入力することで、テキスト内を検索できます。この検索機能はインクリメンタルサーチに対応しており、入力と同時に検索結果が表示されます。
lessはデフォルトでは、ファイルの内容を標準出力に出力します。しかし、出力先が端末ではなく、パイプなどを通して他のコマンドに渡された場合には、`cat`コマンドのように振る舞います。
less の歴史と開発
lessは1983年にMark Nudelmanによって開発されました。現在ではGNUプロジェクトの一部として管理されています。ほとんどのオープンソースのUnix系システムには標準的なユーティリティとして含まれており、広く利用されています。
日本語への対応と jless
オリジナルの`less`は、初期のバージョンではISO-2022-JP(JISコード)、EUC-JP、Shift_JISなどの日本語文字コードを正しく表示することができませんでした。しかし、バージョン346以降ではUTF-8の表示に対応しています。
この問題に対処するために、Kazushi (Jam) Marukawa氏らがオリジナルのソースコードにパッチを当て、日本語文字コードの自動認識と変換に対応した`jless`を開発しました。`jless`は、複数の日本語文字コードの自動認識や変換に対応しており、日本国内で広く利用されていました。FreeBSD ports collectionにも含まれており、Microsoft Windowsにも移植されています。
jless の問題点と現状
しかし、`jless`にはいくつかの問題点があります。
Marukawa氏が`jless`のパッチを配布していた公式サイトは、2010年現在アクセスできない状態であり、事実上開発は停止しています。
オリジナルの`less`は頻繁にアップデートされていますが、`jless`は最も新しいものでもバージョン382に対するパッチとして提供されているに過ぎません。
`jless`はUnicodeに対応していないため、UTF-8環境下では日本語を正しく表示できないことがあります。特に最近のLinuxディストリビューションでは、インストール時に日本語を選択するとUTF-8が標準エンコーディングとして採用されることが多いため、`jless`では表示に問題が生じることがあります。
これらの問題から、UTF-8をはじめとする多くのエンコーディングに対応した`lv`をページャとして利用する動きも出てきています。しかし、`lv`は`less`のすべての機能をカバーしているわけではないため、環境や状況に応じて使い分けが推奨されます。
参考資料
The LESS Home Page (英語)
* Manpage of LESS (日本語)
この記事は、英語版Wikipediaの「less」の項目を基に翻訳および加筆しています。