Rust 製 ツールでシェル作業を一気に高速化。find / grep / cd / history が 3 倍以上速くなります。1 度入れたら戻れない生産性投資。
1. なぜ今これに乗り換えるか
- 速度: 大規模リポ (1万ファイル超) で grep が秒単位、ripgrep なら一瞬
- デフォルトが賢い: .gitignore を尊重、隠しファイル除外、UTF-8 安全
- 一貫した UX: 引数の名前が現代的、ヘルプが読みやすい
- 互換性: 全部 OSS、ライセンス問題なし、商用利用 OK
2. 5 ツール早見表
| ツール | 代替元 | 強み |
|---|---|---|
| fd | find | 10 倍速、デフォルトで .gitignore 尊重 |
| fzf | (新カテゴリ) | 曖昧検索でターミナル UI を一新 |
| ripgrep (rg) | grep -r | 10 倍以上速、デフォルトで賢い |
| zoxide | cd | 頻度学習で `z proj` だけで移動 |
| atuin | history | SQLite に履歴貯蓄、ホスト/コマンド検索 |
3. インストール
macOS / Linux 推奨インストール
Bash
# macOSbrew install fd fzf ripgrep zoxide atuin$(brew --prefix)/opt/fzf/install --all
# Linux (apt 系)sudo apt install fd-find ripgrepcargo install zoxide atuin# fzf は git clone + install スクリプトが定番
# 動作確認fd --versionrg --versionz --versionatuin --version4. .zshrc / .bashrc 設定例
推奨初期設定
Bash
# fzf キーバインド有効化 (Ctrl-T / Ctrl-R / Alt-C)[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
# zoxide (頻度学習 cd)eval "$(zoxide init zsh)"alias cd=z
# atuin (履歴検索)eval "$(atuin init zsh)"
# ripgrep を grep に (オプショナル、慣れたら)alias grep='rg'
# fd を find に (Linux は fdfind なので注意)alias find='fd'5. 実用テクニック集
- `fd hoge` → カレント以下の hoge 含むファイルを高速検索
- `rg 'TODO' --type py` → Python ファイルから TODO だけ抽出
- `rg 'key' -l | xargs -I {} sed -i 's/old/new/g' {}` → 該当ファイル全置換
- `Ctrl-R` → atuin の履歴検索 (上下矢印で選択)
- `z foo` → よく訪れる foo を含むディレクトリへ
- `fzf --preview 'cat {}'` → ファイル選択時にプレビュー表示
6. 落とし穴
- Linux の fd: パッケージ名が `fdfind`、コマンドも `fdfind` なので alias 必要
- ripgrep + パイプ: 色付き出力がパイプ先で崩れる時は `--color=never`
- atuin の同期: 機密コマンド (パスワード等) も貯まるので、`secrets_filter` で除外
- zoxide の依存: 新規 PC では履歴ゼロ、最初は cd で慣らす期間が必要
7. 関連ツール (発展編)
- bat: cat の代替、シンタックスハイライト + ページャ
- eza (旧 exa): ls の代替、色分け + ツリー表示
- delta: git diff の代替、サイドバイサイド表示
- dust: du の代替、視覚的なディスク使用量
- procs: ps の代替、見やすいプロセス表示
ふくふくの進め方
社内標準セットとして推奨。インストールスクリプトとセットでお出ししています。新規メンバーが 1 日でセットアップ完了する状態を作るのが目標。
次回予告
EP.05 はワークフロー・スケジューラ 4 選: / Dagster / Prefect / Argo。
この記事の感想を教えてください
あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。