Nushell 使用笔记

这里查看官方中文文档.

这份笔记基本上只是官方文档的摘抄.

安装

对于 Windows

1
winget install nushell

对于 Ubuntu

1
npm install -g nushell

(apt软件包管理器无法安装该软件, npm属于跨平台安装)

另外, nushell 使用 rust 语言开发, 使用 rustup 来安装是个好选择.

基础知识

  • 在 Nushell 中, >不再意味重定向, 而是意味着大于号. 要取而代之的话, 应该用|将命令输出导出到其他地方

    1
    2
    3
    4
    # not this
    echo "hello" > output.txt
    # but this
    "hello" | save output.txt
  • 在 Nushell 中, 许多命令的输出变成了表, 可以用以下关键词从表中提取数据:

    • select - 创建一个只包括指定列的新表
    • get - 以列表形式返回指定列内的值
  • 如果一个管道过长, 可以通过子表达式使用多行表示

    1
    2
    3
    4
    5
    (
    "01/22/2021" |
    parse "{month}/{day}/{year}" |
    get year
    )

管道 常用用法

可以用help commands查看命令说明文档

  • 查看名字中包含某字符串的进程
    1
    2
    3
    4
    5
    # win
    ps | where name =~ "nu"
    # linux
    ps aux | where name =~ "nu"
    # [process列举进程](ps) [所有用户, 包含用户信息, 包含无控制终端的](aux) [通过管道流向](|) [筛选查找](where) [name列](name) [包含](=~) [字符串nu]("nu")
  • 对获取的表格进行排序
    1
    2
    ls | sort-by size
    # size 可以为中任何一个列名
  • 只取其中几行的信息
    1
    ls | select name size
  • 只取前几行的信息
    1
    2
    ls | select name size | sort-by size | first 5
    # 按大小排序, 只显示前5大的文件的名称和体积

其他

看半天, 好像使用 Nu 之后, 除了看进程稍微方便一些, 其他地方没用到多少有趣功能…

相比起来, 同时装的另外一个项目: starship似乎更有用, 它能统一不同的shell的外观, 简单配置之后, 能显示 git 信息, 权限信息, 用户信息…