EC2インスタンス(Amazon Linux 2)にSSHでログインしたときに表示されるAWSのアスキーアートの代わりに黄色いネズミを表示させるようにします。
ネズミのアスキーアートを用意する。
適当にアスキーアートを探してきます。
そして、/home/ec2-user/banner.txtとしてファイルに保存しましょう。
banner.txtの例
.--, .--,
( ( \.---./ ) )
'.__/o o\__.'
{= ^ =}
> - <
/ \
// \\
//| . |\\
"'\ /'"_.-~^`'-.
\ _ /--' `
jgs ___)( )(___
今回はhttps://ascii.co.uk/art/mouseからお借りしました。もちろんアスキーアートなら何でも大丈夫なので、お好きな黄色いネズミや青いタヌキを用意してください。
AWSの表示を書き換える
/etc/update-motd.d/30-banneを書き換えます。sudo vi /etc/update-motd.d/30-banneでファイルを開き以下のように書き換えます。
#!/bin/sh
#cat << EOF
#
# __| __|_ )
# _| ( / Amazon Linux 2 AMI
# ___|\___|___|
#
#https://aws.amazon.com/amazon-linux-2/
#EOF
echo -e "\033[1;33m$(</home/ec2-user/banner.txt)\033[00m"
$(</home/ec2-user/banner.txt)が先ほどのアスキーアートファイルでecho "$(<ファイルパス)"とすることでファイルの中身を出力します。また、\033[1;33mが色を指定しているところで黄色を指定しています。\033[00mが色の変更の終了を意味します。
別の色を指定したい場合は以下を参考にしてください。
| 色 | コード |
|---|---|
| RED | '\033[0;31m' |
| GREEN | '\033[0;32m' |
| ORANGE | '\033[0;33m' |
| BLUE | '\033[0;34m' |
| PURPLE | '\033[0;35m' |
| CYAN | '\033[0;36m' |
| LIGHTGRAY | '\033[0;37m' |
| DARKGRAY | '\033[1;30m' |
| LIGHTRED | '\033[1;31m' |
| LIGHTGREEN | '\033[1;32m' |
| YELLOW | '\033[1;33m' |
| LIGHTBLUE | '\033[1;34m' |
| LIGHTPURPLE | '\033[1;35m' |
| LIGHTCYAN | '\033[1;36m' |
| WHITE | '\033[1;37m' |
最後に
sudo update-motd
を実行すると反映されます。これでSSHをつなぎなおすと
おまけ プロンプトの色を変える
~/.bash_profileに以下を追記します。
これでユーザーのプロンプトの色を変えることができます。
COLOR_BEGIN="\[\e[1;36m\]"
COLOR_END="\[\e[m\]"
export PS1="${COLOR_BEGIN}${PS1}${COLOR_END}"
色の指定はPS1_COLOR_BEGINで行っています。
これを保存してログインしなおすとこうなります。(***は実際はipなので一応隠してます。)
まとめ
AWS EC2インスタンスにSSHしたときに表示されるAWSのアスキーアートを変更し、色を付ける方法を(ついでにプロンプトの色変更も)紹介しました。似たような方法で他のOSでも実行可能だと思います。ただのネタのような内容ですが、本番・ステージングや他人の開発環境等へのログイン間違えを防ぐのに役立つので試してみてください。

