Nushell
书
Cookbook
博客
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
GitHub
书
Cookbook
博客
  • English
  • 中文
  • Deutsch
  • Français
  • Español
  • 日本語
  • Português do Brasil
  • Русский язык
GitHub
  • 入门篇

    • 介绍
    • 安装 Nu
    • 以 Nushell 的方式思考
    • 在系统中四处移动
  • Nu 基础篇

    • 数据类型
    • 加载数据
    • 处理字符串
    • 处理列表
    • 处理表格
    • 管道
    • 命令索引
  • Nushell 编程

    • 自定义命令
    • 别名
    • 运算符
    • 变量和子表达式
    • 脚本
    • 模块
    • 覆层
  • Nu 作为 Shell 使用

    • 配置
    • 环境
    • 标准输入、输出和退出码
    • 转移到系统
    • 配置第三方提示
    • Shell 中的 Shell
    • Reedline,Nu 的行编辑器
    • 外部命令
    • 自定义补全
    • Nu 的配色和主题
    • 钩子
  • 迁移到 Nu

    • 从 Bash 到 Nu
    • 从其他 Shell 或 DSL 到 Nu
    • 从命令式语言到 Nu
    • 从函数式语言到 Nu
    • Nushell 运算符
  • 高级篇

    • DataFrames
    • 元数据
    • 创建你自己的错误
    • 并行
    • 插件

安装 Nu

有很多方法可以获取并使用 Nu。你可以从我们的 发布页面 下载预编译的二进制文件,也可以 使用你喜欢的软件包管理器,或者从源码构建。

Nushell 的主要二进制文件被命名为 nu(或 Windows 下的 nu.exe)。安装完成后你可以通过输入 nu 来启动它:

$ nu
/home/sophiajt/Source>

预编译二进制包

Nu 二进制文件在 GitHub 的 Release 页 发布,适用于 Linux、macOS 和 Windows。只需下载并解压二进制文件,然后将其复制到你的系统 PATH 上的某个位置即可。

软件包管理器

Nu 可以通过几个软件包管理器获得:

打包状态

对于 macOS 和 Linux,Homebrew 是一个流行的选择(brew install nushell)。

对于 Windows 用户:

  • Winget (winget install nushell)
  • Chocolatey (choco install nushell)
  • Scoop (scoop install nu)

跨平台安装:

  • npm (npm install -g nushell 请注意,以这种方式安装,nu 插件是不包含在内的)

从源码构建

你也可以从源代码构建 Nu。首先,你需要设置 Rust 工具链和它的依赖项。

安装编译器套件

为了使 Rust 能够正常工作,你需要在你的系统上安装一个兼容的编译器套件。以下是推荐的编译器套件:

  • Linux:GCC 或 Clang
  • macOS:Clang(安装 Xcode)
  • Windows:MSVC(安装 Visual Studio 或 Visual Studio Build Tools)
    • 请确保安装 "用 C++ 进行桌面开发" 相关包
    • 任何 Visual Studio 版本都可以(社区版是免费的)

安装 Rust

如果我们的系统中还没有 Rust,最好的方法是通过 rustup 来安装它。Rustup 是一种管理 Rust 安装的工具,可以管理使用不同的 Rust 版本。

Nu 目前需要 最新(1.66.1 或更高)的稳定 版本的 Rust。最好的方法是让 rustup 为你找到正确的版本。当你第一次打开 rustup 时,它会询问你想安装哪个版本的 Rust:

Current installation options:

default host triple: x86_64-unknown-linux-gnu
default toolchain: stable
profile: default
modify PATH variable: yes

1) Proceed with installation (default)
2) Customize installation
3) Cancel installation

一旦我们准备好了,我们就按 1,然后回车。

如果你不愿意通过 rustup 来安装 Rust,你也可以通过其他方法来安装它(比如从 Linux 发行版的软件包中)。只要确保安装 1.66.1 或更高版本的 Rust 即可。

依赖

Debian/Ubuntu

你将需要安装 "pkg-config" 和 "libssl-dev" 包:

apt install pkg-config libssl-dev build-essential

对于希望使用 "rawkey" 或 "clipboard" 可选功能的 Linux 用户,需要安装 "libx11-dev" 和 "libxcb-composite0-dev" 软件包。

apt install libxcb-composite0-dev libx11-dev

基于 RHEL 的发行版

你需要安装 "libxcb"、"openssl-devel" 和 "libX11-devel":

yum install libxcb openssl-devel libX11-devel

macOS

使用 Homebrew,你需要通过如下方式安装 "openssl" 和 "cmake" :

brew install openssl cmake

使用 crates.io 进行构建

Nu 发行版会作为源码发布到流行的 Rust 包仓库 crates.io。这使得使用 cargo 构建并安装最新的 Nu 版本变得很容易:

cargo install nu --locked

如此即可!cargo 工具将完成下载 Nu 及其源码依赖,构建并将其安装到 cargo bin 路径中,以便我们能够运行它。

从 GitHub 仓库构建

我们也可以从 GitHub 上的最新源码构建自己的 Nu。这让我们可以立即获得最新的功能和错误修复。首先,克隆源码仓库:

git clone https://github.com/nushell/nushell.git

然后,我们可以用以下方式构建和运行 Nu:

cd nushell
# ./nushell
cargo build --workspace; cargo run

你也可以在发布模式下构建和运行 Nu,以获得更多的编译优化:

cargo build --release --workspace; cargo run --release

熟悉 Rust 的人可能会问,如果 run 默认会构建,为什么我们还要做 build 和 run 这两个步骤?这是为了解决 Cargo 中新的 default-run 选项的缺陷,并确保所有插件都被构建,尽管这在将来可能不再需要。

设置登录 Shell(*nix)

警告

Nu 仍在开发中,对于日常使用可能并不稳定!

要设置登录 Shell,你可以使用 chsh 命令。一些 Linux 发行版有一个位于 /etc/shells 的有效 Shell 列表,在 Nu 被列入白名单之前不允许改变 Shell。如果你没有更新 shells 文件,你可能会看到类似于下面的错误:

chsh: /home/username/.cargo/bin/nu is an invalid shell

你可以通过在 shells 文件中添加你的 Nu 二进制文件来把 Nu 添加到允许的 Shells 列表中。添加的路径可以用 which nu 命令找到,通常是 $HOME/.cargo/bin/nu。

设置默认的 Shell(Windows 终端)

如果你使用的是 Windows Terminal,你可以通过添加如下内容到你的终端设置 "profiles"(JSON 文件)中来设置 nu 作为你的默认 Shell:

{
  "guid": "{2b372ca1-1ee2-403d-a839-6d63077ad871}",
  "hidden": false,
  "icon": "https://www.nushell.sh/icon.png",
  "name": "Nu Shell",
  "commandline": "nu.exe"
}

最后需要做的是将 "defaultProfile" 改为:

"defaultProfile": "{2b372ca1-1ee2-403d-a839-6d63077ad871}",

之后,nu 应该会在 Windows Terminal 启动时被加载。

在GitHub上编辑此页面
Contributors: Ibraheem Ahmed, Justin Ma, CAESIUS-TIM, NotTheDr01ds
Prev
介绍
Next
以 Nushell 的方式思考