Nushell notes

Nushell is looking interesting …

Written in Rust of course …

Starting this thread to capture notes about it.

1 Like

I shall be installing this, and I’ll report my findings!

1 Like

how does nushell compare to fish ?

Nushell vs Fish

Nushell and Fish are both modern shells that aim to improve upon traditional options like Bash, but they have some key differences:

Approach to Data

Nushell treats everything as structured data rather than raw text 1. This allows for more powerful data manipulation and analysis capabilities. Fish, while more user-friendly than Bash, still primarily works with text streams like traditional shells 3.

Syntax and Scripting

Fish offers a simpler, more readable syntax compared to Bash, making scripting easier 1. Nushell goes further with a completely new syntax influenced by functional programming languages, offering features like pattern matching and built-in data structures 4.

Interactive Experience

Fish is known for its excellent out-of-the-box interactive experience, with features like autosuggestions and syntax highlighting 3. Nushell also aims for a good interactive experience but may require more learning due to its unique approach 1.

Stability and Maturity

Fish is more mature and stable, with a consistent scripting language 1. Nushell is newer and still evolving rapidly, which can mean more frequent changes to scripts 1.

Data Processing Capabilities

Nushell excels at data-related tasks, offering built-in support for working with structured data formats like JSON and CSV, as well as powerful data manipulation features

2

. Fish, while capable, doesn’t have the same level of built-in data processing tools.

Cross-platform Support

Both shells work on Unix-like systems, but Nushell also has good support for Windows
3

4
.

Performance

Nushell can be very fast for certain data manipulation tasks due to its optimized internal architecture

2

.

Learning Curve

Fish is generally considered easier to learn for those coming from traditional shells, while Nushell may require more time to master its unique concepts
1
.In summary, Fish offers a more familiar, user-friendly improvement over traditional shells, while Nushell provides a more radical redesign with powerful data processing capabilities at the cost of a steeper learning curve.

Perplexity Pro in action …

heh, thanks, this is quite helpful. I am a long time zsh user and all these autosuggestions an autocompletions etc. work smartly there for me. I have given some time to fish but the shell scripts ( particularly ) yoe envsetup does not work with fish. I wonder if it will work with nushell ?

     __  ,
 .--()°'.' Welcome to Nushell,
'|, . ,'   based on the nu language,
 !_-(_\    where all data is structured!

Please join our Discord community at https://discord.gg/NtAbbGn
Our GitHub repository is at https://github.com/nushell/nushell
Our Documentation is located at https://nushell.sh
Tweet us at @nu_shell
Learn how to remove this at: https://nushell.sh/book/configuration.html#remove-welcome-message

It's been this long since Nushell's first commit:
5yrs 5months 3hrs 5mins 59secs 170ms 692µs 59ns

Startup Time: 37ms 868µs 833ns

I don’t think so, Nushell is even more off the beaten path.

So, I have looked at many shell alternatives in the past, and nushell looks promising so far.

Downsides: you have to re-think how to do everything
Upsides: you get to re-think how to do everything

I must say, though, there are so, so many obscure Linux commands like find and xargs and even grep quite honestly. It’s a breath of fresh air to use an entirely new ecosystem.

I found a relatively useful link for us lowly, feeble bash users: Coming from Bash | Nushell

One thing I must say is remarkable from the start… the error messages really are as good as they say:

image

This screenshot just gives you a log of good info. Note that the timestamp is a part of the prompt line but off to the right along with the exit code of the last command (-2 means SIGINT).

Still a good experience so far. This thing has quite the learning curve. I feel like I still know nothing, but I’m having fun learning.

A few things to note:

  • Many custom completions already implemented here, including those for ssh, curl, and tar: GitHub - nushell/nu_scripts: A place to share Nushell scripts with each other. Unfortunate that these aren’t included by default.
  • No easy way to search the contents of files recursively as far as I can tell. I still just use grep -r.
  • Invoking bash myscript.sh for bash scripts is mostly fine, although I have had to port one or two over manually for nushell.

Thanks for the update Blake!

I use ripgrep most of the time – have you tried that?

I have never tried ripgrep. I just wrote my own little script in nu:

A few notes:

  • its performance feels similar to grep -r
  • you can annotate custom commands so that nu can automatically create the --help output
  • user-authored custom commands feel like they are actually a part of nu, and that’s a good thing.

Here it is in action:

1 Like

Here’s a little blog post I wrote about nushell: Blog — BlakeSite

Great article – thanks for sharing!

new fish is getting rusty :slight_smile: