Linux で fish shell を使う

以下をやります。

  1. ユーザーを作る
  2. Linuxbrew を入れる
  3. fish shell を入れる

ちなみにマシンはAmazonLinux2です。

ユーザーを作る

自分(ここではnju33)ユーザーを作ります。パスワードも設定しておきます。

sudo useradd -G wheel nju33
sudo passwd nju33

そして、sudoが使えるようにvisudoで以下の行のコメントを外しておきます。(#を消す)

# %wheel        ALL=(ALL)       NOPASSWD: ALL

Linuxbrew を入れる

公式サイトにかかれている以下のインストールコマンドを実行します。

sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
# ==> This script will install:
# /home/linuxbrew/.linuxbrew/bin/brew
# /home/linuxbrew/.linuxbrew/share/doc/homebrew
# ...

おそらく/home/linuxbrewができたと思います。今のところ/home/linuxbrew/.linuxbrew/bin/brewbrewコマンドを使います。

fish shell を入れる

以下でfishをインストールします。

/home/linuxbrew/.linuxbrew/bin/brew instaill fish
# ==> Installing dependencies for hello: patchelf, zlib, binutils, linux-headers, glibc, m4, gmp, mpfr, libmpc, isl@0.18 and gcc
# ==> Installing hello dependency: patchelf

そしてfishを使いたいユーザーの~/.config/fish/fish.configを以下の内容にします。まず~/.config/fish/を作ります。

mkdir -p ~/.config/fish

そしてviなどで以下のようにファイルを作ります。これでbrewとそれを使ってインストールしたものへのパスが通り使えるようになります。

set -x HOMEBREW_PREFIX /home/linuxbrew/.linuxbrew
set -x HOMEBREW_CELLAR /home/linuxbrew/.linuxbrew/Cellar
set -x HOMEBREW_REPOSITORY /home/linuxbrew/.linuxbrew/Homebrew
set -x PATH /home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin $PATH
set -x MANPATH /home/linuxbrew/.linuxbrew/share/man $MANPATH
set -x INFOPATH /home/linuxbrew/.linuxbrew/share/info $INFOPATH

デフォルトシェルを fish shell にする

そのユーザーでログインした時にfishで始められるようにします。それにはまず、/etc/shellsfishbinまでのパスを追加してあげます。

sudo viなどで/etc/shellsを開いて、以下の一行を追加します。

/home/linuxbrew/.linuxbrew/bin/fish

chsh -lで上の一行が増えていれば大丈夫です。

chsh -s [chsh -l 結果のどれか]でそのユーザーのデフォルトシェルを切り替えられます。ではfishに変えます。

chsh -s /home/linuxbrew/.linuxbrew/bin/fish
# Changing shell for nju33.
# Password: 
# Shell changed.

ここまで終わったらログインし直します。

おまけ oh-my-fish を入れる

ログインし直すと、brewfishなどが使えるようになっていると思います。(もし、使えない場合は.config/fish/config.fishを確認してください)

fishが使えるのでoh-my-fish推奨の以下でただ入れることができます。

curl -L https://get.oh-my.fish | fish

僕が好きなedenテーマも入れます。

omf install eden
# Updating https://github.com/oh-my-fish/packages-main master... Done!
# Installing package eden
# ✔ eden successfully installed.