Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
nushell — 一种新型Shell | Kitploit
工具/GitHubGitHub/nushell/nushell
通用工具脚本与自动化
GitHubnushell/nushell

nushell

一种新型Shell

查看仓库网站
40.0k2.2k9小时43分前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Nushell

Crates.io Build Status Nightly Build Discord The Changelog #363 GitHub commit activity GitHub contributors

一种新型的 shell。

Example of nushell

目录

  • 状态
  • 了解 Nu
  • 安装
  • 配置
  • 设计理念
    • 管道
    • 打开文件
    • 插件
  • 目标
  • 官方支持
  • 贡献
  • 许可证

状态

该项目已达到最低可行产品的质量水平。许多人将其作为日常使用的 shell,但某些命令可能仍不稳定。随着 Nu 的成熟,其设计可能会发生变化。

了解 Nu

Nushell 书籍是 Nushell 文档的主要来源。你可以在书中找到完整的 Nu 命令列表,我们还在食谱中提供了许多使用 Nu 的示例。

我们也活跃在 Discord 上,欢迎来和我们聊天!

安装

快速安装 Nu:

root@kitploit:~
# Linux 和 macOS
brew install nushell
# Windows
winget install nushell

要在 GitHub Action 中使用 Nu,请查看 setup-nu 了解更多详情。

详细的安装说明可以在书籍的安装章节中找到。Nu 可通过许多包管理器获取:

Packaging status

关于 Nushell 团队积极支持哪些平台的详细信息,请参阅我们的平台支持政策。

配置

默认配置可以在 sample_config 中找到,这些是用户首次启动 Nushell 时获得的配置文件。

它设置了运行 Nushell 所需的全部默认配置。用户可以在此基础上根据自身需求自定义此文件。

要查看 config.nu 在系统上的位置,只需输入以下命令。

root@kitploit:~
$nu.config-path

请参阅我们的书籍获取所有 Nushell 文档。

设计理念

Nu 从 PowerShell、函数式编程语言和现代 CLI 工具等项目中汲取灵感。 Nu 不将文件和数据视为原始文本流,而是将每个输入视为具有结构的内容。 例如,当你列出目录内容时,得到的是一个行组成的表格,其中每一行代表该目录中的一个项目。 这些值可以通过一系列步骤进行管道传递,这一系列命令被称为"管道"。

管道

在 Unix 中,通常通过管道在命令之间传递数据,以将一个复杂的命令拆分为多个步骤。 Nu 更进一步,大力构建于_管道_这一理念之上。 与 Unix 哲学一样,Nu 允许命令输出到 stdout 并从 stdin 读取。 此外,命令还可以输出结构化数据(你可以将其视为第三种流)。 在管道中工作的命令分为三类:

  • 产生流的命令(例如 ls)
  • 过滤流的命令(例如 where type == "dir")
  • 消费管道输出的命令(例如 table)

命令通过管道符号(|)分隔,表示从左到右流动的管道。

root@kitploit:~
ls | where type == "dir" | table
# => ╭────┬──────────┬──────┬─────────┬───────────────╮
# => │ #  │   name   │ type │  size   │   modified    │
# => ├────┼──────────┼──────┼─────────┼───────────────┤
# => │  0 │ .cargo   │ dir  │     0 B │ 9 minutes ago │
# => │  1 │ assets   │ dir  │     0 B │ 2 weeks ago   │
# => │  2 │ crates   │ dir  │ 4.0 KiB │ 2 weeks ago   │
# => │  3 │ docker   │ dir  │     0 B │ 2 weeks ago   │
# => │  4 │ docs     │ dir  │     0 B │ 2 weeks ago   │
# => │  5 │ images   │ dir  │     0 B │ 2 weeks ago   │
# => │  6 │ pkg_mgrs │ dir  │     0 B │ 2 weeks ago   │
# => │  7 │ samples  │ dir  │     0 B │ 2 weeks ago   │
# => │  8 │ src      │ dir  │ 4.0 KiB │ 2 weeks ago   │
# => │  9 │ target   │ dir  │     0 B │ a day ago     │
# => │ 10 │ tests    │ dir  │ 4.0 KiB │ 2 weeks ago   │
# => │ 11 │ wix      │ dir  │     0 B │ 2 weeks ago   │
# => ╰────┴──────────┴──────┴─────────┴───────────────╯

由于大多数时候你都希望看到管道的输出,因此 table 是默认的。 我们也可以这样写上面的命令:

root@kitploit:~
ls | where type == "dir"

能够使用相同的命令并以不同的方式组合它们是 Nu 的一个重要理念。 例如,我们可以使用内置的 ps 命令获取正在运行的进程列表,并使用与上面相同的 where。

root@kitploit:~
ps | where cpu > 0
# => ╭───┬───────┬───────────┬───────┬───────────┬───────────╮
# => │ # │  pid  │   name    │  cpu  │    mem    │  virtual  │
# => ├───┼───────┼───────────┼───────┼───────────┼───────────┤
# => │ 0 │  2240 │ Slack.exe │ 16.40 │ 178.3 MiB │ 232.6 MiB │
# => │ 1 │ 16948 │ Slack.exe │ 16.32 │ 205.0 MiB │ 197.9 MiB │
# => │ 2 │ 17700 │ nu.exe    │  3.77 │  26.1 MiB │   8.8 MiB │
# => ╰───┴───────┴───────────┴───────┴───────────┴───────────╯

打开文件

Nu 可以将文件和 URL 内容加载为原始文本或结构化数据(如果它能识别该格式)。 例如,你可以将 .toml 文件加载为结构化数据并进行探索:

root@kitploit:~
open Cargo.toml
# => ╭──────────────────┬────────────────────╮
# => │ bin              │ [table 1 row]      │
# => │ dependencies     │ {record 25 fields} │
# => │ dev-dependencies │ {record 8 fields}  │
# => │ features         │ {record 10 fields} │
# => │ package          │ {record 13 fields} │
# => │ patch            │ {record 1 field}   │
# => │ profile          │ {record 3 fields}  │
# => │ target           │ {record 3 fields}  │
# => │ workspace        │ {record 1 field}   │
# => ╰──────────────────┴────────────────────╯

我们可以将其通过管道传递给一个获取某一列内容的命令:

root@kitploit:~
open Cargo.toml | get package
# => ╭───────────────┬────────────────────────────────────╮
# => │ authors       │ [list 1 item]                      │
# => │ default-run   │ nu                                 │
# => │ description   │ A new type of shell                │
# => │ documentation │ https://www.nushell.sh/book/       │
# => │ edition       │ 2018                               │
# => │ exclude       │ [list 1 item]                      │
# => │ homepage      │ https://www.nushell.sh             │
# => │ license       │ MIT                                │
# => │ metadata      │ {record 1 field}                   │
# => │ name          │ nu                                 │
# => │ repository    │ https://github.com/nushell/nushell │
# => │ rust-version  │ 1.60                               │
# => │ version       │ 0.72.0                             │
# => ╰───────────────┴────────────────────────────────────╯

如果需要,我们还可以进一步深入:

root@kitploit:~
open Cargo.toml | get package.version
# => 0.72.0

插件

Nu 支持为 shell 提供额外功能的插件,这些插件遵循与内置命令相同的结构化数据模型。在 crates/nu_plugins_* 目录中有一些示例。

插件是位于 PATH 中的二进制文件,遵循 nu_plugin_* 命名约定。 这些二进制文件通过简单的 JSON-RPC 协议与 nu 交互,命令在其中标识自身并传递其配置,使其可供使用。 如果插件是过滤器,数据会逐个元素地流经它,并且它可以通过 stdin/stdout 将数据流式返回。 如果插件是接收器(sink),它会获得完整的最终数据向量,并可以自由使用 stdin/stdout。

awesome-nu 仓库列出了各种 nu 插件,而 showcase 仓库则展示了关于 Nushell 的信息性博客文章以及突出技术主题的视频。

目标

Nu 严格遵守一组构成其设计理念的目标。随着功能的添加,都会对照这些目标进行检查。

  • 首先也是最重要的,Nu 是跨平台的。命令和技术应适用于所有平台,并且 Nu 对 Windows、macOS 和 Linux 提供一流支持。

  • Nu 确保与现有平台特定的可执行文件兼容。

  • Nu 的工作流程和工具应具备 2022 年(及以后)现代软件所期望的可用性。

  • Nu 将数据视为结构化或非结构化。它是一个像 PowerShell 一样的结构化 shell。

  • 最后,Nu 以函数式方式看待数据。管道不是使用变更(mutation),而是作为一种在无可变状态下加载、更改和保存数据的手段。

官方支持

请提交 issue 或 PR 以添加到该列表中。

  • zoxide
  • starship
  • oh-my-posh
  • Couchbase Shell
  • virtualenv
  • atuin
  • clap
  • Dorothy
  • Direnv
  • x-cmd
  • vfox
  • Windmill
  • Lacy

贡献

详情请参阅贡献指南。感谢所有已经做出贡献的人!

许可证

该项目在 MIT 许可证下提供。更多信息请参阅 LICENSE 文件。

下载工具