eolas/neuron/f8981ab1-f587-4bd7-a1a8-aa934a221168/Shell_sessions.md

43 lines
1.5 KiB
Markdown
Raw Normal View History

2024-12-09 18:34:15 +00:00
---
tags:
- shell
---
# Shell sessions
## **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
2025-01-17 17:56:09 +00:00
[environmental and shell variables](static/Environmental-and-shell-variables-04d5ec7e8e2b486a93f002bf686e4bbb)
2024-12-09 18:34:15 +00:00
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`