Por que meu shell abre muitas instâncias de si mesmo?

2

Estou mexendo no comando chsh para poder alterar o nome exibido no meu shell antes de cada comando ser emitido, por exemplo, picard@ubuntu:$ . Meu problema surgiu quando eu dei o comando chsh -s /bin/ksh picard , não sabendo totalmente quais seriam os resultados. Entre esse comando, também usei grep ksh /etc/shells/ . Agora, sempre que eu tento abrir um terminal, seja bash, dash, sh ou urxvt, ele simplesmente não abre ou começa a gerar instâncias de urxvt até que ele tenha tantos abertos, o computador trava e as instâncias são todas fechado.

O que exatamente eu estraguei? Eu realmente prefiro não ter que reinstalar, mas eu não posso usar o Linux sem uma linha de comando, que eu tenho certeza que vocês podem simpatizar.

    
por user121155 10.01.2013 / 08:36

1 resposta

2

O comando chsh não tem nada a ver com a alteração do seu prompt. Como o manpage do chsh (1) escreve, seu objetivo é mudar o seu shell de login. Então, no momento, ksh é seu shell de login. Se você quiser mudar isso, basta digitar

chsh -s /bin/bash picard

Isso torna bash seu shell de login. Normalmente este é o padrão no Ubuntu.

Você também pode abrir um terminal com o comando urxvt -e /bin/bash ou apenas urxvt -e bash . Quando você abre um terminal sem usar a opção -e , seu sistema iniciará ksh . Por padrão, ksh usa apenas $ como prompt. Então, por que você não vê nenhum prompt user@system de fantasia.

No entanto, outra maneira de alterar seu shell de login é editar /etc/passwd . Abra o arquivo com seu editor favorito como:

sudo vim /etc/passwd #or
sudo nano /etc/passwd #or
gksudo gedit /etc/passwd

e vá para a linha com seu nome de usuário. No final da linha, você encontrará /bin/ksh . Altere para /bin/bash , salve o arquivo e faça o login novamente. Agora você deve ter sua concha de volta.

Se você quiser alterar seu prompt, insira echo $PS1 para ver as configurações reais. O bash manpage diz-lhe o que mudar para ter um bom aviso.

    
por qbi 10.01.2013 / 08:53