我们最喜欢的 Linux 替代方案,用于替代过时的开源工具

我们询问了我们的贡献者社区,他们正在使用哪些开源工具来替代那些感觉过时或陈旧的工具。
4 位读者喜欢这篇文章。
An arrow clicking a change button

Opensource.com

Opensource.com,我们认为调查我们的一些作者,以了解他们认为哪些工具已经过时(但可能仍然有用!),以及他们如何看待替代实用程序,这将是一件有趣的事情。接下来是一系列回复和一些乐趣。

我们发出了以下提示

  • 您是否发现您最喜欢的一些工具已经过时或被弃用?或者您只是为了新的东西而切换了它们?
  • 您现在使用什么?请告诉我们一些关于您认为切换对您有何帮助的信息。

防火墙

对我来说,一个大问题是 iptables。我为了学习如何使用 iptables、ebtables 和 arptables,以及如何操作 MAC 地址等等而付出了很多努力。我围绕脚本构建了数十个防火墙来设置规则集,最终我对此非常擅长。现在 nftables 使所有这些都过时了。乐趣永无止境。我仍然认为有营销影响力的人可以使软件定义的边界发挥作用。

Greg Scott

+1 支持 iptables

自从我 25 年前第一次学习 Linux 以来,我就一直在使用 iptables。最新的工具是 firewalld,但是我和所有其他用于基于 Red Hat 的发行版的防火墙工具仍然基于并围绕内核级别的 netfilter 模块进行封装。我发现 firewalld 工具创建了大量的规则集,但对我来说并没有比旧的 iptables 做更多的事情。我确信某些大型环境需要这些复杂的规则集,但是它们也可以使用 iptables 或像 Greg 的脚本这样的脚本来实现。

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

David Both

ipchains?

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

Jeremy Stanley

^^ 回复 Jeremy

我的第一个防火墙是 ipchains,大约在 1999 年末。之后的一切都是 iptables。那时,我必须构建自己的内核才能获得我需要的所有 netfilter 模块。像平板显示器和 DSL 这样的现代便利设施在那些日子里是科幻小说。甚至不要考虑光纤。我每天都必须骑马在暴风雪中上坡去拜访客户。然后回家也是上坡。

Greg Scott

文本编辑

我只想问一下——谁还在使用 troff (groff),谁已经转向了...嗯,我们应该说 LibreOffice 还是 AsciiDoctor 还是...?

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

Chris Hermansen

[ 相关阅读 使用 groff 进行老式技术写作 ]

编辑手册页

^^ 回复 Chris

任何维护手册页的人!尽管现在很多人可能正在从其他标记生成这些手册页。有些人(像我一样)仍然直接编写或编辑 troff 文件。

Jeremy Stanley

标记堆栈

总有人会使用旧的东西,但是现在有更优秀的工具。我不会将 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/嵌入在 Jupyter Notebooks 中的 MD)
  • 一个将它们转换为输出格式(通常是 HTML 文件树,但有时是 PDF 或其他格式)的 CI 管道
  • 人们可以下载已发布版本的位置(GitHub Pages、GitLab Pages、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 插入“标记”插槽。您可能可以在 Sun SPARCStation V 上安装 Jenkins 并继续使用相同的机器和格式。但是为什么呢?:)

Opensource.com 可能有一篇文章:“我如何使用 mkdocs+mkdocs-gen-files 和 GitLab CI 将 troff 文档转换为现代堆栈。”

Moshe Zadka

其他 groff 示例

实际上,我现在正在写一篇关于“使用 groff 进行老式技术写作”的文章(这是我正在写的关于技术写作工具的更大系列的一部分)。我不使用 groff 进行严肃的技术写作,但它在我学习过的东西的工具包中,并且可能永远不会忘记。当我教授“使用数字技术写作”时,我会回顾 groff。

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

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

Jim Hall

重新审视 fmt 命令

我现在经常使用 fmt 命令。它对于很多东西都非常方便。如果您以纯文本格式编写 Readme 文档(或其他文档),您就会知道当您在行中间插入一些新文本时,行尾不会在同一列结束的痛苦。您可以运行 fmt 来清理它。

更常见的是,我在一个电子邮件列表中,列表成员更喜欢以纯文本形式接收电子邮件,因此我的电子邮件客户端大部分时间都设置为纯文本。如果我需要回复某人的列表电子邮件(并且他们没有以纯文本形式发送),则段落通常只是一行长行,并且当我回复时,我的电子邮件客户端无法正确换行。它只是一个 > 在长句的开头。

所以我这样做

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

然后

$ cat /tmp/f

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

Jim Hall

引导加载程序的更改

就在你的 foo 足够锋利的时候,工具有很合理的可能性会被替换。

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

肌肉记忆也是一个问题——ipconfignslookupnetstat 处于自动驾驶状态。此外,如果您正在使用其他 Linux 环境,例如 Tiny Core Linux,您可能并不总是拥有最新和最棒的工具。

if-cfg 样式脚本切换到 nmcli 是新的学习曲线,因此这永远不会真正结束。

Steven Ellis

[ 相关阅读 6 个已弃用的 Linux 命令以及您应该改用的工具 ]

快速 FIPS 设置

通常事情会变得更好;我的两分钱。问题是,您是否发现您最喜欢的一些工具已经过时或被弃用?或者您只是为了新的东西而切换了它们?

一位同事最近问我如何在 Linux 上启用 FIPS,这是我已经有一段时间没有做的事情了。我记得这个过程是多么神秘,它涉及启用一个仓库,安装一个软件包 (dracut-fips),运行命令 (dracut) 来重新生成 initramfs,修改 GRUB 引导加载程序配置文件 (fips=1) 等等。

还有,您现在使用什么?请告诉我们一些关于您认为切换对您有何帮助的信息。

幸运的是,在 RHEL9 上,上述内容已被 fips-mode-setup 命令替换,该命令带有两个方便的标志,--check--setup。就是这样!运行这些命令,重新启动系统,您的机器将在启用 FIPS 的情况下启动。超级简单!

Gaurav Kamathe

既旧又舒适

显然,开源的乐趣和强烈的意见仍然存在,工具的多样性和选择最适合您的工具的自由也是如此。也许这些工具和其他类似的工具都很旧——甚至过时——但它们可能仍然有用途。其中一些较旧的实用程序激发了更现代的解决方案,而没有失去它们自身的内在价值。最后,用户舒适度和熟悉度也很重要。使用开源,所有花费在开发您的 foo 上的时间都不必因为某些供应商决定是时候发布新版本而丢失。

标签
User profile image.
Opensource.com 发布关于创建、采用和共享开源解决方案的故事。在 Twitter 上关注我们 @opensourceway。

3 条评论

我从大学和工作初期就开始使用 t/groff Memorandum Macros (mm)。直到今天,我仍然继续使用它来快速编写文档。虽然我喜欢用 MM 集编写,但很难忽视现代文字处理器中可用的工具。

两者在我的工具箱中都有用处,尽管现在我在工作中的大部分写作都是在类似 wiki 的工具中完成的。

Mac 有一个很棒的文本编辑器 (text wrangler),我很想看到它移植到 Linux。资源占用低,功能丰富。非常适合纯文本和简单的编码项目。界面直观,并且具有我想要的任何功能,对于那些不适合在文字处理器中打开的东西。我实际上发现自己使用 Mac 作为我的主要文本编辑器是因为 Text Wrangler,并且购买了升级版本。BBEdit 是免费版本。

Linux 上的文本编辑有点混乱。您有很棒的文字处理器,如 Libreoffice、Kword 等。问题是它们非常占用资源。打开一个几天,它们就会吸干千兆字节的 RAM。Kate 有一个不错的界面,但是充满了内存泄漏。非常糟糕,以至于在一两天内它变得像文字处理器一样占用资源。Gnome Kate 模仿品毫无用处。Gedit 大部分时间都可以工作,尽管如果您重新启动、意外关闭编辑器或类似问题,它喜欢丢失更改。

当 Kedit 还是 KDE 套件的一部分时,我非常喜欢它。我可以同时打开数百个 Kedit 窗口,并让它们打开几个月而不会看到任何内存泄漏或问题。如果我重新启动,每个编辑都会被保留。它具有我完成大多数任务所需的所有基本编辑功能。我大量使用 Kedit 作为 Sysadmin 来处理配置文件、保持数据库的架构打开、快速代码编辑,并且作为作者,我能够保持数十个角色表单打开并排列以便于访问。Kedit 现在仅存在于 Trinity 下,并且比旧的 Kedit 更占用资源。但它仍然是我首选的编辑器。

我现在很少在 CLI 中编辑了。如果超过几行并且在本地机器上,我只是在 GUI 中打开它。我从来没有发现除了对 VI 的憎恨之外的任何东西。只是需要记住的东西太多了。虽然有一些好的 CLI 编辑器,但它们并不是大多数发行版的默认配置。所以基本上我只剩下 Pico/Nano 或挣扎于 VI 晦涩的击键组合。所以我只是不再在 CLI 中进行任何编辑。

Linux 在语言的 IDE 方面仍然严重落后。许多文本编辑器允许语法完成,但我被宠坏了。我花了多年时间使用 Borland 的 IDE,然后我花了一大笔钱购买了一个高端多语言编码 IDE,物有所值,我不记得名字了,但我喜欢那个 IDE。我从来都不是 M$ 的粉丝,但是 visual studio 中的 IDE 非常棒。糟糕的是编译器是如此垃圾。Gambas 有一个很棒的 IDE,但它只适用于 VB 克隆。我很想看到 Gambas IDE 用于 Python、C++ 和 PHP 等语言。Gnome 有几个可视化构建器,它们在设计屏幕方面效果很好,但在向其中添加代码时缺乏任何力度。它们也缺乏创建独立于桌面的代码或使用其他桌面库来构建代码的视觉部分的能力。如果可以编译成 Web、Android、Mac 和 Windoze 等平台就好了。

我喜欢一个好的 IDE 的地方在于它有所帮助但不会妨碍您。这样我就可以专注于代码和程序流程。使用 GUI 设计 GUI,而不是必须编译并在代码中费力地移动位置,或者只是相信 OS 会以用户可以使用代码的方式放置东西。您今天看到很多人使用 Wordpress 只是因为它使设计 Web 界面变得容易。问题是它带来了许多关于您可以在代码方面做什么的严重限制。有什么替代方案?您可以购买一个专有的昂贵的 IDE,它仅在 Web 本身运行,并将您的 HTML 堆积成堆的垃圾,您必须清理掉,或者是一些非常原始的东西,如 Bluefish。或者在文本编辑器中破解它,并将 90% 的时间花在调整 CSS 和 javascript 上,但仍然无法完全按照您想要的方式获得它,并且必须有 3 个不同的代码库,因为在 android 上显示的内容与 PC 浏览器完全不同,并且与 Iphone 上的显示仍然不同。

尽一切努力都是惨败。当然,您可以在 Emacs 之类的东西上费力地破解东西,但我没有时间进行配置 Emacs 以使其可用的工作,以及使用 Emacs 之类东西进行编码的非常手动的性质。我被宠坏了,我希望我的编辑器具有颜色语法,以便我可以快速轻松地发现遗漏的括号、参数等,我希望在同一个界面中编辑、编译和调试。特别是能够单步执行代码并查看变量的内容。当然,您可以将其转储到日志文件或屏幕显示中,但是为什么呢?这是您稍后需要拉取的代码,自 90 年代以来,IDE 就能够做到这一点。当您不必在 4 或 5 个窗口之间切换来编辑、编译、运行和调试您的应用程序时,调试会变得容易得多。除了 Gambas 之外,我没有在 Linux 上找到任何可以做到这一点的东西。

编写软件根本不存在。以至于 Piers Anthony 在他的 Linux 系统上编写了自定义软件,以便他可以按照他想要的方式写作。一些作者用角色表单、故事板、时间线等覆盖他们的墙壁。我的我使用 Kedit 用角色表单、故事板、时间线等覆盖桌面,但这确实缺乏重要的功能。Kate 和 Kate 克隆品真的不能满足我的需求。它们更像是一个原始的编码 IDE 并且占用大量资源。当您有 200 个角色表单时,您希望在它们之间快速轻松地切换,而不会失去您的写作势头,它们是不切实际的。我保留一堆 Kedit 窗口,其中包含地点,另一堆包含人物,并且在几秒钟内,我可以查找某人或地点的历史记录,就像我构建的那样,或者如果我正在写非小说类作品,我可以将我的参考资料和片段打开在多层窗口中以便快速访问。如果我必须停止、打开文件、滚动到文件中我需要的位置,我最好去休息一下,因为我已经失去了所有势头。我太 ADD 了,以至于在我打开文件时我可能已经忘记了我在寻找什么,哈哈。

然后是脚本编辑器的问题。我打算尝试将好莱坞会接受的 3 个编辑器之一从 Mac 移植到 Linux,但是 Python 的混乱加上个人紧急情况搁置了这个想法。Linux 没有好莱坞、经纪人等会接受其输出的编辑器。尽管在 Mac 上有一个开源编辑器,好莱坞确实接受它。据我所知,没有 Linux 编辑器会以好莱坞和类似场所接受的格式输出。

然后您会得到一些奇怪的东西,例如 Word Perfect 在 80 年代曾经做得很好的东西。曾经甚至有一个 Linux 版本的 Word Perfect。不知道为什么没有将所有这些都纳入其他东西中。律师事务所、创建自定义报告以及如果您需要它,其他十几种不常见但重要的功能,这些功能在 WP 中逐渐不再使用。Linux 可以支持这一点,因为 Linux 不会每隔几年就为最新版本的 Windoze 强制进行完全重写。

无论如何,这是我对编辑器的两分钱看法。

一个老旧但出奇有用的工具:prpr 会将大型文本分成页面或列以进行打印。我的主要用例是将单列转换为多列。添加 -a 标志会导致列横向排列,而不是向下排列。如果您不打印结果,请使用 -t 跳过打印页眉和页脚。

我常用的一个习惯用法是
生成列表 | 排序 | tr -a -t -4 > tee 文件

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.