Linux の基本的なコマンドライン ツール: ls وcat وgrep Linuxは基礎的なツールですが、現代の使用法に対応するようには設計されていませんでした。そのため、高速なパフォーマンス、より整理された出力、そしてターミナルでの作業をより生産的かつスムーズにする追加機能を提供するオープンソースの代替ツールが登場しました。これらのツールは、従来のコマンドを置き換えるだけでなく、システムとのやり取りを改善し、多くの時間を節約します。ここでは、プロのLinuxユーザーに好まれ、現代のディストリビューションに必須と見なされている、優れた代替ツールをいくつかご紹介します。
Linuxの標準ツールは退屈です。気づいたことがありますか?基本的な機能なのに、退屈です。出力を目を引く色で鮮やかにしたり、スピードアップしたりしたいと思いませんか?これらのターミナルツールは、それだけでなく、それ以上の機能も提供します。
コウモリ:猫に似ているが、より優れている
catコマンドは私が最初に覚えたコマンドで、今でも最もよく使うコマンドの一つです。しかし、プレーンな書式なしのテキストを表示するため、時代遅れになりつつあります。設定ファイル、スクリプト、JSON、YAMLといった複雑なファイルは、読みにくいことがよくあります。
BatはCatに似ていますが、より優れています。複雑なファイルを魅力的な色(構文ハイライトなど)で強調表示することで、可読性の問題に対処しています。また、セクションと境界線のハイライト表示により、ファイルの読みやすさが大幅に向上します。
Batには、Gitとの統合により変更行を識別できるなど、さらに魅力的な追加機能がいくつかあります。また、fzfやfindといった他のツールと連携して、カラープレビューウィンドウを表示することもできます。
現在、世界中で利用可能であり、ほぼすべてのソフトウェア配布リポジトリで見つかります。
ripgrep: ステロイドのgrep
これから紹介する他のツールと同様に、Ripgrep は標準版の grep からアップグレードされたものです。主な利点は速度です。旧バージョンの grep とは異なり、複数の検索を並列に実行します。Ripgrep は、すべての CPU コアに処理を分散させることで、最新の CPU のパワーを最大限に活用します。
Ripgrep は非常に高速なだけでなく、スマートな大文字と小文字の検出、特定のファイルとフォルダーの無視、他のアプリケーションとの統合など、多くの便利な機能も備えています。
スマートケース検出は、あらゆる検索機能に備わっているべき、シンプルで洗練された機能です。検索語句に大文字を使用すると、大文字と小文字が区別されるようになります。しかし、この機能は見落とされがちです。
Ripgrepは、gitignoreファイルまたはignoreファイルの指定に応じて、特定のファイルやフォルダを無視します。例えば、以下のファイルを指定すると、ripgrepはfoo.jpgという名前の画像とignore_dirという名前のフォルダをすべて無視します。
ignored_dir/
**/foo.jpg
Ripgrepは他のアプリケーションとの優れた統合性を備えています。Emacs、Vim、Neovim、fzfには、ripgrepと統合できるサードパーティ製プラグインが用意されており、これらのアプリケーションでripgrepの強力な検索機能を直接利用できます。また、別のユーティリティであるfzfは、後ほど説明するように、ripgrepと効率的に連携する高度な機能を提供します。
それだけではありません。RipgrepはZフラグを使って圧縮ファイルも検索できます。テキストファイルと圧縮ファイルが入った大きなフォルダがある場合でも、Ripgrepなら手動で解凍することなくすべてを解析できます。マッチングに関する詳細な情報を提供していないため、少し残念な点もありますが、時間と労力を大幅に節約できます。
Ripgrep はほとんどのソフトウェア配布リポジトリで利用できるので、パッケージをインストールするには配布のマニュアルを確認してください。
差分: ripgrep が実行中 – 現在実行中
Deltaは主にプログラマー向けに開発されており、私のお気に入りのツールの一つです。Ripgrepはファイルを素早く解析し、必要なものを正確に見つけ出すのに非常に優れています。最新の機能と高度な検索構造を誇ります。しかし、出力結果には色とコンテキストが欠けています。検索語句のみに焦点を当てたシンプルなものだと言う人もいるかもしれませんが、私はもっと多くの情報が必要だと感じています。コードを検索するときは、コンテキストと周囲の色を確認するのが好きです。どちらも、良いコードと悪いコードを区別するのに役立ちます。
プログラマー(または初心者)向けに、Delta は ripgrep の出力に構文ハイライトを適用します。また、ドキュメント管理システムである Git との統合のための追加機能も提供します。例えば、ドキュメントの変更点を順を追って表示します(diff とも呼ばれます。これは difference の略です)。
Gitはあらゆる種類のテキストドキュメントを管理でき、ドットファイル(ドットで始まる設定ファイル)の保存によく使用されます。ドットファイルの保存に興味がある場合は、Gitで保存することを強くお勧めします。この場合、差分を表示するだけでも、deltaを試すことをお勧めします。
deltaは、Debian、Ubuntu、Fedora、Arch Linuxなどのディストリビューションの公式リポジトリからgit-deltaという名前でインストールできます。HomebrewとNixからも入手できます。
fd: より美しい色彩でより高速な検索
タイトルからわかるように、fd は search と非常によく似ていますが、はるかに高速で、色分けも見やすいという点が異なります。前述の通り、色分けによって検索結果が見やすく、区別しやすくなります。fd はファイルの種類とフォルダのパスを色分けして表示します。
fd は、色分け表示に加え、最新の CPU のマルチコア特性を活かして複数のディレクトリツリーを並列に走査します。この機能はディレクトリの走査だけでなく、コマンド実行にも適用されます。X を使用すると、fd は一致するコマンドごとに並列にコマンドを実行します。
fd foo.txt -x bat --color=常に
ripgrep と同様に、fd もスマート検索をサポートし、gitignore ファイルにも従うため、検索が容易になり、デフォルトで難読化が排除されます。
Fd はほぼすべての Windows ディストリビューションで利用できるので、インストールするにはパッケージ マネージャーまたはディストリビューションのマニュアルを確認してください。
eza: ls の現代的な代替
Eza は標準の ls コマンドの現代版で、主な特徴は色とアイコンのサポートが強化されていることです。アイコンは必須ではありませんが、私にとっては色は必須です。
Ezaには、ツリー表示やハイパーリンクなど、他にも優れた機能があります。例えば、ハイパーリンクタグは、すべてのファイルとフォルダ名をOSC 8形式のクリック可能なリンクに変換します。ほとんどの端末でこれらのリンクがサポートされていますが、念のため、 OSC 8 ハイパーリンクをサポートするステーションの非公式リスト。 各ステーションはそれぞれ異なるため、手動でアクティブ化する必要がある場合があります。
一番の利点は、ハイパーリンクがツリービューでも機能することです。つまり、大きなフォルダ間を素早く移動できるということです。しかし、ezaのツリービューは標準のツリービューよりもはるかに遅いことに気づきました。ツリービューは検索結果をすぐに表示するのに対し、ezaはフォルダ全体(場合によっては大きなフォルダ)をスクロールして、すべてを一度に表示されます。これには少し時間がかかりますが、魅力的な色使いとクリック可能なリンクが魅力です。
最後に、毎回 eza –icons と入力するのは面倒なので、エイリアスの作成方法に関するガイドを読むことをお勧めします。
Eza はほとんどの主要ディストリビューションで利用可能ですので、お使いのディストリビューションのパッケージマネージャーを参照してください。ただし、Debian と Ubuntu へのインストールには専用の APT リポジトリが必要ですが、eza のホームページでその詳細が説明されています。
履歴検索fzfなしではインターフェースは使用できません
初心者でも上級者でも、シェル履歴のあいまい検索は必須です。私にとって最も重要なツールです。コマンドを入力するのは面倒なので、一度だけ入力するのが好きです。また、以前のコマンドを検索するのも面倒です。上下キーを使うとワークフローが大幅に遅くなるからです。あいまい検索ツールは、これらの問題を解決します。
あいまい検索が何なのかご存じない方のために説明すると、これは単なる近似値検索です。例えば、「emp」や「xpe」と入力すると、「example」が一致します。なぜこれが重要なのでしょうか?2か月前に入力したコマンドを思い出せない、あるいは複数のコマンドを素早く切り替えると記憶力が鈍くなるからです。コマンド内の数文字を覚えていれば十分で、あいまい検索ツールを使えば検索範囲を瞬時に絞り込むことができます。
長年、zshのfzfログ検索コンポーネントに頼ってきました。代替として、Atuinというほぼ同じ機能を持つスタンドアロンツールがあります。どちらもシンプルで効果的な機能を実行します。
研究リポジトリを参照 GitHub 上の fzf の履歴 インストール手順については、Oh-My-Zshとfzfのインストール方法に関するガイドもご覧ください。より簡単な方法については、Atuinのインストールと使用方法に関するガイドをご覧ください。
プロのようにファイルを検索するための追加スクリプト
fzf、ripgrep、batがインストールされている場合は、以下のコマンドを使ってファイルシステムをあいまい検索し、一致する行をお気に入りのテキストエディタで開くことができます。以下のコマンドをbashrcファイルに記述し、元のbashrcファイルを使ってリロードしてください。作成方法については、こちらのガイドをご覧ください。 .bashrc 詳細については。
s () {
fzf --ansi --disabled \
--bind "change:reload:command \
rg --line-number --no-heading --color=always --smart-case {q} \
|| :" \
--bind "enter:execute(${EDITOR:-nano} +{2} {1})" \
--delimiter ":" \
--preview "command bat -p --color=always {1} --highlight-line {2}" \
--preview-window 'up:80%,border-bottom,~3,+{2}+3/3'
}
上記のコマンドはnanoでファイルを開くために有効になっていますが、Vim、Neovim、Emacsなどを使用するように設定することもできます。bashrcでeditor変数を設定してリロードするだけです。
export EDITOR=nvim
このスクリプトを使用するには、テキストファイルを含むフォルダに移動し、文字「s」を入力するだけです。このコマンドは検索語として単純な単語を受け付けますが、1時間で習得できる高度な検索式である正規表現のガイドに従うことで、検索精度を大幅に向上させることができます。
fzf History Search、ripgrep、deltaがないと途方に暮れてしまうので、これらのツールを最初にインストールすることが多いです。eza、bat、fdがないと、ターミナルウィンドウは簡素で読みにくいものになります。ただし、これは網羅的なリストではなく、システムリソースを監視するためのターミナルツールを他にも詳しく紹介しています。
最新のコマンドラインツールに頼るということは、基本を放棄することではありません。Linuxとのやり取りを進化させるということです。ここでレビューした代替ツールは、見た目やパフォーマンスの向上だけでなく、上級ユーザーのニーズを満たすオープンソースソフトウェアツールの進化を反映しています。ぜひ一度お試しください。違いにすぐに気づくはずです。













