【搬家】【软件工具】Terminal & Command 差异探讨——第二部分

本文最早于 2014年1月6日于本人个人博客(http://mooowooo.tk)发表,现博客搬家至此,转载请注明出处。

上一篇说完了 壳程序 的本质以及 Linux/Unix 家族的 Terminal 和不同的 Shell 环境,今天我们来看看 Windows。

目前的 Windows 里,提供了2个不同的壳程序——一般我们熟知的 CMD.exe 和后来其实我不知道是那个版本新加入的 PowerShell。那么这两个有有什么区别与联系呢?我们分别来看一下。

首先,CMD.exe 程序不是很多人所认为的“DOS窗口”,它其实是 Windows NT 的命令行接口,他是一个独立的程序,在 Windows 2000 之后,系统不支持直接运行 MS-DOS 程序的情况下,由 CMD.exe 在完成执行代码的动作。其实我们可以比较简单粗暴的把 CMD.exe 看做一个 MS-DOS 的虚拟机环境。说到这里,就不得不提一下另一个叫做 command.com 的程序。command.com 其实本质上来说是一个16位的 DOS 程序,主要用于运行一些老旧的 DOS 命令。不过事实上,在现在的系统里,几乎已经用不到甚至找不到 command.com 了,就算使用它,很大部分的命令最终也是发送给 CMD.exe 执行的。

说完了 CMD.exe,我们接下来说一下 PowerShell。PowerShell 其实可以看做 Windows 下的 Shell 环境。该程序与 CMD.exe 的区别在于他内置自己的脚本语言和相关辅助工具而非一个单纯的命令行接口。PowerShell 本身所用到的技术也于 CMD.exe 不太一样,PowerShell 由 .NET Framework 为基础向后兼容,它不光能访问 .NET CLR 也能使用 COM 技术,从我的理解来说,他不光可以完成 CMD.exe 所作的事情,还可以使用 C# 等 .NET 技术完成更高级更复杂的工作。

但是其实说一千到一万,真正的不同 Shell 间的差别都远非我这里所谈这么简单,这两篇文章只是针对 Terminal Command Shell PowerShell CMD 等等我们常见常用却不了解的工具做一个简单的梳理而已。根据我理解来说,其实我们目前在桌面环境下所打开的,其实都不是真正的 Shell 甚至不是真正的 Terminal,而是被图形界面和窗口管理系统再次包装过的一个更加高层次的

本文与上一篇文章全凭自身粗浅理解得来,中间掺杂不少个人的体会,如有错漏,望请一定指出,万分感谢!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值