Utiliser zsh comme shell par défaut sur votre Mac

À partir de macOS Catalina, le Mac utilise zsh comme shell d’accès par défaut et shell interactif. Vous pouvez également définir zsh comme valeur par défaut dans les versions antérieures de macOS.

Par défaut, votre Mac utilise zsh ou bash comme interpréteur de ligne de commande pour le shell d’accès et le shell interactif :

  • zsh (Z shell) est le shell par défaut pour tous les comptes d’utilisateur nouvellement créés, à partir de macOS Catalina.
  • bash est le shell par défaut sous macOS Mojave et versions antérieures.

zsh est hautement compatible avec le shell Bourne (sh) et globalement compatible avec bash, avec quelques différences. Pour plus d’informations sur zsh et son système exhaustif de complétion de ligne de commande, saisissez man zsh dans Terminal.
  

Comment modifier votre shell par défaut

Que votre compte d’utilisateur soit configuré pour utiliser zsh (recommandé), bash ou un autre shell, vous pouvez changer le shell par défaut à partir des préférences Utilisateurs et groupes ou de la ligne de commande.

À partir des préférences Utilisateurs et groupes

  1. Sélectionnez le menu Pomme  > Préférences Système, puis cliquez sur Utilisateurs et groupes. 
  2. Cliquez sur le cadenas , puis saisissez le nom de votre compte et votre mot de passe.
  3. Maintenez la touche Contrôle enfoncée et cliquez sur votre nom d’utilisateur dans la liste des utilisateurs à gauche, puis choisissez Options avancées. 
  4. Choisissez un shell dans le menu « Shell d’accès », puis cliquez sur OK pour enregistrer les modifications.

À partir de la ligne de commande

Dans Terminal, saisissez $ chsh -s path, où path est l’un des chemins de shell répertoriés dans /etc/shells, tel que /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh ou /bin/tcsh.
  

Utiliser un autre shell sans modifier la valeur par défaut

Si vous ne souhaitez pas que Terminal utilise le shell d’accès par défaut dans les nouvelles fenêtres et les nouveaux onglets de Terminal :

  1. Ouvrez Terminal, puis choisissez Terminal > Préférences.
  2. Dans le volet Général, sélectionnez « Commande (chemin d’accès complet) ». 
  3. Dans le champ fourni, saisissez l’un des chemins de shell répertoriés dans /etc/shells, tel que /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh ou /bin/tcsh.

Si vous appelez le shell bash alors que macOS Catalina est configuré pour utiliser un autre shell, un message indique que le shell interactif par défaut est maintenant zsh. Pour faire disparaître cet avertissement, vous pouvez ajouter la commande suivante à ~/.bash_profile ou à ~/.profile :

export BASH_SILENCE_DEPRECATION_WARNING=1


Comment passer à une invite et un profil zsh

Si vous utilisez un profil bash, par exemple pour définir des variables d’environnement, des alias ou des variables de chemin, vous devriez utiliser un équivalent zsh. Par exemple :

  • .zprofile est équivalent à .bash_profile et s’exécute à la connexion, y compris via SSH
  • .zshrc est équivalent à .bashrc et s’exécute pour chaque nouvelle session Terminal

Si vous utilisez .profile (profil compatible POSIX), vous pouvez faire en sorte que zsh lise automatiquement ses paramètres en ajoutant la commande suivante à .zprofile :

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'

Vous pouvez également déplacer certains paramètres d’un profil bash vers un profil zsh sans modification. Par exemple, pour définir des variables d’environnement : export MY_SETTING=1.

zsh reconnaît un ensemble de spécificateurs d’invite différent de celui de bash et possède une syntaxe plus propre pour spécifier la sortie colorisée, éliminant ainsi la nécessité d’utiliser des séquences d’échappement ANSI complexes. Par exemple, voici la syntaxe d’une invite bash par défaut de .bash_profile :

export PS1="\[\e[92;40m\]\h\[\e[m\]:\[\e[93m\]\W\[\e[m\] \\$ "

Pour convertir cette invite bash en une invite zsh lors de l’utilisation de .zprofile ou .zshrc :

export PS1="%10F%m%f:%11F%1~%f \$ "

Consultez la page relative à man zsh pour plus d’informations.


Comment tester vos scripts shell

Pour tester la compatibilité des scripts avec des shells compatibles Bourne sous macOS Catalina, vous pouvez modifier /var/select/sh en /bin/bash, /bin/dash ou /bin/zsh. Si vous remplacez /var/select/sh par un shell autre que bash, notez que les scripts utilisant des bashismes risquent de ne pas fonctionner correctement.

Vous pouvez faire en sorte que zsh émule sh en exécutant la commande zsh --emulate sh.
  

Les informations se rapportant à des produits non fabriqués par Apple, ou à des sites Web indépendants qui ne sont ni contrôlés ni testés par Apple, sont fournies uniquement à titre indicatif et ne constituent aucune recommandation. Apple ne saurait être tenu responsable de problèmes liés à l’utilisation de tels sites ou produits tiers, ou à leurs performances. Apple ne garantit en aucune façon la fiabilité d’un site Web tiers ni l’exactitude des informations que ce dernier propose. Contactez le fournisseur pour plus d’informations.

Date de publication: