哪种语言最适合 Linux 任务

哪种语言最适合 Linux 任务

我只是想知道,如果想精通 Linux,并且在此过程中我需要在 Linux 中实现某些任务的自动化

我应该使用哪种语言

1)SHell scripting
2)Python
3)C
4) C++
5)Perl

我认为 shell 脚本几乎可以完成所有事情,为什么我还需要其他编程语言?

答案1

自动化应该(很少)用 C 或 C++ 来完成 - 部分原因是它们需要编译,这使得快速更改变得有点慢,但主要是因为它们是为编写适当的程序而设计的。

一般而言,如果您要做的事情对于 shell 脚本来说足够简单,那么就使用 shell 脚本。如果不是,那么使用您选择的脚本语言。就我个人而言,我喜欢 perl,而且我发现安装它更为常见,但请使用您最熟悉的语言。有些人坚信 python,有些人坚信 ruby​​,等等。

答案2

一个实际的例子:假设您有一些后缀日志,并且必须创建一份最常用的发件人-收件人对的报告。最好的方法可能是创建一个哈希表,其中包含发件人-收件人对作为键,出现次数作为值。

要在 bash 中实现它,你几乎缺少一切,你没有哈希表,你不能轻松地处理对,甚至要增加计数器,你必须使用一些非常奇怪的表达式。

但是如果你有 Python,你就有了所有这些结构,并且可以立即处理问题的各个方面。所以这个问题在 Python 中更容易解决。

另一个示例是简单地检查特定发件人今天是否发送了电子邮件。在 bash 中,您只需使用“grep sender maillog”即可完成。在 python 中,您必须创建一个更长的脚本才能实现相同的目的。因此在这种情况下,bash 获胜。

选择最适合您需求的工具。从这五个选项中,我会重点关注 bash 和 python,它们几乎涵盖了所有内容。

答案3

你说得对,shell 编程无所不能 :)。事实上,sh书写计也就是说,这取决于您对自动化和维护代码的重视程度以及是否计划重复使用它。

我通常这样做:

  • 我使用bash命令行工具来创建简单的脚本(只要我能够用我的知识来完成bash
  • 我用ruby它来做其他事情

其中ruby有几个gems可以帮助自动化任务:

  • :红宝石制作
  • 清酒:系统范围的 rake
  • 匆忙:使用 ruby​​ 语法的 shell
  • 卡皮斯特拉诺:用于在一个或多个远程服务器上自动执行任务的工具

我发现这本书使用 ruby​​ 进行系统管理非常有用。

答案4

如果你想成为大师,你将不得不学习使用大量由其他人创建的旧脚本和代码。这意味着你可能应该学习你所确定的大多数语言的基础知识,我认为你可能需要从学习如何理解基本的 shell 脚本开始。然后努力至少对 perl/python 有基本的了解。如果你对进行内核调试感兴趣,你需要学习 C。

相关内容