几乎每个编程工具都具有命令行版本。其中许多还具有gui版本。学习不同的命令以及命令行版本的各种选项/开关需要花费大量时间和记忆。
因此,我有几个问题(不一定是互斥的):
1)什么时候您会花时间学习/记住工具的命令行版本中的命令,而该命令行版本也是gui版本的?
2)我应该学习哪些工具的命令行版本?....编译器?版本控制系统?等等
几乎每个编程工具都具有命令行版本。其中许多还具有gui版本。学习不同的命令以及命令行版本的各种选项/开关需要花费大量时间和记忆。
因此,我有几个问题(不一定是互斥的):
1)什么时候您会花时间学习/记住工具的命令行版本中的命令,而该命令行版本也是gui版本的?
2)我应该学习哪些工具的命令行版本?....编译器?版本控制系统?等等
Answers:
已经有很多好的答案。我再增加一个观点。
当您想使人员脱离方程式/过程时,可以使用命令行工具替换GUI。这样做的一些原因和/或好处:
什么时候做?当发现重复自己时。
当然,有GUI的地方和时间。但是,如果您真的想利用计算机的功能并顺应摩尔定律的浪潮,则需要学习编写脚本脚本。
编辑:额外的奖金。您可以穿这件T恤了:)
地雷是:
1)提高生产力。对我来说,在shell中执行操作比单击即可。我说的是使用工具,而不是设置service / tool / etc,因为有时拥有一个向导并单击可以更快Next
Next
Next
,尽管这些向导也存在于命令行版本中:)
2)在您的应用程序中使用命令行版本。例如,假设您要将PDF转换为文本文件。如果使用GUI版本,则可以。但是,如果它还提供了一个命令行界面,您可以在其中执行以下操作:./pdf2text input.pdf output.txt
,那么如果您需要开发一个从PDF读取文本的应用程序,则可以轻松使用它,而无需使用任何API或进行一些调整。 。
3)学习应用程序的一般性知识。例如,如果您在Windows上安装了diff,并且有一个用于比较两个文件的前端。那很完美。但是,如果您需要在Linux上使用它呢?您可以为Linux找到相同的前端,但是如果不存在该怎么办?您将不得不再次学习如何在Linux上使用它,安装新的前端并习惯于使用它。如果您了解了如何使用命令行版本,则不需要它;)
大约3)...有些人习惯于在Windows上使用Git时会遇到很多麻烦。他们说Windows上没有很好的前端,但是如果您只是学习命令行方式,就不会有问题。它的工作方式相同。当然,问题是有时人们会害怕命令行 ;)
我建议您学习以下命令行版本:
vimdiff
它也是一个命令行工具,不是吗?
gvimdiff
我觉得学习命令行工具的好处远远超过了使用GUI的好处。很多时候,GUI失去了功能,但是不能总是这样说(例如,在Windows上查看cmake-在正常情况下没有理由使用命令行)是不公平的。
就记忆而言,没有特别需要记住第一次使用该程序的命令集。只需在手册上加上书签(如果使用在线手册,否则在* nix上使用“ man”),并且如果需要特定功能(您尚未记住),请参考该手册。对这些东西的记忆应该自然而然地被利用。例如,我经常从命令行运行“ tar”和“ gzip”,但是我必须参考手册来完成我通常不执行的任务。
最重要的是,如果您要运送产品或发送某种形式的源代码或以其他方式发送给其他开发人员,则包含命令框架要比编写使用GUI的详细说明容易得多。如果开发人员不理解您使用的命令行选项,则可以简单地查找它们。向某人解释GUI并非总是最可移植的解决方案。
问候,
丹尼斯·M。
简短答案:更改(即使用命令行)的最佳时间是NOW。真正的男人使用键盘。真正的男人不要点击。期。
更长的答案:从长远来看,除了提高生产力并因此变得更有价值(不太可能被解雇)之外,使用命令行可以/将/应该使您更聪明(由于大量的实践/记忆)和更健康(因为在人机工程学中,同时在命令行界面中同时使用两只手而不是用鼠标一只手)。
在http://www.over-yonder.net/~fullermd/rants/winstupid/1上,这是强烈推荐的文章/文章“ Windows为什么导致愚蠢 ” 。