Comment définir mon shell par défaut sur Mac?

Je n’aime pas retaper le poisson chaque fois que je démarre le terminal. Je veux du fish par défaut. Comment puis-je configurer fish shell comme shell par défaut sur un Mac?

Je voudrais append 2 choses importantes ici. Celles-ci sont applicables à MacOS Sierra 10.12.5 (16F73) et probablement à d’autres versions récentes et à venir de MacOS.

  1. chsh n’est pas suffisant pour changer le shell par défaut. Assurez-vous d’appuyer sur Commande + , pendant que votre terminal est ouvert et modifiez l’option ‘Shells open with’ sur ‘Shell de connexion par défaut’.

  2. En cas de bash, assurez-vous que vous exécutez echo $BASH_VERSION pour confirmer que vous exécutez la version prévue de bash. bash --version ne vous donne pas d’informations correctes.

1. sudo nano / etc / shells entrer la description de l'image ici

2. Ajoutez / usr / local / bin / fish à votre liste de shells entrer la description de l'image ici

3. chsh -s / usr / local / bin / fish

Vous pouvez utiliser chsh pour modifier le shell d’un utilisateur.

Exécutez le code suivant, par exemple, pour changer votre shell en Zsh

 chsh -s /bin/zsh 

Comme décrit dans la page de manuel, et par Lorin, si le shell n’est pas connu par le système d’exploitation, vous devez l’append à sa liste connue: /etc/shells .

Du terminal:

  1. Ajoutez Fish à /etc/shells , ce qui nécessitera un mot de passe administrateur:

     sudo echo /usr/local/bin/fish >> /etc/shells 
  2. Faites de Fish votre shell par défaut avec chsh :

     chsh -s /usr/local/bin/fish 

De Préférences Système:

  1. Utilisateur et groupes → Ctrl-clic sur Utilisateur actuel → Options avancées …

  2. Changer le shell de connexion en /usr/local/bin/fish

    shell de connexion

  3. Appuyez sur OK, déconnectez-vous et reconnectez-vous

Voici une autre façon de le faire:

En supposant que vous l’avez installé avec MacPorts, vous pouvez le faire en procédant comme suit:

 sudo port install fish 

Votre shell sera situé dans /opt/local/bin/fish .

Vous devez dire à OSX qu’il s’agit d’un shell valide. Pour ce faire, ajoutez ce chemin à la fin du fichier /etc/shells .

Une fois cela fait, vous pouvez modifier le shell en allant dans Préférences Système -> Comptes. Cliquez sur le verrou pour autoriser les modifications. Cliquez avec le bouton droit sur le compte et choisissez “Options avancées …”. Dans le champ “Login shell”, ajoutez le chemin d’access à fish.

La seule chose qui a fonctionné pour moi était une combinaison de toutes ces méthodes.

  1. J’ai d’abord dû append du poisson au fichier /etc/shells

  2. Puis j’ai couru chsh -s /usr/local/bin/fish

  3. Enfin, j’ai tapé Command + et ajouté /usr/local/bin/fish au chemin par défaut

Ce n’est que lorsque j’ai terminé que les trois choses ont commencé à apparaître comme mode par défaut pour les nouvelles fenêtres de terminal.

Mac OS X: Comment changer le shell du terminal

le programme chsh vous permettra de changer votre shell par défaut. Il voudra le chemin complet vers l’exécutable, donc si votre shell est un fish il voudra que vous fournissiez la sortie donnée lorsque vous tapez which fish .

Vous verrez une ligne commençant par ” Shell: “. Si vous ne l’avez jamais édité, il est fort probable qu’il indique ” Shell: /bin/bash “. Remplacez ce chemin /bin/bash par le chemin d’access au shell souhaité.

Lorsque vous êtes dans le terminal, ouvrez les préférences du terminal à l’aide de Command + ,.

Dans l’onglet Paramètres, sélectionnez l’un des thèmes et choisissez l’onglet shell à droite.

Vous pouvez définir la commande de démarrage automatique.

  1. Ouvrez votre terminal et appuyez sur commande + , (virgule). Cela ouvrira une fenêtre de préférences.
  2. Le premier onglet est “Général”.
  3. Trouvez le paramètre ‘Shells open with’ et choisissez la 2ème option qui nécessite un chemin complet vers le shell.
  4. Collez le lien vers votre commande fish, qui est généralement /usr/local/bin/fish .

J’utilise MacOS Sierra.

 heimdall:~ leeg$ dscl Entering interactive mode... (type "help" for commands) > cd /Local/Default/Users/ /Local/Default/Users > read <> [...] UserShell: /bin/bash /Local/Default/Users > 

changez simplement cette valeur (avec la commande write dans dscl ).