shell

A shell is a command interpreter widely used in unix operating systems as the primary interface between the user and the underlying resources.

It's more widely recognized as the thing you type commands inside when you open a terminal emulator.

There are several shells, and different operating systems will ship different default shells while also providing a different set of shells you can use instead of the default.

Traditionally, the file '/etc/shells' contains the allowed shells that you could use in a given operating system. If you are the system administrator, you can then add your own choice to this list.

Next you'd use 'chsh' to make a choice for your shell as the current user.

This means several users can be running several different shells at the same time in a multi-user unix system.

While learning all shells is likely overwhelming and potentially not very useful, it will suffice to learn your favorite shell plus sh, which is usually some version of the Almquist Shell, also known as ash. In the Linux world, a widely present implementation is dash, the Debian Almquist Shell, a direct descendant of NetBSD's ash.

This is because this specific shell is what you'd call a POSIX shell, meaning a shell that adheres to the POSIX specification. What this means is that you can make some assumptions that your script running on one operating system's sh is quite likely to also function without any changes in another operating system's sh.

It is also highly likely that your script written for sh will function in several more popular shells, such as bash and zsh, while a script written for these shells may not conversely run in sh if it uses those shell's specific, non-POSIX features.

Proxied content from gemini://tilde.pink/~jutty/shell.gmi (external content)

Gemini request details:

Original URL
gemini://tilde.pink/~jutty/shell.gmi
Status code
Success
Meta
text/gemini;lang=en
Proxied by
kineto

Be advised that no attempt was made to verify the remote SSL certificate.