4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL2でシェルをzshに変更して優勝する

Last updated at Posted at 2024-09-27

はじめに

今回の記事は過去の自分に向けたドキュメントのつもりで書いております。
冗長な部分もあるかもしれませんがご容赦ください。

ターミナルってかっこいいですよね

対象者🙋‍♂️

  • いつも使っているターミナルをかっこよくしたい人
  • コマンド入力をより便利にしたい人
  • Windowsでもzshを使いたいという人

※Windows11ユーザ目線で書いていますが、最近のMacは最初からzshなので途中の設定は使えるはず。。。

完成イメージはこちら

  1. 見た目が派手 👈️
  2. 現在のbranchを表示
  3. コマンド部分をハイライト
  4. cdコマンドを省略できる
  5. 入力履歴をもとにコマンドをサジェストする
  6. ctrl+rで入力履歴をグラフィカルに表示&選択可能

display

peco

やること

ツールのインストール

Windowsユーザーの方はMicrosoft Storeで「Windows Terminal」をインストールしてください。

タブ機能とか複数種類のターミナルが開けたり、多機能でかなり便利です。

image.png

WSL2の設定

WSL2とは?

Linux 用 Windows サブシステム (WSL) を使用すると、開発者は、従来の仮想マシンまたはデュアルブート セットアップのオーバーヘッドなしで、ほとんどのコマンドライン ツール、ユーティリティ、アプリケーションなどを含む GNU/Linux 環境を、変更せずに Windows 上で直接実行できます。

Windows上でLinuxが使えるようになるものです。
自分の環境では設定済みでしたので、思い出しながら書きます。

PowerShellを管理者権限で開いて以下を実行

PowerShell
wsl --install

インストール完了後に再起動を求められるので、PCを再起動。

powershellで以下のコマンドを打つと、Ubuntuが入ってるはず
image.png

ユーザー名とパスワードの設定

Windows TerminalからUbuntuを開くと、Linux用のユーザー名とパスワードの設定を求められる。
今後よく使うので、パスワードは忘れないように控えておく。

設定後は、最初のお作法としてこれをとりあえず打っておく。

bash
$ sudo apt update && sudo apt upgrade

zshに変更

現在のshell確認

bash
$ echo $SHELL

おそらく/bin/bashと表示される。

zshのインストール&変更

bash
$ sudo apt install zsh
$ chsh -s $(which zsh)

ここまで終わったら、ターミナルを開き直すことでzshに変更されている。

zsh
$ echo $SHELL

以下のように表示されていたら成功
/usr/bin/zsh

oh my zshのインストール

oh my zshとは?(以下、公式の翻訳)

Oh My Zsh は、Zsh 構成を管理するための、楽しくオープン ソースのコミュニティ主導型フレームワークです。何千もの便利な機能、ヘルパー、プラグイン、テーマ、そして思わず叫びたくなるような機能がバンドルされています...

ターミナルのテーマを変更したり、便利なプラグインを入れたりできます。

zsh
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

インストールが完了したら、カラフルな画面が表示される。

プラグインのインストール

zshの拡張機能にはインストール方法が色々ありますが、今回はoh my zshのプラグインとして導入したいと思います。

zsh
$ git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
zsh
$ 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コンテナなどなど...をグラフィカルに表示してくれるものです。
検索してみると様々な方が便利な設定をしているので、興味のある方は調べてみてください。

zsh
$ sudo apt install peco

.zshrcの設定

zshの設定は.zshrcに記載していきます。
何かしらのエディタでファイルを開きましょう。

zsh
$ vim ~/.zshrc
zsh
$ code ~/.zshrc

以下に自分の設定したものを載せます。

自分の好みでいろいろな設定を弄りましたが、不要なものがあれば外してください。

.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のフォントを変更することができるようになります。

zsh
$ cd /var/tmp # 適当なディレクトリに移動する
$ git clone https://github.com/powerline/fonts.git

PowerShellを管理者権限で開く。
クローンした場所のパスはエクスプローラー等で確認。

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」を選択しました。

おわりに

自分もまだまだ勉強中ですが、いったん自分が満足するものを作れました。
いままで黒い画面に苦手意識のあった方が、興味を持つきっかけになると嬉しいです。

参考

参考にさせていただいた記事🙇‍♂️

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?