如何用Linux替代陈旧的开源工具

127 阅读8分钟

Opensource.com,我们认为对一些作者进行调查会很有趣,以了解他们认为哪些工具是过时的(但也许仍然有用!),以及他们对替代工具的看法。下面是一系列的答复,也有一点乐趣。

我们发出了以下提示:

  • 你是否发现你最喜欢的一些工具已经过时或被淘汰了?或者你刚刚换了新的东西?
  • 你现在使用什么?请告诉我们,你是如何感觉到它的转换是有帮助的。

防火墙

对我来说,最重要的是iptables。我流着血学习如何使用iptables、ebtables和arptables,以及如何操作MAC地址,等等。我围绕着脚本建立了几十个防火墙,以设置规则集,而且我最终变得非常擅长于此。现在,nftables使所有这些都变得过时了。乐趣从未停止。我仍然认为有市场影响力的人可以使软件定义的边界发挥作用。

iptables上的+1

自从25年多前我第一次学习Linux以来,我一直在使用iptables。最新的工具是fiwalld,但它和我见过的所有其他基于Red Hat发行版的防火墙工具仍然基于并围绕内核级netfilter模块。我发现firewalld工具创建了巨大的规则集,与老式的iptables相比,对我来说没有任何作用。我确信有些大型环境需要这些复杂的规则集,但它们也可以用iptables或像Greg的脚本来实现。

我确实喜欢nmcli ,但我需要一些时间来学习它。事实上,我更喜欢它,而不是以前的ifcfgip 命令。它感觉比老的命令更集成到系统中。但我确实喜欢老的ifcfg- 接口配置文件。那些文件很容易创建和理解。它们不需要INI式的格式,需要章节标题。事实上,老式的文件甚至对序列不敏感。-DavidBoth

ipchains?

为了进一步强调这个例子,你确定你当时没有使用ipchains吗?(ipfirewall和ipfwadm的继承者,ipchains直到2001年左右才被iptables取代)。-JeremyStanley

回应Jeremy。^^

我的第一个防火墙是ipchains,大约在1999年底。此后的所有东西都是iptables。那时,我不得不建立自己的内核来获得我需要的所有网络过滤器模块。在那些日子里,像平板显示器和DSL这样的现代便利设施是科幻小说。甚至不要考虑光纤的问题。我不得不每天骑着马在暴风雪中上坡去拜访客户。然后回家时也是上坡路。

文本编辑

我不得不问--谁还在使用troff(groff),谁已经转向......嗯,我们应该说,LibreOffice或者AsciiDoctor或者......?

我有一个亲爱的朋友,在他的Sun SPARCStation V上继续使用基于troff的产品。

编辑man页

^^ 回应Chris

任何人都在维护man pages!虽然现在很多人可能都在用其他标记生成这些页面。有些人(比如我)仍然直接编写或编辑troff文件。

标记堆栈

总有一些人在使用旧的东西,但现在有更好的工具。我不会用LibreOffice来做你要用troff/groff做的那种事情--如果你在写那个级别的东西,你可能会依赖你熟悉的文本编辑器,用源代码控制来管理你的输入,而且你对标记语言很熟悉。

这意味着你想使用一个标记堆栈。有很多,包括。

  • Sphinx + ReST + GitHub Actions + GitHub Pages
  • MkDocs + Markdown + GitLab CI + GitLab Pages
  • Nikola + Jupyter Notebooks + Jenkins + (AWS S3 + CloudFront)

所有堆栈的共同点是。

  • 一个能将不同的输入文件拉成一个连贯的整体的东西(Sphinx/MkDocs/Nikola)
  • 一种合理的高级文本标记语言(ReST/Markdown/MD嵌入Jupyter笔记本)
  • 一个CI管道,将这些内容转化为输出格式(通常是一棵HTML文件树,但有时也会是PDF或其他什么)。
  • 一个人们可以下载发布版本的地方(GitHub页面、GitLab页面、AWS S3 + CloudFront)。

我要指出的是,这些几乎都是正交的选择。任何合理的生成器都可以接受任何输入(甚至MkDocs,对它来说最不真实,它有mkdocs-gen-files插件,所以你可以用Pandoc把东西转换成Markdown)。任何合理的CI都可以运行任何生成器并推送到任何目标。

因此,即使有上面的列表,也有81个堆栈可用。

(Sphinx/MkDocs/Nikola) x (ReST/Markdown/Jupyter Notebooks) x (GHA/GitLab CI/Jenkins) x (GHP/GLP/S3+CF)

因为Pandoc理解troff(ms/man),如果你真的想,你可以把troff+ms或troff+man插入 "markup "槽中。你也许可以在Sun SPARCStation V上安装Jenkins,继续使用相同的机器和格式。但是,为什么呢?:)

那里可能有一篇OSDC的文章。"我如何使用mkdocs+mkdocs-gen-files和GitLab CI将troff docs转换为现代堆栈"。

其他groff例子

实际上,我现在正在写一篇关于 "使用groff的老式技术写作 "的文章(这是我正在写的关于技术写作工具的大型系列的一部分)。我并不使用groff进行严肃的技术写作,但它是我的工具包里的东西,我学到了,可能永远不会忘记。我在讲授 "数字技术写作 "时也会回顾groff。

在写这篇文章时,我想起1993年我安装Linux时,Linux上还没有任何写作应用程序。没有文字处理程序,只有groff和LaTeX。我用LaTeX写我的物理实验报告(因为它可以很容易地进行数学运算),用groff写其他课程的论文(因为我可以选择打印到行式打印机上,我认为这是一个聪明的方法,使我的论文看起来更长)。如果我想用文字处理器写作,我必须双击回到DOS来运行WordPerfect或Galaxy Write。1996年,StarOffice推出了Linux版本。我买了StarOffice。

有趣的是,Brian Kernighan仍然用groff写他所有的书。"Unix。A History and a Memoir"(2020)和 "Understanding the Digital World"(2021)都是完全用groff处理的。

重新审视fmt命令

我最近经常使用fmt 命令。它对很多东西都很方便。如果你用纯文本编写Readme文档(或其他文档),你就知道当你在一行中间插入一些新的文本,然后这几行又不在同一列结束时的痛苦。你可以运行fmt ,把它清理掉。

更常见的是,我在一个电子邮件列表中,列表中的成员喜欢接收纯文本的电子邮件,所以我的电子邮件客户端在大多数时候都设置为纯文本。如果我需要回复某人的列表邮件(而且他们没有用纯文本发送),一个段落通常只是一个长行,而我的电子邮件客户端在回复时并没有正确地换行。它只是在一个长句的开头>

所以我这样做。

$ fmt -p '>' > /tmp/f
{copy & paste ">" quoted text}
^D

然后。

$ cat /tmp/f

然后将结果复制并粘贴到我的电子邮件中。

对引导器的改变

就在你的foo足够锋利的时候,有合理的几率工具会被取代。

从LILO到GRUB是很痛苦的,直到我的GRUB-foo达到一个足够的水平。GRUB2非常棒,但也是一个新的学习曲线。

肌肉记忆也是一个问题--ipconfig,nslookup, 和netstat 是自动驾驶的。另外,如果你正在使用其他的Linux环境,比如Tiny Core Linux,你可能不一定有最新和最棒的工具。

if-cfg-风格的脚本切换到nmcli ,是新的学习曲线,所以这永远不会真正结束。

快速设置FIPS

很多时候,事情的变化是为了更好的发展,我的两分钱。问题是,你是否发现你最喜欢的一些工具已经过时或被废弃了?或者你只是把它换成了新的东西?

一位同事最近问我如何在Linux上启用FIPS,这是我有一段时间没有做过的事情。我记得这个过程很玄乎,包括启用一个 repo,安装一个软件包(dracut-fips),运行命令(dracut )来重新生成initramfs,修改GRUB bootloader配置文件(fips=1),等等。

另外,你现在用的是什么?请告诉我们,你觉得这样的转换对你有什么帮助。

幸运的是,在RHEL9上,上述内容已经被fips-mode-setup 命令所取代,其中有两个方便的标志,--check--setup 。就这样吧!运行这些命令,重启系统,你的机器就会启动并启用FIPS。超级简单!-Gaurav

老而舒适

很明显,开源的乐趣和强烈的意见仍然存在,各种工具和选择最适合你的自由也是如此。也许这些工具和其他类似的工具已经很老了--甚至过时了--但它们可能仍然有作用。其中一些较早的工具激发了更多的现代解决方案,但并没有失去其本身的价值。最后,用户的舒适度和熟悉度也是值得一提的。有了开放源码,所有这些花在开发你的foo上的时间不必因为某个供应商决定是时候发布新的版本而丢失。