aliases | category | classification | date | date_modified | draft | id | image | links | local_archive_links | pinned | series | tags | title | type | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
linux |
public |
2020-07-14 14:15:25 -0700 |
2024-09-23 15:17:48 -0700 |
false |
20200714211525 |
|
false |
false |
|
Linux Shell |
tech-note |
login shell: A login shell logs you into the system as a specific user, necessary for this is a username and password. When you hit ctrl+alt+F1 to login into a virtual terminal you get after successful login: a login shell (that is interactive). Sourced files:
/etc/profile
and~/.profile
for Bourne compatible shells (and/etc/profile.d/*
)~/.bash_profile
for bash/etc/zprofile
and~/.zprofile
for zsh/etc/csh.login
and~/.login
for cshnon-login shell: A shell that is executed without logging in, necessary for this is a current logged in user. When you open a graphic terminal in gnome it is a non-login (interactive) shell. Sourced files:
/etc/bashrc
and~/.bashrc
for bashinteractive shell: A shell (login or non-login) where you can interactively type or interrupt commands. For example a gnome terminal (non-login) or a virtual terminal (login). In an interactive shell the prompt variable must be set (
$PS1
). Sourced files:
/etc/profile
and~/.profile
/etc/bashrc
or/etc/bash.bashrc
for bashnon-interactive shell: A (sub)shell that is probably run from an automated process you will see neither input nor output when the calling process don't handle it. That shell is normally a non-login shell, because the calling user has logged in already. A shell running a script is always a non-interactive shell, but the script can emulate an interactive shell by prompting the user to input values. Sourced files:
/etc/bashrc
or/etc/bash.bashrc
for bash (but, mostly you see this at the beginning of the script:[ -z "$PS1" ] && return
. That means don't do anything if it's a non-interactive shell).- depending on shell; some of them read the file in the
$ENV
variable.— bash - login/non-login and interactive/non-interactive shells - Unix & Linux Stack Exchange