モダンCLIツール完全ガイド:bat・exa・ripgrep・fdで開発効率を10倍に
cat・ls・grep・findの代替となるモダンCLIツールbat・exa・ripgrep・fdを徹底解説。インストール方法、基本使い方、便利なオプションを紹介。開発効率を向上させる実用的な情報満載。
はじめに
コマンドラインツールは開発者にとって欠かせない存在ですが、標準のcat、ls、grep、findには機能面で物足りなさを感じることも多いでしょう。そこで登場するのが、bat、exa、ripgrep、fdといったモダンな代替ツールです。これらは高速で、人間が読みやすい出力を提供し、開発効率を大幅に向上させます。本記事では、それぞれのツールの特徴、インストール方法、基本的な使い方、そして実践的な活用例を詳しく解説します。
bat:catの高機能版
batの特徴
batはcatの代替ツールで、シンタックスハイライト、Gitの変更表示、行番号表示など、ファイル閲覧を快適にする機能を備えています。
インストール方法
brew install batsudo apt install bat(パッケージ名はbatではなくbatcatの場合あり)scoop install bat または choco install bat基本的な使い方
<h1>ファイルを表示</h1>
bat ファイル名
<h1>複数ファイルを表示</h1>
bat ファイル1 ファイル2
<h1>標準入力から受け取る</h1>
echo "Hello" | bat
便利なオプション
-A または --show-all: 非表示文字を表示-n: 行番号を表示(デフォルトでON)-p または --plain: 装飾なしで表示(catと同じ)-r 開始行:終了行: 指定行のみ表示--language=lang: 言語を指定してシンタックスハイライト実践的な活用例
<h1>JSONファイルを見やすく表示</h1>
bat --language=json config.json
<h1>特定の行だけ表示(例:10行目から20行目)</h1>
bat -r 10:20 main.py
<h1>パイプで他のコマンドと組み合わせる</h1>
grep -r "TODO" src/ | bat
exa:lsのモダンな代替
exaの特徴
exaはlsの代替で、カラー表示、アイコン表示、Git統合、ツリー表示など、視覚的に優れたファイル一覧を提供します。lsよりも高速で、多くの情報を一目で把握できます。
インストール方法
brew install exasudo apt install exa(バージョンが古い場合あり)scoop install exa または choco install exa基本的な使い方
<h1>ファイル一覧表示</h1>
exa
<h1>詳細表示(パーミッション、所有者、サイズ、日時)</h1>
exa -l
<h1>隠しファイルも表示</h1>
exa -a
便利なオプション
-T または --tree: ツリー構造で表示-F または --classify: ファイルタイプに応じて記号を付加(/、*、@など)-G または --grid: グリッド表示(デフォルト)-R または --recurse: サブディレクトリも再帰表示--git: Gitのステータスを表示(変更ファイルにマーク)-s ソートキー: ソート(name, size, dateなど)実践的な活用例
<h1>ツリー表示でディレクトリ構造を確認</h1>
exa -T
<h1>Git管理下のファイルを詳細表示</h1>
exa -l --git
<h1>サイズが大きい順にソート</h1>
exa -l -s size
ripgrep:高速なgrep
ripgrepの特徴
ripgrepはgrepの代替で、特に大規模なコードベースでの検索に優れています。デフォルトで.gitignoreを尊重し、バイナリファイルを無視するため、高速かつ正確です。
インストール方法
brew install ripgrepsudo apt install ripgrepscoop install ripgrep または choco install ripgrep基本的な使い方
<h1>パターン検索</h1>
rg パターン ディレクトリ
<h1>カレントディレクトリを再帰検索</h1>
rg パターン
<h1>ファイル名のみ表示</h1>
rg -l パターン
便利なオプション
-i または --ignore-case: 大文字小文字を区別しない-w または --word-regexp: 単語単位で検索-c または --count: 一致行数のみ表示-g グロブ: ファイル名のパターンでフィルタ-t ファイルタイプ: ファイルタイプでフィルタ(例:-t py)-u または --unrestricted: .gitignoreを無視実践的な活用例
<h1>Pythonファイル内で関数定義を検索</h1>
rg "^def " -t py
<h1>コメント行を除外してTODOを検索</h1>
rg "TODO" --glob '!*.md'
<h1>特定のディレクトリを除外</h1>
rg "FIXME" --glob '!node_modules'
fd:ユーザーフレンドリーなfind
fdの特徴
fdはfindの代替で、直感的な構文と高速な検索が特徴です。デフォルトで.gitignoreを無視し、正規表現やグロブパターンが使いやすいです。
インストール方法
brew install fdsudo apt install fd-find(コマンド名はfdfindの場合あり)scoop install fd または choco install fd基本的な使い方
<h1>ファイル名で検索</h1>
fd パターン
<h1>特定のディレクトリ内で検索</h1>
fd パターン ディレクトリ
<h1>隠しファイルも含めて検索</h1>
fd -H パターン
便利なオプション
-e 拡張子: ファイル拡張子でフィルタ-t タイプ: ファイルタイプ(f: ファイル, d: ディレクトリ, l: シンボリックリンク)-x コマンド: 見つかったファイルに対してコマンドを実行-E パターン: 除外パターン-s または --case-sensitive: 大文字小文字を区別実践的な活用例
<h1>画像ファイルを検索</h1>
fd -e jpg -e png
<h1>空のディレクトリを検索</h1>
fd -t d -E "node_modules" --exec ls -d {} \;
<h1>見つかったファイルを削除(確認付き)</h1>
fd "*.log" -x rm -v
まとめ:これらのツールを使いこなすためのヒント
.bashrcや.zshrcにエイリアスを登録しましょう。 alias cat='bat'
alias ls='exa'
alias grep='rg'
alias find='fd'
fd -e py | rg "test"
--helpで詳細なオプションを確認。これらのツールを導入するだけで、日々の開発作業が格段に効率的になります。ぜひ試してみてください。