{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

PowerShell与Linux Shell有什么不同?

EricEric 回答0 收藏1
问题描述:PowerShell与Linux Shell有什么不同
收藏问题

2条回答

zero

zero

回答于2022-06-28 12:08

Shell是LINUX系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。

Windows PowerShell 是WINOWS一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。微软这次没有低调,强硬的命名它为PowerShell ,看样子想在SHELL界面里打败BASH。

一、理念论

从理念上 ps 比 bash 先进一代,ps 有完整的、强类型的编程支持,bash 里面全是字符串。Powershell 里面很多的函数比 UNIX 更加正交,如 % 和 ?,可以提供极其可怕的抽象能力,你 bash 就是做不到。

不过针对理念这一说法,也有人提:说PS的OOP理念比shell纯字符串先进的同学请想一想:JavaScript的对象字面量,是用字符串表示对象,这样的一种技术为什么大受欢迎?答案是从使用者友好的角度看,字符串要优于对象,而命令行恰恰是人机交互界面,这就是为什么shell比PS易用的原因,至于比较“理念”哪个先进,对于靠代码吃饭的人来说就是扯淡。

二、用法论

1、bash 快,易用,提示好,难学。写 script,看 script 的时候你想砸电脑。ps 写的 script 清晰,好读,有一点编程基础,就算几乎没学过 powershell 都能猜出来啥是干嘛的,但是比较慢。。。所以说平常交互的话 bash(bash-it, oh-my-git, oh-my-zsh)更好用一些,但是真正写起 script 的时候感觉还是 powershell 爽。

2、如果你受够了bash靠文本解析和环境变量来解决逻辑问题,你会无比渴望一个OO的Shell。——PS简直是大救星。随着PS用多了,你会发现,PS的OO有些走火入魔,你又会开始怀念简单粗暴的bash。

三、技术论

这个不是一两句话能说清楚的。PS包含了BASH很多命令了,甚至我看有想法把BASH所有的命令都移到WIN下,让BASH成为它的一个子集。不过也有人指出肯定是GNU Bash好呀,毕竟Bash作为大量Linux发行版默认的Shell,久经考验。如果两个具休技术细节比较的话,需要长篇大论了。这里有两者具体的技术的比较:http://hyperpolyglot.org/shell。

评论0 赞同0
  •  加载中...
Jeff

Jeff

回答于2022-06-28 12:08

我想题主既然主动提问这样的问题,想必是不想看充满技术细节的长篇大论了,因为网上这样的内容非常多,你使用这个问题直接去搜,就能搜到一大片。

所以我也长话短说,尽量用尽可能少的内容直白地讲出它们最核心的区别。

一句话概括,二者定位不同,Linux Shell 是给用户用的,而 PowerShell 是给开发/运维工程师用的,当然前者是包括后者的。

我们知道,使用 Windows 的话,不会 PowerShell 完全没问题。但使用 linux 的话,不会 Shell 寸步难行。这既和两种系统的特性有关,也和 PowerShell 和 Linux Shell 本身有关。

暂且不提操作系统层面的区别,只提这两种语言的区别。二者的理念是有很大区别的。

PowerShell 的理念是,你花些时间和精力把我学好,那以后可以用我做很多复杂的事情,这是一个非常划算的买卖(虽然实际未必如此)。所以它的门槛是有一些高的,但功能更强大一些。

Linux Shell 的理念是,我要尽量简单,你不需要花很多精力就可以用我做一些简单的事情,但如果想做更多复杂的事情,那深入学习也是免不了的,但最好不要拿我做太复杂的事情,我会受不了的。

那么大概就能体会出二者的核心区别是什么了。

评论0 赞同0
  •  加载中...

相关问题

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<