Quelle est la différence entre un "login" et une coquille bash "interactive"? J'ai cité Wikipedia ci-dessous mais quelqu'un peut-il donner une meilleure réponse?
EDIT: Il s'agit d'un wiki communautaire, donc peut-être plutôt que de voter pour fermer que vous pourriez fournir des exemples de situations d'appel pour quel type de shell $
Scripts de démarrage
Lorsque Bash démarre, il exécute les commandes dans une variété de scripts différents.
Lorsque Bash est appelé en tant que shell de connexion interactif, il lit d'abord et exécute des commandes dans le fichier/etc/profil, si ce fichier existe. Après avoir lu ce fichier, il cherche ~/.bash_profile, ~/.bash_login, et ~/.profile, dans cet ordre et lit et exécute des commandes de la première qui existe et est lisible.
Lorsqu'un shell de connexion est sorti, Bash lit et exécute des 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 des commandes de ~/.bstrucc, si ce fichier existe. Cela peut être inhibé en utilisant l'option --Norc. L'option de fichier --RCFILE forcera Bash à lire et exécuter des commandes de fichier au lieu de ~/.bstructrc.
Dans vos fichiers de profil de connexion de Shell, vous pouvez configurer certaines choses que vous utiliserez pendant votre session et que vous devez seulement être effectuée une fois. Quelques idées:
Dans les fichiers de Shell non-connexion (.bashrc
) Vous devez configurer votre shell:
.bash_profile
Habituellement, vous incluriez .bashrc
de .bash_profile
avec ce qui suit. Ensuite, Connectez-vous Shell obtient toutes vos personnalisations et .bash_profile
Le fichier n'a pas à dupliquer les choses qui sont déjà dans .bashrc
.
[[ -f ~/.bashrc ]] && . ~/.bashrc