Comment définir mon shell par défaut sur Mac?
Question
Je n'aime pas retaper du poisson à chaque démarrage du terminal. Je veux que fish
soit activé par défaut. Comment définir une coquille de poisson comme coquille par défaut sur un Mac?
La solution
Celles-ci s'appliquent à MacOS Sierra 10.12.5 (16F73) et probablement à d'autres versions récentes et à venir de MacOS.
-
chsh
ne suffit pas pour changer le shell par défaut. Assurez-vous que vous appuyez sur Commande + , pendant que votre terminal est ouvert et modifiez l'option 'Shell ouverts avec' par 'Shell de connexion par défaut.' -
En 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.
Autres conseils
1. sudo nano / etc / shells
2. ajoutez / usr / local / bin / fish à votre liste d'obus
3. chsh -s / usr / local / bin / fish
Vous pouvez utiliser chsh pour changer 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 du système d’exploitation, vous devez l’ajouter à sa liste connue: / etc / shells
.
Depuis le terminal:
-
Ajoutez un poisson à
/ etc / shells
, ce qui nécessitera un mot de passe administratif:sudo echo /usr/local/bin/fish >> /etc/shells
-
Faites de Fish votre coque par défaut avec
chsh
:chsh -s /usr/local/bin/fish
Dans les préférences système:
-
Utilisateurs et groupes & # 8594; Ctrl-clic sur l'utilisateur actuel & # 8594; Options avancées ...
-
Remplacez le shell de connexion par
/ usr / local / bin / fish
-
Appuyez sur OK, déconnectez-vous et reconnectez-vous
Voici une autre façon de procéder:
En supposant que vous l’ayez installé avec MacPorts, vous pouvez le faire en effectuant:
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 que vous avez terminé, 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, puis choisissez "Options avancées ...". Dans le " Login shell " champ, ajoutez le chemin d'accès au poisson.
La seule chose qui a fonctionné pour moi a été une combinaison de toutes ces méthodes.
-
J'ai d'abord dû ajouter du poisson au fichier
/ etc / shells
-
Ensuite, j'ai exécuté
chsh -s / usr / local / bin / fish
-
Enfin, j'ai tapé Commande + , et ajouté
/ usr / local / bin / fish
au chemin par défaut <. / p>
Ce n'est qu'après avoir effectué ces trois opérations que les poissons ont commencé à apparaître comme paramètres par défaut pour les nouvelles fenêtres du terminal.
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)
- Ouvrez votre terminal et appuyez sur commande + , (virgule). Cela ouvrira une fenêtre de préférences.
- Le premier onglet est "Général".
- Recherchez le paramètre "Shell ouvert avec" et choisissez la 2e option, qui nécessite un chemin complet vers le shell.
- Collez le lien vers votre commande fish, généralement
/ usr / local / bin / fish
.
J'utilise macOS Sierra.
le programme chsh
vous permettra de changer votre shell par défaut. Il voudra le chemin complet de l'exécutable, donc si votre shell est fish
, il vous demandera de fournir le résultat indiqué lorsque vous tapez quel poisson
.
Une ligne commençant par " Shell:
" apparaît. Si vous ne l'avez jamais modifié, le message " Shell: / bin / bash
" est probablement utilisé. Remplacez ce chemin / bin / bash
par le chemin du shell souhaité.
Une fois dans le terminal, ouvrez les préférences du terminal à l'aide de commande + , .
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 poisson
.
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
).
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)
Vous êtes alors prêt à obtenir la complétion des onglets de style vim qui est uniquement disponible sur bash > = 4 (version actuelle de infusion
vaut 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"
Si vous rencontrez des problèmes avec les autres méthodes, travaillez sur mac Mojave, mais cela devrait fonctionner normalement.
which fish
ajoutez le chemin de sortie à " Préférences système > Utilisateurs & amp; Groupes > clic droit sur l'utilisateur, Options avancées " Collez le résultat à partir de lequel dans "shell de connexion:"
Ceci fonctionne pour moi sur la nouvelle installation de mac osx (sierra):
- Définir l'utilisateur actuel en tant que propriétaire des shells
sudo chown $(whoami) /etc/shells
- Ajouter du poisson à / etc / shells
sudo echo /usr/local/bin/fish >> /etc/shells
- Faites de Fish votre coque par défaut avec chsh
chsh -s /usr/local/bin/fish
- Redéfinissez la racine en tant que propriétaire de coques
sudo chown root /etc/shells