Quelle est la différence entre un shell "Login" et un shell bash "Interactive"? J'ai cité Wikipedia ci-dessous, mais quelqu'un peut-il donner une meilleure réponse?
EDIT: Ceci est un wiki de communauté, alors peut-être que plutôt que de voter pour fermer, vous pourriez donner des exemples de situations qui appellent quel type de $ SHELL
Scripts de démarrage
Lorsque Bash démarre, il exécute les commandes dans divers scripts.
Lorsque Bash est appelé en tant que shell de connexion interactif, il lit et exécute d'abord les commandes du fichier / etc / profile, si ce fichier existe. Après avoir lu ce fichier, il recherche ~ / .bash_profile, ~ / .bash_login et ~ / .profile, dans cet ordre, puis lit et exécute les commandes à partir de la première qui existe et est lisible.
Lorsqu'un shell de connexion se ferme, Bash lit et exécute les commandes du fichier ~ / .bash_logout, s'il existe.
Lorsqu'un shell interactif qui n'est pas un shell de connexion est démarré, Bash lit et exécute les commandes de ~ / .bashrc, si ce fichier existe. Cela peut être inhibé en utilisant l'option --norc. L'option de fichier --rcfile forcera Bash à lire et à exécuter les commandes à partir du fichier au lieu de ~ / .bashrc.
Réponses:
Dans les fichiers de profil de votre shell de connexion, vous pouvez configurer certaines choses que vous utiliserez lors de votre session et qui ne doivent être effectuées qu'une seule fois. Quelques idées:
Dans les fichiers d'un shell non connecté (
.bashrc
), vous devez configurer votre shell:.bash_profile
Habituellement, vous incluez à
.bashrc
partir.bash_profile
de ce qui suit. Ensuite, le shell de connexion obtient toutes vos personnalisations et le.bash_profile
fichier ne doit pas dupliquer les éléments déjà présents.bashrc
.la source