分享

shell脚本和批处理脚本有什么区别?

 昵称11935121 2018-03-19

shell脚本和批处理,通常是linux和windows下进行一些简单脚本执行任务的途径。对一半用户来说,反正都是执行任务,一个是linux、unix和mac下等类unix下,一个是windows下。但是两者是有很大的不同。


1、linux shell是个linux 操作系统的用户交互层

对linux来说,应用程序想调用系统底层的资源比如内核和硬件,必须通过shell调用。

命令行是个小应用

命令行是windows下的小应用,包括后来大幅度升级的PowerShell也是。


2、linux shell是存在交互层,包括应用接口和大量的工具链,不依靠图形桌面

对linux来说是必须的,没有shell是不行的,但是可以没有图形桌面,图形桌面不过是跑在shell上的应用。

shell下个工具,包括grep,sed,awk三剑客,以及其他cat、less、find、cut、sort、tail、top等大量小工具可以组成工具链方便的执行各种任务。

比如我们要统计一个web access日志的访问量最大的10个ip:

awk '{print $1}'|sort|uniq -c|sort -nr|head -n 10

命令依赖window桌面

而命令行包括powershell在window下都依赖window桌面,是桌面上的应用,没有桌面无法运行。


3、shell是一个很强大的编程语言

shell有很多个性版本的包csh,sh, bash 和zshell功能强大,不光是命令接口还是强大编程语言。

c shell、csh

编程能力强大,基于c语言语法,比如很多unix默认都是cshell。

ban shlinux默认的shell

linux发行版默认的shell,也是大家使用最多的shell环境,引入了大量适应性的个性,比如tab自动补全等。爱死它了。

zsh新一代的shell

命令补全功能非常强大,还有命令自动纠错功能,傻子都不怕输错命令了。很多码农们的最爱

对比下个各种shell的功能矩阵对比图:

微软的命令行也在进化

微软以dos起家,以窗口环境占领PC几十年,最近估计也慢慢感受到了linux带来的压力,所以也开始怀抱开源,对于命令行也在努力改善,推出了增强版Powershell,】各种功能上,以及编程体验好多了。

在window10中 微软还通过WSL引入了对linux子系统的支持,功能也非常不错,相关信息可以看笔者的文章《WSL大量功能更新,Bash on Windows还只是微软的一个玩具?》

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多