11
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WSL: シェルをBashからZshへ変更する

Last updated at Posted at 2023-08-01

はじめに

Windows機の買い替えにより、WSLを新規にいれました。まっさらのUbuntu(22.04)をインストールしましたので、その際のシェルをbash->Zshへと変更手順した際の備忘録です。

シェルとは

Linuxにおけるシェルとは、Linuxの核となるカーネルへ要求を伝達するプログラムです。ユーザーとLinuxOSを繋ぐインターフェイスの役割を果たしています。

Shell: bash -> Zshへ

  • WSL:OSリリース確認
Ubuntu
$ lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.2 LTS
Release:        22.04
Codename:       jammy
  • 現在のシェルの確認
Ubuntu
$ echo $SHELL
/bin/bash
  • 現在設定できるシェルの確認
Ubuntu
$ cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/sh
/bin/dash
/usr/bin/dash
/usr/bin/tmux
/usr/bin/screen
  • シェルZshのインストール
Ubuntu
$ sudo apt-get update
$ sudo apt-get install zsh
  • バージョン確認
Ubuntu
$ zsh --version
  • シェルの変更
Ubuntu
$ chsh -s /bin/zsh
  • 新しいターミナルを立ち上げて、空の設定ファイルを作成する
Ubuntu
$ touch ~/.zshrc
  • 現在のシェルの確認
Ubuntu
$ echo $SHELL
/bin/zsh

Zshのコマンド操作・設定

コマンド操作の基本例

コマンド 説明
!! 直前のコマンドを実行
control + r Historyのコマンド検索
control + a カーソルを先頭
control + k カーソルから行末まで削除
control + e カーソルを行末へ
control + b カーソルを1文字戻る
control + f   カーソルを1文字進める
control + d カーソル位置の文字を削除

設定の例(スペルミスやHISTORY系中心に)

Ubuntu
$ vim ~/.zshrc

setopt auto_cd            #一致するディレクトリに cdなしで移動できる
setopt correct              #コマンドのスペルを修正(正しい可能性のある候補を表示)
setopt correct_all          #コマンドラインの引数のスペルを修正
setopt hist_ignore_dups     #直前と同じコマンドは履歴に追加しない
setopt share_history      #他のzshで履歴を共有する
setopt inc_append_history  #即座に履歴を保存する

$ source ~/.zshrc

History 設定

Ubuntu
$ vim ~/.zshrc

export HISTFILE=~/.zsh_history
export HISTSIZE=10000
export SAVEHIST=10000

$ source ~/.zshrc にて反映

Oh My Zshのインストール

Oh My Zshは、Zsh構成を管理するためのオープンソースのコミュニティ主導のフレームワークです

  • インストール
Ubuntu
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  • いままでの設定ファイルをバックアップから追記で戻す
Ubuntu
$ cat ~/.zshrc.pre-oh-my-zsh >> ~/.zshrc

Oh My Zshプラグイン

①powerlevel10k

  • FONTのインストール
  • ターミナルのフォント設定の変更
  • インストール(githubのOhmyzshのところを確認)
Ubuntu 
$ git clone --depth=1 https://github.com/romkatv/powerlevel10k.git${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
  • 設定ファイルのテーマを編集(Set ZSH_THEME="powerlevel10k/powerlevel10k" in ~/.zshrc.)

②zsh-autosuggetion

  • インストール(githubのOhmyzshのところを確認)
Ubuntu
$ git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
  • 設定ファイル plugin に追記

③zsh-syntax-highlighting

  • インストール(githubのOhmyzshのところを確認)
Ubuntu
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
  • 設定ファイル plugin に追記

おまけ:モダンなコマンド追加

①exaのインストール

lsの代替コマンドです。とてもカラフルでいい感じです。

  • cargoのインストール
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • exaのインストール
$ cargo install exa

を実行すると、error: linker cc not found というエラーが発生する。
gccがないためなので、以下を実行しgccやmakeをインストールした後に、再度、exaのインストールを実行する

$ sudo apt install build-essential

$ gcc --version

以下のコマンドで、カラフルでアイコンまでついた表示となるので、エイリアス登録しておく。

$ exa -aal --icons

②batのインストール

catの代替コマンド

  • batのインストール
$ sudo apt install bat

Githubに下記のように書いてあり、 batcat というコマンド名でインストールされるので、エイリアス登録 alias cat="batcat" を行う。

Important: If you install bat this way, please note that the executable may be installed as batcat instead of bat (due to a name clash with another package).

最終的にこんな感じ

ubuntu.png

まとめ

  • Zshの設定やOh-My-Zshのプラグインはまだまだたくさんありますので、徐々にいれていきます。今回は初期設定と見た目を元に戻すことを実施しました。

参考URL

11
9
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
11
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?