はじめに
Windows機の買い替えにより、WSLを新規にいれました。まっさらのUbuntu(22.04)をインストールしましたので、その際のシェルをbash->Zshへと変更手順した際の備忘録です。
シェルとは
Linuxにおけるシェルとは、Linuxの核となるカーネルへ要求を伝達するプログラムです。ユーザーとLinuxOSを繋ぐインターフェイスの役割を果たしています。
Shell: bash -> Zshへ
- WSL:OSリリース確認
$ lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 22.04.2 LTS
Release: 22.04
Codename: jammy
- 現在のシェルの確認
$ echo $SHELL
/bin/bash
- 現在設定できるシェルの確認
$ 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のインストール
$ sudo apt-get update
$ sudo apt-get install zsh
- バージョン確認
$ zsh --version
- シェルの変更
$ chsh -s /bin/zsh
- 新しいターミナルを立ち上げて、空の設定ファイルを作成する
$ touch ~/.zshrc
- 現在のシェルの確認
$ echo $SHELL
/bin/zsh
Zshのコマンド操作・設定
コマンド操作の基本例
コマンド | 説明 |
---|---|
!! | 直前のコマンドを実行 |
control + r | Historyのコマンド検索 |
control + a | カーソルを先頭 |
control + k | カーソルから行末まで削除 |
control + e | カーソルを行末へ |
control + b | カーソルを1文字戻る |
control + f | カーソルを1文字進める |
control + d | カーソル位置の文字を削除 |
設定の例(スペルミスやHISTORY系中心に)
$ 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 設定
$ vim ~/.zshrc
export HISTFILE=~/.zsh_history
export HISTSIZE=10000
export SAVEHIST=10000
$ source ~/.zshrc にて反映
Oh My Zshのインストール
Oh My Zshは、Zsh構成を管理するためのオープンソースのコミュニティ主導のフレームワークです
- インストール
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
- いままでの設定ファイルをバックアップから追記で戻す
$ cat ~/.zshrc.pre-oh-my-zsh >> ~/.zshrc
Oh My Zshプラグイン
①powerlevel10k
- FONTのインストール
- ターミナルのフォント設定の変更
- インストール(githubのOhmyzshのところを確認)
$ 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のところを確認)
$ git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
- 設定ファイル plugin に追記
③zsh-syntax-highlighting
- インストール(githubのOhmyzshのところを確認)
$ 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).
最終的にこんな感じ
まとめ
- Zshの設定やOh-My-Zshのプラグインはまだまだたくさんありますので、徐々にいれていきます。今回は初期設定と見た目を元に戻すことを実施しました。
参考URL