仕事の役には立たない、Linuxにおけるジョークプログラムの話

  • 582
    いいね
  • 11
    コメント

この記事は?

  • Linuxというと業務向けで使用されており、個人で使用している人は(世間一般としては)多くない
  • こんな無駄なプログラムがあるんだぜ!是非仕事に活かしてくれよな!というコマンドをまとめてみた。
  • CUIのものを中心にジョークプログラムを紹介する。
  • 手持ちのCentOSだけの紹介ですがご了承ください。

まずは環境情報

環境情報

私の環境では下記ですので、ubuntuだとかのディストリビューションや
AIX,SolarisのようなUNIX機器でも同様にできるかは不明。

項目 情報
CentOS CentOS Linux release 7.2.1511

イカれたメンバーを紹介するぜ!

格言を出力する:fortune

これは何?

英語の格言、明言をランダムに出力する。
ユーザ独自に格言を追加することも可能。

導入方法

# yum install fortune-mod

実行

$ /usr/bin/fortune

実行結果例

$ /usr/bin/fortune
I understand why you're confused.  You're thinking too much.
                -- Carole Wallach.

$ fortune -f
100.00% /usr/share/games/fortune
     2.94% art
     1.75% perl
     0.06% ascii-art
     0.33% pets
     2.88% bofh-excuses
     1.67% literature
     6.56% computers
     3.20% platitudes
     7.28% cookie
     4.48% politics
     7.59% definitions
     1.33% drugs
     0.84% riddles
     1.30% education
     0.96% love
     3.99% science
     1.04% ethnic
     1.27% food
     4.60% songs-poems
     2.76% fortunes
     0.94% sports
     0.35% goedel
     1.45% startrek
     0.58% hitchhiker
     0.52% tao
     1.26% humorists
     0.19% magic
     0.08% translate-me
     1.78% humorix-misc
     1.29% humorix-stories
     0.22% osfortune
     0.46% paradoxum
     1.98% kernelnewbies
     0.96% kids
     2.69% wisdom
     3.54% knghtbrd
     1.29% law
     4.03% work
     2.51% linux
     3.50% zippy
     0.67% linuxcookie
     0.47% medicine
     4.15% miscellaneous
     7.95% people
     0.34% news
$ fortune perl
Just don't compare it with a real language, or you'll be unhappy...  :-)
             -- Larry Wall in <1992May12.190238.5667@netlabs.com>

UNIXで有名なアスキーアートを出力する:cowsay

これは何?

UNIXには古来から牛(cow)に喋らせる(say)というジョークコマンドがあり、それがこれにあたる。
Perlで製作されており、パイプでつないで前述のfortuneなどの実行結果を喋らせるとシュールな結果が得られる。
引数で-fオプションを与えると牛以外に変更可能。

導入方法

ubuntuなどはapt-getできるがCentOS7ではyumで落とせない…ので
GitHubからもらってくる。
cowsay
取得したZIPファイルをサーバ上に転送。

$ unzip cowsay-master.zip
$ cd cowsay-master/
$ ./install.sh

Perlのパスを教えてくれよ、とメッセージが出るがデフォルトでOKなのでそのままEnter。

実行

$ cowsay <表示させたいメッセージ>

実行結果例

$ cowsay -l
Cow files in /usr/local/share/cows:
beavis.zen bong bud-frogs bunny cheese cower daemon default dragon
dragon-and-cow elephant elephant-in-snake eyes flaming-sheep ghostbusters
head-in hellokitty kiss kitty koala kosh luke-koala meow milk moofasa moose
mutilated ren satanic sheep skeleton small sodomized squirrel stegosaurus
stimpy supermilker surgery telebears three-eyes turkey turtle tux udder
vader vader-koala www

$ cowsay Orange 
 ________
< Orange >
 --------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

$ cowsay -f tux hello
 __________
< Sapphire >
 ----------
   \
    \
        .--.
       |o_o |
       |:_/ |
      //   \ \
     (|     | )
    /'\_   _/`\
    \___)=(___/


$ cowsay -f ghostbusters  Passion
 _________
< Passion >
 ---------
          \
           \
            \          __---__
                    _-       /--______
               __--( /     \ )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に変換する:figlet

これは何?

英文文字列をAAに変換する。
派生形としてtoiletというものもあり、こちらは日本語にも対応できる模様。

導入方法

# yum install figlet

実行

$ figlet <変換したい英文>

実行結果例

$ figlet Message
 __  __
|  \/  | ___  ___ ___  __ _  __ _  ___
| |\/| |/ _ \/ __/ __|/ _` |/ _` |/ _ \
| |  | |  __/\__ \__ \ (_| | (_| |  __/
|_|  |_|\___||___/___/\__,_|\__, |\___|
                            |___/

汽車が走る:sl

これは何?

汽車(Steam Locomotive)のAAを出力する。
製作者は「高度に発展した、キータイプ矯正を目的とするアニメーションプログラムである」と主張している。
ついうっかりlsコマンドを打ち間違えた時に楽しくなる。
引数がlsに似せてあるのも憎たらしい。

  • -a …車内の客が助けを求めるようになる
  • -l…SLが小さくなる
  • -F…SLが空(画面の上のほう)へ飛んでゆく
  • -e…SLが走っている最中に「Ctrl + C」で離脱できるようになる

導入方法

# yum install sl

実行

$ sl

実行結果例

こいつ…動くぞ!という楽しみがあるので
是非ご自分の環境でどうぞ

虹色にファイルを読む:lolcat

これは何?

ファイルの標準出力によく使われるのがcatコマンド。
このcatのようにファイル出力を行うに当たり、実行結果が虹色になって派手にできる。
英文であれば、-aオプションを付与することでカラーアニメーション表示もできる。
Ruby製。

導入方法

$ gem install lolcat 

実行

$ lolcat <ファイル名>

実行結果例

$ cat MilkyWayRailroad.txt

WS000000.JPG

$ lolcat MilkyWayRailroad.txt

WS000001.JPG

コンソール上でアクアリウムを眺める:asciiquarium

これは何?

たまにはアクアリウムでも眺めて心穏やかになりたい時もある。
そんなときにこのコマンドを使って、
コンソール上をアクアリウムにしちゃおう。
Perl製。
同作者さんはHPにてweatherspectというのも提供しているのでこちらも試してみてね。

導入方法

# yum install perl-Curses
# exit
$ wget http://www.cpan.org/authors/id/K/KB/KBAUCOM/Term-Animation-2.6.tar.gz
$ tar zvxf Term-Animation-2.6.tar.gz
$ wget http://www.robobunny.com/projects/asciiquarium/asciiquarium.tar.gz
$ tar zvxf asciiquarium.tar.gz
$ cp -p asciiquarium_1.1/
asciiquarium /usr/local/bin
$ chmod 755 /usr/local/bin/asciiquarium
$ cd Term-Animation-2.6/
$ su
# perl Makefile.PL && make && make test
# make install

実行

$ asciiquarium

実行結果例

WS000007.JPG

マトリックスのあの画面を再現する:cmatrix

これは何?

映画Matrixで出てくるあの画面にを再現するコマンド。
オプションの-sをセットするとスクリーンセーバーモードになり、何かキーを押すまで続行になるので案外使えるかもしれない。

導入方法

$ wget http://www.asty.org/cmatrix/dist/cmatrix-1.2a.tar.gz
$ tar zvxf cmatrix-1.2a.tar.gz
$ cd cmatrix-1.2a/
$ ./configure
$ make 
$ su 
# make install 

実行

$ cmatrix -ab

実行結果例

WS000008.JPG

牛ではなくポニーに喋らせる:ponysay / ポケモンに喋らせる:pokemonsay

これは何?

コメント欄より、@sharowさん、@mmizutaniさんから情報提供いただきました。
cowsayならぬponysay、pokemonsayを作ったものがGitHubにあるらしい。
あまりcowsayの拡張の話をしても記事の本題からそれるのでponysayのみ紹介。
pomysayはPython3で書かれているものなのですが、CentOS7ではPython2系なので、
バージョンを共存させスイッチさせつつ導入する。

導入方法

まずはPython3と共存させるため、pyenvを導入。

# yum install gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel git
# git clone https://github.com/yyuu/pyenv.git ~/.pyenv
# vi /root/.bashrc
  下記を追記
  # pyenv
  export PYENV_ROOT="$HOME/.pyenv"
  export PATH="$PYENV_ROOT/bin:$PATH"
  eval "$(pyenv init -)"
# source /root/.bash_profile
# pyenv install --list
# pyenv install 3.5.2

切り替え実施。

# python --version
  Python 2.7.5
# pyenv global 3.5.1
# pyenv rehash
# python --version
  Python 3.5.1

パッケージはGitHubからもらってくる。
ponysay
取得したZIPファイルをサーバ上に転送。

$ unzip ponysay-master.zip
$ cd ponysay-master/
$ sudo python3 setup.py --freedom=partial install

実行

$ ponysay <表示させたいメッセージ>

実行結果例

「?」が出てしまっているのはTeratermの文字コード設定かな?未調査。
coysayよりもカラフルなのが見栄えがいいですね!
000045.jpg

PingではなくPingPongする:pong

これは何?

コメント欄より、@kurehajimeさんから情報提供いただきました。
pingコマンドで疎通確認をするつもりが打ち間違えてpongと打ち込んでしまった!そういった時があるかと思います。OとIはqwerty配列ではお隣ですしね。
「PONG is Not PING.」というわけで、pongコマンドではピンポンのCLIゲームを提供してくれます。

導入方法

パッケージ、というかバイナリをGitHubからもらってくる。
kurehajime/pong-command

動作させたい環境のZIPファイルをサーバ上に転送。

# unzip linux_amd64.zip
# mv pong /usr/local/bin/

実行

アドレスの指定はなくても本当はいいのだけれど、アドレス指定があるほうが玉がアドレスになっていい感じ。

$ pong <IP Address>

実行結果例

192.168.1.100にpongした例。
000047.jpg

作業を終わらせたらビールを飲もう! : beer-mug

これは何?

あなたの勤務時間を測定し、働いた後のあなたの幸せな生活を助けます。製作者GitHubのREADMEより。
(…若干、仕事の役に立ってしまっている気がしないでもない)

導入方法

GitHubからgo getでもらってくる。

# go get github.com/misoton665/beer-mug
# go install github.com/misoton665/beer-mug

実行

// タイマーの初期化
$ beer-mug init

// 実行
$ beer-mug start

// 適切に労働した後、タイマーを止める
$ beer-mug end

実行結果例

「あなたはxx時間働いたよ!!おめでとう!!!」ってやかましいわ!
000209.jpg
なお、Unicode絵文字を使用しているので、適切にフォントを入れないといけません。
方法はQiita記事:Linux とかでも Unicode 絵文字を表示するためのフォントなどを参照。

Nyancat をターミナル上で走らせよう! : nyancat

これは何?

コメント欄より、@noromanbaさんから情報提供いただきました。
nyancatをご存知でしょうか。知らない人はググってください。
このコマンドはnyancatをターミナル上で走らせる、ただそれだけのコマンドです。
一応、下部に「xx秒nyanしたよ」とメッセージが出るのでタイマーとして使えなくもないが、
お仕事としては役に立たないかもしれない。

導入方法

GitHubからもらってくる。

# git clone https://github.com/klange/nyancat.git
# cd nyancat/src/
# make && cd src

以下のディストリビューションはパッケージマネージャから取得できるらしい。
(手元のCentOSではないので未検証)

Arch / Debian / Gentoo / Mandriva / Ubuntu / FreeBSD / OpenBSD

実行

$ ./nyancat

実行結果例

「あなたはxx秒nyanしたよ!!」
000143.jpg

仕事上、これをタイマーとして活用するという方はtmuxscreen 内では以下のオプションでウインドウタイトルの惨事を防げます。

$ nyancat --no-title # or `-s`

ご存知でしたら教えてください

Linuxの世界は深く、世の中にはたくさんのジョークプログラムが溢れているでしょう。
「こんなのもあるよ!」というのがあれば教えてください。
役に立たなければ役に立たないほど嬉しいです。


以上