はじめに
今回の記事は過去の自分に向けたドキュメントのつもりで書いております。
冗長な部分もあるかもしれませんがご容赦ください。
ターミナルってかっこいいですよね
対象者🙋♂️
- いつも使っているターミナルをかっこよくしたい人
- コマンド入力をより便利にしたい人
- Windowsでもzshを使いたいという人
※Windows11ユーザ目線で書いていますが、最近のMacは最初からzshなので途中の設定は使えるはず。。。
完成イメージはこちら
- 見た目が派手 👈️
- 現在のbranchを表示
- コマンド部分をハイライト
- cdコマンドを省略できる
- 入力履歴をもとにコマンドをサジェストする
- ctrl+rで入力履歴をグラフィカルに表示&選択可能
やること
ツールのインストール
Windowsユーザーの方はMicrosoft Storeで「Windows Terminal」をインストールしてください。
タブ機能とか複数種類のターミナルが開けたり、多機能でかなり便利です。
WSL2の設定
WSL2とは?
Linux 用 Windows サブシステム (WSL) を使用すると、開発者は、従来の仮想マシンまたはデュアルブート セットアップのオーバーヘッドなしで、ほとんどのコマンドライン ツール、ユーティリティ、アプリケーションなどを含む GNU/Linux 環境を、変更せずに Windows 上で直接実行できます。
Windows上でLinuxが使えるようになるものです。
自分の環境では設定済みでしたので、思い出しながら書きます。
PowerShellを管理者権限で開いて以下を実行
wsl --install
インストール完了後に再起動を求められるので、PCを再起動。
powershellで以下のコマンドを打つと、Ubuntuが入ってるはず
ユーザー名とパスワードの設定
Windows TerminalからUbuntuを開くと、Linux用のユーザー名とパスワードの設定を求められる。
今後よく使うので、パスワードは忘れないように控えておく。
設定後は、最初のお作法としてこれをとりあえず打っておく。
$ sudo apt update && sudo apt upgrade
zshに変更
現在のshell確認
$ echo $SHELL
おそらく/bin/bash
と表示される。
zshのインストール&変更
$ sudo apt install zsh
$ chsh -s $(which zsh)
ここまで終わったら、ターミナルを開き直すことでzshに変更されている。
$ echo $SHELL
以下のように表示されていたら成功
/usr/bin/zsh
oh my zshのインストール
oh my zshとは?(以下、公式の翻訳)
Oh My Zsh は、Zsh 構成を管理するための、楽しくオープン ソースのコミュニティ主導型フレームワークです。何千もの便利な機能、ヘルパー、プラグイン、テーマ、そして思わず叫びたくなるような機能がバンドルされています...
ターミナルのテーマを変更したり、便利なプラグインを入れたりできます。
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
インストールが完了したら、カラフルな画面が表示される。
プラグインのインストール
zshの拡張機能にはインストール方法が色々ありますが、今回はoh my zshのプラグインとして導入したいと思います。
$ git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
pecoのインストール
pecoとは?
シンプルなインタラクティブフィルタリングツール
検索履歴、gitブランチ、Dockerコンテナなどなど...をグラフィカルに表示してくれるものです。
検索してみると様々な方が便利な設定をしているので、興味のある方は調べてみてください。
$ sudo apt install peco
.zshrcの設定
zshの設定は.zshrcに記載していきます。
何かしらのエディタでファイルを開きましょう。
$ vim ~/.zshrc
$ code ~/.zshrc
以下に自分の設定したものを載せます。
自分の好みでいろいろな設定を弄りましたが、不要なものがあれば外してください。
~~~
# テーマ設定
ZSH_THEME="agnoster"
~~~
plugins=(
git
zsh-syntax-highlighting
zsh-autosuggestions
)
~~~
# zsh の補完機能有効化
autoload -Uz compinit && compinit -u
# alias
alias d='docker'
alias dc='docker compose'
# ctrl+d でのログアウト対策
setopt IGNOREEOF
# Ctrl+s のロック, Ctrl+q のロック解除を無効にする
setopt no_flow_control
# 同時に起動したzsh の間で履歴を共有する
setopt share_history
# 直前と同じコマンドの場合は履歴に追加しない
setopt hist_ignore_dups
# 同じコマンドを履歴に残さない
setopt hist_ignore_all_dups
# ディレクトリ名だけでcd する
setopt auto_cd
# ctrl+r で過去に実行したコマンドを選択できるようにする。
function peco-select-history() {
BUFFER=$(\history -n -r 1 | peco --query "$LBUFFER")
CURSOR=$#BUFFER
zle clear-screen
}
zle -N peco-select-history
bindkey '^r' peco-select-history
今回はこちらのテーマを設定しました。
※このテーマを設定する場合は、そのままだと文字化けが起こるのでフォントのインストールが必要です。
Powerline fontsのインストール
少し手間ですが、一度WSL内にクローンした後、PowerShellを使用してインストールします。
これでWindows Terminalのフォントを変更することができるようになります。
$ cd /var/tmp # 適当なディレクトリに移動する
$ git clone https://github.com/powerline/fonts.git
PowerShellを管理者権限で開く。
クローンした場所のパスはエクスプローラー等で確認。
cd \\wsl.localhost\Ubuntu\var\tmp\fonts
Set-ExecutionPolicy Bypass
.\install.ps1
Set-ExecutionPolicy Default
少し時間がかかるので待つ。
インストールが完了したら、Windows Terminalを開き、以下の場所にあるフォントを変更する
設定 > プロファイル > Ubuntu > 外観 > フォントフェイス
Powerlineと記載のあるフォントならだいたい大丈夫のはず。
自分は「Droid Sans Mono for Powerline」を選択しました。
おわりに
自分もまだまだ勉強中ですが、いったん自分が満足するものを作れました。
いままで黒い画面に苦手意識のあった方が、興味を持つきっかけになると嬉しいです。
参考
- Windows Subsystem for Linux に関するドキュメント
- WSL を使用して Windows に Linux をインストールする方法
- oh my zsh
- oh my zshテーマ一覧
- zsh-autosuggestionsのインストール
- zsh-syntax-highlightingのインストール
- peco
- fonts