低スペックノートPCに Xubuntu21.04 を minimal install して fish を入れたお話 ~2~


# 初めに
本記事は、実家で捨てられそうになっていたWindowsノートPCを助けて、Xubuntu21.04を導入し、bashをfishに切り替えるお話です。

大きく分けてXubuntu編とfish編の2つに分けて記事を書いてあります。
「fish編」になりますので必要に応じて、必要に応じて「[xbuntu編](https://qiita.com/RiRyCasals/items/9ea9ad5bc58f5dc5c3fe)」を参照してください。

使用している画像は、 Virtual box に Xubuntu21.04 をインストールしてキャプチャしたものです。

## fishとは
押さえておくべきポイントは以下の通り。

- コマンドライン**シェルの1つ**
- **ユーザーフレンドリ**である

ユーザーフレンドリとは、使い勝手が良いことやわかりやすいことを指します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/6587a30b-386b-b8c3-570e-178f97f72bbd.png)
とくに**コマンドやディレクトリに対して色が付与される**のが、CUIになれていない人にとって助かることでしょう。

他のシェルとの違いなどは [fish shell チュートリアル](http://fish.rubikitch.com/tutorial/#:~:text=fish%E3%81%AF%E3%83%95%E3%83%AB%E8%A3%85%E5%82%99%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%B7%E3%82%A7%E3%83%AB%20%28bash%E3%82%84zsh%E5%90%8C%E6%A7%98%29%E3%81%A7%E3%80%81%E8%B3%A2%E3%81%8F%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%95%E3%83%AC%E3%83%B3%E3%83%89%E3%83%AA%E3%83%BC%E3%81%A7%E3%81%99%E3%80%82.%20fish%E3%81%AF%20%E3%82%B7%E3%83%B3%E3%82%BF%E3%83%83%E3%82%AF%E3%82%B9%E3%83%8F%E3%82%A4%E3%83%A9%E3%82%A4%E3%83%88%20%E3%80%81,%E3%82%AA%E3%83%BC%E3%83%88%E3%82%B5%E3%82%B8%E3%82%A7%E3%82%B9%E3%83%81%E3%83%A7%E3%83%B3%20%E3%80%81%E7%9F%A5%E8%AD%98%E3%82%BC%E3%83%AD%E3%83%BB%E8%A8%AD%E5%AE%9A%E3%82%BC%E3%83%AD%E3%81%A7%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E5%8B%95%E4%BD%9C%E3%81%99%E3%82%8B%20TAB%E8%A3%9C%E5%AE%8C%20%E3%82%92%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82.%20%E3%82%82%E3%81%97%E3%80%81%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%92%E3%82%82%E3%81%A3%E3%81%A8%E7%94%9F%E7%94%A3%E7%9A%84%E3%81%AB%E3%80%81%E4%BE%BF%E5%88%A9%E3%81%AB%E3%80%81%E6%A5%BD%E3%81%97%E3%81%84%20%28%E9%9B%A3%E8%A7%A3%E3%81%AA%E6%96%87%E6%B3%95%E3%82%84%E8%A8%AD%E5%AE%9A%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E5%AD%A6%E3%81%B6%E3%81%93%E3%81%A8%E3%81%AA%E3%81%8F%29%E7%92%B0%E5%A2%83%E3%81%AB%E3%81%97%E3%81%9F%E3%81%84%E3%81%AA%E3%82%89%E3%81%B0%E3%80%81fish%E3%81%AF%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AE%E6%B1%82%E3%82%81%E3%81%A6%E3%81%84%E3%81%9F%E3%82%B7%E3%82%A7%E3%83%AB%E3%81%8B%E3%82%82%E3%81%97%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%21) を参考にすると良いです。

# fish編
fishでいろいろできるようにするまでに何を行ったかをあらかじめ載せておきます。

1. fishのインストール
1. oh-my-fishのインストール
1. fishの見た目を変えるテーマのインストール
1. デフォルトで起動するシェルの変更
1. 色などを細かく変更

Xubuntu編 から時間が経過しているのであれば、以下のコマンドを実行してアップデート、必要に応じてアップグレードしておくとよいです。

```bash:
$ sudo apt update
$ sudo apt upgrade
```

## 1. fishのインストール
インストール自体はすごく簡単で、以下のコマンドを入力するだけです。

```bash:
$ sudo apt install -y fish
```
インストールが終わったら **fish と入力**するだけで、**シェルがbashからfishに切り替わります**。

```bash:
$ fish
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/475d389f-99a3-1407-7478-5105cbe5808a.png)
helpと入力するとブラウザが立ち上がり、いろいろ確認できます。

```bash:
$ exit
```
 **exit と入力**すれば **bash に戻る**ことができます。

## 2. oh-my-fishのインストール
 **oh-my-fish は fish の パッケージマネージャー**である。（それよりもフレームワークに近いそうです。）
[How does Fisher compare to Oh My Fish and Fundle?](https://github.com/jorgebucaran/fisher/issues/481#:~:text=Oh%20My%20Fish%20is%20more%20than%20a%20package,a%20framework%2C%20package%20database%2C%20community-driven%20organization%2C%20and%20ecosystem.) にいろいろ書いてあるので参考になるかと。
以下のコマンド入力でインストールできます。

```bash:
$ curl -L https://get.oh-my.fish | fish
```
インストールできる...と思っていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/b3aacd0d-5b67-bd2b-7bad-39224b490265.png)
**curlコマンドがない**そうです。
aptでインストールしましょう。

```bash:
$ sudo apt install -y curl
```
curlがインストールできたら、先ほどのコマンドを入力します。（再掲）

```bash:
$ curl -L https://get.oh-my.fish | fish
```
今度こそインストールできる...と思っていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/5185264e-1597-1b06-5f71-dc6e88e6a12b.png)
今度は**gitのバージョンを1.9.5以降にしてほしい**と言われました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/29c5bec7-e4bc-7165-7745-c1102b52f490.png)
**そもそも git をインストールしていない...**ので、gitをインストールします。

```bash:
$ sudo apt install -y git
```
git のバージョンも確認しておきます。

```bash:
$ git --version
```
1.9.5以降ですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/ee794097-8b0f-16e8-425a-2d9d6ccb5b5e.png)
これで oh-my-fish のインストール要件を満たしました。
以下のコマンドを入力します。（再掲）

```bash:
$ curl -L https://get.oh-my.fish | fish
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/aabcc640-a9f6-40f3-d244-aed570981484.png)
oh-my-fishをインストールするだけでなく、bashからfishに切り替わってますね。

### 余談 ~少しだけfishを使ってみる~
fishのバージョン確認を例に挙げます。

fish の**途中まで入力（存在しないコマンドを入力）**すると、**赤文字**になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/0e6f43bc-196c-3872-b808-f565bbbf2a79.png)
fishがこんなコマンドないって言ってるんですね。
**利用できるコマンド**になると**青文字**で表示してくれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/c8d15ee4-6be3-a183-1503-460597f36ddc.png)
青文字は見えないのであとで変更しましょう。
また、コマンドやオプションは**透過文字で補足**してくれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/7c1a34e5-1ea3-94cb-8170-384e772fe34f.png)
Tabキーや右矢印キーで自動入力できます。

## 3. fishの見た目を変えるテーマのインストール
利用できるテーマは [oh-my-fish/Themes.md at master · oh-my-fish/oh-my-fish · GitHub](https://github.com/oh-my-fish/oh-my-fish/blob/master/docs/Themes.md) で確認できます。
今回は **agnoster** を使用します。（ほかのテーマも同じようにしてインストールできます！）
以下のコマンドを入力します。

```bash:
$ omf install agnoster
```

テーマインストールのコマンドは一般的に次のようにできますね。（Theme_Nameは任意のテーマ名）

```bash:
$ omf install Theme_Name
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/b07a4a22-4b33-374d-02d5-1f2f69dcd5b7.png)
左のところが変更されてますね。
（よりはっきりした変化が見たいのであれば、先ほどのリンクへ飛びましょう([ここから](https://github.com/oh-my-fish/oh-my-fish/blob/master/docs/Themes.md))）
色の設定などは後程やります。

## 4. デフォルトで起動するシェルの変更
Xubuntuではデフォルトで bash が起動するので、**デフォルトで fish が起動するように変更**します。
ユーザーディレクトリにある **.bashrcファイル を編集**します。（ほかにも方法はあるようです）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/c066dbef-c5b5-9d73-bdb9-c3d819cba67e.png)
編集には vi もしくは vim コマンド を使用します。
vimの使い方は [Vimの使い方と特徴を徹底解説！使えるコマンド一覧と操作方法は？Vimで開発を行うメリットとViとの違いも知っておこう](https://agency-star.co.jp/column/vim) などのサイトで確認できます。

```bash:
$ vim .bashrc
```
**iキー**でインサートモードに入り、ファイルの**末尾に以下の1行を追加**します。

```vim:
exec fish
```
こんな状態です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/a8a8ba41-57d2-a36d-b276-71559f88455b.png)
**Escapeキー**でインサートモードを抜けて、**:wq** で保存してvimを終了します。

しっかり保存できてます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/e0881773-72ec-8459-722d-a3429fadf127.png)

**これで bash ではなく fish が起動するようになりました。**
（正確には bash が起動したのちに fish に切り替わるようですが...）

## 5. 色などを細かく変更
黒背景に青文字はとても見にくいので変更していきます。

```bash:
$ fish_config
```
ブラウザが起動します。GUI操作で変更できるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/3fef8691-5e0b-1d3f-aa19-22cbfc2756de.png)
背景を白にしたり...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/05282efc-fa47-66db-33cd-09253378bc9a.png)
Preview a theme below からまとめて変更したりできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/7eadd04c-9c09-8e90-aac1-548c5d2fe626.png)
**変更した後は Set Theme を忘れないようにしましょう**
![fish_config.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/25462870-2dbd-6090-4665-1fe9912ad860.png)
私は Lava を適応しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/6d3d786b-e421-0006-716e-72ab64e0f8cd.png)
青文字ではないので見やすいですね。
promptの項目をいじることにより、ディレクトリの表示の仕方も変えたりできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690399/698e2ed7-1b0e-25a0-2335-0b5a2fd69199.png)

# 最後に
CUI に なれている人は、わざわざ fish に変更する必要はないと思いますが、**初学者にとってはありがたい**のではないでしょうか。
自分の好きなように色などを変更できるので、**モチベーションの向上**という面でも fish を入れてみるのも良いかもしれません。

**「低スペックノートPCに Xubuntu21.04 を minimal install して fish を入れたお話」はこれにて終了になります。**

しかし、この低スペックPCはもう少しいじくり倒す予定ですので、別の記事にアウトプットをしていこうと思います。

## 参考
fishのインストール：[WSL Ubuntu 18.04 のシェルを fish に変更したので設定とか](https://loumo.jp/archives/19776#:~:text=fish%20%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB.%20Ubuntu%20%E3%81%AA%E3%81%AE%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%AF%20apt%20%E3%81%8B%E3%82%89%E8%A1%8C%E3%81%86%E3%80%82.%20%24%20sudo,apt-get%20install%20fish.%20%E3%81%93%E3%82%8C%E3%81%A7%20fish%20%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%A8%E3%82%B7%E3%82%A7%E3%83%AB%E3%81%8C%20fish%20%E3%81%AB%E5%88%87%E3%82%8A%E6%9B%BF%E3%82%8F%E3%82%8B%E3%80%82.)
fiahのテーマ：[oh-my-fish/Themes.md at master · oh-my-fish/oh-my-fish · GitHub](https://github.com/oh-my-fish/oh-my-fish/blob/master/docs/Themes.md)
vimの使い方：[Vimの使い方と特徴を徹底解説！使えるコマンド一覧と操作方法は？Vimで開発を行うメリットとViとの違いも知っておこう](https://agency-star.co.jp/column/vim)