Je n'aime pas retaper le poisson chaque fois que je démarre le terminal. Je veux fish
par défaut. Comment puis-je définir la coquille de poisson comme coquille par défaut sur un Mac?
Je n'aime pas retaper le poisson chaque fois que je démarre le terminal. Je veux fish
par défaut. Comment puis-je définir la coquille de poisson comme coquille par défaut sur un Mac?
Réponses:
Ceux-ci sont applicables à MacOS Sierra 10.12.5 (16F73) et probablement à certaines autres versions récentes et à venir de MacOS.
chsh
ne suffit pas pour changer le shell par défaut. Assurez-vous d'appuyer sur Command+ ,pendant que votre terminal est ouvert et de changer l'option «Shells open with» en «Default login shell».
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 des informations correctes.
Preferences
de Terminal.app . Voir cette réponse de Pankaj.
1. sudo nano / etc / shells
2. ajoutez / usr / local / bin / fish à votre liste de coquillages
3. chsh -s / usr / local / bin / fish
Shell open with: Default login shell
dans les paramètres de Terminal.app
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 cela est décrit dans la page, et par Lorin, si la coquille est pas connue par le système d' exploitation, vous devez l'ajouter à sa liste connue: /etc/shells
.
chsh: /usr/local/bin/fish: non-standard shell
solution consistait à l'ajouter à / etc / shells comme décrit par @ lorin-hochstein réponse ci
-s
cependant). Je réessaierai bientôt.
Depuis le terminal:
Ajoutez Fish à /etc/shells
, ce qui nécessitera un mot de passe administratif:
sudo echo /usr/local/bin/fish >> /etc/shells
Faites de Fish votre coquille par défaut avec chsh
:
chsh -s /usr/local/bin/fish
À partir des préférences système:
Utilisateur et groupes → ctrl-clic sur Utilisateur actuel → Options avancées ...
Remplacez le shell de connexion par /usr/local/bin/fish
Appuyez sur OK, déconnectez-vous et reconnectez-vous
sudo sh -c 'echo /usr/local/bin/fish >> /etc/shells'
echo /usr/local/bin/fish | sudo tee -a /etc/shells
Voici une autre façon de le faire:
En supposant que vous l'avez installé avec MacPorts, ce qui peut être fait en faisant:
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 /etc/shells
fichier.
Une fois que vous avez fait cela, vous pouvez changer le shell en allant dans Préférences Système -> Comptes. Cliquez sur le verrou pour autoriser les modifications. Faites un clic droit sur le compte et choisissez "Options avancées ...". Dans le champ "Login shell", ajoutez le chemin d'accès aux poissons.
La seule chose qui a fonctionné pour moi était une combinaison de toutes ces méthodes.
J'ai d'abord dû ajouter du poisson au /etc/shells
fichier
Puis j'ai couru chsh -s /usr/local/bin/fish
Enfin, j'ai tapé Command+ ,et ajouté /usr/local/bin/fish
au chemin par défaut là-bas
Ce n'est qu'après avoir fait les trois choses que le poisson a commencé à apparaître par défaut pour les nouvelles fenêtres de terminal.
Preferences
> General
> Shells open with:
>/bin/fish
/usr/local/bin/fish
.Voir cette capture d'écran où zsh
est défini par défaut.
J'utilise macOS Sierra . Fonctionne également sous macOS Mojave .
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)
zsh
. Déjà présent sur macOS Mojave. Livré sur Mojave et par défaut dans Catalina.
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)
Ensuite, vous êtes prêt à obtenir l'achèvement des onglets de style vim qui n'est disponible que sur bash> = 4 (la version actuelle 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"
le chsh
programme vous permettra de changer votre shell par défaut. Il voudra le chemin complet de l'exécutable, donc si votre shell est fish
alors 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 /bin/bash
chemin par le chemin vers votre shell souhaité.
Ce travail pour moi sur une nouvelle installation de mac osx (sierra):
sudo chown $(whoami) /etc/shells
sudo echo /usr/local/bin/fish >> /etc/shells
chsh -s /usr/local/bin/fish
sudo chown root /etc/shells
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 in dscl
).
Au cas où vous rencontriez des problèmes avec les autres méthodes, a travaillé sur mac Mojave mais devrait généralement fonctionner.
which fish
ajoutez le chemin de sortie à "Préférences système> Utilisateurs et groupes> clic droit utilisateur, Options avancées" Collez le résultat à partir duquel dans "Shell de connexion:"
Pour changer votre shell par défaut sur mac, exécutez ce qui suit:
chsh -s <name-of-shell>
La liste des coques parmi lesquelles vous pouvez choisir est:
donc si vous voulez passer du shell / bin / zsh, votre commande ressemblera à:
chsh -s /bin/zsh
vous pouvez voir tous les shells disponibles sur votre système en exécutant:
cat /etc/shells