Perl 还是 Python,更适合 Unix 系统自动化?

nit*_*ins 7 automation scripting python perl

我一直在使用bash我的大部分系统管理任务。我也懂一点perl。

我应该学习 Python还是Perl更适合系统自动化。到目前为止,从我的经验来看,学习 perl 很容易。

Cak*_*mox 9

简短的回答:两者都学。

作为系统管理员,您将同时遇到这两种情况,因此您会想知道如何阅读/排除故障/调试两者。

至于编写脚本,在过去的 10 年里,我的大部分 sysadmin 实用程序和“粘合”脚本主要使用 Perl。它的正则表达式语法非常简单,非常适合极快的脚本开发。当您必须在现场工作时,这非常重要。

最近我一直在努力使用更多的 Python,原因如下:

  • 编写好的 Perl 需要很多纪律。“quick n'dirty”的脚本往往随着时间的推移具有更多的功能,但仍然以仓促的方式实现。不久之后,您就会有一个庞大的线路噪声文件,这是一个需要维护的 PITA。

  • 与 Python 相比,用 Perl 编写 OO(甚至可重用)代码并不容易。相信我,从长远来看,您需要大量可重用的代码(而不是剪切和粘贴!)

  • import this与 Perl 的 TMTOWTDI 原则相比,Python 的原则 ( ) 更适合与他人协作。如果您曾经阅读过其他人的 Perl,您可能知道它可能是最令人沮丧的事情。Python 由于其设计而遭受这种不可读性问题的影响要小得多。更糟糕的是,当您在多年后遇到自己的 Perl 时。你会想知道你一定是在哪一点昏倒了。

  • 如果您的代码将持续一段时间,则文档化很重要。用 Python 编写文档字符串比用 Perl 编写 pod 标记容易得多。足够简单,您可能会实际使用它。

我仍然经常使用 Perl,但现在更多用于单行和“一次性”脚本,它们只会运行一次。如果我认为我将再次编辑脚本,我会考虑使用 Python。

  • 这不是必需的,不。但是,您会遇到它,因此熟悉它会有所帮助。 (3认同)