哪种语言最适合于linux任务

我只是想知道,如果想要做一些掌握在Linux和一路上,我需要做一些自动化的一些任务在Linux

我应该使用哪种语言

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

我认为shell脚本几乎所有的东西,为什么我需要任何其他编程语言?

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

作为一般规则,如果您要做的事情足够简单,可以使用shell脚本。 如果不是,请使用您select的脚本语言。 就我个人而言,我喜欢perl,而且我发现安装它稍微普遍一些,但是使用你最了解的东西。 一些python发誓,一些ruby等。

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

为了在bash中实现它,你几乎没有任何东西,你没有哈希表,你不能轻易处理对,甚至增加一个计数器,你必须使用一些非常奇怪的expression式。

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

另一个例子是简单地检查一个特定的发送者今天是否发送了一封电子邮件。 在bash中,你可以使用“grep发件人maillog”,你就完成了。 在Python中,你必须创build一个更长的脚本来实现相同的方式。 所以在这种情况下,bash赢了。

select最适合您需求的工具。 从五个选项中,我将重点放在bash和python上,它们几乎涵盖了一切。

你是对的,shell编程可以做一切:)。 事实上, sh是一个比较好的“语言”。 也就是说,这取决于你想要自动处理和维护你的代码,以及如果你打算重用它。

我通常这样做:

  • 我使用bash和命令行工具来创build简单的脚本(只要我可以使用bash知识进行操作)
  • 我使用ruby的一切

ruby有几个有助于自动化任务的gems

  • 耙 :ruby使
  • 清酒 :系统范围的耙子
  • rush :用ruby语法的shell
  • capistrano :用于在一个或多个远程服务器上自动执行任务的工具

我发现这本关于ruby系统pipe理的书非常有用。

理论上的答案是“使用最适合解决问题的方法”。

在实践中,你可能知道两三种语言,所以坚持下去。 例如,你可以使用bash来做很多事情,但是你也可能会陷入一片混乱。 如果您更喜欢性能,请使用C或Python。

综上所述,这取决于你想要做什么自动化。 这是一个模块化的工具吗? 他们中的大多数都很容易扩展。

如果你想成为一名高手,你将不得不学习使用其他人创build的大量遗留脚本和代码。 这意味着你可能应该学习大多数你确定的语言的基础,我想你可能需要从学习如何理解基本的shell脚本开始。 然后努力获得至less对perl / python的基本了解。 如果你有兴趣做内核debugging,你需要学习C.

首先,“shell脚本”不仅仅是:

 for (( i = 0; i < 10; i++ )); do echo ${i} done 

这是要知道什么工具执行特定的任务,如何有效地使用它们,以及如何找出事情。 在这里询问或使用man -k回答最后一个问题。 先进的Bash脚本指南在回答其他两个方面有很长的路要走,但最终你从经验中学到了很多东西。

适当的编程语言将以不同的方式做事,而且效率更高。 仅仅因为你可以用任何语言编写FORTRAN并不意味着你应该 – 你需要理解shell脚本所使用的“做一件事,做得好”的UNIX理念,并且使用正确的工具来做正确的工作决定什么时候需要开始用其他语言做事。

编程的艺术是要问Stack Overflow的问题。

从异端的shell和Perl,但通过尝试自己find最好的语言!