I just want to make sure the same thing is loaded for every shell thing that happens.
Se você realmente quiser, coloque tudo em ~/.profile
e adicione um source ~/.profile
ao final de seu ~/.bashrc
. Se isso é desejável é uma questão diferente. A fonte ~/.profile
in ~/.bashrc
é uma configuração muito comum mesmo assim.
+------------+-----------------+--------------------+ | | login shells | interactive shells | +------------+-----------------+--------------------| | all | /etc/profile | | | bourneish | ----------------+--------------------| | shells | ~/.profile | | +------------+-----------------+--------------------| | just | ~/.bash-profile | /etc/bash.bashrc | | | -------------------------------------| | bash | ~/.bash-login | ~/.bashrc | +------------+-----------------+--------------------+
C shell e shells derived usam um conjunto diferente de arquivos (.login, .cshrc, ..).
What exactly would in put in each to achieve an identical environment for every shell?
Se você quer dizer ambiente no sentido de variáveis de ambiente, basta definir todos eles em ~ / .profile e você está OK. Se você quer dizer meio ambiente em um sentido mais amplo, isso depende.
A questão aqui é que não é desejável ter o mesmo ambiente para shells interativos e de login. Um exemplo é o alias: talvez você queira aliases no seu shell interativo, mas muito provavelmente eles farão com que seus scripts façam coisas estranhas.
Então você não quer seus aliases em shells não interativos = > coloque-os em ~./bashrc
.