Je connais la différence entre les deux scripts de connexion bash:
.bashrc
est exécuté uniquement par des shells "non-login".
.bash_profile
(ou .bash_login
ou .profile
) est exécuté par des coquilles "login".
Quelqu'un a-t-il de bons exemples de choses qui conviennent mieux à une exécution avec un login uniquement, telles que je les mettrais seulement dans .bash_profile
, mais elles n'auraient pas vraiment de sens .bashrc
?
(Je sais que la plupart d' entre nous SoURce .bashrc
sur .bash_profile
, donc il ne semble pas y avoir beaucoup d'intérêt à la question en face ...)
Réponses:
Etant donné que a
.bashrc
est destiné aux shells non connectés, j’évite les commandes renvoyant à l’écran. J'ai également rencontré des expériences dans lesquelles les déclarations d'écho.bashrc
entraînent l'échec des commandes sftp et rsync (et peut-être aussi des commandes scp).En outre, vous n'exécuterez généralement pas ssh-agent à partir d'un shell non interactif. Donc j'ai ça dans
.bash_profile
.la source
.bashrc
interférant avec les méthodes de transfert de fichiers à distance mises en œuvre via des flux standard , la solution consiste à placer ces commandes sous un code qui vérifie si le shell est interactif et ne continue que si c'est le cas. Par défaut des utilisateurs.bashrc
des fichiers dans Ubuntu, copiés à partir/etc/skel/.bashrc
lors de la création de compte, ainsi que l' ensemble du système/etc/bash.bashrc
, contiennent déjà du code qui vérifie et retourne si la coquille est noninteractive (mais il faut encore mettre les commandes de production de sortie d'un sous eux).Byobu est un excellent exemple de quelque chose que vous ne devriez jamais mettre dans un
.bashrc
.Sinon, il s'exécutera de manière récursive dans chacun de ses «terminaux virtuels» ;-)
Vous pouvez l'essayer, c'est amusant.
C'est pourquoi tu l'
.profile
inscris, donc byobu (qui est vraiment un simple wrapper autour de l'écran) n'est chargé qu'une fois, au moment de la connexion. Et Byobu lui-même peut démarrer de nouvelles sessions de bash interactives.la source