Linux コマンド セットはそれ自体が優れていますが、プログラマーはそれを再発明することをやめられないようです。ここでは、Unix 系システムによくある問題点を解決する、古典的な Linux ツールを現代的に改良したものをいくつか紹介します。私と同じように、彼らのことを知る前はどうやってやっていたのかと不思議に思うかもしれません。
fzf を使用してテキストをすばやく検索する
Linux でファイルを検索するには、ls または find コマンドを使用することもあります。正確なファイル名を見つけて、ワイルドカードを使用してコマンドに渡すファイルのリストを生成することもできますが、fzf (「あいまい検索」) を使用すると、出力を実際に検索できます。 「あいまい」な部分は、ファイルのリストで強調表示された検索文字列の表示方法に由来します。 fzf は全画面表示の端末プログラムです。 find コマンドの難解な構文で悪名高いため、fzf は歓迎すべき代替品です。
grep の代わりとしても役立ちます。 fzf は検索用にパイプするのに最適です。
Debian または Ubuntu からインストールするには:
sudo apt install fzf
Arch にインストールするには:
sudo pacman -Syu fzf
Fedora および他の Red Hat ファミリー ディストリビューションの場合:
sudo dnf install fzf
tldr を使用してコマンドに関する情報をすばやく検索する
Linux のマンページを読んだことがある人は、技術情報の消防ホースから水を飲んでいるように思えます。 Linux プログラムには多くのオプションがありますが、必要なオプションを見つけるために文字の壁を読み進めるのはイライラするかもしれません。幸いなことに、tldr が役に立ちます。
例えば:
tldr ls
tldr は、コマンドライン プログラムの機能の概要をいくつかの一般的なオプションとともに表示します。きっと使いたいものが見つかるはずです。
ディストリビューションに関係なく、pip 経由でインストールできます。
pip install tldr
ack: 別の grep 置換
ack は、テキストを検索するためのツールである grep を置き換えることを目的としたツールです。 grep と同様、これも面白い名前ですが、本格的なツールです。プログラマーを念頭に置いて設計されており、出力に無関係なファイルが含まれないようにする方法を知っています。これは Perl 正規表現を使用し、検索入力内の一致を強調表示しますが、grep の最新の実装のほとんどは同じことを行います。また、「近接検索」を使用して、正確ではないが近い一致を見つけることもできます。
Debian または Ubuntu 経由で ack をインストールできます。
sudo apt install ack
そしてArchでは:
sudo pacman -Syu ack
そしてFedoraでは:
sudo dnf install ack
mtr: ping とtraceroute の両方です。
ネットワークに携わっている人なら、ping コマンドを実行して接続が確立されているかどうかを確認することに慣れているでしょう。また、パケットがインターネット上で宛先までたどるパスを確認できるユーティリティである、traceroute または trackpath にも精通しているかもしれません。 mtr (「My Traceroute」、以前は「Matt’s Traceroute」) は、両方を 1 つのプログラムに結合できるコマンドです。 ping と同様に、パケットを送信し、リモート サーバーからの応答を待ちます。トレースルートと同様に、リアルタイムでパスをトレースします。
Debian と Ubuntu にインストールできます。
sudo apt install mtr
そしてアーチでは:
sudo pacman -Syu mtr
そしてFedoraでは
sudo dnf install mtr
eza: スタイリッシュなファイルリスト
eza は、Linux 上のファイルをリストするツールとして ls を置き換えることを目的としたプログラムです。表面的には ls に似ていますが、読みやすくするための機能がいくつかあります。明るい端末と暗い端末の両方で機能する配色になっています。ロング モード (-l) は ls に似ていますが、すべての列が色付きです。
eza は Debian と Ubuntu で利用できます。
sudo apt install eza
そしてArchでは:
sudo pacman -Syu eza
Fedora のリポジトリにはありませんが、Web サイトからバイナリ バージョンをダウンロードできます。
but/batcat: 基本的な Linux ユーティリティの洗練された解釈
but は、古典的な cat コマンドを置き換えることを目的としたユーティリティです。これも同様に機能します。標準入力 (キーボード入力またはファイルからの入力) を標準入力 (端末や昔のテレタイプなど) に連結します。
cat と同じように使用できますが、Ubuntu ではユーティリティの名前が何らかの理由で「batcat」に変更されています。幸いなことに、必要に応じてシェル エイリアスを使用できます。これは、Bash や zsh などのほとんどの Bourne タイプのシェルで動作するはずです。
alias bat="batcat"
これを .bashrc や .zshrc などのシェルの起動ファイルにドロップできます。
もちろん、Debian または Ubuntu にインストールできます。
sudo apt install bat
そしてArchでは:
sudo pacman -Syu bat
そして Fedora では:
sudo dnf install bat
ripgrep: ディレクトリ内の簡単な検索
ripgrep という名前を見れば、どのユーティリティを置き換えることを目的としているかがわかります。 ripgrep と grep の主な違いの 1 つは、サブディレクトリを再帰的に検索することです。 grep はファイルとディレクトリを操作するように設計されているため、実際に標準入出力の grep を置き換えるとは思いませんが、find の代替としては大歓迎です。
grep と同様に、正規表現を使用してファイルを検索し、文字までの一致を指定できます。現在のディレクトリで用語 python を再帰的に検索するには:
rg python
これにより、現在のディレクトリに相対的なサブディレクトリも検索されます。
Debian または Ubuntu にインストールするには:
sudo apt install ripgrep
そしてアーチでは:
sudo pacman -Syu
そして Fedora では:
sudo dnf install ripgrep
グピング
ping ツールは便利ですが、gping はターミナルに ping 時間を視覚的に表示します。見ていてとてもきれいです。 ping 時間の時間経過が正弦波パターンを示しているのは興味深いことです。
通常の ping コマンドと同じように使用できます。
gping google.com
Debian/Ubuntu にインストールするには:
sudo apt install gping
そしてArchでは:
sudo pacman -Syu gping
そしてFedoraでは
sudo dnf install gping
標準の Linux コマンド セットは素晴らしいものですが、常に改善の余地があるようです。 Linux ユーザーとして、新しいユーティリティを積極的に受け入れることは有益です。ファイルやネットワークの操作を容易にするツールがいつ見つかるかはわかりません。