sshコマンドやteratermでLinuxにログインした時、在り来たりなプロンプトじゃなくて何か役に立つ情報が表示されたら、開発プロジェクトの雰囲気もちょっと潤うかも知れません。
Linuxコマンド格言を表示してくれる「fortune」コマンドのテキストをASCIIアートで牛が喋る「cowsay」コマンドに喋らせる伝統芸能をやってみます。
格言じゃプロジェクトは和まないかも知れませんが、fortuneの替わりにプロジェクト分析結果を喋らせると実用性が出てくるので、その前にまず基本的な芸能からいきます。
cowsay、fortuneをインストール
両方ともepelリポジトリに有るのでリポジトリ登録していない場合はyum install epel-releaseしておきます。
# yum provides \*/cowsay
cowsay-3.04-4.el7.noarch : Configurable speaking/thinking cow
リポジトリー : epel
一致 :
ファイル名 : /usr/bin/cowsay
ファイル名 : /usr/share/cowsay
# yum provides \*/fortune
fortune-mod-1.99.1-17.el7.x86_64 : A program which will display a fortune
リポジトリー : epel
一致 :
ファイル名 : /usr/bin/fortune
ファイル名 : /usr/share/games/fortune
# yum install cowsay
# yum install fortune-mod
動作確認
fortune。ランダムで格言が表示される。
# fortune
Audacity, and again, audacity, and always audacity.
-- G.J. Danton
cowsay。引数を牛のASCII ARTに喋らせる。
# cowsay 'Hello World!'
______________
< Hello World! >
--------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
fortuneの格言をcowsayにパイプすることで牛に喋らせる。
# fortune | cowsay
________________________________________
/ I fell asleep reading a dull book, and \
| I dreamt that I was reading on, so I |
\ woke up from sheer boredom. /
----------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
cowsayは牛だけでなく様々なキャラクターに喋らせることが出来ます。-lで一覧を確認。
# cowsay -l
Cow files in /usr/share/cowsay:
beavis.zen blowfish bong bud-frogs bunny cheese cower default dragon
dragon-and-cow elephant elephant-in-snake eyes flaming-sheep ghostbusters
head-in hellokitty kiss kitty koala kosh luke-koala mech-and-cow meow milk
moofasa moose mutilated ren satanic sheep skeleton small sodomized
stegosaurus stimpy supermilker surgery telebears three-eyes turkey turtle
tux udder vader vader-koala www
試しにゴーストバスターズのロゴに喋らせます。-fでキャラクタ指定。
# fortune | cowsay -f ghostbusters
__________________________________
/ Kissing a fish is like smoking a \
\ bicycle. /
----------------------------------
\
\
\ __---__
_- /--______
__--( / \ )XXXXXXXXXXX\v.
.-XXX( O O )XXXXXXXXXXXXXXX-
/XXX( U ) XXXXXXX\
/XXXXX( )--_ XXXXXXXXXXX\
/XXXXX/ ( O ) XXXXXX \XXXXX\
XXXXX/ / XXXXXX \__ \XXXXX
XXXXXX__/ XXXXXX \__---->
---___ XXX__/ XXXXXX \__ /
\- --__/ ___/\ XXXXXX / ___--/=
\-\ ___/ XXXXXX '--- XXXXXX
\-\/XXX\ XXXXXX /XXXXX
\XXXXXXXXX \ /XXXXX/
\XXXXXX > _/XXXXX/
\XXXXX--__/ __-- XXXX/
-XXXXXXXX--------------- XXXXXX-
\XXXXXXXXXXXXXXXXXXXXXXXXXX/
""VXXXXXXXXXXXXXXXXXXV""
外国人のAAを見ると円マークはバックスラッシュのままみたいなぁとしみじみ。
シェルログイン時に表示する設定
シェルログイン時に表示するメッセージを登録するのは/etc/motd(Message Of The Day)ですが、motdのファイル内容が文字列として読み込まれて表示されるだけなのでコマンドの実行は出来ません。
替わりにシェル取得時に実行される/etc/profile.d配下にmotd.shを作っておきます。
# echo 'fortune | cowsay -f dragon-and-cow' > /etc/profile.d/motd.sh
準備が出来ました。シェルログインした結果。
Last login: Sun Aug 18 00:16:30 2019 from 192.168.0.5
___________________________________
/ lighthouse, n.: \
| |
| A tall building on the seashore in |
| which the government |
| |
| maintains a lamp and the friend of a |
\ politician. /
-----------------------------------
\ ^ /^
\ / \ // \
\ |\___/| / \// .\
\ /O O \__ / // | \ \ *----*
/ / \/_/ // | \ \ \ |
@___@` \/_ // | \ \ \/\ \
0/0/| \/_ // | \ \ \ \
0/0/0/0/| \/// | \ \ | |
0/0/0/0/0/_|_ / ( // | \ _\ | /
0/0/0/0/0/0/`/,_ _ _/ ) ; -. | _ _\.-~ / /
,-} _ *-.|.-~-. .~ ~
\ \__/ `/\ / ~-. _ .-~ /
\____(oo) *. } { /
( (--) .----~-.\ \-` .~
//__\\ \__ Ack! ///.----..< \ _ -~
// \\ ///-._ _ _ _ _ _ _{^ - - - - ~
[naka@spock ~]$
毎回喋ることが変わるので飽きませんね。
このままだとただの娯楽、有益なWeb APIを使えば実用的になる
冒頭に言ったとおりfortuneだと英語の勉強くらいにしかならないかも知れません。
fortuneの替わりにSonarQubeやGitLabのWeb APIで開発プロジェクトの分析結果を取得して整形、表示するようにしておけば、より益の有るログインメッセージになります。
まぁcowsayに喋らせる必要も無いかも知れませんけど・・・。遊び心は有ってもいいんじゃないかと。
後日に続きます。