
to set the $SHELL env var permanently do it through



sudo su && /bin/bash
this line opens with bash non-interactive shell
it then uses ~/.bashrc to set system wide vars

vim ~/.bashrc

log out of shell then go back in

lets edit the file to load files from /etc/profile.d
vim ~/.bashrc
Below is another way for login shells

When a bash shell is created, lets say through opening up your terminal app or opening up a terminal in vscode, under the hood it openings up a bash interactive terminal using this command
bash --login
or

a bash interactive shell is just that, a shell a user plans to interactive with. but to create a shell through a ssh connection expects no user interaction because it can be ran programmatically. Both interactive and non interactive shells launch differently, executing different files when initialized. watch the video above and read the article below to look deeper into this



lets set system wide env vars on a interactive zsh or bash shell
vim /etc/profile
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
if [ "${-#*i}" != "$-" ]; then
. "$i"
else
. "$i" >/dev/null 2>&1
fi
fi
done

mkdir /etc/profile.d
vim /etc/profile.d/werm.path.sh
insert
export wow="damn"
You have to create a completely new interactive shell. in order for updates to be made

by simple typing “bash”, “zsh” or “sh” and creating a new shell, your updates will not take effect
