可重复性高
开源、免费啥的很多人提到了,但我不是很赞同。事实上在Linux和Windows之前,闭源且更为昂贵的各种版本Unix在企业应用中大行其道。哪怕到了今天,还有一大波程序员认为mac是最好的开发工具——macOS开源还是捆绑macOS销售的mac比算上Windows许可费用的PC便宜?
不提macOS,我敢不客气说一句,和Windows相比,Linux上的GUI都是垃圾。Linux的GUI对我来说只有三个用途:看网页可以用鼠标点击超链接,看PDF能看原始排版,开N个xterm。
正是因为Linux的GUI如此垃圾,Linux下大部分应用对命令行、基于文本的配置支持都很好。GUI能做的事情几乎都可以用命令行完成,这意味着一些重复频率高的操作,都可以通过编写脚本完成。
Windows如果说以前的命令行不够强大的话,平心而论PowerShell足够强大了。我这里不想对比PS和*nix的Shell到底哪些方面什么场景谁强一点好用一点,我就说一点:除了操作系统本身提供的应用、功能以外,大量的第三方应用,*nix的shell几乎可以完成所有的GUI能实现的操作、功能;但Win的PS不可以,支持PS并且能用PS完成GUI界面操作的第三方应用,100个应用你找不出2个来。
对于个人用户来说,这个优点其实没啥大不了的,反正常用的就那么一两台设备,普通桌面用户也没多少操作是真正重复度高的,更多的是人机交互操作,用户根据屏幕的不同信息进行不同输入、操作,就算应用支持PS,用户自己对PS开发很熟悉也写不出几个脚本。
但对于一个人管理N台设备,以及其它虽然设备数量少但任务重复频率很高的场景,*nix的shell就很有用了。支持正则表达式,加上grep、sed、awk之类的强大文本处理命令,配合shell变量,你可以用shell脚本完成98%的操作,使用时只需要简单的运行一下脚本,顶多加几个参数或者输入若干必须的信息。而且这些个脚本可以轻易的用wget、curl、git等命令从网络上下载到本地。 |