👑

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

に公開

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

AWSume

https://awsu.me/

pip install awsume

# AWSumeの初期セットアップ用のツール
awsume-configure

https://github.com/Sordie/AWSume

git clone https://github.com/Sordie/AWSume.git $ZSH_CUSTOM/plugins/awsume/

plugins=(... awsume)

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