首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Rust写的NuShell用起来真香

数年来,作为我们和操作系统通讯的方式,本质上是一个命令解释器,它接收我们输入的命令(如ls,cat等),然后调用相应的应用程序。

如今你可能还在使用古老的和,或者看上去稍微不错的这些,还是在下使用的。今天我要给大家介绍一个生产力工具(装逼神器),它叫,关键是它用程序员最喜欢的写的,速度飞快,作为内核的界面,用重写安全性提高了,bug率降低了。

从许多熟悉的领域中汲取了线索: 等传统 , 等高级 ,函数式编程,系统编程等。但是 并没有试图成为所有行业的杰作,而是将精力集中在做好一些事情上:

创建具有现代感的灵活的跨平台

允许你将命令行应用程序与可理解数据结构的进行混合和匹配

具有现代命令行应用程序提供的用户体验优化

用强大的管道控制你的操作系统

一切都是数据,并可以像sql一样查询数据

插件系统,你可以扩展Shell通过自己编写插件的方式

当你运行一个类似 ls 的命令时,第一个注意到的是所得到的不是一个文本块,而是一个结构化的表

这个表不仅仅是用另一种方式显示了当前目录。就像电子表格中的表一样,可以更加交互性地处理数据。

比如,可以做的第一件事是把表格通过文件的大小来排序。

可以看到我们没有给 传递命令行参数。作为代替,使用了提供的命令来排序的输出。为了让最大的文件位于顶部,还使用了。

提供了许多可在表格上工作的命令。例如,可以过滤表格,只显示大于的文件

就像 哲学,命令是可以互相组合起来,通过管道符链接.

接着看下一个命令

如果你使用过,可能会对命令相当熟悉。这个命令展示了系统所有正在运行的进程和它们的状态与名称。我们同样可以查看到它们的 占用。

如果想显示正在使用 CPU 的进程怎么办?就像之前使用命令一样,我们也可以使用命令返回的表:

到目前为止,已经看到使用和列出文件和进程。 还提供了其他可以创建有用信息表的命令。

接下来,让我们继续探索。

运行将给出当前日期与时间的信息:

是不是比bash输出的要清晰好多,对比下的输出, 为了格式化,还需要查格式化命令

运行将给出所运行的系统的信息:

和之前的表有些不一样, 命令给出的表在单元格内包含了另一些结构化的表格,也就是表格嵌套了,而非简单的数值。为了查看到这些数据,我们需要选择要看的列:

命令可以跳入表格中一列的内容。这样,正在观看 列,它包含了关于 Nu 所运行的主机的信息操作系统的名字主机名CPU架构等等。让我们看看系统上的用户名:

目前,系统上只有一个用户,名为 。你会注意到,我可以传递路径( 部分),而不仅仅是传递列名。 将采用该路径并转到表中的相应数据位置。

你可能已经注意到其他的不同之处。这次查询没有一个数据表,而是只有一个元素:字符串 。使用数据表和字符串。字符串是在之外使用命令的重要组成部分。

让我们看看字符串如何在之外起作用。从前面的示例开始,并运行外部的 echo命令( 告诉不要使用内置的命令):

如果这看起来与以前的传统非常相似,那么就说明你拥有敏锐的眼睛!相似,但是有一个重要的区别:对前面看到的值调用了 。这允许我们将数据从传递到(或 外部的任何命令,例如 )。

注意:Nu 的内建命令的帮助文本可以用 来浏览:

安装Nu

方式1:从 安装

方式2:使用 ,你需要安装 和 :

安装完后,输入

进入Shell,即可尝试

更多的内容参考官网

官方地址:

Github: 

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210311A0F9JK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券