Recientemente the first version of the nushell command shell was published, It combines the capabilities of Power Shell and the classic Unix shell.
Nushell uses the usual pipeline system for Unix users in the format «command | filters | output controller ». By default, the output is formatted with the automatic view command, which uses a table format, but it is also possible to use commands to display binary data and information in a tree view.
The strength of nushell is the ability to manipulate structured dataas a comprehensive set of instructions for filtering structured data is provided to you They allow you to filter rows, sort by columns, summarize data, perform simple calculations, use value counters, and convert the output to CSV, JSON, TOML, and YAML formats.
For unstructured data (text), it provide instructions for dividing into columns and rows based on delimiting characters. u is inspired by projects such as PowerShell, functional programming languages, and modern cli tools.
The shell allows structuring the output of various commands and the content of files and apply arbitrary filters, which are issued using a unified syntax that does not require studying the command line options for each specific command.
Eg nushell allows to use constructs like «ls | where size> 10kb "and" ps | where cpu> 10«, Which will only generate files larger than 10Kb and processes that used more than 10 seconds of CPU resources.
Instead of using the files and services as raw text streams, nushell treats each input as structured. For example, when you enumerate the contents of a directory, what you get is a list of objects, where each object represents an item in that directory. These values can be piped through a series of steps, in a series of commands called 'pipeline'.
Nushell uses various plugins to structure the data, that parse the output of specific commands and file types. Similar plugins are proposed for the commands cd, ls, ps, cp, mkdir, mv, date, rm (the prefix "^" can be used to call native commands, for example, calling "^ ls" will start the utility ls system).
There are also specialized commands, like "open", to display information about the selected file as a table. For JSON, TOML, and YAML formats, automatic parsing is supported
The code is written in Rust and distributed under the MIT license. The project was initially developed as cross-platform and supports work on Windows, macOS and Linux. To expand the functionality, plugins can be used, the interaction of which is carried out according to the JSON-RPC protocol.
How to install nushell on Linux?
For those interested in being able to install nushell on their Linux distribution, They can do so by following the instructions we share below.
For those who are Arch Linux, Manjaro, Arco Linux users or any other Arch Linux-based distribution can install nushell from the AUR repositories.
They should only have an AUR wizard installed and the repository enabled. If you do not have it, you can visit the following article where we recommend some assistants.
In a terminal they only have to type the following command:
yay -S nushell
Now for the rest of the Linux distributions they have to perform the installation with the help of the Rust package manager. If you do not have it in a terminal you must type the following.
curl https://sh.rustup.rs -sSf | sh
A series of options will open to us in our terminal and we must answer appropriately. You must press 1 to continue the installation with the default values, which is recommended for most.
Once finished we can configure our current shell to start working:
To install nushell via cargo, just type the following command in the terminal:
And that's it, you can use this shell on your system.