Skip to content

필사 모드: ターミナル & シェル ツール 2026 — Ghostty / Wezterm / Alacritty / Kitty / Warp / Fish 4 / Nushell / Zellij / Starship 徹底ガイド

日本語
0%
정확도 0%
💡 왼쪽 원문을 읽으면서 오른쪽에 따라 써보세요. Tab 키로 힌트를 받을 수 있습니다.
원문 렌더가 준비되기 전까지 텍스트 가이드로 표시합니다.

プロローグ — ターミナルがふたたび面白くなった

10年間、ターミナルは「退屈な道具」だった。1990年代に固まったxtermモデルの上に、iTerm2(2008)・GNU screen(1987)・tmux(2007)がほぼすべてを整理してくれていた。その後の変化と言えば「少し綺麗なフォント」と「少し速い描画」くらい。

2024年から2026年にかけて、その風景がまるごと揺らいだ。

- 2024年12月、**Ghostty 1.0**がGAした。Mitchell HashimotoがHashiCorpを離れ、2年間フルタイムで書き上げたZigベースのターミナル。private beta時代から話題で、GA初週でGitHubスター2万超。

- **Fish 4**(2024)が登場し、シェル自体がRustで書き直される時代の幕が開いた。C++コードベースをRustへ段階的に移行した、史上最大規模のシェルプロジェクトだ。

- **Warp**はAIネイティブターミナルとしての立ち位置を確立した。Rust + Apple Metalの基盤に、LLM統合を最初から一級市民として載せている。

- **Nushell**はもう実験ではない。0.xではあるものの、データエンジニアやSREの一部が「Pythonの代わりにシェル」として使い始めている。

- **Zellij**はtmuxの実用的な代替に育ち、**Starship**は事実上すべてのシェルの標準プロンプトになった。

- **bat / eza / zoxide / fd / ripgrep / fzf / atuin** — UnixユーティリティのRust書き直しの流れは、もはやデフォルト。AppleもmacOS Sequoia以降の開発者向けガイドで、BSD grepの代替としてripgrepを推奨し始めた。

本稿では、2026年のターミナル・シェル・マルチプレクサ・CLIユーティリティの風景を **エミュレータ → シェル → マルチプレクサ → プロンプト → ユーティリティ → dotfiles** の順で一気にまとめる。最後にmacOS・Linux・Windows・デザイン重視・速度重視それぞれのシナリオで、誰がどれを選ぶべきかのマトリクスを置く。

1章 · 2026年のターミナル地図 — 4つのレイヤ

まず一枚の図から。「ターミナル」という一語の中には、実は4つの違うものが入っている。

[あなたのキーボード]

|

v

+----------------------+

| ターミナル | <- ピクセルを描画するGUI

| エミュレータ | Ghostty / Wezterm / Alacritty / Kitty

| (Ghostty,...) | Warp / iTerm2 / Windows Terminal

+----------+-----------+

|

| pty (仮想ターミナル)

v

+----------------------+

| シェル | <- コマンドを解釈する

| (bash, zsh, fish, | bash / zsh / fish / nushell

| nushell, ...) | elvish / xonsh / Oils sh

+----------+-----------+

|

| fork / exec

v

+----------------------+

| マルチプレクサ | <- セッション・ウィンドウ・ペイン

| (tmux, zellij, | tmux / zellij / screen / dvtm

| screen, ...) |

+----------+-----------+

|

v

+----------------------+

| CLIユーティリティ | <- bat / eza / zoxide / fd / rg / fzf / atuin

| + prompt | <- starship / p10k / oh-my-zsh / oh-my-posh

+----------------------+

この4レイヤを切り分けて見ないと、ツール選びがすぐに絡まる。「Warpが良い」という発言は、**エミュレータ + シェル + マルチプレクサ + プロンプトの一部を束ねた製品が良い**という意味であって、「tmuxより速い」という意味ではない。逆に「Ghostty + zsh + tmux + starship + atuin」は4レイヤを明確に分離したクラシックな構成だ。

覚えておくべき一行: **エミュレータ=ピクセル、シェル=意味、マルチプレクサ=セッション、プロンプト=情報。**

2章 · Ghostty — Mitchell Hashimotoの2年仕事、2024年12月GA

もっとも興味深い新参者から。

**Ghostty**は、HashiCorp(Terraform・Vault・Consulの会社)の共同創業者Mitchell Hashimotoが、フルタイムを離れて2年かけて書いたターミナルだ。Zigで実装され、長いprivate betaを経て2024年12月に1.0をリリース。GA初週でGitHubスターが20,000を超えた。

主な特徴:

- **Zigで書かれている。** RustでもC++でもない。Zigは「Rustより複雑さを抑えたメモリ安全システム言語」を目指す。Mitchellは「Zigコンパイラ自体に頻繁にパッチを当てながら作った」とインタビューで語っている。

- **ネイティブGUI。** macOSはSwiftUI、LinuxはGTK4。Electronではない。中核はlibghosttyというCライブラリで、各プラットフォームが自分のGUIを被せる。

- **xterm 100%互換。** ECMA-48・ISO 2022・DEC private modes・xterm拡張までまじめに実装。Mitchellは「ターミナルプロトコルそのものが面白くて始めた」と公言。

- **GPU描画。** Metal(macOS)/ OpenGL(Linux)。Alacritty級の速度。

- **Kitty graphics protocol** + **Sixel** 対応 — インライン画像が出る。

- **ほぼすべての設定がkey-valueファイル。** `~/.config/ghostty/config`に`font-size = 14`のように書くだけ。LuaもPythonもない。

設定例(シンプルさが売り):

~/.config/ghostty/config

font-family = "JetBrains Mono"

font-size = 14

theme = "GruvboxDarkHard"

background-opacity = 0.95

window-padding-x = 12

window-padding-y = 12

macos-titlebar-style = "tabs"

keybind = cmd+t=new_tab

keybind = cmd+shift+enter=toggle_fullscreen

Ghosttyが話題になった理由は「また新しいターミナル」だからではない。**「一人がフルタイム2年を投入すれば、これだけの品質のシステムソフトウェアが作れる」という証明だった。** xterm互換性・GPU描画・2プラットフォームのネイティブGUIを同時に満たしたターミナルは、それ以前には存在しなかった。

限界も明確だ。

- **Windows未対応。** 2026年5月時点でmacOS・Linuxのみ。WSLは可。

- **拡張性は低い。** LuaやPythonのようなスクリプティングがない。キーバインド設定が事実上の限界。

- **テーマ生態系はまだ小さい。** iTerm2のようにコミュニティ作の数千テーマが揃ってはいない。

一行で覚えるなら: **Ghosttyは「ただ速くて綺麗なターミナル」。それが最大の長所。**

3章 · Wezterm — Luaでスクリプト可能なRustターミナル

**Wezterm**(Wez Furlong作)は2020年から活発に開発が続いているRustベースのターミナル。一行要約: **「Luaコンフィグ + 内蔵マルチプレクサ + マルチOS」**。

特徴:

- **Rust。** wgpu経由でMetal・Vulkan・DX12・OpenGLをすべて使う。

- **Lua設定。** `~/.wezterm.lua`。キーバインド・自動化・イベントフックをフルスクリプティング言語で書く。意図された強力さ。

- **内蔵マルチプレクサ。** `wezterm cli`コマンドで外側からtmuxのような操作ができる。リモートホストのwezterm-mux-serverに接続すれば永続セッションも作れる。

- **Linux・macOS・Windowsネイティブ。** 3OS全てでGPU加速。

- **SSHドメイン。** Wezterm内部でSSH先のペインをローカルのように扱える。

設定例:

-- ~/.wezterm.lua

local wezterm = require 'wezterm'

local config = wezterm.config_builder()

config.font = wezterm.font 'JetBrains Mono'

config.font_size = 14

config.color_scheme = 'GruvboxDark'

config.window_background_opacity = 0.95

config.hide_tab_bar_if_only_one_tab = true

-- キーバインド

config.keys = {

{ key = 't', mods = 'CMD', action = wezterm.action.SpawnTab 'CurrentPaneDomain' },

{ key = 'd', mods = 'CMD', action = wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' } },

{ key = 'D', mods = 'CMD|SHIFT', action = wezterm.action.SplitVertical { domain = 'CurrentPaneDomain' } },

}

-- イベントフック

wezterm.on('update-right-status', function(window, pane)

window:set_right_status(wezterm.strftime '%H:%M:%S')

end)

return config

Weztermを選ぶ理由は明快だ: **すべての設定をコードで管理したく、ひとつの道具でマルチプレクサまで完結させたいとき。** Ghosttyのシンプルさよりも、Weztermの表現力を取る人々。

4章 · Alacritty — もっともシンプルなRustターミナル

**Alacritty**(2017–)はRustターミナルの始祖。哲学は一行: **「描画は速く、それ以外はやらない」。**

- **GPU描画** — OpenGL ES2ベース。ベンチマークでは最速クラス。

- **YAML→TOML設定** — `alacritty.toml`にフォント・色・キーバインドのみ。

- **タブなし、分割なし。** わざと作らない。「それはtmuxの仕事」という立場。

- **すべてのOS** — macOS・Linux・Windows・BSD。

設定例:

~/.config/alacritty/alacritty.toml

[font]

normal = { family = "JetBrains Mono", style = "Regular" }

size = 14

[colors.primary]

background = '#1d2021'

foreground = '#d4be98'

[window]

opacity = 0.95

padding = { x = 12, y = 12 }

decorations = "buttonless"

[keyboard]

bindings = [

{ key = "T", mods = "Command", action = "SpawnNewInstance" },

]

Alacrittyの魅力はシンプルさ。**「ターミナルは文字を描くことだけに集中し、セッション管理はtmuxに任せろ」**。この哲学が好きならAlacrittyが答え。2026年はGhosttyが同じシンプルさにSwiftUIネイティブGUIを乗せて強力な競合となったが、純粋なクロスプラットフォーム互換性ではAlacrittyが依然優位。

5章 · Kitty — GPU加速 + Python設定

**Kitty**(Kovid Goyal、2017–)はCとPythonを混ぜたターミナル。Alacrittyと同時期に登場したが、哲学は正反対: **「機能を盛り込もう」。**

- **GPU描画** — OpenGL。

- **Kitty graphics protocol** — 画像・アイコン・プレビューをインラインで表示。今やGhosttyもWeztermもこのプロトコルを話す(Kittyが事実上の標準化を成し遂げた格好)。

- **kittens** — Pythonで書かれた小さなアプリ群。`icat`(画像ビューア)、`hyperlinked_grep`、`clipboard`など。

- **タブ・スプリット内蔵。** マルチプレクサなしでも実用に足る。

- **confスタイル設定** — `~/.config/kitty/kitty.conf`。主にkey-value。

設定例:

~/.config/kitty/kitty.conf

font_family JetBrains Mono

font_size 14.0

background_opacity 0.95

window_padding_width 12

タブ

map cmd+t new_tab

map cmd+shift+enter toggle_fullscreen

スプリット

enabled_layouts splits,stack

map cmd+d launch --location=vsplit

map cmd+shift+d launch --location=hsplit

Kittyは **「ひとつの道具で全部終わらせたいが、LuaやJSはイヤで、Pythonが好き」** という人向けの選択。科学計算・研究・MLの界隈でよく見る。

6章 · Warp — AIファーストの大博打

**Warp**(2020–)は、新興ターミナルの中でもっとも大胆な賭けをした製品。Y Combinator卒、シリーズBまで調達済み。スローガンは「ターミナルを30年ぶりに再設計する」。

差別化ポイント:

- **Rust + Apple Metal** — macOSの4Kディスプレイでも60fps滑らかに描画。

- **ブロックベースUI** — 各コマンドとその出力をひとつの「ブロック」にまとめ、スクロール・検索・共有・再実行できる。

- **AI統合** — Warp AIが自然言語からコマンドを生成し、出力を解説し、エラーを解釈する。当初は自社LLM統合のみ、その後Claude・GPTもオプションに追加。

- **Warp Drive** — チームでコマンドワークフローを共有するクラウド機能。SaaSの面。

- **Workflows** — パラメータ化されたコマンドテンプレート。シェルエイリアスの発展形。

- **Notebooks** — JupyterのようにMarkdownとコマンドを混ぜるドキュメント形式。

トレードオフ:

- **クラウド依存** — 長らくログイン必須だった(2024年末に部分的な匿名モードを追加)。SREやセキュリティチームに敬遠されることも。

- **macOSファースト** — Linuxは2023年ベータ、2025年に安定。Windowsは依然未対応。

- **シェル互換性** — Warpはシェルをラップして動く。zsh・bash・fishはほぼ動くが、Powerlevel10kのinstant promptなど一部のプロンプト設定と衝突する場合がある。

Warpを選ぶ人々:

- AIアシストが日常業務の一部となり、自然言語→コマンド変換を頻繁に行うエンジニア。

- チームでワークフローを共有したいSRE / DevOpsチーム。

- 「ターミナルはゼロから再設計すべき」という哲学に同意する層。

避ける人々:

- クラウド依存とテレメトリに過敏なセキュリティチーム。

- 「ターミナルは小さくあるべき」というUnix純血主義派。

- Windowsユーザ。

一行で覚えるなら: **Warpは「エディタの進化がVS Codeなら、ターミナルの進化はうちだ」という賭けだ。**

7章 · iTerm2 / Windows Terminal / Tabby / Hyper — 既存勢の現在地

iTerm2 — macOSのクラシック(2008–)

George NachmanのObjC作品。17年間macOSターミナルの標準であり続けた。

- **機能が豊富** — 分割ペイン、トリガー、自動補完、ホットキーウィンドウ、Shell Integrationまで。

- **欠点** — Apple Silicon上ではGPU加速の他ターミナルに比べて遅いという評が定着。

- **2026年の現状** — 安定した保守モード。iTerm2からGhosttyへの移行が加速中。

Windows Terminal — Microsoft公式(2019–)

- **Windows 11標準** — cmd・PowerShell・WSLを一つのウィンドウで扱う。

- **DirectX 11 + DirectWrite描画** — 速い。

- **JSON設定** — `settings.json`に集約。

- **2026年の現状** — Windowsでは事実上の標準。WSLユーザもそのまま使う。

Tabby(旧Terminus) — Electronベースのクロスプラットフォーム(2017–)

- **Electron** — 軽くはないが、macOS・Linux・Windowsで同一挙動。

- **プラグイン生態系** — npmのようなノリでプラグインを入れる。

- **SSH・Telnet・シリアルクライアント内蔵** — PuTTY代替として使う層が一定数。

Hyper — JS/HTML/CSSのElectronターミナル(2016–)

- **Vercel(旧Zeit)製** — テーマをJSとCSSで書く。

- **2026年の現状** — 停滞気味。Electronの重さと性能上限により、新規採用がほぼ止まった。

一行: **2026年にmacOSで新たに始めるならGhosttyかWezterm。WindowsならWindows Terminalが正解。**

8章 · Fish 4(2024) — Rust書き直し

シェルレイヤへ。最大の事件は**Fish 4**だ。

Fish(Friendly Interactive Shell)は2005年からあるが、長らくC++で書かれていた。2024年公開のFish 4は、**C++コードベースのほぼ全体をRustへ移行したメジャーリリース**。PostgreSQLやCPythonなど大型OSSがRust移行を検討するときに引用される代表例だ。

Fishの魅力(Fish 1から続くもの):

- **POSIX非互換** — わざと外している。`if / then / fi`の代わりに`if / end`。好き嫌いが分かれる。

- **オートサジェスト** — 入力中にグレーで補完候補が見える。

- **シンタックスハイライト** — コマンドが存在すれば色が変わる。

- **関数とabbreviation** — エイリアスより豊かな仕組み。

Fish 4の中身:

- **Rustで書き直し** — 起動が速く、メモリが安全で、バイナリも小さい。

- **CMake → Cargo** — ビルドシステム自体が刷新された。

- **互換性は維持** — ユーザ視点ではほぼ違いを感じない。関数・エイリアス・キーバインドはそのまま。

設定例:

~/.config/fish/config.fish

set -gx EDITOR nvim

set -gx PATH $HOME/.cargo/bin $PATH

abbreviation — 入力時に展開される

abbr -a gst git status

abbr -a gco git checkout

abbr -a k kubectl

starshipプロンプト

starship init fish | source

zoxide

zoxide init fish | source

キーバインド

bind \cr 'atuin search'

Fish 4が示すもの:

1. **シェル自身をRustで書き直す流れの号砲。** Nushellは最初からRustだったが、「既存シェルをRustへ移した」最初の大型ケースがFish 4。

2. **C++→Rust移行のケーススタディ。** 段階的なports、相互運用レイヤ、ビルドシステム刷新まで、パターンが公開されている。

3. **ユーザに大きな変化なし。** よく実行されたマイグレーションの定義 — ユーザが気づかずに使い続ける。

9章 · Nushell — 構造化データが流れるシェル

**Nushell**(2019–、Jonathan Turner・Yehuda Katz他)は、シェルのパラダイムを変えようという試み。

既存シェルの前提: **「パイプを流れるのはテキストだ」**。bashでもzshでも、コマンド間を流れるのは改行で区切られた文字列。`ls | grep foo | awk '{print $1}'`のように。

Nushellの前提: **「パイプを流れるのは構造化されたテーブルだ」**。`ls`の出力は行と列を持つテーブルで、次のコマンドはそれを列名で参照できる。

比較:

bash: テキストパース

ls -la | awk '{print $5, $9}' | sort -n

nushell: 構造化データ

ls | select name size | sort-by size

JSON・CSV・TOML・YAML・SQLiteすべて同じ書き方

open data.csv | where age > 30 | select name email

open package.json | get dependencies | columns

HTTPも同じモデル

http get https://api.github.com/repos/nushell/nushell | get stargazers_count

SQLライクな問い合わせも可能

ls | where modified > (date now) - 7day | sort-by modified

Nushellの魅力:

- **構造化データの一貫処理** — JSON・CSV・SQLを同一文法で扱う。

- **型と補完** — 列名をシェルが知っている。

- **クロスプラットフォーム** — Windowsでも一級市民。

- **拡張性** — プラグインをRustで書く。

限界:

- **POSIX非互換** — 既存シェルスクリプトはそのまま動かない。`bash -c '...'`で回避。

- **0.xバージョン** — 文法がいまだ時々壊れる(2026年は安定化フェーズに入ったが、メジャー変更は残っている)。

- **エコシステムが小さい** — Fishやzshほどのプラグイン層はない。

Nushellが最も活きる場面: **データ処理・ops自動化・SREの日常業務。** 「Pythonスクリプトには大げさで、jq/awkパイプラインでは複雑すぎるとき」。その空白に入る。

10章 · Elvish / Murex / xonsh / Oils sh — その他の新興シェル

Nushell以外にも、シェルを再考するプロジェクトはいくつかある。

Elvish

- **Goで書かれている。** 並行性モデルが良い。

- **構造化データ** — list・mapが一級市民。

- **`use`によるモジュール** — 関数ライブラリをimport。

Murex

- **POSIX互換 + 型システム** — bashスクリプトとの互換性を保ちながらJSON・YAML一級市民。

- **イベント駆動** — `event`キーワードでシェルイベントにフック。

xonsh

- **Python + シェルのハイブリッド** — Python式とシェルコマンドを同一行で混ぜる。

- **`$(...)`内のシェルコマンド結果がPythonオブジェクト** — データ分析向き。

Oils sh(旧Oil)

- **Andy Chuのライフワーク** — POSIX互換 + YSH(新文法)の2モード。

- **bash互換 + データ構造 + より良いエラーメッセージ** — bashユーザが「そのまま移れる、より良いシェル」を目指す。

この4シェルはどれも5,000〜20,000スター級。**Nushellが圧倒的1位だが、それぞれ異なる哲学を見せている。** ElvishはGoユーザ、MurexはPOSIX互換を捨てられない人、xonshはデータサイエンティスト、Oilsは「より良いbash」を求める人向け。

11章 · tmux vs Zellij — マルチプレクサ比較

セッション・ウィンドウ・ペインを管理するマルチプレクサ市場は、長らく**tmux**(2007–)の独占だった。GNU screen(1987–)は生きてはいるが事実上の保守モード、dvtmはミニマリスト向け。

2026年の挑戦者は**Zellij**(2020–、Rust)。

tmux — 標準

- **Cで書かれている** — 軽くて速い。

- **すべてのLinux/macOSにほぼ標準で入っている** — どこでも動く。

- **prefixキーモデル** — `Ctrl-B`のようなprefixを押してから次のキー。

- **豊富な設定** — `.tmux.conf`でほぼすべてを変えられる。

- **TPM(Tmux Plugin Manager)** — プラグイン生態系。

設定例:

~/.tmux.conf

set -g prefix C-a

unbind C-b

bind C-a send-prefix

set -g mouse on

set -g history-limit 10000

set -g base-index 1

set -g renumber-windows on

分割

bind | split-window -h -c "#{pane_current_path}"

bind - split-window -v -c "#{pane_current_path}"

ペイン移動

bind h select-pane -L

bind j select-pane -D

bind k select-pane -U

bind l select-pane -R

ステータス

set -g status-style 'bg=#1d2021 fg=#d4be98'

Zellij — モダンな挑戦者

- **Rustで書かれている。**

- **発見しやすいUI** — 画面下に常にキーバインドのヒントが出る。初見でも迷わない。

- **YAML/KDL設定** — `~/.config/zellij/config.kdl`。

- **WASMプラグイン** — Rust・Go他からWASMにコンパイル。

- **レイアウト** — よく使うペイン配置をファイルに保存。

- **フローティングパネル・タブ** — tmuxにはないUX。

比較表:

| 項目 | tmux | Zellij |

| --- | --- | --- |

| 成熟度 | 非常に高い | 中 |

| 学習曲線 | 急 | 緩やか |

| デフォルトUX | prefixキー | 発見しやすいヒント |

| 設定形式 | tmux DSL | KDL |

| プラグイン | TPM | WASM |

| メモリ | 非常に軽い | 軽い |

| リモートSSH | 一級市民 | 可能 |

| どこにでも入っている | はい | いいえ |

**tmuxを選ぶ:** リモートSSHで生活し、全サーバに入っている必要があり、キーバインドが頭に染み付いているシニア。

**Zellijを選ぶ:** ローカル作業がメインで、新たに始める人、「キーを覚えたくない」人。

12章 · Starship — 事実上すべてのシェルの標準プロンプト

プロンプトレイヤ。この市場は**Starship**(2019–、Matt Knox)が事実上統一した。

Starshipの強み:

- **シェル非依存** — bash・zsh・fish・nushell・elvish・xonshすべて対応。

- **Rust** — 高速。Powerlevel10kのinstant prompt技法に頼らずとも十分。

- **TOML一枚** — `~/.config/starship.toml`。

- **120以上のモジュール** — git・node・python・rust・docker・kubernetes・terraform・aws・gcp・azure……

- **カスタムモジュール** が簡単。

インストール:

インストール

curl -sS https://starship.rs/install.sh | sh

シェルに登録(各シェルのrcに1行)

bash: eval "$(starship init bash)"

zsh: eval "$(starship init zsh)"

fish: starship init fish | source

設定例:

~/.config/starship.toml

add_newline = true

format = """

$username\

$hostname\

$directory\

$git_branch\

$git_status\

$nodejs\

$python\

$rust\

$kubernetes\

$character"""

[character]

success_symbol = "[➜](bold green)"

error_symbol = "[➜](bold red)"

[directory]

truncation_length = 3

truncate_to_repo = true

[git_branch]

symbol = " "

format = "[$symbol$branch]($style) "

[kubernetes]

disabled = false

format = '[⛵ $context \($namespace\)](dimmed green) '

その他の選択肢:

- **oh-my-zsh** — zshプラグインフレームワーク。プロンプト + 数百のプラグイン。Starshipより重い。zsh限定。

- **oh-my-posh** — PowerShell・zsh・bash対応。Starshipに最も近い競合。Windowsで人気。

- **Powerlevel10k(p10k)** — zsh専用。もっとも美しく、もっとも速い(instant prompt)zshプロンプト。ただし2022年以降は事実上の保守モード。Starshipへの移行組が多い。

一行で覚えるなら: **2026年に新規で始めるならStarshipが答え。zsh + oh-my-zsh + p10k は今も有効だが、新たに作る理由はない。**

13章 · Rust CLIシリーズ — bat / eza / zoxide / fd / ripgrep / fzf / atuin

Unix標準ユーティリティをRustで書き直した一群。いずれもGitHubスター1万超。

bat — より良い`cat`

bat README.md

シンタックスハイライト + git diff表示 + 自動pager

`alias cat=bat`が定石。

eza(旧exa) — より良い`ls`

eza -la --git --icons

eza -T --level=2 # ツリービュー

オリジナルのexaが保守停止したため、ezaがforkして引き継いだ。類似品に`lsd`。

zoxide — より良い`cd`

最初は普通にcd

cd ~/work/yj-next-blog2

以降はどこからでも

z next-blog2 # フル名

z blog2 # 部分一致

zi # fzfインタラクティブモード

よく行くディレクトリをスコアで学習し、名前の一部だけでジャンプできる。一度馴染むと`cd ../../../foo`に戻れない。

fd — より良い`find`

fd README # 名前にREADMEを含むファイル

fd -e mdx # 拡張子mdx

fd -t f --changed-within 1d # 1日以内に変更されたファイル

`find`の難解な構文(`-name '*foo*' -type f`)を、人間が書ける形に。

ripgrep(rg) — より良い`grep`

rg "fn main" # カレントディレクトリ全体を再帰検索

rg -t rust "TODO" # Rustファイルのみ

rg -i -A 3 "error" # 大文字小文字無視 + マッチ後3行

GitHubのコード検索エンジンの土台。`.gitignore`を自動で尊重し、マルチスレッド+SIMDでgrepより一桁速い。

fzf — ファジーファインダ

ファイル選択

vim "$(fzf)"

Ctrl-Rでシェル履歴

Ctrl-Tでカレントディレクトリのファイル

Alt-Cでcd

任意のパイプに繋ぐ

ls | fzf | xargs cat

インストール後にシェル統合を有効化すると、`Ctrl-R`(履歴)、`Ctrl-T`(ファイル)、`Alt-C`(cd)が即座に書き換わる。1週間で離れられなくなる。

atuin — より良いシェル履歴

インストール後

atuin init zsh | source

atuin import auto

Ctrl-RがatuinのUIに切り替わる

終了コード・実行時間・ディレクトリ・セッション・ホストで検索

オプション: 同期(セルフホスト可)

従来の`.zsh_history`よりはるかに強力な検索。複数マシンで履歴を共有したいときはAtuinのクラウド(またはセルフホスト)に同期する。

まとめてインストール(Homebrew):

brew install bat eza zoxide fd ripgrep fzf atuin starship

zshに一括登録:

~/.zshrcの末尾に

eval "$(starship init zsh)"

eval "$(zoxide init zsh --cmd cd)"

eval "$(atuin init zsh)"

source <(fzf --zsh)

alias ls='eza --icons --git'

alias cat='bat --plain'

alias find='fd'

alias grep='rg'

一行で覚えるなら: **この7本を全部入れるとシェルが別物になる。** 最初の1週間は違和感、その後はGNU coreutilsの一部コマンドを忘れる。

14章 · 韓国・日本 — トスのdotfiles、メルカリのシェル

韓国 — トス・ネイバー・カカオの風景

トス(Viva Republica)のようなモダンスタートアップのシニア開発者のdotfilesリポジトリを覗くと、パターンが見える。

典型的なトス・シニアのmacOSセットアップ:

- **エミュレータ:** Ghostty(2025年以降増加)またはiTerm2

- **シェル:** zsh + oh-my-zsh、またはzsh + zinit(軽量)

- **プロンプト:** Starship(Powerlevel10kからの移行組が多い)

- **マルチプレクサ:** tmux

- **ユーティリティ:** ripgrep + fzf + zoxide + bat + eza + atuin

ネイバーのバックエンドチームのサーバ作業は別風景: Linux + bash + tmux + ripgrep + fzf。Starshipは時々。**「サーバでは、どのマシンにもある道具しか使わない」**が事実上のルール。

カカオはサイロごとの差が大きい。AIチームはzsh + Starship + Nushellを試し、保守的なバックエンドはbash + tmuxのまま。

韓国OSS: GitHubの`karpathy`のスクリプトや`gleitz/howdoi`のようなグローバルなツールが韓国開発者のdotfilesに頻出。それ以外はグローバル動向とほぼ同じ。

日本 — メルカリ・LINE・サイバーエージェント

メルカリのSREチームが公開しているdotfilesは、ちょっとした模範解答になっている。

メルカリ流のmacOSセットアップ:

- **エミュレータ:** iTerm2 → Weztermへ移行する流れ。Ghosttyは2025年後半から。

- **シェル:** zsh + zinit + chezmoi(dotfiles管理)

- **マルチプレクサ:** tmux(リモートEC2に常時attach)

- **プロンプト:** Starship

- **ユーティリティ:** ripgrep + fd + fzf + bat + eza + atuin + direnv

- **追加:** kubectx + kubens(k8sコンテキスト切替)、pet(スニペット管理、日本人作)

LINEヤフーは大規模インフラ特有の保守性: Linux + bash + tmux。SREの一部でNushellを実験中。

サイバーエージェントのAI Labはもっとも先鋭的: WarpでAIを積極活用、Nushellでデータ作業、Zellijも試行。

押さえておきたい日本OSS:

- **pet** — knqyf263作のスニペット/スクラッチマネージャ。fzfと組み合わせてよく使うコマンドを検索する。

- **peco** — fzfに似たインタラクティブフィルタ。日本人作で、古めの日本のdotfilesによく登場する。

- **ghq** — motemen作。GitHubリポジトリを構造化ディレクトリツリーで管理。

一行で覚えるなら: **韓国・日本のシニアdotfilesはグローバル動向の早期採用層。ただし日本は自国OSS(pet・peco・ghq)をより積極的に混ぜる。**

15章 · 誰が何を選ぶべきか — シナリオ別マトリクス

最後の章。「どこで何を使うか」を決める助けになるマトリクス。

macOS — 新規ユーザ

| 項目 | 推奨 | 代替 |

| --- | --- | --- |

| エミュレータ | **Ghostty** | Wezterm |

| シェル | zsh | fish 4 |

| マルチプレクサ | **tmux** | Zellij |

| プロンプト | **Starship** | p10k |

| ユーティリティ | bat + eza + zoxide + fd + rg + fzf + atuin | — |

macOS — AI/デザイン重視

| 項目 | 推奨 | 代替 |

| --- | --- | --- |

| エミュレータ | **Warp** | Ghostty |

| シェル | (Warp内蔵) | — |

| プロンプト | (Warp内蔵) | Starship |

Linuxデスクトップ

| 項目 | 推奨 | 代替 |

| --- | --- | --- |

| エミュレータ | **Ghostty** | Wezterm・Alacritty・Kitty |

| シェル | zsh または fish 4 | bash |

| マルチプレクサ | tmux | Zellij |

| プロンプト | Starship | — |

LinuxサーバSSH

| 項目 | 推奨 | 備考 |

| --- | --- | --- |

| シェル | **bash** | どこにでも入っている |

| マルチプレクサ | **tmux** | ほぼどこにでも入っている |

| ユーティリティ | apt-getでripgrep・fd・batだけ | 入れすぎは運用負担 |

Windows

| 項目 | 推奨 | 代替 |

| --- | --- | --- |

| エミュレータ | **Windows Terminal** | Wezterm・Tabby |

| シェル | PowerShell 7 | WSL + bash/zsh |

| プロンプト | oh-my-posh | Starship |

速度優先

- **エミュレータ:** AlacrittyまたはGhostty

- **シェル:** zsh(簡素な設定)またはfish 4

- **プロンプト:** Starship(あるいは素のPS1)

- **避ける:** Electronベースのターミナル(Hyper・Tabby) — 入力遅延。

デザイン優先

- **エミュレータ:** Ghostty(ネイティブGUI)、Warp(もっとも洗練されたUI)

- **フォント:** JetBrains Mono / Fira Code / IBM Plex Mono / Berkeley Mono(有料)

- **テーマ:** Gruvbox / Catppuccin / Tokyo Night / Rose Pine

エピローグ — ターミナルはもう一度、面白くなった

2014年に「ターミナル何使ってる?」と訊けば答えは2つだった — iTerm2かGNOME Terminal。シェルはbashかzsh。マルチプレクサはtmux。プロンプトはoh-my-zshのテーマのどれか。

2026年の同じ質問には、各レイヤごとに5つの答えが返ってくる。Ghostty・Wezterm・Alacritty・Kitty・Warp。zsh・fish 4・Nushell・bash・Elvish。tmux・Zellij。Starship・p10k・oh-my-posh。

その多様性を生んだのは3つの流れだ:

1. **Rust書き直し。** システムソフトウェアをRustで書き直す波が、シェル・ユーティリティ・マルチプレクサのすべてに到達した。

2. **個人フルタイム作品の復活。** Mitchell HashimotoのGhosttyのように、「会社を離れて2年フルタイム」が可能な時代になった。

3. **AI統合。** Warpがもっとも野心的だが、Cursor・Claude Code・Clineといった道具もシェルとターミナルの境界を曖昧にしつつある。

この記事が、あなたの環境を一度見直すきっかけになれば。すべてを変える必要はない。**エミュレータ一つ、プロンプト一つ、そしてripgrep・fzf・zoxide・atuinあたりを入れるだけで**、日常のシェル作業は別次元になる。

14項目チェックリスト

1. エミュレータをGhostty/Wezterm/Warpのいずれかに切り替える。

2. シェルrcを整理し、Starshipを入れる。

3. Powerlevel10kからStarshipへ移行(p10kが既に気に入っていれば任意)。

4. ripgrepを入れ、`grep`を忘れる。

5. fdを入れ、`find`を忘れる。

6. fzfを入れてシェル統合を有効化(Ctrl-Rの意味が変わる)。

7. zoxideを入れ、`cd`にalias。

8. batを入れ、`cat`にalias。

9. ezaを入れ、`ls`にalias。

10. atuinを入れる(必要ならsyncはセルフホスト)。

11. tmuxまたはZellijでひとつだけ自分のフローを決める。

12. dotfilesリポジトリを作り、chezmoiまたはgit bare repoで管理。

13. フォントをNerd Font系に切り替える(Starshipのアイコンが出る)。

14. WSLやコンテナにも同じ環境を入れる — どこでも同じ感触に。

アンチパターン10選

1. 今からHyperを新規導入する — 遅い。他に選択肢がある。

2. oh-my-zshを全プラグイン有効で入れる — シェル起動が遅くなる。

3. tmux設定を1000行にする — 半年後に自分が読めない。

4. p10kを新規導入する — Starshipへ。

5. Nushellをサーバ自動化スクリプトに使う — 0.x由来の破壊的変更リスク。

6. Warpだけ入れて他の選択肢を見ない — クラウド依存のコストが年々増し得る。

7. zsh・bash・fishを並行してメインで使う — rcファイルが3本になる。ひとつに絞る。

8. dotfilesなしで新マシンをセットアップ — 30分の仕事が3時間に。

9. atuinを入れてsyncを検討しない — 履歴がクラウドへ送られる。

10. Ghosttyがリリースされた直後に会社全体の標準として強制する — 1年待ち、自分のマシンで十分検証してから。

次回予告

- 「dotfiles管理 — chezmoi vs Nix vs git bare repo vs Stow比較」

- 「Nerd Fonts・プログラミングフォント 2026 — JetBrains Mono・Berkeley Mono・MonoLisa・Comic Code比較」

- 「tmux 30分マスター — 新規ユーザのための最小構成」

参考 / References

- [Ghostty 公式サイト](https://ghostty.org/)

- [Ghostty GitHub](https://github.com/ghostty-org/ghostty)

- [Mitchell HashimotoのGhostty 1.0発表](https://mitchellh.com/writing/ghostty-1-0-reflection)

- [Wezterm 公式サイト](https://wezfurlong.org/wezterm/)

- [Wezterm GitHub](https://github.com/wez/wezterm)

- [Alacritty 公式](https://alacritty.org/)

- [Alacritty GitHub](https://github.com/alacritty/alacritty)

- [Kitty 公式](https://sw.kovidgoyal.net/kitty/)

- [Kitty GitHub](https://github.com/kovidgoyal/kitty)

- [Warp 公式](https://www.warp.dev/)

- [iTerm2 公式](https://iterm2.com/)

- [Windows Terminal GitHub](https://github.com/microsoft/terminal)

- [Tabby 公式](https://tabby.sh/)

- [Hyper 公式](https://hyper.is/)

- [Fish 4 リリースノート](https://fishshell.com/release_notes.html)

- [Fish 公式](https://fishshell.com/)

- [Nushell 公式](https://www.nushell.sh/)

- [Nushell GitHub](https://github.com/nushell/nushell)

- [Elvish 公式](https://elv.sh/)

- [Murex 公式](https://murex.rocks/)

- [xonsh 公式](https://xon.sh/)

- [Oils sh 公式](https://www.oilshell.org/)

- [tmux GitHub](https://github.com/tmux/tmux)

- [Zellij 公式](https://zellij.dev/)

- [Zellij GitHub](https://github.com/zellij-org/zellij)

- [Starship 公式](https://starship.rs/)

- [oh-my-zsh](https://ohmyz.sh/)

- [oh-my-posh](https://ohmyposh.dev/)

- [Powerlevel10k GitHub](https://github.com/romkatv/powerlevel10k)

- [bat GitHub](https://github.com/sharkdp/bat)

- [eza 公式](https://eza.rocks/)

- [zoxide GitHub](https://github.com/ajeetdsouza/zoxide)

- [fd GitHub](https://github.com/sharkdp/fd)

- [ripgrep GitHub](https://github.com/BurntSushi/ripgrep)

- [fzf GitHub](https://github.com/junegunn/fzf)

- [atuin 公式](https://atuin.sh/)

- [chezmoi 公式](https://www.chezmoi.io/)

- [pet (スニペット管理)](https://github.com/knqyf263/pet)

- [peco (fzf的なフィルタ)](https://github.com/peco/peco)

- [ghq](https://github.com/x-motemen/ghq)

- [メルカリ エンジニアリングブログ](https://engineering.mercari.com/)

현재 단락 (1/476)

10年間、ターミナルは「退屈な道具」だった。1990年代に固まったxtermモデルの上に、iTerm2(2008)・GNU screen(1987)・tmux(2007)がほぼすべてを整理してくれてい...

작성 글자: 0원문 글자: 20,016작성 단락: 0/476