Alan Formy-duval 发布的文章

分享一些我最喜欢的开源写作工具。

在我的职业生涯中,我已经写过很多东西,主要是作为一名 IT 顾问,创建产品文档作为给的客户可交付成果。这些文档通常针对不同操作系统和软件产品提供说明。

自 2018 年,我开始在 www.opensource.com 上发表关于开源软件的文章。当然,我使用开源软件进行协作。接下来我将介绍我使用过的四款开源编辑器。

1、Vi

Vi 也被称为 Vim(LCTT 校注:此外不确,Vi 和 Vim 是两个软件,只是 Vim 取代了 Vi,并以 vi 的名字运行。),是我学习的第一款开源编辑器。这是我在计算机科学课程中学习的编辑器,并且我所有的 C 语言编程都是通过它完成的。自 1995 年以来,实际上我一直使用它作为命令行编辑器。这款工具有多个迭代版本,以至于我都可以为之写一系列文章了。我只想说,在我的日常使用中,我坚持使用它的基本命令行形式,并进行最小的定制。

2、LibreOffice Writer

Writer 是 LibreOffice 开源办公套件的一部分。它是由 文档基金会 Document Foundation 维护的全功能文字处理器。它支持行业标准格式,例如开放文档格式 (ODF)、Open XML 和 MS Office DOC、DOCX。可以在其官方网站上 了解有关 Writer 的更多信息

3、Ghostwriter

Ghostwriter 是一个用于 Markdown 的文本编辑器。它有一个很好的实时查看器和语法指南或备忘单功能。访问官方网站 了解更多内容。

4、Gedit

Gedit 是许多 Linux 发行版中的基本图形编辑器,被描述为“用于 GNOME 桌面的小型轻量级文本编辑器”。我最近开始使用它来创建 Asciidoc 格式的文章。使用 Asciidoc 的好处是语法易于管理并可导入到 Drupal 等 Web 渲染系统中。通过 Gedit Wiki 了解许多提示和技巧。

编辑文本

开源世界中有大量编辑软件。随着我继续写作,这个列表可能会增加。我的主要目标是格式简单。我希望我的文章易于在互联网平台上导入、转换和发布。

你的写作风格、功能需求和目标受众将指导你确定首选工具。


via: https://opensource.com/article/22/10/open-source-editors

作者:Alan Formy-Duval 选题:lkxed 译者:Donkey-Hao 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这份简要指南能够帮助你快速开始使用 Git,以及配置一些选项。

在 Linux 中设置 Git 十分简单,但为了获得完美的配置,我做了以下五件事:

  1. 创建全局配置
  2. 设置默认名称
  3. 设置默认邮箱地址
  4. 设置默认分支名称
  5. 设置默认编辑器

我使用 Git 管理我的代码、命令行脚本以及文档版本。这意味着每次我开始一项新的任务,首先我需要创建一个文件目录并将其添加到 Git 库中:

$ mkdir newproject
$ cd newproject
$ git init

有一些我一直想要的常规设置。不多,但可以避免我每次都进行配置。我喜欢利用 Git 的 全局 配置功能。

Git 提供了进行手动配置的 git config 命令,但这有一些注意事项。例如,通常你会设置邮箱地址。你可以通过运行 git config user.email 你的邮件地址 命令进行设置。然而,这只会在你当前所在的 Git 目录下起作用。

$ git config user.email [email protected]
fatal: not in a git directory

此外,当这个命令在 Git 仓库中运行时,它只会配置特定的一个仓库。在新的仓库中,你不得不重复这个步骤。我可以通过全局配置来避免重复。选项 --global 会指示 Git 将邮箱地址写入全局配置 ~/.gitconfig 文件中,甚至在必要时会创建它:

请记住,波浪线(~)代表你的主文件夹。在我的电脑中它是 /home/alan
$ git config --global user.email [email protected]
$ cat ~/.gitconfig
[user]
        email = [email protected]

这里的缺点是,如果你有大量偏好设置,需要输入很多命令,这将花费大量时间并且很容易出错。Git 提供了更加快捷有效的方式,可以直接编辑你的全局配置文件——这是我列表中的第一项!

1、创建全局配置

如果你刚开始使用 Git,或许你还没有该文件。不用担心,让我们直接开始。只需要用 --edit 选项:

$ git config --global --edit

如果没有该文件,Git 将会创建一个包含以下内容的新文件,并使用你终端的默认编辑器打开它:

# This is Git's per-user configuration file.
[user]
# Please adapt and uncomment the following lines:
#       name = Alan
#       email = alan@hopper
~
~
~
"~/.gitconfig" 5L, 155B                                     1,1           All

现在我们已经打开了编辑器,并且 Git 已经在后台创建了全局配置文件,我们可以继续接下来的设置。

2、设置默认名称

名字是该文件中的首要条目,让我们先从它开始。用命令行设置我的名称是 git config --global user.name "Alan Formy-Duval"。不用在命令行中运行该命令,只需要在配置文件中编辑 name 条目就行:

name = Alan Formy-Duval

3、设置默认邮箱地址

邮箱地址是第二个条目,让我们添加它。默认情况下,Git 使用你的系统提供的名称和邮箱地址。如果不正确或者你想要更改,你可以在配置文件中具体说明。事实上,如果你没有配置这些,Git 在你第一次提交时会友好的提示你:

Committer: Alan <alan@hopper>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate....

在命令行中运行 git config --global user.email "[email protected]" 会设置好我的邮箱。同样,我们在配置文件中编辑 email 条目,提供你的邮箱地址:

email = [email protected]

我喜欢设置的最后两个设置是默认分支名称和默认编辑器。当你仍在编辑器中时,需要添加这些指令。

4、设置默认分支名称

目前有一种趋势,即不再使用 master 作为默认分支名称。事实上,在新存储库初始化时,Git 将通过友好的消息提示更改默认分支名称:

$ git init
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint:   git config --global init.defaultBranch <name>

这个名为 defaultBranch 的指令需要位于一个名为 init 的新部分中。现在普遍接受的是,许多程序员使用 main 这个词作为他们的默认分支。这是我喜欢使用的。将此部分后跟指令添加到配置中:

[init]
            defaultBranch = main

5、设置默认编辑器

第五个设置是设置默认的编辑器。这是指 Git 将使用的编辑器,用于在你每次将更改提交到存储库时输入你的提交消息。不论是 nanoemacsvi 还是其他编辑器,每个人都有他喜欢的。我喜欢用 vi。添加 core 部分,并设置 editor 指令为你喜欢的编辑器。

[core]
            editor = vi

这是最后一项。退出编辑器。Git 在主目录下保存全局配置文件。如果你再次运行编辑命令,将会看到所有内容。注意配置文件是明文存储的文本文件,因此它可以很容易使用文本工具查看,如 cat 命令。这是我的配置文件内容:

$ cat ~/.gitconfig
[user]
        email = [email protected]
        name = Alan Formy-Duval
[core]
        editor = vi
[init]
        defaultBranch = main

这是一个简单的指南,可以让你快速开始使用 Git 和它的一些配置选项。


via: https://opensource.com/article/22/9/git-configuration-linux

作者:Alan Formy-Duval 选题:lkxed 译者:Donkey-Hao 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

有了 Linux,我可以用意想不到的方式与我的先辈们联系。

Linux 不仅仅是在服务器上运行、为互联网提供动力的东西。它是你的数据、你的家庭历史和记忆、工作或娱乐以及现实生活的安全场所。

这就是例子:现在我正在进行一个扫描家庭老照片的项目。我使用带有 GNOME 桌面的 Fedora Linux 已经有几年了,所以我不需要安装任何额外的软件包。我只是把扫描仪插入 USB 接口,启动扫描软件( 文档扫描器 Document Scanner ),就可以了。请继续阅读,看看我是如何做到的。

将记忆数字化

许多人对了解他们的家族历史、先辈们和遗产感兴趣。随着现在技术的发展,将旧的人工制品数字化已经成为一种普遍的做法。无论是你的 80 年代的磁带收藏,还是高中的艺术作品,或者是家庭的老照片,把它们变成数字格式是一种现代的保存和未来验证的方法。

我的妈妈最近给了我一些先辈们的照片,所以我有几张想保存的图片。扫描它们不仅提供了某种意义上的永久性,而且使我能够以在拍摄它们的时代闻所未闻的方式来处理它们。例如,我有一张我祖父的照片,他在我出生前几年不幸去世。通过将他的照片数字化,我可以放大,了解他,并可能以一种原本不可能的方式与他建立联系。

工作流程

首先要做的是把我的佳能扫描仪插入 USB 接口。当我打开文档扫描器时,它检测到我的 Canon LiDE 210 扫描仪。接下来,我把照片放到平板扫描仪上。我将设置调整为 2400 DPI 的图像分辨率,以确保我捕捉到每一个细节。

然后我点击扫描。在这种分辨率下,扫描可能需要一些时间,但完成后,我可以根据需要裁剪图像并保存它。

顺便说一下,在我扫描照片和写这篇文章的时候,我也在用一个开源的音频播放器 Clementine 在同一台电脑上欣赏我最喜欢的一些音乐。性能受到影响?一点也不。

扫描完成后,我还可以选择裁剪图片并将其保存为 PDF、JPG 或任何我选择的格式。

现实生活

请允许我介绍我的祖父和我的叔叔乔治,大约在 1944 年。乔治是一名二战老兵,曾在欧洲与纳粹作战。我的祖父,在右边,是北卡罗来纳州东南部一家木材厂的工头。虽然他没有看到战场,但他负责分配到他的工厂工作的被俘纳粹战俘。他形容他们是年轻的男孩,只想回家和他们的家人在一起。

Scan of photo of my grandfather

(图片由:Alan Formy-Duval, CC BY-SA 4.0)

总结

作为一个专门的 Linux 桌面用户,我有时会听到有人说他们不使用 Linux,因为有一些任务它不能执行。Linux 是我使用的全部,而且在大约 14 年的时间里,我没有遇到这个问题。无论你是在寻找一种愉快的消遣,还是寻找一种提高工作效率的方法,都有可能有一种在 Linux 上运行的解决方案适合你。


via: https://opensource.com/article/22/4/scan-family-photos-linux

作者:Alan Formy-Duval 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

不要急着丢弃那台旧树莓派,这个详细步骤的指南展示了我怎样用最小化设置来充分利用我珍贵的树莓派系统资源。

 title=

最近,我的 树莓派 上的 microSD 储存卡不工作了。它已经作为服务器持续使用将近两年了,这为我提供了一个开始探索和修正问题的好机会。在初始化安装完成以后,它开始出现一些磁盘方面的问题,并且官方的树莓派操作系统发布了一个有重大意义的更新(并从 Raspbian 更名为 树莓派操作系统 Raspberr Pi OS )。所以我买了一个新的储存卡并开始重装。

尽管树莓派 3B 不是最新的硬件,但对于运行多样化服务的最小化的服务器还是足够的。我认为我之前的安装使用了完整的安装镜像,包括了图形用户界面和许多其他的软件包是没有必要的。

这个详细步骤的指南展示了我怎样用最小化设置来充分利用我珍贵的树莓派系统资源。

开始

首先,要为树莓派创建一个新的系统驱动器。这需要两样东西:系统镜像文件和一张 microSD 储存卡。

下载树莓派系统镜像文件

虽然有好几种操作系统可供选择,但我坚持选择树莓派官方支持的系统。

第一步是从 树莓派操作系统 官方网站上下载最新的系统镜像文件到计算机,然后后写入储存卡。他们提供了三个不同的镜像,我选择了精简版。它是最小化的操作系统,只包含基本系统必要的文件,所以它占用最少的磁盘空间和系统内存。(当我下载系统的时候,发布日期是 2020 年 8 月 20 日,但是它现在肯定已经更新了。我觉得不会有什么巨大不同,但是我建议读一下发行说明。)

将树莓派系统镜像写到储存卡

第二步是写下载的系统镜像到储存卡。我的卡之前用过,当我把它插入我的 Linux 桌面计算机之后,它自动加载了两个存在的分区。在我卸载这两个分区前,我不能写入镜像。

要这样做,我必须得用下面的 lsblk 命令来确定它们的路径,经确定,该设备路径为 /dev/mmcblk0

# lsblk -p

我用 umount 命令卸载了这两个分区:

# umount /dev/mmcblk0p2
# umount /dev/mmcblk0p1

一旦分区被卸载,就可以将镜像文件写入到储存卡了。尽管有许多图形化的写入工具,我还是习惯是用古老的 dd 命令:

# dd bs=4M if=/home/alan/Downloads/raspios/2020-08-20-raspios-buster-armhf-lite.img of=/dev/mmcblk0 status=progress conv=fsync

启动树莓派

你只需要一个显示器、键盘、电源适配器来使用树莓派。我还有一个以太网网线用于网络连接,相比无线网络,我更喜欢通过网线来连接一个专用的服务器。

插入储存卡并打开树莓派的电源。一旦成功启动,用默认的缺省密码来进行登录:用户名 pi,密码raspberry

系统设置

按照以下步骤尽可能最小化设置磁盘空间、内存使用等。我建议尽可能的花时间研究每个配置,使之尽量正确。通常有几种应用配置的方法,有些配置文件和选项可能会被丢弃,所以要查看产品文档确保你没有应用过时的配置。

运行 raspi-config

树莓派系统的主设置程序叫做 raspi-config。登录以后立即运行它:

# raspi-config

 title=

它出现了一个扩展根文件系统的选项,可以利用储存卡上所有可利用的空间。选择这个选项之后,重启并重新登录。

df 命令来验证储存卡的总容量是否被完全使用:

# df -h

如果你需要设置其他选项,请再次运行 raspi-config。它们中的一些选项可以根据你的偏好和配置进行变化。仔细检查所有这些选项,确定没有任何遗漏。为了获得最佳性能,我建议做以下调整。(我跳过了一些我们没有做任何变化的选项。)

  • 系统选项 System options :在此你可以设置主机名,最好使用完全限定的域名(FQDN)。你也能在这里更改你的密码,这始终是强烈建议的。
  • 接口选项 Interface options :开启 SSH 服务。
  • 性能选项 Performance options :将 GPU 内存减少到最低值(16MB)。
  • 本地化选项 Localization options :选择你的时区、位置、键盘类型。
  • 高级选项 Advanced options :这个选项包括扩展根文件系统的选项。如果你在上面没扩展,一定要在这里做。这样你可以访问储存卡上的所有可用空间。
  • 更新 Update :进入更新选项会立即检查 raspi-config 工具是否有更新。如果更新可用,它将被下载并应用,raspi-config 将在几秒钟后重启。

一旦你在 raspi-config 中完成这些配置,选择“ 完成 Finish ”退出该工具。

手动配置

我还建议几个其他更改,它们全都要求编辑某种配置文件来手动更改设置。

设置静态 IP 地址

一般来说,最好用静态 IP 地址设置服务器。通过 ip 命令来验证网络接口,并设置 IP 地址和你的缺省网关(路由器)和域名服务(DNS)地址:

# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether b8:27:eb:48:3f:46 brd ff:ff:ff:ff:ff:ff

你还需要知道你的缺省网关和一个及以上的 DNS 服务器地址。将这些信息添加到 /etc/dhcpcd.conf 配置文件中(我强烈建议更改之前对这个文件做一个备份):

# cd /etc
# cp -a dhcpcd.conf dhcpcd.conf.original

按照以下来编辑文件:

# vi dhcpcd.conf

# static IP configuration:
interface eth0
static ip_address=192.168.1.5/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.3 192.168.1.4
关闭 IPv6 协议

除非你有特别需要使用 IPv6,否则你可能倾向于禁用它。为此,你可以创建两个新文件,其中包括一个单行指令,指示 Linux 内核不要使用 IPv6。

首先,创建 /etc/sysctl.d/disable-ipv6.conf 文件,其中包含一行指令:

# cd /etc/sysctl.d
# echo "net.ipv6.conf.all.disable_ipv6 = 1" > disable-ipv6.conf

然后创建 /etc/modprobe.d/blacklist-ipv6.conf 文件包含一行指令:

# cd /etc/modprobe.d
# echo "blacklist ipv6" > blacklist-ipv6.conf
关闭 Wi-Fi、蓝牙和音频

我的服务器的具体用途并不需要蓝牙和音频,同时,它用以太网连接,并不使用无线(Wi-Fi)。除非你计划用它们,否则按照以下步骤来关闭它们。

/boot/config.txt 这个文件做以下更改(再次强调,我建议为这个文件做个备份):

# cd /boot
# cp -a config.txt config.txt.original

加入以下两个指令到文件底部来禁用蓝牙和 Wi-Fi:

  • dtoverlay=disable-bt
  • dtoverlay=disable-wifi

这些 echo 命令就可以完成:

# cd /boot
# echo "dtoverlay=disable-bt" >> config.txt
# echo "dtoverlay=disable-wifi" >> config.txt

要关闭音频,更改 dtparam=audio 的参数为 off。你可以用一个简短的命令 sed 来完成:

# sed -i '/dtparam=audio/c dtparam=audio=off' config.txt

最后一步是禁用 Wi-Fi 服务,用 systemctl mask 命令来操作:

systemctl mask wpa_supplicant.service

如果你不需要其他服务的话,也可以禁用它们:

  • 禁用调制解调器服务:systemctl disable hciuart
  • 禁用 Avahi 守护进程:systemctl disable avahi-daemon.service

最后一步

检查你的内存使用量:

# free -h

我震惊了:我的系统只用了 30MB 的内存。

创建个人账户:建议为登录这台服务器的个人创建用户账户。你能分配他们到 sudo 组允许他们运行管理命令。举个例子,创建一个用户名为 George 的一个账户。

# adduser george
# usermod -a -G adm,sudo,users george 

进行更新:这是一个重要的步骤。应用更新来获取树莓派操作系统的最新修复。

# apt update
# apt full-upgrade

重启:重启你的新服务器是一个好主意:

# systemctl reboot`

安装 Cockpit:你可以在树莓派系统上安装著名的 Linux Web 控制台 Cockpit,它提供了一个基于 HTML 界面来远程管理和监控你的服务器。我最近写了一篇 Cockpit 入门 的文章。用这个命令来安装它

# apt install cockpit

现在我的树莓派服务器已经准备好托管服务器了,我能用它来做 网页服务器VPN 服务器Minetest 等游戏服务器,或者就像我做的基于 Pi-Hole 的广告屏蔽器

保持旧硬件的活力

不论你有什么硬件,仔细地精简并控制你的操作系统和软件包,可以使你的系统资源使用量保持在低水平,以便你获得最大收益。这还可以通过减少试图利用漏洞的潜在恶意行为者可用的服务和软件包数量,提高了安全性。

因此,在你丢弃旧硬件之前,考虑一下能够继续使用的各种可能性。


via: https://opensource.com/article/21/1/minimal-server-raspberry-pi

作者:Alan Formy-Duval 选题:lujun9972 译者:hwlife 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

链接一直是 UNIX 文件系统的一个独特的高级功能。

 title=

UNIX 和 Linux 用户发现链接有很多用途,特别是符号链接。我喜欢使用符号链接的一种方式是管理各种 IT 设备的配置备份。

我有一个目录结构,用来存放我的文档、更新及网络上其他和计算机和设备有关的文件。设备可以包括路由器、接入点、NAS 服务器和笔记本电脑,通常有不同的品牌和版本。配置备份本身可能在目录树的深处,例如 /home/alan/Documents/network/device/NetgearRL5000/config

为了简化备份过程,我在主目录中有一个名为 Configuration 的目录。我使用这个目录的符号链接来指向特定的设备目录:

:~/Configuration/ $ ls -F1
Router@
Accesspoint@
NAS@

注意ls 命令的 -F 选项在每个文件名上附加特殊字符以表示其类型。如上所示,@ 符号表示这些是链接。

创建一个链接

符号链接 Router 指向我的 Netgear RL5000 的 config 目录。创建它的命令是 ln -s

$ ln -s /home/alan/Documents/network/device/NetgearRL5000/config Router

然后,用 ls -l 看一下并确认:

:~/Configuration/ $ ls -l
Router -> /home/alan/Documents/network/device/NetgearRL5000/config
NAS -> /home/alan/Documents/network/device/NFSBox/config
...

这样做的好处是,当对这个设备进行维护时,我只需进入 ~/Configuration/Router

如果我决定用一个新的型号替换这个路由器,使用符号链接的第二个好处就很明显了。我可能会把旧的路由器改成一个接入点。因此,它的目录并没有被删除。相反,我有一个新的目录,对应于新的路由器,也许是华硕 DF-3760。我创建这个目录并确认它的存在:

$ mkdir -p ~/Documents/network/device/ASUSDF-3760/config
:~/Documents/network/device/ $ ls
NetgearRL5000
ASUSDF-3760
NFSBox
...

另一个例子是,如果你的办公室里有几个接入点。你可以使用符号链接在逻辑上代表每一个,用一个通用的名字,如 ap1ap2,等等,或者你可以使用描述性的词语,如 ap_floor2ap_floor3,等等。这样,当物理设备随时间变化时,你不必持续更新任何可能管理它们的进程,因为它们是在处理链接而不是实际的设备目录。

更新一个链接

由于我的主路由器已经改变,我想让路由器的符号链接指向它的目录。我可以使用 rmln 命令来删除和创建一个新的符号链接,但是有一种方法可以只用 ln 命令和几个选项就可以一步完成:

:~/Configuration/ $ ln -vfns ~/Documents/network/device/ASUSDF-3760/config/ Router
'Router' -> '/home/alan/Documents/network/device/ASUSDF-3760/config/'
:~/Configuration/ $ ls -l
Router -> /home/alan/Documents/network/device/ASUSDF-3760/config
NAS -> /home/alan/Documents/network/device/NFSBox/config

根据手册页,这些选项如下:

  • -v--verbose:打印每个链接文件的名称
  • -f--force:删除目标文件(有必要,因为已经存在一个链接)
  • -n--no-dereference:如果链接名是一个目录的符号链接,就把它当作一个正常的文件
  • -s--symbolic:制作符号链接而不是硬链接

总结

链接是 UNIX 和 Linux 文件系统中最强大的功能之一。其他操作系统也曾试图模仿这种能力,但由于他们的文件系统缺乏基本的链接设计,这些系统从来没有工作得那么好,也没有那么可用。

上面的演示只是利用链接在生活生产环境中无缝浏览不断变化的目录结构的众多可能性中的一种。链接提供了一个永远不会长期静态的组织所需的灵活性。


via: https://opensource.com/article/21/11/update-linux-file-system-link

作者:Alan Formy-Duval 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

用这个有趣的 Linux 命令行工具来庆祝节日吧。

 title=

你可能听说过这样一个小程序:它能接受输入信息(比如你通过键盘输入的消息),并输出一张引用了输入消息的牛的图像。这个小程序被称为 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!"

ASCII display of Beetlejuice via cowsay

“甲壳虫汁”祝你亡灵节快乐 (CC BY-SA 4.0)

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


via: https://opensource.com/article/21/11/linux-cowsay

作者:Alan Formy-Duval 选题:lujun9972 译者:unigeorge 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出