前几日,小编注意到ChinaUnix论坛中有一贴子《大数据崛起时代,命令行技术的价值在哪里?》网友们讨论的很是热闹,网友fengzhanhai说道“命令行给系统管理员及开发人员带来的灵活性和快感不是图形界面所能够替代的”。于是小编也投身参与,让我们一起来讨论。
命令行技术的优缺点
使用命令行是很有趣的,记住各种命令,学会脚本的编写,用命令行是非常高效的。即使是使用Windows Server,我们也可以使用PowerShell,继续享受命令行的乐趣。对于初学者来说,命令行需要学习并记住很多命令及用法,显得颇有难度。
网友seasea2517说“不用鼠标操作减少鼠标手烦恼,灵活、容易实现自动化批量化、系统要求低、不同平台的同样命令行工具下的操作相同。不足就是不够直观,上手比GUI慢一些。”
“从最初的dos命令行,truboC的命令行编译及执行,到unix和linux时代命令行的普遍应用。他是一个系统工程师的普遍技能。但命令行是结构化编程变成的产物,在面向对象编程的今天,追求对象的引用、类的实例化、RPC的时候,命令行就其不能应对复杂的调用关系和形象的编程。尤其对于UE用户体验要求较高的场合,命令行基本用不上。”网友hiyachen说道。
网友yinyuemi非常喜欢命令行,他说“我的学习之路,有80%的代码都是在命令行学习和运行的。很喜欢这种“沟通”方式,用awk/sed/grep等处理文本,命令行里操作无疑是高效的。经常是一段代码从头写到尾,不换行,一气呵成,感觉只有这种方式不会把在脑子里形成的伪代码思路隔断。不足之处,我觉得是命令行毕竟是依赖于终端,history的记录数有限,对于新手或不熟悉linux环境的童鞋们,一旦终端关闭,再想找回之前的代码记录并不是一件容易的事。当然,高手们不会为此感到烦恼。”
那些你接触过的命令行工具
相信每个Linux爱好者都能说出一大串命令行工具,并且能把它们运用的恰到好处!欢迎你们到论坛中(http://bbs.chinaunix.net/thread-4181945-1-1.html)来补充,这里说两个印象比较深刻的~
网友xdsnet说道“用的比较多的是bash环境,以及其上的各类命令行工具,主要有直接bash内置命令行结合系统命令进行系统管理。“
另一位网友jieforest谈到“Linux Shell,Python的Shell、Ruby的Shell等。Linux Shell用于解决服务器维护、搭建生产环境、部署业务、测试等等。Python Shell、Ruby Shell通常用于开发及调试代码。“
面对高大上的数据科学,命令行过时了吗?
打个做菜的比方,来描述数据科学5部分(数据获取、数据清洗、数据探索、数据建模、数据解释),要做一道菜的步骤——a先要有原材料,有菜;b 洗菜,过滤无用数据;c 探索菜谱,能做啥菜;d 建模,实际做菜;e 解释->吃菜,吸收营养。
网友seesea2517说:“和数据打交道多的就是 mysql 了,对于数据库的数据来说可以用 mysql 或 mysqldump 获取数据,可以在 mysql 里做数据过滤,也可以用 awk sed grep 等过滤”命令行工具和技术永远在发挥着它的更接近于底层,一个个对资源(cpu、内存、网络、存储)的有效利用。
也有网友说道:“一直用命令行处理文本问题,而对于数据科学在命令行的操作,命令行会不会略显单薄。”
小编认为:命令行灵活、可增强、可扩展、可扩充无所不在,能使你真正成为更加高效和多产的数据科学家。数据是数据科学工作的主要原料,因此很重要的一点是要能很容易地处理包含数据集的文件。命令行为此提供了许多方便的工具。命令行与其他技术能够无缝集成。一方面,你可以经常在自己的工作环境中采用命令行。例如,可以在Python 和R 中运行命令行工具并捕获其结果。另一方面,也可以将自己的代码(例如以前编写的Python 或R 函数)转变为命令行工具。
【结语】
数据科学中,数据解释最为关键,仅根据数据找出相关性,但缺乏相关领域的理解和解释,是很危险的。就像一个婴儿和一棵树苗,在发育期的时间交集区间内都会长高。看数据,相关性非常好,但这两组数据没有任何关系。如果不能用合理的行业知识解释数据的结果,就很容易犯这种错误。命令行在实施数据计算分析处理方面,是跨行业、跨学科的人进行有效协作,最简单直接的方式。数据分析处理光靠学计算机的专业程序员是不够的,更多的是依靠各个学科领域的专业人士编写的程序包。把他们的成果汇集,还是一个个命令行程序。所以命令行不会过时,命令行工具和技术也发挥着作用,只是调用/处理流程上会发生变化,很多命令行命令(组/集)因为需要重复使用,而为了减低工作强度,会通过配置、预处理等等手段来减少正式命令行输入,但本质还是命令行工具。
作者: 杨璐
来源:IT168
原文链接:大数据时代 命令行技术过时了吗?