シェル環境設定の世界をのぞいてみる
先日、「シェル環境」に関する勉強会に参加しました。
普段なんとなく使っていたターミナルですが、設定次第で使いやすくておしゃれな開発環境に進化することを知りました。
この記事では、初学者の目線で学んだこと・感じたこと・今日からできることをまとめています。
シェル環境とは
ターミナルに表示される user@hostname:/path$ みたいなアレ。
これがプロンプトと呼ばれるもので、$PS1 という環境変数に入っています
echo $PS1
試しに叩くと謎の文字列が出てきます
プロンプトはプラグインでおしゃれにする時代らしい
代表的なのがこの2つ
Powerlevel10k(P10K)
- 見た目が超リッチ
- Zshユーザーの定番
Starship
- どのシェルでも使える
- シンプルかつ高速
プロンプトに表示される情報は意外と重要で
- 現在のディレクトリ
- Gitの状態(変更 / ブランチ名)
- 直前のコマンドの終了コード
- ホスト名(サーバー操作のとき便利)
これらが見えるだけで、日常のコマンド実行が驚くほど楽になると学びました。
標準コマンドの代替ツールを知る
「cd」「ls」「find」など、普段使っているコマンドにも、より快適に使える置き換えツールがあるという話がとても面白かったです。
| 元コマンド | 代替ツール | 特徴 |
|---|---|---|
| cd | zoxide | あいまい検索で高速移動 |
| ls | eza/exa | 色付きで見やすい |
| find | fd | Rust製、高速+直感的 |
| grep | ripgrep (rg) | 最速級の検索ツール |
| cat | bat | シンタックスハイライト付き |
FZFがシェルを"GUIみたい"にしてくれる
初学者的に一番驚いたのがFZF(Fuzzy Finder)
fd -t d | fzf
これだけで、
- ディレクトリ一覧を表示
- インクリメンタル検索
- Enterで移動
という超直感的UIがターミナル内に出ます。
Zeno.zsh:Aliasを超える魔法のような補完ツール
勉強会で最も推されていたのがZeno.zsh
Abbreviation(略語展開)
-
gs→git status --short --branch - スペースを押したタイミングで展開される
- Alias と違って、展開された後にコマンド内容が見えるのがポイント。
FZFベースの補完
-
cd+ TABでディレクトリ一覧が出る - プレビューまで見える
履歴検索が強すぎる
- Ctrl+R → FZF UI で履歴を検索
「Alias全部消して、Zenoに任せてほしい」という登壇者の言葉が印象的でした。
dotfiles — シェル設定は自分の資産
今回一番胸に刺さったメッセージがこれです
「シェル設定はあなたの資産です。」
- PCが壊れたら設定はすべて消える
- 過去の設定に戻したいときも困る
- 他のPCで環境を再現できない
だから設定ファイル(dotfiles)を GitHub で管理するのが大事。
dotfiles に含めるもの
.zshrc.p10k.zsh-
.vimrc/ Neovim設定 - zoxide/bat などの設定
絶対NG
- SSH秘密鍵
- APIキー
最初は全部自動化しなくて良い
まずは GitHub に1コミットしてみることから始めよう、というのが勇気づけられました。
初学者として感じたこと
- ターミナルは「黒い画面」じゃなくて「育てる道具」
- プラグインを使えば難しい部分は飛ばせる
- 設定が資産になるという考え方を初めて知った
参考リンク
- Powerlevel10k: https://github.com/romkatv/powerlevel10k
- Starship: https://starship.rs/
- FZF: https://github.com/junegunn/fzf
- Zeno.zsh: https://github.com/yuki-yano/zeno.zsh
- zoxide: https://github.com/ajeetdsouza/zoxide
- eza: https://github.com/eza-community/eza
- bat: https://github.com/sharkdp/bat
- ripgrep: https://github.com/BurntSushi/ripgrep
- fd: https://github.com/sharkdp/fd