🍉

【脱GUI】テキスト指向でいいんじゃない 最初の一歩 banner

2022/05/29に公開

1. はじめに

IT業界の新人エンジニア向けにUnixのCUIコマンドを教えようと思ったら、最近のUnixってbanner が入っていないんですね。情報を可視化する場合や連絡手段に使うケースもあるんですよね。他の表示ツールもあわせて、紹介しておきます。

2. IT技術で表現できること

まずはCUI(character User Interface) ベースで表現できることを、実際にオペレーションしながら、体感いただきましょう。

2.1. ロゴ表示や連絡用に

2.1.1. 文字を大きく見せよう ~banner ~

rockylinux8 で試してみました。
yum のリポジトリにはないのでソースファイルからビルドします。

(1) Build and Install

# cd /usr/local/src
# curl -fsSLO https://github.com/pronovic/banner/releases/download/BANNER_V1.3.5/banner-1.3.5.tar.gz
# tar xvf banner-1.3.5.tar.gz
# cd banner-1.3.5
# ./configure
# make
# make install

(2) Run

# banner "Hello"
#     #  #######  #        #        #######
#     #  #        #        #        #     #
#     #  #        #        #        #     #
#######  #####    #        #        #     #
#     #  #        #        #        #     #
#     #  #        #        #        #     #
#     #  #######  #######  #######  #######

2.1.2. 質実剛健でかっこよくキメよう ~figlet ~

(1) Build and Install

# dnf -y install epel-release
# dnf -y install figlet

(2) Run

# figlet Hello
 _   _      _ _
| | | | ___| | | ___
| |_| |/ _ \ | |/ _ \
|  _  |  __/ | | (_) |
|_| |_|\___|_|_|\___/

/etc/motd に記載すれば、ssh ログインの時にメッセージを表示することが出来ます。

2.1.3. 止めちゃうよ ~wall ~

Unixにログインしている端末一斉にメッセージを送ります

Run

# wall "15:00にリブートします"

2.1.4. 牛がしゃべります ~cowsay~

(1) Build and Install

# cd /usr/local/src
# git clone https://github.com/schacon/cowsay.git
# cd cowsay/
# ./install.sh /usr/local

(2) Run

# cowsay "Hello, World"
 ______________
< Hello, World >
 --------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

2.2. インタラクティブツールとして

2.2.1.またやっちまった ~sl~

(1) Build and Install

# dnf -y install epel-release
# dnf -y install sl

(2) Run
slgif

2.2.2. 映画の雰囲気を味わおう ~cmatrix/unimatrix~

【cmatrix】
(1) Build and Install

# dnf -y isntall autoconf
# cd /usr/local/src/
# curl -fsSLO https://github.com/abishekvashok/cmatrix/releases/download/v2.0/cmatrix-v2.0-Butterscotch.tar
# tar vxf cmatrix-v2.0-Butterscotch.tar
# cd cmatrix/
# ./configure
# make 
# make instal

(2) Run
cmatrixgif

【unimatrix】: こちらはカナ表示もできます。

(1) Build and Install

# curl -L https://raw.githubusercontent.com/will8211/unimatrix/master/unimatrix.py -o /usr/local/bin/unimatrix
# chmod a+rx /usr/local/bin/unimatrix

(2) Run

# unimatrix
2 =       = 4 :     ワ   _     ム ヌ ィ ラ 0 + ヨ イ _ 7 * " 8   ス   =   1 メ       6 =   :   ヒ ェ 2 ウ     ヒ         コ   4
  ス * モ     ン ゥ _     6   |     ヤ " 0 + : ス -   ィ " 9   < ヌ ヘ   :   ハ -   カ   タ 6   + > _ * シ -     +         7   *
  ゥ ャ *       7 *         -     ヌ + = > < ィ |   < ミ ソ   ァ < -   ユ   ミ レ ハ 3   < ェ   ネ タ * - ミ *   フ 9         ツ   _
  - タ -       ケ       ー   ュ     2 キ + オ ニ キ ハ   | + ワ   * ホ 6       ツ : 5 ケ   + ソ   | ュ 3 ラ フ |   エ ュ       - -   9

2.2.3. 城の花火を見よう ~castle.vt~

【castle.vt】
(1) Build and Install

# apt-get install pv 

(2) Run

# curl -s http://artscene.textfiles.com/vt100/castle.vt | pv -q -L 9600

2.2.4. 最新の天気を取得しよう ~wttr.in~

https://github.com/chubin/wttr.in

run

$ curl wttr.in/Osaka ←大阪の天気
Weather report: Osaka
      \   /     Clear
       .-.      +22(24) °C
    ― (   ) ―   ↗ 20 km/h
       `-’      10 km
      /   \     0.0 mm

$ curl wttr.in/{Asakusa,Ginza,Ueno}?format=3 ←浅草、銀座、上野の天気
Asakusa: ⛅️  +27°C
Ginza: ☀️   +30°C
Ueno: ⛅️  +27°C

2.2.5. 時間を測ろう ~teardown~

【teardown】
(1) Build and Install

# pip install teardown

(2) Run

# teardown 3m    #3分たったら終了
# teardown    #ホットキーで操作
Q 終了
SPACE  一時停止
R リセット
      88                        ad888888b,   ad8888ba,
    ,d88                       d8"     "88  8P'    "Y8
  888888                               a8P d8
      88 88,dPYba,,adPYba,          aad8"  88,dd888bb, ,adPPYba,
      88 88P'   "88"    "8a         ""Y8,  88P'    `8b I8[    ""
      88 88      88      88            "8b 88       d8  `"Y8ba,
      88 88      88      88    Y8,     a88 88a     a8P aa    ]8I
      88 88      88      88     "Y888888P'  "Y88888P"  `"YbbdP"'

2.3. より表現力を豊かに

2.3.1. tty の内容をアニメーションGIFにしよう ~ttyrec~

(1) Build and Install

# cd /usr/local/src/
# curl -fsSLO https://github.com/ovh/ovh-ttyrec/archive/refs/tags/v1.1.6.7.tar.gz
# tar xvf v1.1.6.7.tar.gz
# cd ovh-ttyrec-1.1.6.7/
# ./configure
# make
# make install

# cd /usr/local/src/
# git clone https://github.com/saitoha/seq2gif.git
# cd seq2gif/
# ./configure
# make
# make install

run

$ ttyrec ←  子シェルへ 
・・・コンソール操作をするとそのままファイル記録へ
$ exit  ←  終了する
・・・ xxxxx.ttyrecファイルが出来上がる
$ ls 
2022-05-29.09-58-45.549479.4735.ttyrec ← ファイル確認
$ seq2gif -w 120 -h 25 < 2022-05-29.09-58-45.549479.4735.ttyrec -o output.gif
 ← 画面の幅と高さ、ファイル名を指定し、出力
$ ls 
output.gif ← 出来上がったgifファイルはブラウザで確認

2.3.2. 画像をアスキーアートにしよう ~aalib~

静止画・動画をアスキーアート化できます。

https://github.com/mir3z/aalib.js

Examplesを見ると、夢が広がります。

Portable BB Demo も凄いです。
http://aa-project.sourceforge.net/bb/

2.3.3. ブラウザもテキストベースでいこう ~lynx/browsh~

Lynx テキストブラウザ

browsh :モダンテキストベースブラウザー: テキストコンソールから静止画・動画を見ることが出来ます。(残念ながら日本語は不可)

3. 最後に

少々ジョークネタになってしまいましたが、ITで何かを表現するための第一歩として書いてみました。職場で隠れてやっていると、先輩から「何勝手に遊んでいるんだ」とか怒られるかもしれませんが、職場の雰囲気がよいところだと、「面白そうなことやっているね」「懐かしい」といって声をかけられるかもしれませんね。何かしらのきっかけになれば、幸いです。

では、また。

4. 参考

本記事で紹介しているコマンドやサービスは、以下のサイトの情報を元にしています。


Discussion