Terminal.app possède un paramètre permettant de sélectionner l'interpréteur de commandes qu'il utilise, et le paramètre par défaut est "Default login shell (/usr/bin/login)".
Quelles sont les différences entre /usr/bin/login et /usr/bin/bash ?
Réponses
Trop de publicités?Griffo a raison. Maintenant, dans votre scénario, la différence se résume à ce qui suit :
- si vous choisissez
/bin/login
alors ce programme vérifiera dans la base de données des utilisateurs quel est votre interpréteur de commandes par défaut et exécutera cet interpréteur de commandes comme interpréteur de commandes de connexion, invoquant ainsi les fichiers rc qui ne sont exécutés que lorsque l'interpréteur de commandes est exécuté comme interpréteur de commandes de connexion (dans le cas de bash, il s'agit de/etc/profile
,~/.bash_profile
,~/.bash_login and
et~/.profile
. - si vous choisissez
/bin/bash
ce shell sera exécuté en tant que shell de connexion, indépendamment du shell défini dans la base de données des utilisateurs. Cela peut s'avérer utile lorsque l'interpréteur de commandes de la base de données des utilisateurs ne fonctionne pas correctement, ou si vous souhaitez pouvoir utiliser différents interpréteurs de commandes.
Conformément au commentaire de Chris Page le shell est exécuté comme un shell de connexion dans les deux cas.
Si vous n'avez pas changé votre shell de connexion par rapport à celui par défaut, qui est /bin/bash
et que vous n'avez pas modifié les fichiers rc de ce shell, la différence ne sera pas perceptible.
/usr/bin/login
est un programme utilisé pour se connecter au système et n'est pas quelque chose que vous invoquez manuellement dans des circonstances normales. Jetez un coup d'oeil aux pages info/man en lançant l'une des commandes suivantes :
info login
ou man login
/usr/bin/bash
est un shell et son rôle est d'interpréter les entrées de l'utilisateur et d'invoquer des programmes. Vous pouvez également obtenir plus d'informations sur bash en utilisant les commandes ci-dessous :
info bash
ou man bash