THE DUNE SHELL

A shell🐚 by the beach🏖️!

Dune is a shell designed for powerful scripting. Think of it as an unholy combination of bash and Lisp.

You can do all the normal shell operations like piping, file redirection, and running programs. But, you also have access to a standard library and functional programming abstractions for various programming and sysadmin tasks!

Dune Shell

Install

Install With Cargo

To install the dunesh binary on your machine with cargo, run the following command:

$ cargo install --git https://github.com/adam-mcdaniel/dune

Post-Install

Create A Dune Prelude

Dune uses a .dune-prelude file in the $HOME directory to setup the environment for your shell. This file is sourced by Dune every time it starts. You can use this file to set environment variables, define functions, or run any other shell commands you want to run every time you start a new shell session!

Read more

About

Why Dune?

Intro

I feel that bash is great in a lot of ways, but it doesn’t exactly feel cozy: it’s lacking a sort of personal touch, and it’s also missing quick and easy customizability. With my last shell, Atom, I had accomplished some of the coziness that bash was missing, but I also introduced a lot of really fatal flaws in the syntax and the type system.

Dune, however, is designed completely differently from Atom (although you might notice the similarities in their widget systems). The interpreter itself is standalone, and it holds almost none of the functionality you see in the default distribution of Dune. If you wanted to, you could write a custom frontend and make a unique Dune based shell of your own!

Read more

Showcase

ARITHMETIC OPERATORS


Below is the list of arithmetic operators available in Dune. These operators each behave similarly to how they’re used in Python – integers and floats can be used interchangeably, but will default to integer arithmetic if both operands are integers. You can multiply lists or strings by integers to repeat them, and you can add lists or strings together to concatenate them.

Read more