web-dev-qa-db-fra.com

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

Je n'aime pas retaper du poisson à chaque démarrage du terminal. Je veux fish par défaut. Comment définir Fish Shell comme Shell par défaut sur un Mac?

145

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 Command+, Pendant que votre terminal est ouvert, changez l'option 'Shells open with' avec 'Shell de connexion par défaut'.

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

24
Tushar Vazirani

1. Sudo nano/etc/shells enter image description here

2. Ajoutez/usr/local/bin/fish à votre liste d'obus enter image description here

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

199
user391339

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

Exécutez le code suivant, par exemple, pour modifier 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 du système d’exploitation, vous devez l’ajouter à sa liste connue: /etc/shells.

64
Aif

Du terminal:

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

    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
    

Depuis les préférences système:

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

  2. Remplacez le shell de connexion par /usr/local/bin/fish

    login Shell

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

61
Paolo Moretti

Voici une autre façon de le faire:

En supposant que vous l’ayez installé avec MacPorts, vous pouvez le faire de la manière suivante:

Sudo port install fish

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

Vous devez indiquer à 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 changer de 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'accès au poisson. 

20
Lorin Hochstein

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

  1. J'ai d'abord dû ajouter 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 qu’après avoir fait les trois choses que le poisson est devenu la valeur par défaut pour les nouvelles fenêtres du terminal.

11
quaintm
9
Gumbo
  1. Ouvrez votre terminal et appuyez sur command+, (virgule). Cela ouvrira une fenêtre de préférences.
  2. Le premier onglet est "Général".
  3. Recherchez le paramètre 'Shell ouvert avec' et choisissez la deuxième option, qui nécessite un chemin complet vers le shell.
  4. Collez le lien vers votre commande fish, généralement /usr/local/bin/fish.

J'utilise macOS Sierra.

4
Pankaj

Sur macOS Mojave, je devais faire ce qui suit (en utilisant zsh comme exemple):

brew install zsh
Sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)
4
MagicDude4Eva

Dans le terminal, ouvrez les préférences du terminal en utilisant Command+,.

Dans l'onglet Paramètre, sélectionnez l'un des thèmes et choisissez l'onglet Shell à droite.

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

4
holsety

le programme chsh vous permettra de changer votre shell par défaut. Il voudra connaître le chemin complet de l'exécutable. Par conséquent, si votre shell est fish, il vous demandera alors de fournir le résultat fourni lorsque vous tapez which fish.

Vous verrez une ligne commençant par "Shell:". Si vous ne l'avez jamais édité, il est très probablement écrit "Shell: /bin/bash". Remplacez ce chemin /bin/bash par le chemin du shell souhaité.

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

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

2
user23743

Comment obtenir la dernière version de bash sur macOS moderne (testé sur Mojave).

brew install bash
which bash | Sudo tee -a /etc/shells
chsh -s $(which bash)

Alors vous êtes prêt à obtenir l'achèvement de l'onglet de style vim qui n'est disponible que sur bash> = 4 (la version actuelle dans brew est 5.0.2

# If there are multiple matches for completion, Tab should cycle through them
bind 'TAB':menu-complete

# Display a list of the matching files
bind "set show-all-if-ambiguous on"

# Perform partial completion on the first Tab press,
# only start cycling full results on the second Tab press
bind "set menu-complete-display-prefix on"
1
Bruno Bronosky

Si vous rencontrez des problèmes avec les autres méthodes, travaillez sur mac Mojave mais devrait en général fonctionner.

which fish

ajoutez le chemin de sortie dans "Préférences Système> Utilisateurs et groupes> utilisateur en cliquant à droite, Options avancées", puis collez le résultat à partir de "Login Shell:"

0
SLuck

Ce travail pour moi sur la nouvelle installation de Mac OSX (Sierra):

  1. Définir l'utilisateur actuel en tant que propriétaire des shells
Sudo chown $(whoami) /etc/shells
  1. Ajouter du poisson à/etc/shells
Sudo echo /usr/local/bin/fish >> /etc/shells
  1. Faites de poisson votre shell par défaut avec chsh
chsh -s /usr/local/bin/fish
  1. Redéfinir la racine en tant que propriétaire de coquillages
Sudo chown root /etc/shells
0
Robin ZecKa Ferrari