eolas/zk/Shell_sessions.md
2024-02-17 13:27:49 +00:00

40 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
tags:
- shell
---
## **Types of shell session**
Shell sessions can be one of or several instances of the following types:
- **login shell**
- A session that must be authenticated such as when you access remote
resources using SSH
- **non-login shell**
- Not the above
- **interactive shell**
- A shell session that runs in the terminal and thus that the user can
_interact_ with
- **non-interactive shell**
- A shell session that runs without a terminal
If you are working with a remote server you will be in an **interactive login
shell**. If you run a script from the command line you will be in a
**non-interactive non-login shell**.
## Shell sessions and access
The type of shell session that you are currently in affects the
[environmental and shell variables](Environmental-and-shell-variables-04d5ec7e8e2b486a93f002bf686e4bbb)
that you can access. This is because the order in which configuration files are
read on initialisation differs depending on the type of shell.
- a session defined as a non-login shell will read `/etc/bash.bashrc` and then
the user-specific `~/.bashrc` file to build its environment.
- A session started as a login session will read configuration details from the
`/etc/profile` file first. It will then look for the first login shell
configuration file in the users home directory to get user-specific
configuration details.
In Linux, if you want the environmental variable to be accessible from both
login and non-login shells, you must put them in `~/.bashrc`