Welcome to our guide on the installation of Nu Shell on Linux | macOS system. The goal of Nushell project is to take the Unix philosophy of shells, where pipes connect simple commands together, and bring it to the modern style of development. The Nu Shell focuses on achieving the following:

  • Creation of the most flexible and cross-platform shell with a modern feel to it.
  • Giving you the capability to mix and match commandline applications with a shell that understands the structure of your varying data types
  • A shell with some level of UX polish that modern CLI applications provide

The easiest and quickest way to get Nu Shell running on a Linux / macOS system is to install from crates.io, or download pre-built binaries from our the Github releases page.

install nu shell linux macos

The most ideal installation method for any Linux distribution is the binary method. We’ll use curl tool to get the latest release, download then extract the file to obtain the Nushell binary.

Step 1: Install Developer Tools

Install Developer tools required:

Ubuntu / Debian:

sudo apt update
sudo apt install pkg-config libssl-dev -y
sudo apt install libxcb-composite0-dev libx11-dev -y

RHEL Based systems:

sudo yum install libxcb openssl-devel libX11-devel -y

macOS:

brew install openssl cmake

Step 2: Install Nushell on Linux

Download the latest binary archive file:

cd /tmp
curl -s  https://api.github.com/repos/nushell/nushell/releases/latest | grep browser_download_url |  cut -d '"' -f 4 | grep '\linux.tar.gz' | wget -i -

Extract the file downloaded:

tar -xvf nu_*_linux.tar.gz

Copy nu binary file to your PATH:

sudo mv nu_*_linux/nushell-*/nu /usr/local/bin

Nu will look for the plugins in your PATH on startup. While nu will have some functionality without them, for full functionality you’ll need to copy them into your path so they can be loaded.

sudo mv nu_*_linux/nushell-*/nu_plugin* /usr/local/bin

Fedora users can use COPR repo to install Nushell:

sudo dnf copr enable atim/nushell -y && sudo dnf install nushell -y

Step 3: Install Nushell on macOS

For binary installation method use brew:

$ brew install nushell

Manual installation from binaries

On macOS system run the commands below to download the latest release of Nushell:

cd /tmp
curl -s  https://api.github.com/repos/nushell/nushell/releases/latest | grep browser_download_url |  cut -d '"' -f 4 | grep '\macOS.zip' | wget -i -

Extract the file downloaded:

unzip nu_*_macOS.zip

Copy nu binary file to your PATH:

sudo mv nu_*_macOS/nushell-*/nu /usr/local/bin

Copy Nu plugins as well:

sudo mv nu_*_macOS/nushell-*/nu_plugin* /usr/local/bin

Step 4: Set User Shell to Nushell

We’ll create a new user called techviewleo

$ sudo adduser techviewleo
Adding user `techviewleo' ...
Adding new group `techviewleo' (1000) ...
Adding new user `techviewleo' (1000) with group `techviewleo' ...
Creating home directory `/home/techviewleo' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for techviewleo
Enter the new value, or press ENTER for the default
	Full Name []:
	Room Number []:
	Work Phone []:
	Home Phone []:
	Other []:
Is the information correct? [Y/n] y

Set user default shell to Nu:

sudo chsh -s /usr/local/bin/nu techviewleo

Confirm user shell:

$ getent passwd techviewleo
techviewleo:x:1000:1000:,,,:/home/techviewleo:/usr/local/bin/nu

Switch to the created user account:

$ su - techviewleo
Password:
Welcome to Nushell 0.28.0 (type 'help' for more info)
/home/techviewleo>

Test how ls commands works in Nushell:

$ home/techviewleo> ls /tmp/
───┬────────────────────────────────────────────────────────────────────────────────────────┬──────┬────────┬────────────
 # │                                          name                                          │ type │  size  │  modified
───┼────────────────────────────────────────────────────────────────────────────────────────┼──────┼────────┼────────────
 0 │ /tmp/snap.lxd                                                                          │ Dir  │ 4.1 KB │ 2 days ago
 1 │ /tmp/systemd-private-15969aaa8a724354bff192a746aaa953-systemd-logind.service-ny7rmg    │ Dir  │ 4.1 KB │ 2 days ago
 2 │ /tmp/systemd-private-15969aaa8a724354bff192a746aaa953-systemd-resolved.service-QsdDqg  │ Dir  │ 4.1 KB │ 2 days ago
 3 │ /tmp/systemd-private-15969aaa8a724354bff192a746aaa953-systemd-timesyncd.service-OKOxKf │ Dir  │ 4.1 KB │ 2 days ago
───┴────────────────────────────────────────────────────────────────────────────────────────┴──────┴────────┴────────────

Commands output on macOS:

/Users/jkmutai> cd Parallels/
/Users/jkmutai/Parallels> ls
───┬────────────────┬──────┬───────┬──────────────
 # │      name      │ type │ size  │   modified
───┼────────────────┼──────┼───────┼──────────────
 0 │ CentOS 8.pvm   │ Dir  │ 384 B │ 1 month ago
 1 │ Ubuntu.pvm     │ Dir  │ 480 B │ 2 weeks ago
 2 │ Windows 10.pvm │ Dir  │ 416 B │ 2 months ago
───┴────────────────┴──────┴───────┴──────────────

List directories only:

$ ls | where type == Dir

You can learn more about the Nushell from the official documentation pages. The best starting point is introduction to Nu.

Similar guides on Shells:

Best Terminal Shell Prompts for Zsh, Bash and Fish

Install posh-git on Windows – PowerShell environment for Git

How To Install Starship Shell Prompt for Bash / Zsh / Fish

Your support is our everlasting motivation,
that cup of coffee is what keeps us going!


As we continue to grow, we would wish to reach and impact more people who visit and take advantage of the guides we have on our blog. This is a big task for us and we are so far extremely grateful for the kind people who have shown amazing support for our work over the time we have been online.

Thank You for your support as we work to give you the best of guides and articles. Click below to buy us a coffee.

LEAVE A REPLY

Please enter your comment!
Please enter your name here