Wednesday, March 21, 2018

bash - Run shell script on every new shell



I want to run a shell script (define some environment variables) at the start of every new shell (globally, not for several users).



So I placed my script into the directory /etc/profile.d/, but that works only for login shells. Is there a better place for my script?



For interactive login shells, as you've found, you can put commands in scripts located inside:




/etc/profile.d/


You can also accomplish that, in a somewhat less desirable way, by editing the global configuration file:



/etc/profile


For bash (which is the default interactive shell), there is a corresponding file where you can put commands to be run by all interactive non-login shells:




/etc/bash.bashrc


Just as /etc/profile.d and /etc/profile correspond to ~/.profile, /etc/bash.bashrc corresponds to ~/.bashrc.



This does not apply to non-interactive shells. But it's rather unlikely that you have commands you want run by non-interactive shells. (Then they would run every time any script was run.)


No comments:

Post a Comment

11.10 - Can't boot from USB after installing Ubuntu

I bought a Samsung series 5 notebook and a very strange thing happened: I installed Ubuntu 11.10 from a usb pen drive but when I restarted (...