
Para começar, sou novo em tudo isso e ainda estou aprendendo, então, por favor, fale comigo quando se trata de terminologia e localização de coisas.
Configurar: Ambiente Virtual Proxmox 7.2-3 + Container + ubuntu-22.04-standard_22.04-1_amd64.tar.zst
Emitir: Para o terminal/console do meu servidor Ubuntu, instalei o fisher e o fish shell ontem apenas para mudar a aparência. Quando tentei reiniciar o contêiner, recebi um problema de login que parecia estar relacionado à localização dos peixes que coloquei no diretório. Embora eu não esteja totalmente certo.
Não sei como fazer login novamente no contêiner e prefiro não ter que começar do zero configurando tudo novamente. Eu ficaria grato por qualquer ajuda.
Mais informações e imagens de fundo:
Responder1
Primeiro, a boa notícia: é quase certo que há uma maneira de se recuperar. A má notícia é que não sei exatamente como fazer isso neste caso. Farei algumas sugestões abaixo sobre o que acho que funcionará, mas não executo o Proxmox, então não posso testar diretamente.
Mas antes vou fazer uma sugestão:
- Ao instalar o software, use odocumentos oficiaisprimeiro, em vez de um site "técnico" como o mencionado acima.
O artigo ao qual você vinculou acima ésimplesmente errado e resultará (resultou) em corrupção do sistema. O processo correto é documentado pela equipe Fish em:
- Guia de instalação para Ubuntu(vinculado a partir do principalPeixepágina).
- Documentação emdefinindo o shell padrão
Com desculpas, um pouco de discurso retórico - sites como aquele ao qual você vinculou são "sites de conteúdo pago". Eles pagam por artigos de escritores “freelance” (embora “avaliados”). Infelizmente, o conteúdo pode variar muito em qualidade. Para dar o pior exemplo que já vi, no ano passado um novo visitante entrou em um subreddit que frequento sobre um tópico técnico. A pessoa escreveu (parafraseando, mas com precisão):
Não tenho conhecimento de [tópico] e nunca o usei, mas me pediram para escrever um artigo sobre como fazer [xyz] com [tópico]. Alguém pode me dar alguma orientação?
Observe que eu não seiqualsite para o qual estavam escrevendo.
É claro que nem todo artigo em todo site de conteúdo pago é assim, mas o artigo ao qual você se refere acimaéruim. Qualquer documentação que corrompa absolutamente, sem perguntas, o seu sistema éruim. O principal problema está em:
A etapa 4 ("Tornar a casca do peixe como casca padrão") nesse documento diz:
sudo chsh -s /usr/local/bin/fish
São apenas vários erros reunidos em um!
Primeiro e pior – esse é o caminho incorreto para o Fish no Ubuntu. Acredito que seja aí que o Fish seria instalado no macOS. No Ubuntu, é (normalmente)
/usr/bin/fish
, mas como os documentos do Fish apontam, você deve sempre confirmar a localização emseusistema.Ao usar
sudo chsh
sem um nome de usuário, ele altera o shell do usuário root. Isso é ruim e torna a recuperação muito mais difícil.Se você quisesse alterar o shell do usuário atual usando
sudo
, a sintaxe seria:sudo chsh -s <path/to/shell> $USER
Mas mesmo isso é uma má ideia, pois
chsh
o usuário root (também conhecido comosudo chsh
) permitirá que você defina um caminho de "shell inválido". Ele irá avisá-lo, mas ainda mudará/etc/passwd
para usar o caminho de shell incorreto que você instruiu.sudo chsh -s /this/is/bad $USER grep $USER /etc/passwd
Você verá que o caminho errado está definido.
Observação lateral: posso experimentar essas coisas em meu sistema sem medo de corrupção, pois estou usando o Windows Subsystem para Linux, um ambiente virtual onde sei que posso recuperar facilmente qualquer um desses erros. Os contêineres Proxmox devem, na verdade, ser muito semelhantes à tecnologia que o WSL usa "nos bastidores", então presumo que haja um mecanismo de recuperação igualmente fácil.
OcorretoO comando para alterar seu shell para Fish no Ubuntu é simplesmente:
chsh -s /usr/bin/fish
Contanto que você não use sudo
, isso mudaráseushell do usuário, e ele irávalidarque a casca é boa.
Plano de recuperacao
Você mencionou que está usando o Ubuntu como contêiner no Proxmox. Isso é bom, eu acredito. Se você estivesse usando uma VM, precisaria inicializar o Ubuntu no Proxmox usando um shell válido. Isso ainda seria possível.
Novamente, a má notícia aqui é que não tenho certeza de como fazer isso e, como o Proxmox não funcionasobUbuntu, você pode precisar de um site diferente (como os fóruns do Proxmox) para responder a isso. Em geral, você precisará:
Acesse a linha de comando do Proxmox.
Presumo, pelo documento do Proxmox, que você precisará usar o
pct
ferramenta para gerenciar o contêiner.Acesse o contêiner do Ubuntu com um shell válido. Você pode tentar
pct exec <vmid> /usr/bin/bash
.Você precisará estar
root
dentro do contêiner do Ubuntu, que acredito ser o padrão para opct
.
Uma vez que vocêteracesso ao contêiner do Ubuntu em um shell válido, como root:
chsh -s /usr/bin/bash
Há uma chance de que isso não funcione, pois o shell do usuário atual é inválido. No entanto, acredito que o root ainda será capaz de redefinir o shell (um usuário normal definitivamente não o faria). No entanto, se você tiver problemas, a outra alternativa é:
vipw
Isso permitirá que você edite seu arquivo
/etc/passwd
diretamente e altere/usr/local/bin/fish
para/usr/bin/bash
.Isso irá redefinir o shell do seu usuário root para um bom. Para root, eu recomendaria deixar o shell como Bash. Mude seu shell para Fish para seu usuário normal e não root, conforme descrito na documentação do Fish.