32blogby StudioMitsu

開発者のためのCLIツール完全マップ

ファイル操作からテキスト検索、ダウンロード、シェルカスタマイズまで。開発者が知っておくべきCLIツールを古典とモダンの対比で整理した。

11 min read
目次

ターミナルを開いたとき、使えるコマンドが lscd だけという時期は誰にでもある。でも CLI の世界には、知っているだけで作業効率が劇的に変わるツールが大量にある。

この記事では、開発者が押さえておくべき CLI ツールを カテゴリ別 に整理した。1990年代から使われている古典的なツールと、Rust で書き直されたモダンな代替ツールを対比しながら紹介する。

ファイル操作・ナビゲーション

ターミナル作業の基本。ファイルの一覧表示、移動、コピー、削除はここから始まる。

古典: ls / cd / cp / mv / rm

GNU coreutils(最新 9.10、2026年2月)に含まれる基本コマンド群。どの Linux ディストリビューションにも最初から入っている。

bash
ls -alh          # 詳細一覧(サイズを人間が読める形式で)
cd ~/projects    # ディレクトリ移動
cp -r src/ dst/  # ディレクトリごとコピー
mv old.txt new.txt  # リネーム / 移動
rm -rf build/    # ディレクトリ削除(慎重に)

モダン代替: eza + zoxide

eza(v0.23.4)は ls の Rust 製代替。カラー表示、Git ステータス統合、ツリー表示が標準装備。

bash
eza -la --git          # Git ステータス付き一覧
eza --tree --level=2   # ツリー表示(2階層まで)

zoxide(v0.9.9)は cd の代替。過去に移動したディレクトリを覚えていて、パスの一部を入力するだけでジャンプできる。

bash
z proj     # ~/projects に飛ぶ(過去に cd したことがあれば)
zi         # インタラクティブに選択
powershell
# WSL 内で Linux と同じ手順
# または PowerShell で直接:
winget install eza-community.eza
winget install ajeetdsouza.zoxide

テキスト検索・加工

ログの検索、設定ファイルの書き換え、JSON の加工。テキスト処理はエンジニアの日常だ。

古典: grep / sed / awk

bash
grep -rn "TODO" src/           # ディレクトリ再帰検索(行番号付き)
sed -i 's/old/new/g' file.txt  # ファイル内の文字列を一括置換
awk '{print $1, $3}' data.tsv  # 1列目と3列目を抽出

grep は最も使用頻度が高いコマンドの一つだが、大規模コードベースでは速度が気になることがある。

モダン代替: ripgrep + fd + bat + jq

ripgrep(v15.1.0)は grep の Rust 製代替。.gitignore を自動で尊重し、大規模リポジトリでも高速。

bash
rg "TODO" --type js          # JSファイルのみ検索
rg "function \w+" -c         # マッチ数をカウント

fd(v10.3.0)は find の代替。シンプルな構文で、デフォルトで .gitignore を尊重する。

bash
fd "\.mdx$" content/         # .mdx ファイルを検索
fd -e json -x jq '.version' # JSON ファイルを見つけて jq で処理

bat(v0.26.0)は cat の代替。シンタックスハイライト、行番号、Git diff 統合。

bash
bat src/index.ts             # ハイライト付きで表示
bat -d file.txt              # Git diff のみ表示

jq(v1.8.1)は JSON のスイスアーミーナイフ。API レスポンスの加工に必須。

bash
curl -s https://api.github.com/repos/jqlang/jq | jq '.stargazers_count'
cat package.json | jq '.dependencies | keys'
powershell
# WSL 内なら Linux と同じ手順
# PowerShell なら:
winget install BurntSushi.ripgrep.MSVC
winget install sharkdp.fd
winget install sharkdp.bat
winget install jqlang.jq

ダウンロード・通信

ファイルの取得、API の呼び出し、リモートサーバーとの通信。

wget — バッチダウンロードの定番

再帰ダウンロード、中断再開、サイトミラーリングに強い。サーバー上でファイルを取得するときの第一選択。

bash
wget -c https://example.com/large.iso    # 中断再開
wget -i urls.txt -P ~/downloads/         # URLリストから一括DL
wget --mirror --convert-links https://example.com/  # サイトミラー

最新バージョン: wget 1.25.0 / wget2 2.2.1。wget2 には CVE-2025-69194(CVSS 8.8)の修正が含まれるため、使っている場合はアップデートすること。

→ 詳細: wgetコマンド完全ガイド

curl — API 操作の万能ツール

wget がダウンロード特化なら、curl は HTTP 通信全般の万能ツール。API の呼び出し、レスポンスヘッダーの確認、ファイルアップロードまでこなす。

bash
curl -s https://api.example.com/data | jq '.'   # API を叩いて JSON 整形
curl -I https://example.com                       # ヘッダーのみ取得
curl -X POST -d '{"key":"value"}' -H "Content-Type: application/json" https://api.example.com

最新バージョン: curl 8.18.0(2026年1月)。AI が発見した 3 件の CVE が修正されている。curl --version で確認しよう。


シェルカスタマイズ

alias — コマンドのショートカット

毎回打つ長いコマンドを短縮する。シェルの効率化はここから始まる。

bash
alias gs='git status'
alias dc='docker compose'
alias ll='ls -alh --color=auto'

→ 詳細: aliasコマンド完全ガイド

シェル選び: bash vs zsh vs fish

シェル特徴
bashどこにでもある。スクリプト互換性が最も高い
zshbash 互換 + 補完が強力。macOS のデフォルト
fish設定不要で補完・ハイライトが効く。bash 非互換

zsh を使うなら oh-my-zsh の git プラグインだけで 150 以上のエイリアスが追加される。

fzf — あいまい検索で何でも見つける

fzf(v0.70.0)はインタラクティブなあいまい検索ツール。ファイル選択、コマンド履歴検索、Git ブランチ切り替えなど何にでも使える。

bash
# ファイルをあいまい検索して vim で開く
vim $(fzf)

# コマンド履歴を検索(Ctrl+R の強化版)
# fzf インストール後、Ctrl+R で自動的に使われる
powershell
# WSL 内なら Linux と同じ
winget install junegunn.fzf

開発ワークフロー

tmux — ターミナルの多重化

tmux(v3.6a)は1つのターミナル内で複数のペイン・ウィンドウを管理するツール。SSH 接続中にセッションを維持できるため、サーバー作業に必須。

bash
tmux new -s work           # "work" という名前でセッション開始
# Ctrl+b % — 画面を左右に分割
# Ctrl+b " — 画面を上下に分割
# Ctrl+b d — セッションからデタッチ
tmux attach -t work        # セッションに再接続
powershell
# WSL 内で Linux と同じ手順
# ネイティブ Windows には非対応

ssh / rsync — リモートサーバー操作

bash
ssh user@server             # リモート接続
ssh -L 8080:localhost:3000 user@server  # ポートフォワーディング
rsync -avz ./dist/ user@server:/var/www/  # 差分のみ転送

Git — バージョン管理

Git 自体は説明不要だが、CLI での操作を高速化するツールがある。

bash
# lazygit — ターミナル内の Git TUI
# delta — git diff をシンタックスハイライト付きで表示
git diff | delta

モダン代替ツール(Rust 世代)

従来の GNU ツールを Rust で書き直したプロジェクトが急増している。2026年には Ubuntu が GNU coreutils を Rust 実装(uutils)に置き換える計画を進めている。

古典モダン代替言語主な改善点
lsezaRustカラー・Git 統合・ツリー
catbatRustハイライト・行番号・ページャ
grepripgrepRust速度・.gitignore 対応
findfdRustシンプル構文・高速
cdzoxideRust学習型ジャンプ
sedsdRust正規表現がシンプル
dudustRustビジュアルなディスク使用量
topbottomRustモダンなシステムモニター

全部入れる必要はない。まず ripgrep + fd + bat の 3 つを試してみると、古典ツールとの違いを体感できる。各ツールのインストール手順はこの記事の各セクションに OS 別で記載している。


まとめ

カテゴリまず覚える次に試す
ファイル操作ls, cd, cp, mveza, zoxide
テキスト検索grep, findripgrep, fd, bat
JSON 加工jq
ダウンロードwget, curl
シェル設定alias, .bashrcfzf, oh-my-zsh
開発git, sshtmux, lazygit

CLI は一度覚えれば OS が変わっても使える。GUIアプリは消えてもコマンドは残る。

この記事をブックマークしておいて、新しいツールを試すたびに戻ってきてほしい。各ツールの詳細記事は順次追加していく。