GitHub - 尼南厄尔/尼南尔:一种新型的壳牌

2021-06-16 13:51:32

该项目已达到最低可行的产品质量水平。贡献者将Dogfood作为日常驱动程序,这可能对某些命令可能不稳定。文件发布将填写缺失的功能,提高稳定性。设计也可能会有所变化因为它成熟。

nu附带一组内置命令(下面列出)。如果一个命令是未知的,则命令将shell-out和执行它(在Linux和MacoS上使用cmd或bash上的bash),正确通过stdin,stdout,和stderr,所以像你的日常git工作流程一样,甚至vim都可以正常工作。

有一些良好的资源来了解nu.是关于目前正在进行的nu的书籍。本书专注于使用NU及其核心概念。

如果你'那是一个想贡献nu,我们的开发者,我们也在为开发人员提供帮助,帮助你开始。有一个帮助你潜入的问题也是好的问题。

如果你喜欢和我们聊天,我们也有一个活跃的不和谐和推特。

最新的安装说明可以在本书的安装章节中找到。 Windows用户:请注意Nu在Windows 10上工作,目前尚未拥有Windows 7 / 8.1支持。

要构建nu,您需要使用最新的编译器的稳定(1.51或更高版本)。

通过Cargo安装Nu(确保已通过Rustup安装稳定安装Rustup和最新的稳定编译器):

您还可以使用所有铃声和吹口哨构建nu(请务必为您的平台安装依赖关系),一旦您使用git检查了这个repo:

如果要提取预构建的容器,则可以为Nushell Organutionson Quay.io浏览标签。拉一个容器会归结为:

两个" nu-base"和#34; nu"提供nu二进制文件,但是nu-base还包括源代码/ codein容器和所有依赖项。

(可选)您还可以使用提供的Dockerfiles在本地构建包含:构建基础图像:

nu从PowerShell,功能编程语言和现代CLI工具等项目中汲取灵感.Rather而不是思考文件和服务作为原始文本,nu看每个输入都有结构。例如,当您列出一个内容时目录,您回来的是行的表,每行代表该目录中的一个项目。这些值可以通过一系列步骤管道,在一系列名为A&#39的命令中;管道'

在UNIX中,它与在命令之间拆分一个复杂命令的unix中的常见.nu进一步提高了这一步,并在流水线的想法中占据了这一步骤。作为Unix哲学,nu允许命令输出命令STDOUT并从STDIN.ADORDINGALY中读取,命令可以输出结构化数据(您可以将其视为第三种流)。在管道中运用的组合成三类中的一个:

命令用管道符号(|)分隔,以表示流动左转的管道。

> LS | intery ==" dir" | autoview───────────────────────────────────#│名││尺寸│修改───────────────────────────────────0│资产││ 128 b│5月前1│箱│dir│704 b│50 mins前2│debian│dir│352b│5月前3│docker│dir│288 b│3月前4│文档│dir│192b │50 mins前5次图像│dir│160 b│5月前6│src│dir│128b│1天前7│目标│dir│160b│5天前8│测试│dir│192b│3月前───────────────────────────────────

因为大多数时候你' ll想要看到管道的输出,假设autoview.we也可以写上面:

能够使用相同的命令并撰写不同方式是nu的重要哲学。对于例如,我们可以使用内置的ps命令,并在上面使用相同的运行进程列表。

> PS | cpu> 0───┬────────┬───────────────────┬──────────┬───── ─────────────────────│名│状态│CPU│MEM│虚拟─────────── ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ───────────0│335││睡眠│7.5699│0b│0 b 1│1609│脉冲仪│睡眠№6.5605│10.6 MB│2.3 gb 2│ 1625│GNOME-SHULL睡眠│6.5684│639.6 MB│7.3 GB 3│2202│网页内容│睡眠│6.8157│320.8 MB│3.0 gb 4│228788│nu_plugin_core_ps│睡眠│92.5750│5.9 mb│633.2 mb──── ──────────────────────────────────────── - ───────────────────

nu可以将文件和URL内容加载为原始文本或作为结构化数据(如果它识别格式)。例如,您可以将.toml文件加载为结构化数据并浏览它:

>开放Cargo.toml────────────────────┬───────────────────────── ──Bin│[表18行]构建 - 依赖关系│[行Serde TOML]依赖关系│[行29列]开发依赖性│[行nu-test-support]功能│[行19列]封装│[行12列]工作区│[行成员]────────────────────┴────────────────────── ─────

我们可以将其向获取其中一个列内容的命令中的命令:

>打开货物获取包───作者│[表1行]默认运行│nu描述│新类型的shell文档│https://www.nushell.sh/book/edion│2018排除│[表1行]首页│https ://www.nushell.sh许可证│mit名称│no readme│readme.md存储库│https://github.com/nushell/nushell版本│0.32.0──────────── ──┴────────────────────────────────────

最后,我们可以在我们拥有我们想要的数据之外使用命令:

在这里,我们使用变量$它将值称为管道的值。

nu早期支持配置shell。您可以参考本书以获取所有支持的变量列表。

NU将在一个目录中工作,允许您默认绕过文件系统导航.NU还提供了一种添加您可以跳转的其他工作目录的方法,允许您同时在多个目录中工作。

为此,请使用Enter命令,该命令将允许您创建新" shell"并在指定的路径中输入它。您可以使用p(for上一个)和n(下一个)之间的新shell和原始shell之间切换,允许您围绕shells.once&#39的环形缓冲区导航。使用shell完成,您可以退出它并从环形缓冲区中删除它。

最后,要获取所有当前shell的列表,可以使用shells命令。

nu支持为shell提供附加功能的插件,并按照内置命令使用的相同结构化数据模型。这允许您为您的需求扩展NU。

插件是二进制文件,在你的路径可用,遵循nu_plugin_ *通过一个简单的JSON-RPC协议,其中该命令标识本身命名convention.These二进制文件与Nu互动,并沿着它的配置,然后使其可用于使用。如果在传递插件是一个过滤器,数据流一次一个元素,它可以通过stdin / stdout流返回数据。如果插件是一个沉没,则给出最终数据的完整向量,并提供免费统治stdin / stdout在喜欢时使用。

nu紧密遵守构成其设计理念的一系列目标。随着要素的添加,它们将针对这些目标进行检查。

首先,nu是跨平台。命令和技术应在平台之间携带,为Windows,MacOS和Linux提供一流的一致支持。

NU' S工作流程和工具应该在2019年(及以后)在日常使用壳的日常体验中具有可用性。

nu视图数据作为结构化和非结构化。它是一个像PowerShell这样的结构化壳。

最后,nu在功能上查看数据。 不是使用突变,管道充当加载,更改和保存数据而不使用变形状态的手段。 您可以在快速命令引用中找到nu命令列表,完成包含文档。 NU是繁忙的发展,并且当它成熟和人们使用它时自然会改变。 下面的图表ISN'意味着要详尽无遗,而且有助于了解一些发展领域及其亲密完成: 我们' ve添加了一块路线图板,帮助协作捕捉我们的方向我们'重新加入当前的发布以及捕获我们' d的一些重要问题喜欢在努沙尔看到。 你可以在这里找到路线图。 该项目可根据麻省理工学院许可提供。 有关更多信息,请参阅许可证文件。