Cowsay

とは、メッセージをつぶやくウシのアスキーアートを生成するプログラムである。ウシ以外にも様々な動物のアスキーアートが用意されており、動物を変えて出力することも可能である。また、関連するプログラムとして、というものがあり、これは、cowsayのメッセージイメージとは違って会話のふきだしが思慮深いときのもの（丸の泡で示される状態）が表示される。コマンドを出力させたい文字列を引数に与えて実行すると、以下のように出力される。

  _______________________ 
 < Typical cowsay output! >
  ----------------------- 
         \   ^__^
          \  (oo)\_______
             (__)\       )\/\
                 ||----w |
                 ||     ||
cowsay用に用意される.cowファイルがあり、これを利用すると「ウシ」の部分を変えたり、別種の「目」の形にするなどしてメッセージをカスタマイズすることができるrmsのAA。。時折IRC、デスクトップのスクリーンショットそしてソフトウェアのドキュメント中にも使用される例が見られる。このプログラムは多かれ少なかれ、ハッカー文化におけるジョークの意味合いがあり、しかしながら、広く長く使われている。2007年には様々なDebianパッケージを紹介するサイト、"Debian Package of the Day"にて取り上げられている。

cowsayはプログラミング言語のPerlで作成されている。そして、それ自体UNIXのシステムタスクに容易に適応し得る。例えば、ユーザーのホームディレクトリがディスクフルになっただとか、新しいメールが届いた際にそれら通知と組み合わせて利用できる。加えて、CGIとの親和性も高い。

 実行例 
UNIXコマンドは、パイプ経由でコマンドにメッセージを送れる:

baldur@baldur-desktop:~$ fortune | cowsay
 ________________________________________
/ You have Egyptian flu: you're going to \
\ be a mummy.                            /
 ----------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

そして、パラメータ(オプション)に引数を与えて実行すると、ウシの代わりにLinuxのマスコット、タックス(Tux)が表示される:

baldur@baldur-desktop:~$ fortune | cowsay -f tux
 _________________________________________
/ You are only young once, but you can    \
\ stay immature indefinitely.             /
 -----------------------------------------
   \
    \
        .--.
       |o_o |
       |:_/ |
      //   \ \
     (|     | )
    /'\_   _/`\
    \___)=(___/

 パラメータ 
 オプション 用途 -n （自動改行）を無効化。FIGletの内容を話す場合や、別のAAを埋め込んで表示する際に利用する。列幅は自動的に行幅の最大値に固定され、オプションの値は無視される。 -W ふきだしの列幅を引数に指定できる。これは、のような固定幅フォントによる文字出力の場合都合がよい。デフォルトの値は40である。 -b スタートレックの“ボーグ”モード。ウシの目がからになる。 -d “死体”モード。目がになり、舌を突き出したようにが口元から伸びている。 -g “貪欲”モード。目がになる。 -p “偏執狂(パラノイド)”モード。目がになる。 -s “酔っ払い”モード。目が充血している様子のになり、舌を突き出したようにが口元から伸びている。 -t “お疲れ”モード。目がになる。 -w “興奮”モード。目がとなり大きく見開く。 -y “若返り”モード。目がとなり幾分小さくなる。 -e eye_string ウシの目に使う文字列を手動で指定する。例えば、アジア圏でよく見られる顔文字を使用し、とするなど。パラメータは入力値の先頭2バイトのみしか受け付けないため、表記可能な基本ラテン文字（より正確には、C0 Controls and Basic Latinの中で、Unicodeの符号点がU+0021–U+007Eの範囲内にある文字）以外では正しく表示できない可能性がある。一部定義済みのcowフェイスは、との任意の値が上書きされる。 -T tongue_string ウシの舌に使う文字列を手動で指定する。例えば、というように丸括弧の組を利用できる（\ はエスケープ文字）。 -f cowfile 代わりのAAとなる.cowファイルを指定する。ファイルパスは、絶対パス、環境変数に指定されるディレクトリからの相対パス双方が利用可能。 -l メッセージを表示せず、ディレクトリにある、利用可能なcowファイルをリストアップする。

 全てのキャラクタ 
Linux/Unix系システムでは、次のコマンドを実行することで、利用可能な全てのcowsayのキャラクタを一覧表示できる。
cowsay -l | grep -v "^Cow" | sed -e "s% %\n%g" | sed -e "s%\(.*\)%cowsay -f \1 Now I am a \1%" | sh | less

 脚注 

 注釈 

 出典 

 外部リンク 
 cowsay配布サイト
 Linuxカーネル内に潜むcowsay。 - PA-RISCアーキテクチャ用Linuxカーネルでoopsが発生すると表示される。

 Cowsayを利用するウェブフロントエンド
 X Window System用のcowsay。

Category:アスキーアート
Category:オープンソースソフトウェア
Category:Perlでプログラムされた自由ソフトウェア