mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Linux - cowsay で Linux コマンド説明表示!

[ pc_tips ] [ Linux ]

こんばんは。

アスキーアートのキャラクタがメッセージをつぶやく cowsay という Linux コマンドについての備忘録です。

0. 前提条件

  • Linux Mint 14(64bit) での作業を想定。
  • GNU bash 4.2.37, zsh 5.0.0 で動作確認。

1. cowsay について

“cowsay” とは、アスキーアート生成コマンドで、吹き出しでメッセージを表示させることができるものである。

2. cowsay インストール

cowsay コマンドがインストールされていなければ、インストールする。

1
$ sudo apt-get -y install cowsay

また、fortune コマンド(後述)もインストールされていなければ、インストールする。

1
$ sudo apt-get -y install fortune

3. cowsay 使用方法

ヘルプ表示。

1
2
3
4
5
$ cowsay -h
cowsay -h
cow{say,think} version 3.03, (c) 1999 Tony Monroe
Usage: cowsay [-bdgpstwy] [-h] [-e eyes] [-f cowfile]
          [-l] [-n] [-T tongue] [-W wrapcolumn] [message]

cowsay コマンドに引数で文字列を与えて実行すると、「cow(牛)」がその文字列をつぶやく。

1
2
3
4
5
6
7
8
9
10
$ cowsay Hello!
cowsay Hello!
 ________
< Hello! >
 --------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

-bdgpstwy オプションで「目」が変わる。

1
2
3
4
5
6
7
8
9
10
$ cowsay -b Hello!
cowsay -b Hello!
 ________
< Hello! >
 --------
        \   ^__^
         \  (==)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

-e eye_string オプションで「目」を任意に設定できる。

1
2
3
4
5
6
7
8
9
10
$ cowsay -e ?? Hello!
cowsay -e ?? Hello!
 ________
< Hello! >
 --------
        \   ^__^
         \  (??)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

-l オプションで設定可能なキャラクタの一覧を表示する。

1
2
3
4
5
6
7
8
9
$ cowsay -l
cowsay -l
Cow files in /usr/share/cowsay/cows:
apt beavis.zen bong bud-frogs bunny calvin cheese cock cower daemon default
dragon dragon-and-cow duck elephant elephant-in-snake eyes flaming-sheep
ghostbusters gnu head-in hellokitty kiss kitty koala kosh luke-koala
mech-and-cow meow milk moofasa moose mutilated pony pony-smaller ren sheep
skeleton snowman sodomized-sheep stegosaurus stimpy suse three-eyes turkey
turtle tux unipony unipony-smaller vader vader-koala www

-f cowfile オプションで「牛」以外になる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$ cowsay -f daemon Hello!
cowsay -f daemon Hello!
 ________
< Hello! >
 --------
   \         ,        ,
    \       /(        )`
     \      \ \___   / |
            /- _  `-/  '
           (/\/ \ \   /\
           / /   | `    \
           O O   ) /    |
           `-^--'`<     '
          (_.)  _  )   /
           `.___/`    /
             `-----' /
<----.     __ / __   \
<----|====O)))==) \) /====
<----'    `--' `.__,' \
             |        |
              \       /
        ______( (_  / \______
      ,'  ,-----'   |        \
      `--{__________)        \/

4. 応用例(1)

ランダムな言葉を吹き出しに表示させてみる。

1
2
3
4
5
6
7
8
9
10
11
12
13
$ fortune | cowsay
fortune | cowsay
 ___________________________________
/ Repartee is something we think of \
| twenty-four hours too late.       |
|                                   |
\ -- Mark Twain                     /
 -----------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

以下でも同様。

1
$ cowsay `fortune`

5. 応用例2

ターミナル起動時にランダムに Linux コマンドの説明を表示させるには、 “.bashrc"(bash の場合) 最終行にに以下のように記述すればよい。(zsh なら ”.zshrc")

~/.bashrc
1
cowsay -f daemon $(whatis $(ls /bin) 2>/dev/null | shuf -n 1)

表示するキャラクタもランダムに設定したければ、以下のようにすればよい。(zsh なら “.zshrc")

~/.bashrc
1
cowsay -f $(ls /usr/share/cowsay/cows | shuf -n 1 | cut -d. -f1) $(whatis $(ls /bin) 2>/dev/null | shuf -n 1)

端末起動時に、以下のようにランダムに Linux コマンドを説明をしてくれる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 _____________________________________
/ ip (8) - show / manipulate routing, \
\ devices, policy routing and tunnels /
 -------------------------------------
   \         ,        ,
    \       /(        )`
     \      \ \___   / |
            /- _  `-/  '
           (/\/ \ \   /\
           / /   | `    \
           O O   ) /    |
           `-^--'`<     '
          (_.)  _  )   /
           `.___/`    /
             `-----' /
<----.     __ / __   \
<----|====O)))==) \) /====
<----'    `--' `.__,' \
             |        |
              \       /
        ______( (_  / \______
      ,'  ,-----'   |        \
      `--{__________)        \/

今回は、かなり「ゆるい」話題でした。

以上。

Comments