在与数据科学紧密联系的计算机科学领域,像开发人员一样控制计算机是一项非常宝贵的资产。Unix命令行界面(CLI;您还将看到它称为终端或bash,shell等),它使我们能够执行更多操作。
因此,我们推出了两门全新的课程,涵盖了Python中的数据分析师和Python路径中的大数据分析的命令行基础知识:
1)命令行元素
2)命令行中的文本处理
参加这些课程不需要先决条件知识。
你会学什么?
在这两个命令行课程中,您将学习如何使用Mac和Linux计算机上内置的Unix终端界面。不用担心,我们还将为Windows用户提供充分利用内容所需的工具。
在第一门课程中,您将学习命令行界面是什么,为什么它在数据科学工作流程中很重要,以及如何通过给计算机提供称为命令的指令来导航和管理计算机。您还将了解通配符和如何将它们连同像命令使用ls,mv,cp,mkdir,多为更快的搜索和工作流。
第二疗程的重点是基本的文本处理中的外壳,使用类似的命令head,cat,cut和grep。它涵盖了如何组合这些命令以从更简单的构建块创建功能强大的命令链。您还将了解多用户系统以及输出重定向的功能。
与所有AAA教育课程一样,这些新的命令行课程使用交互式命令行环境和答案检查功能,使您可以直接在浏览器中应用和检查正在学习的所有内容。
学习命令行的12个理由
从图形用户界面(GUI)切换到CLI可能会让人感到不知所措,但是我们在这里为您提供帮助!为了让您快速入门,以下是一些您应该学习命令行的原因。
1.命令行技能很受欢迎并且薪酬丰厚
根据2018年Stack Overflow的开发人员调查,bash / shell(即Linux命令语言解释器家族)是整体使用频率排名第六的语言,排在Python和R之前。它的薪水也比Python或R高进行调查。
它还排在最想要和最喜欢的技术的列表中,而没有列出最令人恐惧的技术列表。
尽管StackOverflow的调查涵盖了各种软件开发人员和工程师,但命令行对于数据科学家而言尤其重要,因为Bash / Shell与 Python,IPython / Jupyter,TensorFlow和PyTorch等数据科学技术有着密切的联系。Python Software Foundation进行的最新Python开发人员调查也支持这一点。
2.命令行技能帮助构建可重复数据过程
数据科学家的职责之一是确保经常(每天)定期获取某些信息。大多数情况下,以相同的方式获取,处理和显示此数据。
命令行非常适合此目的,因为命令易于自动化和复制。
考虑以下情况。您的雇主决定投资于数据分析。几位数据专业人员将加入该团队。您的任务是确保他们的机器具备启动所需的一切。如果可以使用CLI(命令语言解释器),则可以编写一些脚本来自动安装,配置和测试所有内容。否则,您将不得不求助于GUI并使用相同的鼠标并在多台计算机上反复单击移动。
这只是终端技能如何帮助使数据科学流程更具可扩展性和可重复性的一个示例。
3.命令行技能使您更灵活
在数据科学领域,您经常会发现,如果您可以使用终端而不用依赖于单击GUI,则可以拥有更大的灵活性。由于命令行是运行其他程序的程序(因此称为“ shell”),因此程序之间的交互通常更容易在命令行中进行调整。掌握了命令行命令后,编写脚本就相对容易了,而Shell脚本使构建各种数据管道和工作流变得更加简单。
更广泛地讲,了解如何使用外壳为您提供了与计算机交互的第二种选择。您随时可以根据需要使用GUI,但是在需要的时候,命令行可以为您提供更多直接的功能和控制。
4.使用文本文件更容易
文本文件是存储和处理数据的最常用方法之一,几乎任何数据科学项目都将涉及文本文件的某些工作。因此,对于数据科学家而言,能够快速有效地处理文本文件是一项非常有用的技能。
该外壳程序具有非常强大的文本处理工具,例如AWK和sed,可帮助您熟悉文件并方便数据清理。
例如,以下代码使用AWK来打印名为的文件的第一和第三列a_csv_file,其中第二个字段的值为AAA教育,并使用逗号作为字段分隔符。
只需要一行代码!
5.资源消耗少
当您使用有限的计算资源或仅想最大化速度时,使用命令行实际上总是比使用GUI更好,因为使用GUI意味着资源必须专用于呈现图形输出。
对于本地和远程工作都是如此。远程连接时,GUI消耗的带宽比终端多得多,从而浪费资源。此外,使用GUI时,潜伏期(即“刺激和响应之间的时间间隔”)会更长,如果您要控制的鼠标落后于实际动作一两秒,这会特别令人沮丧。如果您只是在命令行中输入,则延迟可能会更短,并且也将更容易处理,因为您可以准确地知道任意给定时间的光标位置。
6.您需要针对云的命令行技能
云服务通常连接到命令行界面并通过命令行界面进行操作。对于深度学习等更高级的数据科学工作而言,这尤其重要,在该工作中,本地计算资源可能不足以完成您想执行的任务。
7. Unix Shell技能可以很好地移植到其他Shell
仅有一些流行的shell(bash,zsh,fish,ksh,tcsh,cmd,Windows PowerShell等),它们比其他的相似得多,因此可以轻松地在它们之间进行切换。当您使用需要某种CLI的在线服务时,此功能特别有用。另一方面,GUI是无止境的,学习一个GUI并不一定能帮助您学习其他GUI。
8.您键入的速度可能比单击速度快
研究表明,鼠标使用速度相当快,而键盘的使用尽管学习曲线陡峭,但效率更高。
换句话说:即使您觉得通过GUI快速工作,也很有可能至少在某些任务上在命令行中会更高效。
9.审核和调试更容易
由于在命令行上跟踪所有活动非常容易,因此审核和调试要容易得多。您可以轻松地浏览日志以跟踪您在外壳程序中执行的每个操作,而如果在使用GUI时单击不正确会导致错误,则可能没有任何记录。
10. Unix Shell随处可用
尽管它仅内置在Mac和Linux计算机上,但Windows用户仍然可以通过WSL,Cygwin和MinGW之类的工具来享受乐趣。这意味着您在这些课程中学习的命令行技能几乎可以在您遇到的每台计算机上使用(包括您的个人计算机,无论使用哪种操作系统)。
11.您可以利用语言的力量
通过终端窗口与计算机交互时,我们使用命令。这些命令是语言的一部分,语言具有巨大的表达能力。
命令行允许我们使用语言的力量以更精致,优雅和有效的方式与计算机交互。
作者在总结类比时说:“真正的表达能力来自语言,示例和指向的结合。” 换句话说,如果可以使用CLI和GUI的健康组合,您将更有效率。这些命令行课程的重点并不是让您完全放弃GUI,而是为您提供了另一个工具库,可以使您在执行特定任务和工作流时更加高效。
12.命令行比您想象的要简单
有一个误解,使用命令行需要您知道数百条命令。实际上,尽管有数百种命令可供使用,但是您可能只需要这些命令中的一小部分即可完成大多数常见的数据科学任务。