What is Shell?
A program that reads and interprets the commands a user types, starts programs and shows the results. On Linux, bash and zsh are widely used. It provides wildcard expansion, variables, redirection and pipes, and job control, and it can also run files of commands (shell scripts) to automate work. The name comes from its role as a "shell" around the kernel, the core of the OS, standing between it and the user.
Japanese name: シェル
Shell appears in 10 practice questions across 2 topics, including Linux and Command-Line Basics, Linkers, Loaders & Executables.
Field: Linux and Command-Line Basics
Various shells
Besides bash, which is widely used on Linux, there are zsh and fish with rich interactive features, and dash, which is light and starts quickly. Scripts written only with the sh syntax defined by the POSIX standard run in many shells. Environment-setup scripts of EDA tools are still sometimes written in the csh family (csh, tcsh) syntax, and a settings file loaded with source has to match the kind of shell.
FAQ
What is the difference between a shell and a terminal?
A terminal (terminal emulator) is a program that serves as the window that displays characters and receives keyboard input. The shell runs inside it and interprets the received strings as commands and executes them. You can switch from bash to zsh within the same terminal.
What is the difference between "source file" and "./file"?
Running ./file makes a new shell process run the script, so variables or the current directory changed inside it are not kept in the original shell when it ends. source (or .) runs the file's contents in the current shell, so settings such as environment variables remain. That is why settings files that prepare a tool's environment are loaded with source.