传统的黑色背景和白字体是我们最早认识的Shell 环境。我依然记得1.0的DOS启动后可以进行打字和玩游戏操作。随着时间和技术的发展,CMD Shell慢慢地被边缘化,但是为了兼容早期编写的BAT代码,CMD Shell依然受到各个版本的支持。现在的Windows 10 系统依然存在CMD Shell,作为早期BAT和CMD的可兼容脚本的运行基础。通常来说,CMD Shell 具有以下特点。
· 背景单一,怎么调整都不好看。
· 命令不是自然语言,是纯粹的各类不同命令,比较难记忆。
· 命令参数无法支持Tab键,需要认真记忆参数。
CMD Shell 存在的诸多问题,让脚本编写人员无法快速理解和学习自动化运维,从而使写脚本成为一件非常痛苦的事情,你看图1.5中小铭就开始向师傅抱怨CMD Shell难懂了。
图1.5 小铭向师傅抱怨CMD Shell难懂
这是一条在活动目录中添加用户的方法,在执行这条命令的时候,相信60%~70%的IT管理人员看起来非常费劲。为了解决问题,很多人不求甚解就直接运行命令,结果反复地出现错误信息。执行这条命令的时候,很多人可能不清楚%a、%b、%c分别代表什么,看起来都非常难懂,在传统的CMD Shell 模式下我们进行命令编写确实是一个非常痛苦的过程。另外由于CMD Shell 非常封闭,在进行脚本编写的时候,我们在与其他的对象进行交互时如果没有相应的命令对应,将无法在CMD中调用相应的目标接口进行命令执行。
举例说明,现在外部网站有个接口,我们希望通过CMD Shell 推送数据到外部网站的接口,你会发现,默认的CMD Shell 没有这样的命令完成数据的具体推送。而目前网站回馈的信息很多时候都是XML或Json格式,这也是学习CMD Shell 一个比较大的难点。