你可能听说过这样一个小程序:它能接受输入信息(比如你通过键盘输入的消息),并输出一张引用了输入消息的牛的图像。这个小程序被称为 cowsay
,之前我们已经 介绍 过了。
所以,为了搞点有趣的事,我想用它来庆祝 亡灵节(Día de los Muertos)(LCTT 译注:墨西哥传统的鬼节,著名动画电影《 寻梦环游记(Coco)》即以此为背景)。
除了牛之外,其实还有一些其他的可用图像。当安装 cowsay
时,程序会自动安装其他几个图像,并存储在 /user/share/cowsay
目录中。你可以用 -l
参数来获取图像列表。
$ sudo dnf install cowsay
$ cowsay -l
实际上还有很多与 cowsay
或类似程序相关的开发活动。你可以创建自己的图像文件,也可以下载其他人制作的图像。例如,GitHub 上就有 Charc0al 的 cowsay 文件转换器。你可以用这一工具将自己的图片转换为 cowsay
所需的特殊 ASCII 格式文件。根据 Linux 或 FreeBSD 终端设置不同,你可能会启用颜色支持,而 cowsay
也可以显示彩色图像。Charc0al 的转换器也提供了许多现成的颜色文件。
我选择了“ 甲壳虫汁(Beetlejuice)”(LCTT 译注:同名美国奇幻喜剧电影中的主角大法师)文件来开展我的“庆祝活动”。首先,我将 beetlejuice.cow 文件保存到了 /usr/share/cowsay
目录。这个目录权限属于 root 用户,你可以先将该文件保存到家目录,然后再复制过去。此外我们还需要将该文件的读取权限赋予所有用户。
$ sudo cp beetlejuice.cow /usr/share/cowsay
$ sudo chmod o r /usr/share/cowsay/beetlejuice.cow
关注一下图像是如何生成的(过程很有趣)。首先将各种 ASCII 颜色控制代码设置为变量,然后用这些变量,以传统的 ASCII 艺术风格绘制图像。生成的图像几乎是全身的,并且在不滚动屏幕的情况下,不适配我的终端的高度,所以我编辑了一下该文件,删除了最后 15 行以降低高度。
这个图像也可以被 cowsay
程序检测到,并展示在列表中。
$ cowsay -l
Cow files in /usr/share/cowsay:
beavis.zen beetlejuice blowfish bud-frogs bunny cheese cower default dragon
...
现在,只要运行程序,并使用 -f
选项指定该图像就可以了。别忘了提供要输出的信息。
$ cowsay -f beetlejuice "Happy Day of the Dead!"
cowsay
是 Linux 中一个有趣的搞怪小玩意。发挥你的创意,探索一下 cowsay
以及 ASCII 的艺术吧。