ターミナル起動時のバナー

ターミナルを立ち上げたらプロンプトと一緒に、バナー・アスキーアートが表示されるようにしたい！

![skull_big.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2659122/5b545844-43ab-63d3-9372-80f269d75685.jpeg)


基本的に`.bashrc`や`.zshrc`に書き込みを行って実現する（今回は`.zshrc`に書く想定でいきます）。

（なんだか`/etc/motd`や`/etc/issue`っていう今回の内容をやるのに便利なファイルがあるらしいけど自分は`.zshrc`に書きました。）

# 【方法１】 echoコマンド

`.zshrc`に次を追記する：

```
echo '                      ..:::::::::..'
echo '                  ..:::aad8888888baa:::..'
echo '              .::::d:?88888888888?::8b::::.'
echo '            .:::d8888:?88888888??a888888b:::.'
echo '          .:::d8888888a8888888aa8888888888b:::.'
echo '         ::::dP::::::::88888888888::::::::Yb::::'
echo '        ::::dP:::::::::Y888888888P:::::::::Yb::::'
echo '       ::::d8:::::::::::Y8888888P:::::::::::8b::::'
echo '      .::::88::::::::::::Y88888P::::::::::::88::::.'
echo '      :::::Y8baaaaaaaaaa88P:T:Y88aaaaaaaaaad8P:::::'
echo '      :::::::Y88888888888P::|::Y88888888888P:::::::'
echo '      ::::::::::::::::888:::|:::888::::::::::::::::'
echo '      `:::::::::::::::8888888888888b::::::::::::::'\'
echo '       :::::::::::::::88888888888888::::::::::::::'
echo '        :::::::::::::d88888888888888:::::::::::::'
echo '         ::::::::::::88::88::88:::88::::::::::::'
echo '          `::::::::::88::88::88:::88::::::::::'\'
echo '            `::::::::88::88::P::::88::::::::'\'
echo '              `::::::88::88:::::::88::::::'\'
echo '                ``:::::::::::::::::::'\'\'
echo '                      ``:::::::::'\'\'
```

この方法のメリットは**色が付けられる**こと。

（ちなみのこの髑髏はsetoolkitで表示されるアスキーアートの一つ）

<br><br>

echoコマンドと色についてはこちら：

https://qiita.com/ko1nksm/items/095bdb8f0eca6d327233

しかし、クオーテーションとかエスケープに関する問題があるからそこは微調整が必要。

# 【方法２】 pythonの三重引用符を使う

これは別途pythonファイル用意する必要がある。

例えば、次の`skull.py`というファイルをホームディレクトリに置いておく。

```python:skull.py
skull = """
                      ..:::::::::..
                  ..:::aad8888888baa:::..
              .::::d:?88888888888?::8b::::.
            .:::d8888:?88888888??a888888b:::.
          .:::d8888888a8888888aa8888888888b:::.
         ::::dP::::::::88888888888::::::::Yb::::
        ::::dP:::::::::Y888888888P:::::::::Yb::::
       ::::d8:::::::::::Y8888888P:::::::::::8b::::
      .::::88::::::::::::Y88888P::::::::::::88::::.
      :::::Y8baaaaaaaaaa88P:T:Y88aaaaaaaaaad8P:::::
      :::::::Y88888888888P::|::Y88888888888P:::::::
      ::::::::::::::::888:::|:::888::::::::::::::::
      `:::::::::::::::8888888888888b::::::::::::::'
       :::::::::::::::88888888888888::::::::::::::
        :::::::::::::d88888888888888:::::::::::::
         ::::::::::::88::88::88:::88::::::::::::
          `::::::::::88::88::88:::88::::::::::'
            `::::::::88::88::P::::88::::::::'
              `::::::88::88:::::::88::::::'
                 ``:::::::::::::::::::''
                      ``:::::::::''"""

print(skull)
```

そしたら、`.zshrc`に次の一行を追記してやる：

```
python skull.py
```

pythonの三重引用符は、上記のように複数行をまとめてかつprintできる。

（python以外の言語でもできると思います。）

# 【方法３】 cowsayコマンド

`cowsay`コマンドと`lolcat`コマンドの合わせ技が人気。

例えば`.zshrc`に次を追記する：

```
cowsay -f default "5crI27 k1ddy 1s jus71c3. I d0n'7 r31nv3n7 7h3 wh331." | lolcat -F 0.0 -a -d 1; echo ""
```

ターミナルを起動すると次のようになる：

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">作るの楽しくてこんな時間になってしまった😑 <a href="https://t.co/j6zPIisYFw">pic.twitter.com/j6zPIisYFw</a></p>&mdash; ハシビロコウ (@MASAbirokou) <a href="https://twitter.com/MASAbirokou/status/1487830632734466048?ref_src=twsrc%5Etfw">January 30, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

`cowsay`コマンドのオプションでこの表示の動きの速さとかいじれます。

（`lolcat`コマンドについて、`-F 0.0`を指定したら単色になりました）


それぞれのインストール：

```
sudo apt-get install cowsay
sudo apt-get install lolcat
```

# 面白いスレッド見つけた

https://www.reddit.com/r/unixporn/comments/6qwrfm/share_your_linux_motds_and_ascii_banners/

特に[これ](https://i.imgur.com/U9vhTIq.png)はメチャクチャかっこいい。

# アスキーアートを作る

画像からアスキーアートへ変換してくれるサイトならいくらでもある。

挙げるとすればこことか：

https://ascii-generator.site/

でも画像だとバナー表示に向き不向きがあるので注意。

<br><br>

`cowsay`についてはここが有能：

https://charc0al.github.io/cowsay-files/converter/

<br><br>

ちなみにMetasploitのロゴたちは`/usr/share/metasploit-framework/data/logos/`にいます。