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 de la ligne de commande ou des réglages Utilisateurs et groupes.

À 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, or /bin/tcsh.

À partir des réglages Utilisateurs et groupes

Sous macOS Ventura ou version ultérieure :

  1. Choisissez le menu Pomme  > Réglages Système, puis cliquez sur Utilisateurs et groupes dans la barre latérale.

  2. Maintenez la touche Contrôle enfoncée et cliquez sur votre nom ou photo d’utilisateur dans la liste des utilisateurs à droite, puis choisissez Options avancées.

  3. Saisissez votre nom d’utilisateur et votre mot de passe lorsque vous y êtes invité.

  4. Choisissez un shell dans le menu « Shell d’accès », puis cliquez sur OK pour enregistrer les modifications.

Dans les versions antérieures de macOS :

  1. Sélectionnez le menu Pomme  > Préférences Système, puis cliquez sur Utilisateurs et groupes.

  2. Cliquez sur le verrouNo alt supplied for Image, puis saisissez votre nom d’utilisateur 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.

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 > Réglages (ou Préférences).

  2. Dans le volet Général, sélectionnez « Commande (chemin d’accès complet) ».

  3. Dans le champ adjacent, 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 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 les shells compatibles Bourne sous macOS Catalina ou version ultérieure, vous pouvez remplacer /var/select/sh par /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: