👑

Ubuntu 24.04 on WSL2にZSHをインストール

2024/05/03に公開

ZSH のインストール

https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH

$ sudo apt install zsh
$ zsh --version
zsh 5.9 (x86_64-ubuntu-linux-gnu)

ZSH の起動

現在のシェルの確認

$ echo $SHELL
/bin/bash

使用できるシェルの確認

$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/usr/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/dash
/usr/bin/tmux
/bin/zsh
/usr/bin/zsh
/usr/bin/zsh

ZSH をログインシェルに設定

$ chsh -s /bin/zsh

WSL2 の再起動

PowerShell を起動して WSL2 をシャットダウンする

$ wsl --shutdown

WSL2 を起動するとログインシェルが ZSH に変更される

$ echo $SHELL
/bin/zsh

Oh My Zsh のインストール

https://ohmyz.sh/

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

Git で管理している zsh の設定ファイルを反映させる

設定ファイルをクローン

https://github.com/chidoriashi1990/zsh

$ git clone https://github.com/chidoriashi1990/zsh.git
$ cp ~/zsh/zshrc ~/.zshrc
$ source ~/.zshrc

プラグイン等の追加

zsh-autosuggestions

https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md#oh-my-zsh

$ git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

starship

インストール

https://starship.rs/ja-JP/guide/#🚀-インストール

$ curl -sS https://starship.rs/install.sh | sh

設定

https://starship.rs/ja-JP/config/

$ mkdir -p ~/.config
$ cp ~/zsh/starship.toml ~/.config/starship.toml

nvm

https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-updating

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

~/.zshrcに以下の記載がなければ追加する

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

pyenv

https://github.com/pyenv/pyenv

依存関係の不足でBUILD FAILEDエラーが出力される可能性があるため以下のコマンドで依存関係のライブラリをインストールする

$ sudo apt update
$ sudo apt install build-essential libbz2-dev libdb-dev \
  libreadline-dev libffi-dev libgdbm-dev liblzma-dev \
  libncursesw5-dev libsqlite3-dev libssl-dev \
  zlib1g-dev uuid-dev tk-dev
$ sudo apt-get install make gcc
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ cd ~/.pyenv && src/configure && make -C src
$ exec "$SHELL"
# バージョンの確認
$ pyenv install -l

# インストール
$ pyenv install 3.12.3
$ pyenv global  3.12.3

# 確認
$ python -V
Python 3.12.3

設定ファイルを反映

$ source ~/.zshrc

その他

Zenn CLI

https://zenn.dev/zenn/articles/install-zenn-cli

Git

$ git config --global user.name "chidoriashi1990"
$ git config --global user.email chidoriashi1990@example.com

AWS CLI

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ sudo apt install unzip
$ unzip awscliv2.zip
$ sudo ./aws/install
$ rm awscliv2.zip ; rm -rf ./aws
$ aws --version

Proxy

username: chidoriashi1990
password: foobar
host: proxy.example.co.jp
port: 8088
URI: http://chidoriashi1990:foobar@proxy.example.co.jp:8088

# npm
$ npm -g config set proxy http://chidoriashi1990:foobar@proxy.example.co.jp:8088
$ npm -g config set https-proxy http://chidoriashi1990:foobar@proxy.example.co.jp:8088

# pip
pip config set global.proxy http://chidoriashi1990:foobar@proxy.example.co.jp:8088

# git
$ git config --global http.proxy http://chidoriashi1990:foobar@proxy.example.co.jp:8088
$ git config --global https.proxy http://chidoriashi1990:foobar@proxy.example.co.jp:8088

# env
export HTTP_PROXY=http://chidoriashi1990:foobar@proxy.example.co.jp:8088 \
export HTTPS_PROXY=http://chidoriashi1990:foobar@proxy.example.co.jp:8088 \
export http_proxy=http://chidoriashi1990:foobar@proxy.example.co.jp:8088 \
export https_proxy=http://chidoriashi1990:foobar@proxy.example.co.jp:8088
GitHubで編集を提案

Discussion