前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开源 Shell 神器,工程师装逼必备!

开源 Shell 神器,工程师装逼必备!

作者头像
IT运维技术圈
发布2023-02-02 09:48:50
1.5K0
发布2023-02-02 09:48:50
举报
文章被收录于专栏:IT运维技术圈

什么是nushell?

nushell 是一个用Rust语言开发的,非常易于上手的shell.

为什么要使用它?

简单、好用、现代。先看一个小例子。记得先使用nu命令进入nushell。

写在前面的结论?

nushell真的很牛很好用。其最大的问题(我认为)是:扩展性。一个基于Rust语言,却不支持直接使用Rust语言写脚本,还要通过开发plugin来扩展。这样的扩展性最终会阻碍它被更广泛的使用。“扩展”是一个构建生态的核心点。

最需要知道的命令?

上面的例子,是不是很好用。where 很强大,也很方便。ls输出也很直观。多希望有一个各个命令的cheat sheet。使用help commands, 友好的nushell预先提供了这个"小抄"指令。

必须要知道的优点

  1. 使用管道

2 json/md/bson/yaml等数据的处理:

参考 help from 和 help to。提示,对json做更定制化的查询,还是要使用其它linux命令,譬如jq和jsawk。

3. 和bash通过管道协同使用:

nu -c 'ls' 在shell中调用nushell并执行指令;

nu my_nu_script.sh在shell中调用nushell, 执行nushell的脚本。

核心的指令有两个。lines把文字转换为表格,to tsv 把表格转换为纯文本。

nushell 的缺点

在使用过程中有几个痛点。

其一,安装时,在Ubuntu 18.04上会报错(如下),因为nushell依赖的GLIBC的版本不正确。在更早期的、Ubuntu版本中还会报open_ssh版本错误。

代码语言:javascript
复制
nu: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by nu)

归根结底是它有依赖。推荐安装cargo (Rust语言常用的工具,类似nodejs的npm, python的pip), 通过cargo 安装编译nushell, cargo install nu。更多方式,参考下面的文档。

其二,nushell可以基于自己的指令定义函数、基于函数定义脚本。但,这些和Rust语言没啥关系,你甭想用你熟悉的Rust语法写点啥,请nushell帮你执行。除非你开发自己的nushell的plugin。

其三,nushell安装后除了nu这个执行文件外还有15个plugin文件和其它文件,footprint有点大。如果是单文件,是不是更酷一点点。

总结一下:

喜欢nushell是因为指令简单、管道方便、非常易于上手。(我猜)20%的拒绝使用的人是因为安装问题。如果还有20%,就是因为它不能随心所欲的嵌入Rust语法,于是就没有动力把熟悉的bash/zsh换成nushell了。

最后做一个对比:

项目地址: https://github.com/nushell/nushell

原作者:michael

源链接:

https://zhuanlan.zhihu.com/p/446582737

编辑:IT运维技术圈

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-01-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT运维技术圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么要使用它?
  • 写在前面的结论?
  • 最需要知道的命令?
  • 必须要知道的优点
  • nushell 的缺点
  • 总结一下:
  • 最后做一个对比:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档