首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >最牛现代化 Shell 工具 NuShell

最牛现代化 Shell 工具 NuShell

作者头像
Tinywan
发布2025-10-20 17:20:33
发布2025-10-20 17:20:33
14100
代码可运行
举报
文章被收录于专栏:开源技术小栈开源技术小栈
运行总次数:0
代码可运行

概述

NuShell无疑是近年来最耀眼的明星。它不是简单地复制 Bash 或 Zsh 的老路,而是大胆地将 Unix 管道哲学与现代数据处理相结合,用 Rust 语言重塑了一个全新的 Shell 生态。

如果你将不再依赖一堆工具如 awk、grep 或 jq,就能轻松处理 JSON、表格数据,甚至是数据库查询——这就是 NuShell 的魅力。作为一个跨平台工具,它在 Linux、macOS 和 Windows 上都能无缝运行,让开发者、运维工程师和数据爱好者眼前一亮。

官网:https://www.nushell.sh

安装

好消息是,NuShell 的安装超级友好,支持多种方式。最新版本是 0.107.0,于 2025 年 9 月 2 日发布,带来了多项改进,如更好的插件支持和性能优化。 下面是针对主流平台的快速指南:

Linux

  • 使用 Cargo(推荐,如果有 Rust):运行 cargo install nushell,它会从 crates.io 下载并编译最新版。
  • 预编译二进制:从 GitHub Releases 页面下载适合你的架构的 tar.gz 文件,解压后将 nu 可执行文件移到 /usr/local/bin
  • 包管理器
    • Ubuntu/Debian:sudo apt install nushell
    • Fedora:sudo dnf install nushell
    • Arch:sudo pacman -S nushell

macOS

  • Homebrewbrew install nushell——最简单的方式,几秒钟搞定。
  • 或者用 Cargo 或 GitHub 二进制,同 Linux。

Windows

  • Winget:以用户范围安装 winget install nushell,或管理员范围 winget install nushell --scope machine
  • 也支持 Cargo 或手动下载 exe 文件。

“安装完成后,直接输入 nu 启动交互模式。如果你是初学者,别忘了运行 help 查看内置帮助。整个过程零门槛,即使是新手也能在 5 分钟内上手。

快速上手

NuShell 的学习曲线平缓,因为它保留了 Unix 管道的精髓,但加持了智能语法。启动后,你会发现 ls 不再吐出一堆乱码,而是整齐的表格:

代码语言:javascript
代码运行次数:0
运行
复制
D:\dnmp\www\ai\redis-stream> ls
╭────┬───────────────────────┬──────┬─────────┬───────────────╮
│  # │         name          │ type │  size   │   modified    │
├────┼───────────────────────┼──────┼─────────┼───────────────┤
│  0 │ .github               │ dir  │  4.0 kB │ 5 days ago    │
│  1 │ .gitignore            │ file │   598 B │ 5 days ago    │
│  2 │ .idea                 │ dir  │  4.0 kB │ 5 minutes ago │
│  3 │ .last-deploy          │ file │   171 B │ 5 minutes ago │
│  4 │ .phpunit.result.cache │ file │ 18.0 kB │ 3 days ago    │
│  5 │ CLAUDE.md             │ file │ 10.6 kB │ 2 days ago    │
│  6 │ README.md             │ file │ 15.3 kB │ 5 minutes ago │
│  7 │ composer.json         │ file │   683 B │ 5 days ago    │
│  8 │ composer.lock         │ file │ 79.9 kB │ 5 days ago    │
│  9 │ examples              │ dir  │  4.0 kB │ 2 days ago    │
│ 10 │ index.html            │ file │ 84.0 kB │ 5 minutes ago │
│ 11 │ phpunit.xml           │ file │   995 B │ a week ago    │
│ 12 │ src                   │ dir  │  4.0 kB │ 2 days ago    │
│ 13 │ tests                 │ dir  │  4.0 kB │ 3 days ago    │
│ 14 │ vendor                │ dir  │  4.0 kB │ a week ago    │
╰────┴───────────────────────┴──────┴─────────┴───────────────╯

基本管道操作

代码语言:javascript
代码运行次数:0
运行
复制
> ls | select name type size | where size > 1KB
╭────┬─────────────────────┬──────┬──────────╮
│  # │        name         │ type │   size   │
├────┼─────────────────────┼──────┼──────────┤
│  0 │ .github             │ dir  │   4.1 KB │
│  1 │ CODE_OF_CONDUCT.md  │ file │   3.4 KB │
│  2 │ CONTRIBUTING.md     │ file │  11.4 KB │
│  3 │ Cargo.lock          │ file │ 168.3 KB │
│  4 │ Cargo.toml          │ file │   9.1 KB │
│  5 │ LICENSE             │ file │   1.1 KB │
│  6 │ README.md           │ file │  12.2 KB │
│  7 │ crates              │ dir  │  12.3 KB │
│  8 │ rust-toolchain.toml │ file │   1.1 KB │
│  9 │ scripts             │ dir  │   4.1 KB │
│ 10 │ src                 │ dir  │   4.1 KB │
│ 11 │ tests               │ dir  │   4.1 KB │
│ 12 │ toolkit.nu          │ file │  17.6 KB │
╰────┴─────────────────────┴──────┴──────────╯
  • 过滤目录:ls | where type == "dir"
  • 排序文件大小:ls | sort-by size --reverse
  • 获取前 3 个最大文件:ls | sort-by size --reverse | first 3 | get name

这些命令输出仍是结构化数据,你可以继续管道:ls | where size > 1mb | get name | str trim | echo

自定义命令

NuShell 支持定义自己的命令,像函数一样强大:

代码语言:javascript
代码运行次数:0
运行
复制
def greet [name: string = "World"] {
    $"Hello, ($name)!"
}
greet  # 输出: Hello, World!
greet Alice  # 输出: Hello, Alice!

这在脚本中特别有用,能让你的工具链更模块化。

脚本编写

创建 myscript.nu 文件:

代码语言:javascript
代码运行次数:0
运行
复制
def main [] {
    let files = ls
    $files | where size > 500kb | get name | each {|it| rm $it }
    print "清理完成!"
}

运行 nu myscript.nu,它会删除所有超过 500KB 的文件。注意,脚本从 main 函数开始执行,支持参数和类型检查。

更多示例,可以参考官方 Cookbook,那里有海量实战案例,从日志分析到 API 调用,应有尽有。

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

本文分享自 开源技术小栈 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 安装
    • Linux
    • macOS
    • Windows
  • 快速上手
    • 基本管道操作
    • 自定义命令
    • 脚本编写
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档