mudando o shell do zsh para o bash


16

Meu servidor web foi violado por alguém que estava usando o zsh shell. Eu me sinto mais confortável usando o bash shell, pois esses são os padrões que acompanham o Ubuntu e o OS X (os dois principais sistemas operacionais que eu uso). Mas essas perguntas estão focadas no servidor Ubuntu. Eu tenho 4 sites rodando neste servidor web, uso byobu, uso tmux, uso ruby ​​/ ruby ​​on rails, node.js, apache, alguns daemons. Se eu alternar o shell raiz atual do zsh para o bash, poderia haver efeitos colaterais negativos que podem resultar dessa opção? Por exemplo, os processos serão eliminados porque o processo pai (o shell) foi alterado?


Você está perguntando sobre as consequências da mudança (que não são nenhuma, estou usando o zsh agora e posso mudar para o bash quando quiser) ou está perguntando sobre como alterar efetivamente o shell?
Braiam

@Braiam Estou nervoso com as consequências da mudança. Se não houver consequências, então vou mudar. Eu estava pensando que o shell era um processo pai para alguns desses daemons como o apache, e se eu fosse mudar, isso mataria o processo do apache. Mas acho que estou errado.
precisa saber é o seguinte

Respostas:


10

Alterar seu shell, via sudo chsh --shell=/bin/bash $USERalterará o campo shell em /etc/passwd. Esse valor é consultado apenas no momento do login, quando o sistema não tem idéia de qual shell usar para você.

Processos em execução, se iniciados por zsh, bash apacheou evil_overlord's_programnão serão afetados


O shell não é o processo pai de outros processos em execução nele, ou apenas o terminal de controle (e não o shell) seria considerado o processo pai?
31914 JohnMerlino

O loginprograma é executado em um processo, como tudo. Quando o deixa entrar, ele cria outro processo com seu UID, etc, e executa / bin / bash (em / etc / passwd). O shell bash lê de STDIN (configurado por login) e bifurca / executa comandos não internos, aguarda o término e executa um loop para obter mais comandos. A idéia de "terminal de controle" não é útil no Unix / Linux.
waltinator

25

Resposta do estouro de pilha ( alternando de zsh para bash ):

Você pode apenas usar exec para substituir seu shell atual por um novo shell:

Alterne para o bash:

exec bash

Alterne para zsh:

exec zsh

Isso não afetará as novas janelas de terminal nem nada, mas é conveniente.


não funcionou. still: echo $ SHELL / usr / bin / zsh
ses

8

Abra seu terminal e use o seguinte comando:

chsh -s $(which bash)

Eu suponho que este é o equivalente de chsh -s / bin / bash
JohnMerlino

2
which bashdaria o caminho absoluto de bash, então seria o mesmo se /bin/bashfosse onde bashestava localizado.
Ryanjdillon

0

No Mac OS Catalina

  1. Mude para zsh:

    chsh -s /bin/zsh
  2. Mude para bash:

    chsh -s /bin/bash
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.