首页IT科技一将功成万骨枯是褒义还是贬义(《nushell一将功成,万awk骨枯》—对比nushell和powershell(第二集))

一将功成万骨枯是褒义还是贬义(《nushell一将功成,万awk骨枯》—对比nushell和powershell(第二集))

时间2025-07-07 13:57:51分类IT科技浏览6083
导读:2022-10-05 nushell版本=v0.69.1...

2022-10-05 nushell版本=v0.69.1

Nushell powershell awk 对比 第二集 博客园

第一章 对比awk              ,nushell                      ,powershell的安装

1 nushell是mit协议的      ,rust开发的          ,【单文件程序!!!】                       ,所以nushell的安装真香!

2 从这点上来看awk完败              。Awk文件太多不绿色                      。Awk就占个内置的先机      。

3 powershell是绿色软件         ,从github下载后      ,解压便可执行                       ,但它是单目录中             ,有多个文件和子目录          。这比awk安装在多个不同的子目录要好                       。我还为大家做了linux一键安装powershell的脚本         。

安装脚本在码云   ,Linux下一键安装powershell:

https://gitee.com/chuanjiao10/kasini3000_agent_linux

结论:nushell和powershell都是绿色linux软件      。

第二章 对比nushell                      ,powershell的功能

1 nushell

关于nushell的扩展性                 ,目前我还是不看好                       。和powershell对比还是不行             。

不建议powershell人学习nushell,因为学了之后                  ,你会从西施变成东施   。Nushell中没有对象                     ,也就没有属性   ,方法                      。但有模仿的似是而非的东西              ,而且模仿的痕迹还特别大                 。比如:

Powershell:

‘abc’.toupper()

Nutshell:

‘abc’ | str upcase

Ls | where size > 5mb | sort-by name

关于nushell的适用场景:

awk最大的竞争对手                      ,敌人      ,就是nushell。它可以代替awk          ,sed                       ,可以支持表         ,json      ,xml                       ,bson             ,sqlite等   ,支持多线程并发                      ,支持特别老的linux                 ,和unix                  。它们的战场(对比场景),就是常见的【linux本地不规范数据处理】                     。

世界上90%的人                  ,都用linux的默认shell                     ,如bash   ,ash等   。只有不到5%的linux人把默认shell替换成了powershell              。用nushell当默认shell的人就更少了                      。也就是说              ,几乎没人拿nushell当shell用                      ,而拿nushell当awk用      。用nushell来处理数据      ,扣取字串          ,分行分列                       ,发送接收json等          。

2 powershell:Win         ,linux中      ,最强大的还属powershell                       。

Powershell的强大                       ,主要通过4点:

net         。powershell基于.net             ,powershell目录文件中   ,90%以上是.net文件      。Powershell用的是.net对象                      ,属性                 ,方法                       。 通过从nuget下载的.net的dll文件,给powershell各种扩展             。这些扩展是跨平台即win                  ,linux通用的   。如:在win              、linux中支持各种数据库                      。 强大联盟                 。微软在win10                     ,win11   ,winserver              ,linux                      ,azure。亚马逊在aws云      ,vmware在powercli中使用powershell                  。 我开发的kasini3000          ,这是一个开源                       ,免费         ,跨平台的      ,脚本级别的批量运维工具                     。而ansible是yaml级别的   。可以通过【kasini3000】同时控制多个云              。同时控制公有云                       ,私有云                      。同时控制win             ,linux被控机      。

Powershell和Kasini3000中有个功能   ,就是基于powershell的new-psssession的双向远程传对象          。请看:

$时间对象_从被控机传到主控机 = k_run_ip -ip 被控机ip地址 {get-date} $时间对象_从被控机传到主控机.addday(3) #被控机时间 + 3天

powershell管道传对象被你nushell无情地山z寨了                       。我想看看powershell的远程传对象                      ,你怎么山z寨         。

第三章 接续第一集                 ,继续探究nushell的功能      。

关于官方的,把nushell看成编译脚本:

这一个特性真的不好                       。Powershell没有这个特性             。

nushell第一集中的问题:可以定义带有点的变量                  ,却无法使用                     ,什么鬼?如:let a.a = 1 ,用$a.a ${a.a} 不能输出   。------已经修复   ,现在不能定义上述变量                      。

nushell第一集中的问题:在win的nushell中              ,的文件名补全                 。可以补全目录名(支持)                      ,目录中的文件名      ,有时候不能自动补全。文件名补全          ,打一个字母后                       ,不能补全         ,这个应该是个bug                  。------已经修复

nutshell中      ,这一个特性很好:

let if = 1                        ,let 1 = ‘a’             ,都可以定义                     。并使用$if,$1   。这和powershell相同              。Python中不允许这么用   ,而脚本人喜欢用 $1                       , $2                      。

nushell第2集发现的新问题:

管道可以和powershell联用                 ,但有问题:

pwsh.exe -c "echo a" | str upcase

A

----上述好多空格

echo a | str upcase

A ----正常

ls | autoview ---不灵了,应该是autoview命令删除了

$it ---不灵了                  ,没了      。

这个命令可以:

aaa 分割符 bbb | parse {a1} 分割符 {a2} | get a1

这个命令不行:让我感到难受

aaa 分割符 bbb | parse {1} 分割符 {2} | get 1 #不行

aaa 分割符 bbb | parse {$1} 分割符 {$2} | get $1 #不行

结论:

Python败在没有shell级别的命令行                     ,py脚本内支持管道很麻烦          。不建议使用                       。

而powershell是最简单   ,功能最强的         。它语法和shell 95%相同      。库随不如py强              ,但对脚本                      ,运维人员来讲人足够了                       。

awk是一个传统的【字符串级别】shell语言工具             。Awk是shell的架海紫金梁   。既然是【字符串级别】工具      ,那就免不了依赖正则                      。

nushell是一个【半面向对象级别】的shell工具                 。是通天灵宝的仿a制b品(寨c版)。Nushell通过伪对象          ,伪属性                       ,伪方法来实现功能                  。nushell有管道         ,而python可以看做没有管道                     。它支持sql库=sqlite      ,nosql库=bson                       ,用起来比py简单             ,它支持linux外部命令   。Nushell是单文件绿色软件   ,这点让它真香!nushell目前最大的对手是awk              。但nushell扩展性不如powershell                      ,python                      。

Shell工具本来是小众软件      。前有【饭醉团dd伙3人组awk-sed-grep】                 ,后有强大的【powershell抽喝烫】          。nushell浑身都是假%z货(伪对象,伪属性                  ,伪方法)                     ,nushell能杀出重围吗?敬请期待第3集                       。

欢迎awk支持者   ,参与讨论         。意见不同也很正常      。

Shell用户受困于awk              ,这导致excel文件=库                      ,mysql库      ,sqlite库          ,bson=nosql库                       ,不能方便地被shell用户使用                       。Awk和txt又不方便多核cpu             。而nushell的出现         ,部分解决了这种问题   。

对比nushell和powershell(第一集)

https://www.cnblogs.com/piapia/p/15016149.html

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
groom什么意思中文翻译成(Groovy Script: HTTP Builder Get Example) craft 文字检测(文本检测之DBNet,DBNet++)