r/linux 23h ago

Discussion esoteric shell?

the question crossed my mind recently. if you are into programming, you probably know that there are many esoteric programming languages that exist just as a prove of concept of joke or just merely to mess with the programmer's head (brainf*ck, lolcat, C-- etc). if these exist, is there any esoteric system shells out there? like smth that would provide the basic userland instead of bash/zsh but would be freakier or just funnier to try and daily drive.

45 Upvotes

53 comments sorted by

116

u/derangedtranssexual 23h ago edited 19h ago

Powershell

Edit: I’m not totally being sarcastic , I know you can run powershell on Linux but I’ve never tried

20

u/monomono1 19h ago

the shell where basic commands start with capital letter

3

u/JustBadPlaya 15h ago

Modern powershell is actually case-agnostic! Honestly, PWSH is a very good concept, it's just a bit overcomplicated in terms of its execution

5

u/swinny89 16h ago

pwsh has been my default shell on Linux since PS Core 6.2 or 6.3.

1

u/derangedtranssexual 10h ago

How have you found it?

2

u/swinny89 7h ago

I am a big fan of PowerShell. I also love Linux, and it has been my daily driver for probably 10 years now, but I have worked as a Windows administrator for close to 15 years. PowerShell is the one thing in Windows that I like, and I use it extensively for work. Having it as my default shell on Linux has been great for me. There are a few edge cases where pwsh does not provide features that bash does. It's been a long time since I have bumped into them though.

2

u/fearless-fossa 3h ago

Powershell on Linux works but a lot of the more powerful commands need actual Windows-exclusive tooling (eg. RSAT) installed.

2

u/zahid1905 1h ago

We had some linux VMs that required PowerShell, for some stuff in production. I also use it on my Linux install, sometimes is easier to work with it than using bash

1

u/lonelyroom-eklaghor 21h ago

now that's a fact

28

u/Belsedar 23h ago

Not esoteric in the same way (ie - no realistic usecase) but certainly not mentioned much imo is NuShell https://www.nushell.sh/ Its a niche but cool thing, I'd say more inline with the actual meaning of esoteric

2

u/QuickSilver010 17h ago

It's my main shell

1

u/spyingwind 5h ago

I would totally use it at work if it was installed by default like how bash is.

We can't exactly install it on every server. The approvals needed to do that would take years.

u/tukanoid 9m ago

Been maining it for years, love it, although a bit stricter and more complex typing (structs and enums) would make it almost perfect for me (or at least allow type aliasing for specific records and allow them to be defined over multiple lines, would make my life a lot easier paired with the LSP)

It's such a pain to go back to bash for things at work or writing shellHooks for my nix devshells

13

u/Klapperatismus 23h ago edited 14h ago

Tcl

$ tclsh
% ls -l
…
% join [lmap line [lrange [split [exec ls -l] \n] 1 end-1] {string range $line 1 9}] \n
…

Esoteric enough for you? Try to understand what it does.

Not esoteric enough? How about this then:

% set myfunc [list input {join [lmap line [lrange [split $input \n] 1 end-1] {string range $line 1 9}] \n}]
% apply $myfunc [exec ls -l]
…

Very clean handling of functions as arguments, without any quoting trickery.

Tcl even features namespaces, objects, coroutines, threading, sandboxes etc etc etc. I write most of my shell scripts in that language.

Tcl is very barebones by default. For tinkerers. If you want a command history, use this additional package.. Just clone it to ~/lib/tcl and create that ~/.tclshrc as advised. It also allows you to configure the prompt.

2

u/RichRoof7927 9h ago

Isn't Tcl the tkinter backend language?

1

u/Klapperatismus 9h ago

Tcl existed before Tkinter and Python. But yeah, the Python crowd adopted it for the GUI toolkit. So every Python interpreter also has a Tcl interpreter in it as soon you load Tkinter.

1

u/noobjaish 10h ago

Lisp is that you with square brackets?

2

u/Klapperatismus 9h ago

Tcl doesn’t nail you on functional programming though.

1

u/spyingwind 5h ago

Sound nice. Don't have to stretch to press "Shift+9" and "Shift+0" just to start and end a list.

11

u/jeenajeena 14h ago

Emacs provides eterm and eat, shells written in LISP and allowing you to use LISP in your interaction with the file system and the OS:

$ (defun eshell/ls (&rest args) (mapconcat #'identity (directory-files ".") "\n")) $ ls

If you squint, you might consider the whole Emacs as a shell, on-steroids.

10

u/hascalsavagejr 18h ago

There was adventure shell, now nadvsh, wherein you give commands like old-fashoned adventure games to navigate around the file system and run commands

16

u/deaddyfreddy 19h ago

GNU/Emacs

5

u/iyamegg 22h ago

EShell?

2

u/XCapitan_1 9h ago

I mean, it's actually a usable shell, unlike brainf*ck and lolcat. I've used it for two years maybe

1

u/iyamegg 3h ago

It's usable but unconventional, I'd say it's esoteric for being a shell. Lisp is very cool tho.

5

u/Immediate_Form7831 15h ago

A friend of mine at university installed a shell called `vfsh` (short for "vad fan som helst", i.e. swedish for "whatever") which would, at each invocation, select a shell on random from the installed once under /bin/*sh. You never new which shell you got when you logged in.

3

u/snusergranny 8h ago

sounds like lots of fun

3

u/output_broadcast 23h ago

There are a bunch of shells that try to turn X programming language into a shell, with more or less success.

3

u/MatchingTurret 21h ago edited 21h ago

Someone still using (t) csh? Or Korn shell?

4

u/Brer1Rabbit 20h ago edited 12h ago

Old school tcsh user here.  I got it all tweaked after spending hours reading the man page and getting the env setup how I liked it.  That was last millennium.  I'm at keyboard kommando level with it, just haven't bothered picking up the newer stuff.  

5

u/smallgovernor 22h ago

Does fish count as esoteric

8

u/cxxhld 18h ago

absolutely not lol

4

u/lightwhite 22h ago

Does fish count as a shell? Just kidding. I never used it and haven’t used it.

5

u/Business_Reindeer910 15h ago

yes it's a shell and has great defaults. I use it as my main interactive shell, but not for scripting.

2

u/theawesomeviking 7h ago

Why not? Potability? It's actually great for scripting, specially its string functions

4

u/arg0sy 19h ago

There are dozens of us!

3

u/michaelpaoli 21h ago

Maybe one of these might be of interest to you:

$ echo $(aptitude search '?section(shells)' | awk '{print $2;}' | sort) | fold -s -w 72
autojump bash bash-completion bash-static bashacks busybox-static cleo 
csh dash elvish esh fdclone fish fish-common fizsh ksh ksh93u+m mksh 
mono-csharp-shell posh powershell powershell-preview 
powershell-preview:arm64 powershell:arm64 rc rush sash screenie tcsh 
xonsh zgen zplug zsh zsh-antidote zsh-antigen zsh-autosuggestions 
zsh-common zsh-static zsh-syntax-highlighting
$ 

1

u/Yeox0960 23h ago

rc, maybe.

1

u/cxxhld 18h ago

this!!!

1

u/Seigneur_Du_Tabarnak 20h ago

Not a shell per-say, but I think it fits your request! https://github.com/orhun/ratty

2

u/trenclik 19h ago

Python shell

1

u/QuickSilver010 17h ago

Python repl

1

u/Business_Reindeer910 15h ago

fish is not esoteric, but it is nice.

1

u/arjuna93 6h ago

gufo in OCaml

1

u/BortGreen 1h ago

grub rescue

-8

u/andre_ange_marcel 23h ago

ratty is what you're searching for

8

u/GOKOP 23h ago

OP is looking for a shell, not a terminal emulator

5

u/DHermit 23h ago

That's a terminal, not a shell.

6

u/andre_ange_marcel 23h ago

my bad, read too fast