One IT Thing

IT業界を楽しむ為の学習系雑記

linux

Linuxのシェルログイン時、牛に格言を喋らせる

投稿日:2019年8月19日 更新日:

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に喋らせる必要も無いかも知れませんけど・・・。遊び心は有ってもいいんじゃないかと。

後日に続きます。

-linux
-,

執筆者:

関連記事

CentOS8をVirtualBoxにインストールしてXからdnfを打つまで

2019年9月24日(米時間)CentOS8がリリースされました。 RHEL8リリースから4か月、まだかまだかとリリース進捗を眺めていた方も多かったのではないでしょうか。 「時間が出来たら入れてみよう …

Linux、Macでハードディスクが一杯になった時の対処

「いつの間にかハードディスク一杯になってた・・・」 運用側が10:0で言い訳出来ない障害の一つなんじゃないでしょうか。 怖い先輩(上役)に体育館裏(会議室)に連れていかれる恐怖を思い出します。 運管ミ …

GitLabのIPを変更したらMattermostにログイン出来なくなった話「the redirect uri included is not valid. 」

目次1 発端2 環境3 GitLabのIP変更設定を開始4 そしてハマる5 解決6 結局どこに設定が保存されていたか7 まとめ 発端 先日オフィスの引っ越しが有りネットワークセグメントが変わる為、Gi …

テキストファイル内の改行コード差異を見つけるワンライナー

こんなケースを想定。 ファイル内容は同じなのにdiffで違いが出るWeb上でソースレビューする時に同じ内容の行なのに差分が出て紛らわしい これらの原因はWindows、Mac、Linuxが入り混じった …

Termuxで動作が確認できたターミナルゲーム4つ

Android端末をroot化せずにLinux環境を独自構築する神アプリ「Termux」。  play.google.comTermux – Apps on Google Playhttps …


shingo nakanishi。東京で消耗中の職歴20年越え中年ITエンジニアです。「生涯現役プログラマを楽しむ」ことができる働き方探しをライフワークにしています。

19歳(1996年)から書き始めた個人日記が5,000日を超え、残りの人生は発信をして行きたいと思い、令和元日からこのサイトを開始しました。勉強と試行錯誤をしながら、自分が経験したIT関連情報を投稿しています。