使用 Linux cowsay 命令制作丰富多彩的节日问候 | Linux 中国

2021-11-15 10:25:37 浏览数 (1)

你可能听说过这样一个小程序:它能接受输入信息(比如你通过键盘输入的消息),并输出一张引用了输入消息的牛的图像。这个小程序被称为 cowsay,之前我们已经 介绍 过了。

所以,为了搞点有趣的事,我想用它来庆祝 亡灵节(Día de los Muertos)(LCTT 译注:墨西哥传统的鬼节,著名动画电影《 寻梦环游记(Coco)》即以此为背景)。

除了牛之外,其实还有一些其他的可用图像。当安装 cowsay 时,程序会自动安装其他几个图像,并存储在 /user/share/cowsay 目录中。你可以用 -l 参数来获取图像列表。

代码语言:javascript复制
$ sudo dnf install cowsay
$ cowsay -l

实际上还有很多与 cowsay 或类似程序相关的开发活动。你可以创建自己的图像文件,也可以下载其他人制作的图像。例如,GitHub 上就有 Charc0al 的 cowsay 文件转换器。你可以用这一工具将自己的图片转换为 cowsay 所需的特殊 ASCII 格式文件。根据 Linux 或 FreeBSD 终端设置不同,你可能会启用颜色支持,而 cowsay 也可以显示彩色图像。Charc0al 的转换器也提供了许多现成的颜色文件。

我选择了“ 甲壳虫汁(Beetlejuice)”(LCTT 译注:同名美国奇幻喜剧电影中的主角大法师)文件来开展我的“庆祝活动”。首先,我将 beetlejuice.cow 文件保存到了 /usr/share/cowsay 目录。这个目录权限属于 root 用户,你可以先将该文件保存到家目录,然后再复制过去。此外我们还需要将该文件的读取权限赋予所有用户。

代码语言:javascript复制
$ sudo cp beetlejuice.cow /usr/share/cowsay
$ sudo chmod o r /usr/share/cowsay/beetlejuice.cow

关注一下图像是如何生成的(过程很有趣)。首先将各种 ASCII 颜色控制代码设置为变量,然后用这些变量,以传统的 ASCII 艺术风格绘制图像。生成的图像几乎是全身的,并且在不滚动屏幕的情况下,不适配我的终端的高度,所以我编辑了一下该文件,删除了最后 15 行以降低高度。

这个图像也可以被 cowsay 程序检测到,并展示在列表中。

代码语言:javascript复制
$ cowsay -l
Cow files in /usr/share/cowsay:
beavis.zen beetlejuice blowfish bud-frogs bunny cheese cower default dragon
...

现在,只要运行程序,并使用 -f 选项指定该图像就可以了。别忘了提供要输出的信息。

代码语言:javascript复制
$ cowsay -f beetlejuice "Happy Day of the Dead!"

cowsay 是 Linux 中一个有趣的搞怪小玩意。发挥你的创意,探索一下 cowsay 以及 ASCII 的艺术吧。

0 人点赞