Modern Shell Command
進化したよりモダンなコマンドたちの解説。
あとでもっと細かく書き加える。
モダンls
eza、Rust製。
lsにエイリアスして置き換えても使い勝手は変わらないぐらい、でも勝手に色が付くし対応したフォントをインストールすればファイル種別ごとのアイコンも表示させられる。
オプションもリッチになっていて高機能、とりあえず使い始めるのにちょうどいい機能感してる。
他にも一覧表示でサイズや最終編集日時で色が変わったりと色々便利。
細かいオプションは同じ名前でも機能が違ったりするので(他のツールもだが)注意が必要。
モダンcat
bat、Rust製。
batcatだったりすることも。
デフォルトで行番号が表示されるためcatと使用感がかなり異なるが、-p, --plainオプションを有効にしておくとシンプルな表示になりcatと近い使用感になる。
拡張子次第でハイライトをしてくれてdiff差分表示などにも対応してくれている。
catと置き換えてもいいが使い分けるのも悪くない。
拡張子がない場合でもオプションで指定できたりする。
また、コマンドのヘルプやmanのページをハイライトすることもできる、これが神すぎて手放せない、もう色無しのヘルプには戻れないくらい見やすい。
-hなどを完全に置き換えてしまってもいいくらいだが、たまにある-hがヘルプじゃないコマンドが使えなくなってしまうため-rhなどに割り当てて使ってる、リッチヘルプ。
カラーテーマもある程度指定できる。
その他にもリッチなオプションがたくさんあるので普通に便利、エディタを開くほどではないけどcatだと見辛いなぁなんてときにふと思い出して使うとちょうどいい。
モダンtree
broot、Rust製。
かなりリッチでインタラクティブなtreeといった感じ。
インクリメンタルサーチみたいな挙動で絞り込みができる。
ショートカットで対象のファイルをエディタで開いたりできる。
正直リッチすぎてもてあましてる。
後述のディレクトリマネージャーの方が近いかもしれない。
tre、Rust製。
モダン化されたtreeという意味ではこっちの方がしっくりくる。
ezaみたいにシンプルな挙動で高速化、高機能化している。
個人的にはこっちの方が好み。
モダンcd
zoxide、Rust製。
z <ディレクトリ名の一部>のような入力の仕方で履歴から自動的に一番それっぽいディレクトリに移動してくれる、ファジーcd。
zoxideコマンドで挙動を調整したりできる。
正直意識して使わないとあんまり使わないが、使いこなせたらかなり時短になると思う。
キチンとディレクトリを整理する人にはかなり向いてる。
モダンgrep
ripgrep、rgコマンド、Rust製。
grepよりも高速。
デフォルトで.gitignoreを考慮した判定をしたりするので単純な置き換えにはならないがこっちの方が便利な場面は多い。
デフォルトでgrep -rの挙動をしてくれるところが地味に嬉しい。
かなりオプションが多く挙動をカスタマイズできるっぽいが正直まだまだ使えてない。
そんなもの使わなくてもシンプルに文字列検索が速くなっているというだけで試す価値がある。
モダンfind
fd-find、fdコマンド、Rust製。
これもより高速なfindで元のfindよりも直感的で親切。
正直findが複雑怪奇すぎるだけとも言える。
findのヘビーユーザーでもなければ普通にこっちの方が使いやすいと感じるんじゃないだろうか。
モダンtop
bottom、btmコマンド、Rust製。
モダンというより魔改造と言った方がいいくらいになってるけど、システム監視ツールとして見ればまあ同じ括りということで、使う場面も正直そんなに変わらないだろうし。
なんとマウスで操作することもできる、違いすぎる。
モダンps
procs、Rust製。
これも魔改造、監視ツールは画面をロックする形のものが多いな。
個人的には正直あんまり使わない、コマンドで特定のプロセスだけをフィルターする使い方には向いてない。
組み込みのオプションでそういった機能を実現している。
モダンping
gping、Rust製。
グラフィカルなping、応答速度がグラフで表示される。
ぶっちゃけpingなんて到達可能かどうかのチェックでしか使わないのでこれももてあまし気味、でも断続的にネットワークが切れるときはチェックが分かりやすくて楽だった。
モダンcurl、wget
xh、Rust製。
正直curlもwgetもかなり充実しているので困ることはないが、xhにはコマンドラインからのデータをjsonとしてシリアライズしてくれる機能があってそれが便利ってくらい。
ちょっと使うくらいなら強いて乗り換える意味はないと思う。
curlie、Go製。
curlっぽい名前なものの使い勝手はだいぶ違う。
まずヘルプからしてカテゴリ指定しないと表示されない特殊っぷり。
まあ、たくさんあるオプションを並べられるよりはいいかもしれない。
あんまり使ってないから正直なんも分からん。
モダンdig
doggo、Go製。
色が付いて見やすい。
デフォルトで情報が区分けされて表示されるので分かりやすいけど、digに慣れてると付加情報少なくて違和感ある。
モダンdf
duf、Go製。
dfよりもグラフィカルで分かりやすい。
ユースケース的には視覚的に分かりやすく表形式で表示してくれるdufの方が嬉しい。
デフォルトで適切な単位付きのデータ量を表示してくれるのもGood、いちいちヒューマン向けにしなくてもいい。
スクリプトで使うような場合はdfの方が当然扱いやすいが今時はシェルでそんなこと滅多にしないだろう。
モダンdu
du-dust、dustコマンド、Rust製。
duよりもかなり高速にディスク容量を計測できるのでかなり重宝している。
結果の表示もグラフィカルでどのディレクトリやファイルがどのくらいのウェイトを占めているかが分かりやすい。
コンフィグファイルまで設定できるくらいリッチだが、何も設定しなくても恩恵に預かれる。
それぐらい速く計測できる。
モダンman
tlrc、tldrコマンド、Rust製。
モダンmanというよりみんなのチートシートって感じではある。
必要に応じてオンラインからダウンロードしてくるのでお試しするのもちょうどいい。
個別のオプションが知りたいんじゃなくてこのコマンドでできることが知りてえんだよってときに便利。
コミュニティが頑張って作ってるので充実具合はmanには敵わないけどメジャーなコマンドはたいていページが存在するので必要十分といった感じ。
モダンsed
sd、Rust製。
ぶっちゃけsedが便利すぎて使わない、あの形式に馴染みがないなら使ってもいいくらい。
モダンdiff
difftasticとriffdiff、どちらもRust製。
どちらもgitのdiffに対応してるなどのモダン化がされているが、difftasticの方がよりアドバンスドな感じで、riffdiffは控えめでシンプルな感じ。
好みが分かれるところ。
ただgitのdiffを見たいだけならgit-deltaが良さそう。
モダンcut
choose、Rust製。
よりシンプルに分かりやすくなったcutといった感じ。
番外
便利だけど既存コマンドの置き換えではないためレギュレーション違反なコマンドたち
フィルターコマンド
fzf、pecoなど。
fzfはRust製、pecoはGo製、どちらも入力を絞り込むためのコマンドになっている。
微妙に使い勝手は違うが基本的に同じことができる。
既存のコマンドをこれらでラップしただけの拡張がたくさんある、それだけでも便利。
チートシート
cheat、Go製。
探せばたくさんあるであろうチートシート参照コマンド。
コミュニティ製のチートシートもインポートできるのが嬉しいポイント、もちろん自分でオリジナルのチートシートも作れる。
ディレクトリマネージャー
yazi、lfなど。
yaziはRust製、lfはGo製。
ターミナルからディレクトリを探索するためのコマンド、インタラクティブに動作する。
Emacsみたいなノリでディレクトリを移動したりファイルをプレビューしたり開いたりできるのでヘビーなターミナルユーザーには便利かもしれない。
逆にエディタで全部完結するような変態には不要かもしれない。