LinuxCommandLibrary

nu

Run shell commands and manipulate structured data

TLDR

Start an interactive shell session

$ nu
copy

Execute specific commands
$ nu --commands "[echo 'nu is executed']"
copy

Execute a specific script
$ nu [path/to/script.nu]
copy

Execute a specific script with logging
$ nu --log-level [error|warn|info|debug|trace] [path/to/script.nu]
copy

SYNOPSIS

nu [options] [script_file] [args...]
nu -c

PARAMETERS

-c, --commands
    Executes commands provided as a string argument, then exits.

-e, --execute
    An alias for --commands.

-h, --help
    Displays comprehensive help information for the nu command and its options.

-v, --version
    Shows the installed Nushell version number.

-l, --login
    Starts Nushell as a login shell, loading login-specific configurations.

-n, --no-config
    Prevents Nushell from loading any default configuration files on startup.

--env-file
    Loads environment variables from the specified file path.

--config-file
    Loads configuration settings from the specified file path.

--testbin
    Used internally for Nushell testing and development purposes; not for general use.

DESCRIPTION

Nushell, often invoked as nu, is a modern, cross-platform shell designed to work natively with structured data. Unlike traditional Unix shells that primarily operate on streams of text, Nushell processes data in formats like tables, enabling powerful data manipulation directly within its pipelines. This approach allows users to easily query, filter, and transform data from various sources (e.g., JSON, CSV, YAML, databases) without relying on external parsing tools. It features a rich type system, a comprehensive set of built-in commands, and a user-friendly syntax. Nushell aims to provide a more intuitive and powerful environment for developers and system administrators, offering consistent data structures across its commands and simplifying complex data workflows. Its focus on readability and robust error handling makes it a compelling alternative to traditional shells.

CAVEATS

nu (Nushell) is not a standard utility pre-installed on most Linux distributions; it requires explicit installation. Its command philosophy and syntax differ significantly from traditional POSIX shells like Bash or Zsh, necessitating a learning curve for new users. Users should also be aware that its ecosystem of external tools and integrations, while growing, may not yet be as extensive as older, more established shells.

STRUCTURED DATA PIPELINES

The core distinction of Nushell is its ability to treat all data—from files, external commands, or built-in functions—as structured data (e.g., tables, records) rather than raw text. This enables powerful, intuitive manipulation with commands resembling database queries, facilitating direct work with JSON, CSV, YAML, and other formats within the shell.

CROSS-PLATFORM COMPATIBILITY

Nushell is engineered to function seamlessly across multiple operating systems, including Linux, macOS, and Windows. This cross-platform design guarantees a consistent shell experience and script portability for developers operating in diverse environments, offering a notable advantage over certain platform-specific shell features.

HISTORY

Nushell began development in 2019, conceived by the desire for a modern shell capable of natively handling structured data, thereby addressing limitations of text-based pipelines in traditional Unix shells. Written in Rust, it has rapidly gained traction within the developer community due to its innovative approach, active development, and strong cross-platform compatibility. Its ongoing evolution prioritizes refining data-oriented features, enhancing performance, and expanding its ecosystem of built-in commands and external tool integrations.

SEE ALSO

bash(1), zsh(1), fish(1), sh(1)

Copied to clipboard