web-dev-qa-db-fra.com

Quelle est la différence entre un "login" et une coquille bash "interactive '

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.

50
Gareth

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:

  • créez un fichier temporaire contenant l'adresse IP que vous avez connectée à partir de vous, ultérieurement, vous pouvez l'inclure dans des règles de pare-feu de réglage des scripts.
  • exécutez SSH-Agent, demandez vos touches SSH et stockez les variables d'environnement de l'agent SSH dans un fichier.
  • si tel est une machine limitée et que vos collègues souhaitent être au courant des connexions de chacun, écrivez des messages (1) les informant de votre identifiant.

Dans les fichiers de Shell non-connexion (.bashrc) Vous devez configurer votre shell:

  • Invite de fantaisie
  • définir des alias
  • définir les options d'historique
  • définir les fonctions de coquille personnalisées
  • variables d'environnement d'exportation (peut-être pager, éditeur si les réglages à l'échelle du système sont sucer)
  • charger les variables d'agent SSH enregistrées dans .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
16
hayalci