About
Os - Shell in Linux context
Management
Valid
The valid shell for a distribution are listed in the /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
List
Several type of wiki/unix_shell have been developed:
- zsh
- Korn,
- C
Prompt
The following table shows the commonly used default UNIX® system prompt and superuser prompt for the C shell, Bourne shell, and Korn shell.
Shell | Prompt |
---|---|
C shell | machine_name% |
C shell for superuser | machine_name# |
Bourne shell and Korn shell | $ |
Bourne shell and Korn shell for superuser | # |
Current Shell
With the environment variable SHELL
echo $SHELL
/bin/bash
With ps
ps -p $$
PID TTY TIME CMD
4104 pts/1 00:00:00 bash
where:
- $ is a bash special parameter that contains the PID (process identification number) of the current process which is your shell
Then running a ps on that number displays a process status listing of your shell.
Zero (0)
In bash, the special parameter 0 expands to the name of the shell or shell script. This is set at shell initialization. If bash is invoked with a file of com- mands, 0 is set to the name of that file.
If bash is started with the -c option, then 0 is set to the first argument after the string to be executed, if one is present. Otherwise, it is set to the file name used to invoke bash, as given by argument zero.
# echo $0
/bin/bash
default shell for a user
The utility chsh (Change the login shell) is used to change it.
It will change it in the /etc/password file
absolute path name
See the special parameter _
Interactive
When the shell:
- is in REPL mode, it's Interactive
- is executing a command, it's non-interactive
Login
A login shell is just an option that will execute scripts at login (start) and end (logout) time. See What is a Login Shell?