Eu estava tentando novos ambientes de desenvolvimento, incluindo zsh e oh-my-zsh. Agora que instalei o oh-my-zsh, ele inicia por padrão nos meus terminais (iTerm2 e terminal) sempre começa com zsh e com as configurações do oh-my-zsh. Eu queria saber se era possível "desativar" ou parar de usar o zsh e sua configuração com o oh-my-zsh sem ter que desinstalar o oh-my-zsh? Também seria bom saber como ativá-los novamente.
Atualmente, meus terminais entram no zsh automaticamente (acho) e usam o oh-my-zsh automaticamente. Quero ter mais controle sobre isso e poder controlar os dois, quando o zsh está sendo usado e quando os recursos oh-my-zsh estão sendo usados.
Uma coisa que também estou interessado em saber é: como os aplicativos de terminal sabem em qual shell iniciar a execução na inicialização. Seria bom poder controlar também!
Se você explicar o máximo que puder do "porquê" de cada comando que me der, isso seria útil! :)
Estou no OS X. Não tenho certeza se isso importa, mas tenho a tendência de gostar de respostas mais aplicáveis a ambientes Unix mais gerais do que aos meus.
zsh
? ouoh-my-zsh
? qual?Respostas:
O texto da sua pergunta é ambíguo, por isso não posso dizer se você quer dizer que deseja parar de usar
zsh
ou deseja parar de usaroh-my-zsh
. Eu vou cobrir os dois.Desativando
zsh
Basta executar
chsh
e selecionar o shell que você estava usando antes. Se você não sabe qual shell estava usando antes, é quase certobash
. Este comando altera o "shell de login" associado ao seu usuário. Essencialmente, ele altera seu shell padrão.Você precisará abrir uma nova janela do terminal para que as alterações entrem em vigor. Se isso não funcionar, você precisará sair e fazer login novamente para reinicializar seu ambiente.
Desativando apenas
oh-my-zsh
~/.zshrc.pre-oh-my-zsh
existe. Provavelmente sim. (Este arquivo será criado quando ooh-my-zsh
script de instalação afastou o anterior.zshrc
..zshrc
É um arquivo de inicializaçãozsh
semelhante a.bashrc
forbash
.)mv ~/.zshrc ~/.zshrc.oh-my-zsh
. Isso colocará ooh-my-zsh
-criado.zshrc
fora do caminho, para que possamos restaurar o original, fazendomv ~/.zshrc.pre-oh-my-zsh ~/.zshrc
.~/.zshrc
em um editor de texto. Encontre a linha que dizsource $ZSH/.oh-my-zsh
e comente ou remova-a. Isso desativará a inicialização deoh-my-zsh
.Você precisará reiniciar seu shell para que as alterações entrem em vigor.
fonte
Comutação de configuração ZSH
Se você quiser testar diferentes quadros de configuração zsh (oh-meu-zsh, zprezto, etc) e alternar entre eles, sua melhor aposta é usar links simbólicos para
~/.zsh
,~/.zshrc
,~/.zlogin
,~/.zlogout
,~/.zprofile
, e~/.zshenv
. Você pode criar um shell scripts para cada estrutura para criar esses links simbólicos para uma troca mais rápida.Coloque suas configurações de estrutura em suas próprias pastas. Para cada estrutura.
~/.zsh
, então~/.zsh
primeiro. Ou~/.zsh
link simbólico;rm ~/.zsh
ou~/.zsh
pasta;mv ~/.zsh ~/.zsh.backup
mv ~/.zsh ~/.oh-my-zsh
.Uma vez feito, crie um script de shell para cada estrutura para criar os links simbólicos necessários. Aqui está um exemplo para o zprezto, já que eu já o uso.
Esse script é bastante simples e depende do fato de que todos os meus links simbólicos são organizados com o mesmo padrão. Você pode copiar e colar o remover e criar linhas após o loop para links simbólicos que você possui e que não seguem o padrão.
Uma vez feito, use -
~/bin/use-zprezto
ou~/bin/use-whatever
- para alternar entre as estruturas zsh.Observe que as alterações só entram em vigor em novos shells zsh, não nos shells existentes.
Comutação de Shell
É um pouco perigoso, mas se você quiser, pode usar um link simbólico para o comando shell e definir o link simbólico como shell padrão. Você pode seguir o
use-*
método de script acima para alterar seu shell padrão.Como um exemplo com zsh ...
A razão pela qual isso é perigoso é que você não pode fazer login com um usuário se o shell armazenado
/etc/passwd
não for um programa válido. Portanto, você pode sair da sua conta se não tomar cuidado; ou seja, seu~/.shell
link simbólico está quebrado ou não aponta para um programa interativo. Você pode tentar isso com uma conta de usuário, mas NÃO É RECOMENDADO para suaroot
conta.Se você ainda deseja continuar, então
fonte
chsh -s / bin / bash
Para definir manualmente um novo shell padrão, execute chsh -s / my / new / shell, por exemplo, chsh -s / bin / bash. Em seguida, basta reabrir suas conchas.
fonte
Você pode dizer ao zsh para carregar seus arquivos de configuração por usuário de um diretório diferente, definindo a variável de ambiente
ZDOTDIR
antes de iniciar o zsh.Se você deseja iniciar o zsh sem carregar seus arquivos de configuração, configure
ZDOTDIR
para um diretório inexistente. Se você quiser pular os arquivos de configuração do sistema (além de/etc/zshenv
), poderá executarzsh -f
. Se você quiser pular os arquivos de configuração do sistema, mas executar os arquivos por usuário, executezsh -d
.Por exemplo, se você quiser testar o oh-my-zsh sem torná-lo o padrão, não coloque o
.zshrc
oh-my-zsh no diretório inicial. Em vez disso, coloque-o em outro lugar, por exemplo. na~/.oh-my-zsh
, e depois executarZDOTDIR=~/.oh-my-zsh zsh
quando quiser usar oh-meu-zsh.Os aplicativos de terminal executam o shell indicado pela
SHELL
variável de ambiente. Se essa variável não estiver definida, eles executam o shell de login indicado no banco de dados do usuário (/etc/passwd
). Você pode solicitar um aplicativo diferente ao iniciar um emulador de terminal, por exemploxterm -e fish
.fonte
Como está um pouco oculto no @Gilles, responda a maneira rápida de carregar o zsh sem nenhuma configuração, por exemplo, .zshrc .zshenv etc.
Isso é útil quando você deseja testar se alguma coisa na sua configuração está impedindo que algum recurso do zsh funcione.
fonte