Não gosto de redigitar peixes sempre que inicio o terminal. Eu quero fish
por padrão. Como definir o shell de peixe como meu shell padrão em um Mac?
Não gosto de redigitar peixes sempre que inicio o terminal. Eu quero fish
por padrão. Como definir o shell de peixe como meu shell padrão em um Mac?
Respostas:
Eles são aplicáveis ao MacOS Sierra 10.12.5 (16F73) e provavelmente a outras versões recentes e futuras do MacOS.
chsh
não é suficiente para alterar o shell padrão. Pressione Command+ ,enquanto o terminal estiver aberto e altere a opção 'Shells open with' para 'Default login shell'.
No caso de bash, certifique-se de executar echo $BASH_VERSION
para confirmar que está executando a versão pretendida do bash. bash --version
não fornece informações corretas.
Preferences
de Terminal.app . Veja esta resposta por Pankaj.
1. sudo nano / etc / shells
2. adicione / usr / local / bin / fish à sua lista de conchas
3. chsh -s / usr / local / bin / fish
Shell open with: Default login shell
configurações do Terminal.app
Você pode usar o chsh para alterar o shell de um usuário.
Execute o código a seguir, por exemplo, para alterar seu shell para Zsh
chsh -s /bin/zsh
Conforme descrito na página de manual, e por Lorin, se o shell não é conhecido pelo sistema operacional, você tem que adicioná-lo à sua lista conhecido: /etc/shells
.
chsh: /usr/local/bin/fish: non-standard shell
solução foi a adicioná-lo ao arquivo / etc / shells como descrito por @ resposta lorin-Hochstein abaixo
-s
embora). Vou tentar novamente em breve.
Do terminal:
Adicione Fish a /etc/shells
, o que exigirá uma senha administrativa:
sudo echo /usr/local/bin/fish >> /etc/shells
Faça do Fish seu shell padrão com chsh
:
chsh -s /usr/local/bin/fish
Nas Preferências do Sistema:
Usuário e Grupos → clique com o botão direito do mouse em Usuário Atual → Opções Avançadas ...
Alterar shell de logon para /usr/local/bin/fish
Pressione OK, efetue logout e logon novamente
sudo sh -c 'echo /usr/local/bin/fish >> /etc/shells'
echo /usr/local/bin/fish | sudo tee -a /etc/shells
Aqui está outra maneira de fazer isso:
Supondo que você o tenha instalado com o MacPorts, o que pode ser feito com:
sudo port install fish
Seu shell estará localizado em /opt/local/bin/fish
.
Você precisa informar ao OSX que este é um shell válido. Para fazer isso, adicione esse caminho ao final do /etc/shells
arquivo.
Depois de fazer isso, você pode alterar o shell acessando Preferências do Sistema -> Contas. Clique no bloqueio para permitir alterações. Clique com o botão direito na conta e escolha "Opções avançadas ...". No campo "Shell de login", adicione o caminho para pescar.
A única coisa que funcionou para mim foi uma combinação de todos esses métodos.
Primeiro eu tive que adicionar peixe ao /etc/shells
arquivo
Então eu corri chsh -s /usr/local/bin/fish
Finalmente, digitei Command+ ,e adicionei /usr/local/bin/fish
o caminho padrão lá
Somente depois que eu fiz as três coisas, os peixes começaram a aparecer como padrão para as novas janelas do terminal.
Preferences
> General
> Shells open with:
>/bin/fish
/usr/local/bin/fish
.Veja esta captura de tela onde zsh
está sendo definido como padrão.
Estou usando o macOS Sierra . Também funciona no macOS Mojave .
No macOS Mojave, eu tinha que fazer o seguinte (usando o zsh como exemplo):
brew install zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)
zsh
. Já está presente no macOS Mojave. Empacotado no Mojave e padrão na Catalina.
Como obter a versão mais recente do bash no macOS moderno (testado no Mojave).
brew install bash
which bash | sudo tee -a /etc/shells
chsh -s $(which bash)
Então você está pronto para obter a conclusão da guia de estilo vim, que está disponível apenas no bash> = 4 (a versão atual brew
é 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"
o chsh
programa permitirá que você altere seu shell padrão. Ele desejará o caminho completo para o executável; portanto, se o seu shell estiver fish
, você precisará fornecer a saída fornecida ao digitar which fish
.
Você verá uma linha começando com " Shell:
". Se você nunca a editou, provavelmente diz " Shell: /bin/bash
". Substitua esse /bin/bash
caminho pelo caminho para o shell desejado.
Este trabalho para mim na nova instalação do 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 >
apenas mude esse valor (com o comando write dscl
).
Caso você esteja tendo problemas com as outras formas, trabalhou no mac Mojave, mas geralmente deve funcionar.
which fish
adicione o caminho de saída a "Preferências do Sistema> Usuários e Grupos> clique com o botão direito do mouse em Opções Avançadas". Cole o resultado a partir do qual em "Shell de login:"
Para alterar seu shell padrão no mac, execute o seguinte:
chsh -s <name-of-shell>
Lista de conchas que você pode escolher são:
portanto, se você deseja alterar para o shell / bin / zsh, seu comando será semelhante a:
chsh -s /bin/zsh
você pode ver todos os shells disponíveis no seu sistema executando:
cat /etc/shells