I wanted a better way to manage my terminal scripts. My choices boiled down to Nushell or PowerShell, and I opted for Nushell — and the shell has made visualizing my system data easier than ever. With its built-in table formatting and data manipulation capabilities, I can more easily monitor processes consuming excessive resources. The structured data approach also helps when debugging my smart home setup by allowing me to parse and analyze logs and configuration files more effectively.
Nushell offers numerous features, but its main strength is its ease of seeing terminal operations' results. That said, it also excels in several other areas that made me fall in love with the application.
Nushell is virtually the same across different platforms
Windows, Mac, or Linux
I work on two separate computers. My MacBook is primarily where I write, while my Windows machine is for gaming and tinkering. Nushell is particularly useful because it appears in pretty much the same way no matter what. That means I can easily use it on both machines without learning a new approach for each. The commands remain the same, and the visuals are also the same. Better yet, Nushell automatically translates path formats, so I don't have to worry about remembering whether to use a forward-slash or a back-slash.
It provides clear error messages
No more trying to decipher what went wrong
Nushell is much more approachable for beginners, but even experienced users will make mistakes. Even something as simple as a typo can throw off a command. Nushell doesn't throw a generic error message, but instead informs the user what went wrong in a clear and easy-to-understand way. Where other applications might simply inform you that a command didn't work, Nushell generally explains what went wrong and how to correct it.
For example, one Nushell command is http get [URL]. It pulls the contents of a given website, but it requires you to enter a full URL. If you leave off the start of the URL and type in only www.xda-developers.com, it will throw an error message that tells you that you entered an incomplete or incorrect URL and visually depicts the different parts of the command and what you need to fix.
As an added visual bonus, commands change colors when they are entered correctly. While typing in HTTP, it will remain a dark blue color until HTTP is fully entered, at which point it turns into a light blue. You can tell at a glance whether or not something is correct.
The integrated help system is out of this world
It's newbie friendly
The terminal can be intimidating, especially if you aren't familiar with it. While I had prior experience using the terminal, I hadn't used Nushell much before I started testing it. The help menu was a massive boon and easy to access. Simply typing Help is enough to bring up a basic menu, while typing Help commands shows every available command — all 443 of them. Unlike many other platforms, you can also request help for specific operations. For example, typing help math will display a list of all math-related commands as well as an explanation of what they do.
The downside? It's not POSIX-compatible
Nushell doesn't natively handle bash scripts
Nushell isn't compatible with POSIX commands, at least not without modifying them. That means it's not as simple as just searching the web for a script and copying and pasting it into the terminal; you will have to rewrite the script to be compatible with Nushell.
As Nushell uses commands like append and save to handle redirection rather than the standard >, >>, and 2> of POSIX, scripts that use those commands will require tweaking. It doesn't take a huge amount of time, especially if you're already familiar with how the process is intended to work, but it's worth noting if you frequent Stack Overflow or GitHub for bash scripts.
What is Windows PowerShell, and why would you use it?
The average Windows user probably doesn't need to use PowerShell, but it's nice to know what it is if you do need it.
The lack of compatibility is a small price to pay
Nushell is just easier
I've worked with bash scripts before, and they aren't my favorite. Nushell operates almost like written language, rather than relying on an array of symbols. In many ways, Nushell is reminiscent of SQL. That aside, the rest of its pros just far outweigh the cons. The visual representation of data is a treat to look at, and the way it denotes correctly entered commands from incorrect ones makes working with longer pipelines easier. It's a pain to make a small mistake and have to rewrite the entire line of code, and Nushell helps avoid that.
I'm never going back
The more I work with Nushell, the more I enjoy the small quality of life improvements it has over competitors like PowerShell. It's become a staple of my troubleshooting process, and it's helped me free up space on my drive by making it easier to hunt down large files that are tucked away in forgotten folders.
