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