Skip to content

The Shell

A shell is the user interface used to control an operating system. Uberspace relies on a command-line interface (CLI) rather than a graphical user interface (GUI).

Changing the Shell

By default, all new Asteroids use the Bash shell. You can use the chsh command to switch to a different shell:

[isabell@moondust ~]$ chsh --shell /bin/zsh
Changing shell for isabell.
Shell changed.

Not every shell works well as login shell.

Not every shell reads profile files from /etc/profile.d/… correctly, or at all (e.g. elvish, fish, and newshell).

This might be okay for you, but be aware, that you might miss some default settings, i.e. some directories might not be on your $PATH, or tools like cargo use different default directories, etc.

Switching to an Interactive Shell via Bash

If you do not want to miss out on our default /etc/profile.d/… customization, you can start your favorite shell from Bash on login, by starting it with the exec command from your ~/.bashrc, e.g.:

#
# ~/.bashrc
#

# If not running interactively, don't do anything
[[ $- != *i* ]] && return

alias ls='ls --color=auto'
alias grep='grep --color=auto'
PS1='[\u@\h \W]\$ '

exec /bin/fish

List Available Shells

To find out which shells are available on your Asteroid, run chsh --list-shells.

Here are a few prominent shells you can choose from:

  • Bash: a reliable default on most Linux systems.
  • Elvish: aims at interactive features, a clear syntax and error checking.
  • Fish: aims at interactive features, a clear syntax and usability features.
  • Nushell: has native support for structured and typed data, changing the way we use pipes.
  • Zsh: a versatile shell, you might know it from Mac OS.