What shells do you use and how do you have it configured?

What shell(s) do you use, why do you use them, and how do you have them configured?

Note, this is about shell’s, not terminals, terminal’s are often what is used to access a shell, but it isn’t the shell.

Some popular and/or modern shells for example are like:

  • sh
  • dash
  • ksh
  • bash
  • zsh
  • fish
  • powershell
  • nushell

among many many others…


Corresponding tweet for this thread:

Share link for this tweet.


I use zsh primarily, but I’ve been using nushell for various tasks lately.

My ZSH is heavily configured, based on the OhMyZSH plugin pack but with some customizations. I use the starship theme (not the built in one, but the standalone StarShip powerline prompt that works with almost any shell).

Been experimenting with nushell lately, it’s still new and missing some functionality, plus not being a posix shell means its syntax is different, but it seems extremely capable and very fast, plus it’s data operations and piping capabilities and operations (it’s main big thing) is really nice!


I haven’t seen StarShip but I’m giving it a spin. My ZSH start time was several seconds, hoping StarShip helps make things snappy again.


I use zsh now too - Apple made it the default a couple of years ago (though I had always been meaning to try it). Pretty much everything from my bash_profile works so I’m happy with it :smiley:

Depends on if its your prompt that’s slow or not. If you are using the starship ZSH theme then it should help, if not, and not using any other powerline-style prompts then probably not, likely it’s just the plugins you are loading. If you could find which slow plugins are loading then you can remove/fix those. :slight_smile:

And it is sooooo configurable, with tons and tons of plugins. ^.^


Which ones are you fave/most recommended?

1 Like

I normally just use the standard bash shell that comes on most Linux distros by default. I haven’t ventured into zsh, fish, or any of the others yet.

I do use different prompt tooling depending on which WSL environment in using though. For instance, in my Ubuntu 21.04 environment, I currently have powerline-go as my prompt. In my Debian 10 environment, I use Starship.

For Windows specific stuff, I just use Powershell. Definitely better than the old cmd.exe.


I’ve been using fish with Starship since I got my new MacBook. It works really well. I was using zsh and fish on and off before that.


Til about Nushell. It looks visually ergonomic.


First it was bash, had a short detour into zsh (it is too customizable and the default oh-my-zsh felt sluggish), went into mksh for a couple of years and for the past couple of yours I’ve been using fish without any specific configuration (except vi key bindings). During a minimalistic period I tried using dash only for a while but turns out that some shell features are actually useful and typing everything everytime is time consuming and error prone.

As for terminals… from xterm to urxvt to st to alacritty. Contemplating going back to xterm not to have to deal with all the termcap configurations everywhere.


I use zsh with vim mode enabled.


Been using zsh for the last couple of years, nothing fancy but a custom prompt and a load of aliases, mainly for Git. Before that I used bash with a short period trying fish out.


Another zsh user here :man_dancing:


For ZSH it really depends on how you work and what you program on and such, for the system I’m on at this moment my OMZ plugin list is:

 131   │ plugins=(
 132   │   asdf
 133   │   command-not-found
 134   │   colored-man-pages
 135   │   colorize
 136   │   compleat
 137   │   copydir
 138   │   copyfile
 139   │   cp
 140   │   dircycle
 141   │   dirhistory
 142   │   dirpersist
 143   │   docker
 144   │   encode64
 145   │   extract
 146   │   git
 147   │   git-extras
 148   │   gpg-agent
 149   │   gradle
 150   │   history
 151   │   history-substring-search
 152   │   kate
 153   │   #last-working-dir
 154   │   #per-directory-history
 155   │   rsync
 156   │   screen
 157   │   ssh-agent
 158   │   taskwarrior
 159   │   tmux
 160   │   tmuxinator
 161   │   torrent
 162   │   urltools
 163   │   vundle
 164   │   web-search
 165   │   pj
 166   │   gitignore
 167   │   gnu-utils
 168   │   mix
 169   │   postgres
 170   │   rebar
 171   │   npm
 172   │   pip
 173   │   virtualenv
 174   │   debian
 175   │   systemd
 176   │   emoji-clock
 177   │   cargo
 178   │   rust
 179   │   rustup
 181   │   themes
 182   │ )

There are others I like to use as well but I try to keep the plugin list short to keep loading fast (simple alias and completion plugins, as most of those are, don’t really matter, but some other plugins definitely increase loading time), so the plugin list I use is pretty system specific for whatever I do on the given system.

Sounds like you were loading too many plugins, by default it doesn’t load any so loading time is pretty instant.

I like fish but it’s too incompatible with the posix style. ZSH is more of just a better BASH. I’ve only been playing with nushell for some things because of how it works make certain kinds of work much easier and faster.


This is my setup too, in Alacritty. If I’m going to be doing anything substantial, I’ll start up Neovim and crack open some terminal buffers, but they still load fish and Starship.


It’s so much faster than my previous prompt :open_mouth: what have I been doing with my life.

I now use zsh with oh-my-zsh and Starship! :slightly_smiling_face:


Lol, woot. But for real, some of the OMZ plugins are slow (just because they call out to other things or so) so if it is slow to load then can test to see which plugins are the slow ones, but in general I rarely open shells often, usually I leave about 20 running… ^.^;

And yes, the starship program prompt is SOOO much faster than the starship theme prompt since it’s a unified, fast, Rust program. ^.^

The more complex OMZ plugins should be remade as standalone programs honestly, lol.



I switched when macOS made it the default. I have some additions configured such as automatically adding environment variables with user tokes for web sites, aliases (for git commands, bundler, rails, rake & guard shortcuts).