如何学习UNIX工具

2021-04-26 17:47:19

Linux和MacOS(...和* BSD等)中有许多有用的工具,只能从命令行调用。我们' ve全部称为git,猫,卷曲,少,开放,grep / rg等人员可以做的事情' t。即使GUI版本可以执行此操作,机会也是命令行版本更快。这些也可以组成,以创建简单的新程序。例如,解决问题

读取文本文件,确定N最常使用的单词,并打印出这些单词的排序列表以及它们的频率

这是Doug McIlroy'解决问题的解决方案。也许不是最效率,但优雅,快速写作和易于理解。如果您已经知道每个命令都可以轻松。

在你花时间学习它们之后,这些工具很明显,但他们'难以破译' t的人。这与Git这样的工具最敏锐地感受到了几个子命令,其中名称始终有意义,并且很容易被滥用。我在大约8年内冒着Git感到沮丧,但我花了时间达到一定的时候,我理解它所做什么以及为什么。

大多数这些工具都带有-help或-h交换机,可以告诉您可用的选项,并简短地解释每个所做的。它通常不会告诉你如何撰写各种选项。试验和错误是去的方式。

男人或手动页面是对你能做的每件事的详尽解释。 Man Tar在我的机器上是一个13页哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇

我从来没有从头到尾读一页,我不确定你是否意味着。虽然您可以从示例部分学习IMO,但是当您已经有一个好主意,工具所做的事情以及它的意思是什么,人类页面很有用,但想要调查一些不太了解的选择。

如果您对所需内容的模糊概念,您可以使用Apropos [Regex]搜索所有本地男页面。如果您'遗留有兴趣计算文件的校验和,apropos checksum返回几个有用的结果。

"如何用y工具"当您现在需要解决问题并且唐' t时工作很大,有时间阅读长篇解释。当我们在这种情况下,stackoverflow有我们的背部。来自我的搜索历史的一对夫妇

我每年需要这两个线程。我可以' t记住了记忆中的确切答案,我甚至都会尝试。我总是可以抬头。

概括这种方法,只需对您需要做的内容,请继续忘记,复制/粘贴命令。必要性是一个强大的动机。

互联网上有许多有用的人们在如何解决某些问题或使用特定工具时编写教程。最近我正在建立一个VPN并找到一些书面文章。

我的方法 - 我读过并记笔记。当我需要记住时,我看看笔记。在那里有很多垃圾邮件,所以我更愿意在我知道有良好的内容等网站上搜索像Archwiki和Digitalocean。 Wiki Wiki帮助了我了解这些配置选项的意义和我们为什么要设置它们。较短的文章或Q&因为它只是给了我指示Weren' t足以建立我想要的网络。

文章也有助于当你不知道你不知道你知道的。像这个Linux网络工具的此列表。如果您对网络工具一无所知,甚至没有像NMAP和NC等名称,他们会给你一个简短的介绍让你开始。

最适合我的是什么是逐步学习。如果我看到一些例子,我知道如何使用一些东西。 TLDR确实如此。

我了解了Netcat,Netstat,NMAP,TCPDump,Ifconfig和其他更快地使用这些作战表而不是其他方法。

这些作战表已被翻译成多种语言。任何人都可以在github上贡献和改进它们。

所有这些资源都告诉您该工具是什么以及如何使用它们,但不是为什么他们被设计为什么。

由Kernighan和Pike的UNIX编程环境解释了这些命令背后的哲学,就像做一件事一样。它还可以清楚地解释Unix概念,如管道。

坚持做出一件事原则的命令很容易学习我提到的5种方法。一个例外。我认为git做了足够的东西,并且有一个尴尬的界面,它是斯科特希伽读专业人士的又一个有价值的界面。甚至撇去这本书就可以了解Git所能做的所有东西。

没有一定尺寸的所有人。当使用适合它们的方法时,人们会学到最佳。找到适合您的组合并使用它。

最后一件事我在之前提到。 不仅仅是效率,速度,可兼容性或任何次要问题,我们使用命令行看起来很酷,就像好莱坞的黑客理想。 如果有人在屏幕上散步,请务必在终端上运行CMATRIX。