Nushell

image

1- Nushell

2- 安装 Nushell

2.1- 在 Linux 上安装

  1. 更新系统包管理器:

    sudo apt update
    
  2. 安装必要的依赖:

    sudo apt install pkg-config libssl-dev -y
    sudo apt install libxcb-composite0-dev libx11-dev -y
    
  3. 下载并安装 Nushell:

cd /tmp
# 2- 获取最新的 Nushell 版本下载链接
curl -s https://api.github.com/repos/nushell/nushell/releases/latest | grep browser_download_url | cut -d '"' -f 4 | grep 'linux.tar.gz' | wget -i -
# 3- 解压下载的文件
tar -xzf nu_*_linux.tar.gz
# 4- 将 Nushell 可执行文件移动到系统路径中
sudo mv nu_*_linux/nushell-*/nu /usr/local/bin
sudo mv nu_*_linux/nushell-*/nu_plugin* /usr/local/bin

2.2- 在 macOS 上安装

  1. 使用 Homebrew 安装:

    brew install nushell
    
  2. 或者手动安装:

cd /tmp
# 2- 获取最新的 Nushell 版本下载链接
curl -s https://api.github.com/repos/nushell/nushell/releases/latest | grep browser_download_url | cut -d '"' -f 4 | grep 'macOS.zip' | wget -i -
# 3- 解压下载的文件
unzip nu_*_macOS.zip
# 4- 将 Nushell 可执行文件移动到系统路径中
sudo mv nu_*_macOS/nushell-*/nu /usr/local/bin
sudo mv nu_*_macOS/nushell-*/nu_plugin* /usr/local/bin

2.3- 在 Windows 上安装

  1. 下载并安装 Nushell:
# 2- 下载最新的 Nushell 版本
Invoke-WebRequest -Uri "https://github.com/nushell/nushell/releases/latest/download/nu_windows.zip" -OutFile "nu_windows.zip"
# 3- 解压下载的文件
Expand-Archive -Path "nu_windows.zip" -DestinationPath "nu_windows"
# 4- 将 Nushell 可执行文件移动到系统路径中
Move-Item -Path "nu_windows\nu.exe" -Destination "C:\Program Files\Nushell\"
# 5- 将 Nushell 添加到系统 PATH 中
[System.Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Program Files\Nushell\", [System.EnvironmentVariableTarget]::Machine)

2.4- 启动 Nushell

在终端中输入 nu 启动 Nushell:

nu

3- 基本命令

3.1- 列出当前目录内容

# 列出当前目录下的所有文件和目录
ls

3.2- 查看文件内容

# 打开并查看指定文件的内容
open 文件名

3.3- 管道操作

# 列出当前目录下的所有文件和目录,并过滤出类型为目录的项
ls | where type == "Dir"

3.4- 变量和计算

# 定义变量 x,值为 10
let x = 10
# 定义变量 y,值为 20
let y = 20
# 输出 x 和 y 的和
echo $($x + $y)

4- 编写和运行脚本

4.1- 创建脚本文件

创建一个名为 myscript.nu 的文件,内容如下:

# 定义一个名为 greet 的函数,接受一个参数 name
def greet [name] {
# 输出 "Hello, " 后跟参数 name 的值
echo "Hello, $name!"
}

# 调用 greet 函数,传入参数 "World"
greet "World"

4.2- 运行脚本

在 Nushell 中运行脚本:

# 运行名为 myscript.nu 的脚本文件
nu myscript.nu

5- 配置环境变量

5.1- 编辑配置文件

打开或创建 config.nu 文件:

# 打开或创建配置文件 config.nu
open ~/.config/nushell/config.nu

5.2- 添加环境变量

config.nu 中添加以下内容:

# 将 /usr/local/bin 添加到 PATH 环境变量中
let-env PATH = ($env.PATH | append "/usr/local/bin")

6- 案例讲解

6.1- 案例一:读取和处理 YAML 文件

假设你有一个名为 config.yaml 的文件,内容如下:

clusters:
  - cluster:
      server: "https://example.com"

你可以使用以下命令读取并处理这个文件:

# 打开 YAML 文件并将其内容转换为表格
open config.yaml | from yaml | get clusters.0.cluster.server
行号 代码片段 注释说明
1 open config.yaml 打开名为 config.yaml 的文件
2 ` from yaml`
3 ` get clusters.0.cluster.server`

6.2- 案例二:使用管道过滤数据

假设你想列出当前目录下的所有文件和目录,并过滤出类型为目录的项:

# 列出当前目录下的所有文件和目录,并过滤出类型为目录的项
ls | where type == "Dir"
行号 代码片段 注释说明
1 ls 列出当前目录下的所有文件和目录
2 ` where type == “Dir”`

6.3- 案例三:变量和计算

假设你需要定义两个变量 xy,并计算它们的和:

# 定义两个变量 x 和 y,并计算它们的和
let x = 10
let y = 20
echo $($x + $y)
行号 代码片段 注释说明
1 let x = 10 定义变量 x,值为 10
2 let y = 20 定义变量 y,值为 20
3 echo $($x + $y) 输出 x 和 y 的和

7- 学习资源