Lorsque zsh est défini comme shell de connexion sur Mac OS X, lorsqu'il est démarré par iTerm, zsh ne considère pas qu'il est exécuté en tant que shell de connexion, bien qu'il soit démarré comme '-zsh' ('-' est mis comme premier caractère de arg [0]) qui est censé signifier qu'il devrait commencer comme shell de connexion.
Ainsi, lorsque je règle le shell de connexion sur bash, bash reconnaît ce premier «-» dans $ 0 et s'exécute comme un shell de connexion, mais pas zsh, bien qu'il semble que ce soit le cas.
Existe-t-il un moyen de faire en sorte que zsh reconnaisse le '-' dans arg [0], ou qu'iTerm exécute le shell avec un argument de ligne de commande --login?
Réponses:
Dans iTerm -> Préférences -> Onglet Profils -> Section générale, définissez la commande sur: / bin / zsh --login
la source
/usr/local/bin/zsh --login
Vous serez invité à entrer votre mot de passe, mais une fois que vous aurez mis à jour vos paramètres, toutes les nouvelles sessions iTerm / Terminal que vous démarrez sur cette machine seront par défaut zsh.
la source
chsh
vous indique quelque chose comme "shell non standard", cela signifie que vous devez ajouter le chemin du nouveau shell/etc/shells
. Cela peut arriver si vous passez, par exemple, à une version de zsh installée par homebrew, ce qui la place/usr/local/bin/zsh
.chsh -s $(which zsh)
peut être utilisé pour assurer un chemin correct.Allez dans le volet Utilisateurs et groupes des Préférences Système -> Sélectionnez l'utilisateur -> Cliquez sur le verrou pour apporter des modifications (coin inférieur gauche) -> cliquez avec le bouton droit sur l'utilisateur actuel sélectionnez Options avancées ... -> Sélectionnez le Shell de connexion: / bin / zsh et OK
la source
La commande pour changer le shell au démarrage est
chsh -s <path_to_shell>
. Les shells par défaut de mac OS X sont installés dans lebin
répertoire, donc si vous souhaitez passer à la valeur par défaut,zsh
vous utiliserez ce qui suitSi vous utilisez une version différente de,
zsh
vous devrez peut-être ajouter cette version à/etc/shells
pour éviter le message shell non standard. Par exemple, si vous voulez la version de home-brew de,zsh
vous devez ajouter/usr/local/bin/zsh
au fichier susmentionné que vous pouvez faire en une seule commandesudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells"
, puis exécuterOu si vous voulez faire le tout en une seule commande, copiez et collez simplement ceci si vous avez déjà installé zsh
la source
/etc/shells
dans le corps de la réponse elle-même.Avez-vous essayé de modifier l'entrée du shell dans les paramètres du compte .
Accédez aux préférences Comptes, déverrouillez et cliquez avec le bouton droit sur votre compte d'utilisateur pour la boîte de dialogue Paramètres avancés . Votre shell doit être / bin / zsh, et vous pouvez modifier cette invocation de manière appropriée (c'est-à-dire ajouter l'argument --login).
la source
Utilisez l'
login
utilitaire pour créer un shell de connexion. Supposons que l'utilisateur auquel vous souhaitez vous connecter possède le nom d'utilisateur Alice et que zsh est installé/opt/local/bin/zsh
(par exemple, une version plus récente installée via MacPorts). Dans iTerm 2, allez dans Préférences, Profils, sélectionnez le profil que vous souhaitez configurer et entrez dans Commande :Voir
man login
pour plus de détails sur les options.la source