Linux

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

More than 1 year has passed since last update.


この記事は?


  • 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`


プリティでキュアキュアなツール群 : cureutils


これは何?

Twitterにてリプライより、@graymd さんから情報提供いただきました。

表題の通りです。


導入方法・実行・実行結果例

当該のQiita記事を参照してください


補足

記事の性質上、「仕事の役には立たない」と区分していますが、cureutilsは仕事として使うことで利用者にハピネスチャージできる素敵ツールです。

「ジョークが通じる現場の空気作り」さえできていれば、キュアエンジニアにとってこれほど有用なツールはないでしょう。


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

Linuxの世界は深く、世の中にはたくさんのジョークプログラムが溢れているでしょう。

「こんなのもあるよ!」というのがあれば教えてください。

役に立たなければ役に立たないほど嬉しいです。


以上