ターミナルを開いたとき、使えるコマンドが ls と cd だけという時期は誰にでもある。でも CLI の世界には、知っているだけで作業効率が劇的に変わるツールが大量にある。
この記事では、開発者が押さえておくべき CLI ツールを カテゴリ別 に整理した。1990年代から使われている古典的なツールと、Rust で書き直されたモダンな代替ツールを対比しながら紹介する。
ファイル操作・ナビゲーション
ターミナル作業の基本。ファイルの一覧表示、移動、コピー、削除はここから始まる。
古典: ls / cd / cp / mv / rm
GNU coreutils(最新 9.10、2026年2月)に含まれる基本コマンド群。どの Linux ディストリビューションにも最初から入っている。
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 ステータス統合、ツリー表示が標準装備。
eza -la --git # Git ステータス付き一覧
eza --tree --level=2 # ツリー表示(2階層まで)
zoxide(v0.9.9)は cd の代替。過去に移動したディレクトリを覚えていて、パスの一部を入力するだけでジャンプできる。
z proj # ~/projects に飛ぶ(過去に cd したことがあれば)
zi # インタラクティブに選択
# WSL 内で Linux と同じ手順
# または PowerShell で直接:
winget install eza-community.eza
winget install ajeetdsouza.zoxide
テキスト検索・加工
ログの検索、設定ファイルの書き換え、JSON の加工。テキスト処理はエンジニアの日常だ。
古典: grep / sed / awk
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 を自動で尊重し、大規模リポジトリでも高速。
rg "TODO" --type js # JSファイルのみ検索
rg "function \w+" -c # マッチ数をカウント
fd(v10.3.0)は find の代替。シンプルな構文で、デフォルトで .gitignore を尊重する。
fd "\.mdx$" content/ # .mdx ファイルを検索
fd -e json -x jq '.version' # JSON ファイルを見つけて jq で処理
bat(v0.26.0)は cat の代替。シンタックスハイライト、行番号、Git diff 統合。
bat src/index.ts # ハイライト付きで表示
bat -d file.txt # Git diff のみ表示
jq(v1.8.1)は JSON のスイスアーミーナイフ。API レスポンスの加工に必須。
curl -s https://api.github.com/repos/jqlang/jq | jq '.stargazers_count'
cat package.json | jq '.dependencies | keys'
# WSL 内なら Linux と同じ手順
# PowerShell なら:
winget install BurntSushi.ripgrep.MSVC
winget install sharkdp.fd
winget install sharkdp.bat
winget install jqlang.jq
ダウンロード・通信
ファイルの取得、API の呼び出し、リモートサーバーとの通信。
wget — バッチダウンロードの定番
再帰ダウンロード、中断再開、サイトミラーリングに強い。サーバー上でファイルを取得するときの第一選択。
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 の呼び出し、レスポンスヘッダーの確認、ファイルアップロードまでこなす。
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 — コマンドのショートカット
毎回打つ長いコマンドを短縮する。シェルの効率化はここから始まる。
alias gs='git status'
alias dc='docker compose'
alias ll='ls -alh --color=auto'
→ 詳細: aliasコマンド完全ガイド
シェル選び: bash vs zsh vs fish
| シェル | 特徴 |
|---|---|
| bash | どこにでもある。スクリプト互換性が最も高い |
| zsh | bash 互換 + 補完が強力。macOS のデフォルト |
| fish | 設定不要で補完・ハイライトが効く。bash 非互換 |
zsh を使うなら oh-my-zsh の git プラグインだけで 150 以上のエイリアスが追加される。
fzf — あいまい検索で何でも見つける
fzf(v0.70.0)はインタラクティブなあいまい検索ツール。ファイル選択、コマンド履歴検索、Git ブランチ切り替えなど何にでも使える。
# ファイルをあいまい検索して vim で開く
vim $(fzf)
# コマンド履歴を検索(Ctrl+R の強化版)
# fzf インストール後、Ctrl+R で自動的に使われる
# WSL 内なら Linux と同じ
winget install junegunn.fzf
開発ワークフロー
tmux — ターミナルの多重化
tmux(v3.6a)は1つのターミナル内で複数のペイン・ウィンドウを管理するツール。SSH 接続中にセッションを維持できるため、サーバー作業に必須。
tmux new -s work # "work" という名前でセッション開始
# Ctrl+b % — 画面を左右に分割
# Ctrl+b " — 画面を上下に分割
# Ctrl+b d — セッションからデタッチ
tmux attach -t work # セッションに再接続
# WSL 内で Linux と同じ手順
# ネイティブ Windows には非対応
ssh / rsync — リモートサーバー操作
ssh user@server # リモート接続
ssh -L 8080:localhost:3000 user@server # ポートフォワーディング
rsync -avz ./dist/ user@server:/var/www/ # 差分のみ転送
Git — バージョン管理
Git 自体は説明不要だが、CLI での操作を高速化するツールがある。
# lazygit — ターミナル内の Git TUI
# delta — git diff をシンタックスハイライト付きで表示
git diff | delta
モダン代替ツール(Rust 世代)
従来の GNU ツールを Rust で書き直したプロジェクトが急増している。2026年には Ubuntu が GNU coreutils を Rust 実装(uutils)に置き換える計画を進めている。
| 古典 | モダン代替 | 言語 | 主な改善点 |
|---|---|---|---|
| ls | eza | Rust | カラー・Git 統合・ツリー |
| cat | bat | Rust | ハイライト・行番号・ページャ |
| grep | ripgrep | Rust | 速度・.gitignore 対応 |
| find | fd | Rust | シンプル構文・高速 |
| cd | zoxide | Rust | 学習型ジャンプ |
| sed | sd | Rust | 正規表現がシンプル |
| du | dust | Rust | ビジュアルなディスク使用量 |
| top | bottom | Rust | モダンなシステムモニター |
全部入れる必要はない。まず ripgrep + fd + bat の 3 つを試してみると、古典ツールとの違いを体感できる。各ツールのインストール手順はこの記事の各セクションに OS 別で記載している。
まとめ
| カテゴリ | まず覚える | 次に試す |
|---|---|---|
| ファイル操作 | ls, cd, cp, mv | eza, zoxide |
| テキスト検索 | grep, find | ripgrep, fd, bat |
| JSON 加工 | — | jq |
| ダウンロード | wget, curl | — |
| シェル設定 | alias, .bashrc | fzf, oh-my-zsh |
| 開発 | git, ssh | tmux, lazygit |
CLI は一度覚えれば OS が変わっても使える。GUIアプリは消えてもコマンドは残る。
この記事をブックマークしておいて、新しいツールを試すたびに戻ってきてほしい。各ツールの詳細記事は順次追加していく。