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.
% cat /etc/shells # $NetBSD: shells,v 1.3 1996/12/29 03:23:07 mrg Exp $ # # List of acceptable shells for chpass(1). # Ftpd will not allow users to connect who are not using # one of these shells. /bin/sh /bin/csh /bin/ksh
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.
% dict shell 8 definitions found From The Collaborative International Dictionary of English v.0.48 [gcide]: Shell \Shell\, n. [OE. shelle, schelle, AS. scell, scyll; akin to D. shel, Icel. skel, Goth. skalja a tile, and E. skill. Cf. {Scale} of fishes, {Shale}, {Skill}.] 1. A hard outside covering, as of a fruit or an animal. [...] From The Jargon File (version 4.4.7, 29 Dec 2003) [jargon]: shell n. [orig. {Multics} techspeak, widely propagated via Unix] 1. [techspeak] The command interpreter used to pass commands to an operating system; so called because it is the part of the operating system that interfaces with the outside world.
text/gemini;
This content has been proxied by September (3851b).