Editando .bashrc no WSL com segurança

Editando .bashrc no WSL com segurança

Como edito o .bashrcarquivo no subsistema Windows para Linux com segurança?

Este artigoalerta para nunca editar arquivos armazenados na AppDatapasta WSL usando ferramentas do Windows.

Mas então como você edita arquivos .bashrcde maneira segura?

Responder1

Use o editor integrado nanocomo:

nano ~/.bashrc

Os atalhos mais importantes nanosão Ctrl+ Opara salvar o arquivo e Ctrl+ Xpara fechar o editor.

Um guia simples de uso nanopode ser encontrado noWiki do Gentoo Linux.

Responder2

Eu pensoCódigo do Visual Studiofunciona bem. Basta instalar oRemoto - WSLextensão.

Para usá-lo basta abrir cmd e digitar bash. Em bashtype cd, então use code .bashrc.

Voilá! O VS Code abre no WSL e você pode editar os arquivos que desejar.

Responder3

Desculpe adicionar mais uma resposta aqui, mas a pergunta em si (junto com todas as outras respostas aqui) precisacontextoisso está faltando para qualquer outra pessoa que venha e tente entendê-lo.

O aviso da Microsoft vinculado à pergunta original refere-se à edição de arquivos WSL1através do Windowsusando %AppData%o caminho do Windows. Na versão 1 do WSL (mas não na versão 2), o WSL armazenou todo o sistema de arquivos da instância do Linux em uma pasta do Windows. Esses arquivos, embora visíveis para o usuário no Windows, não devem ser editados no Windows. Como diz o aviso, a corrupção da instância WSL é provável se for ignorada.

Isso não é um problema no WSL versão 2. Como o sistema de arquivos é armazenado em um disco virtual, simplesmente não é possível editar o sistema de arquivos diretamente.

Em qualquer versão, no entanto,éseguro para editar os arquivos (incluindo ~/.bashrc)dentroa instância WSL. Pronto, é apenas um arquivo normal no sistema de arquivos WSL. As duas respostas de 2019 (Besta de CaerbannogeWinEunuuchs2Unix) utilizam essa abordagem. Não há nada de errado com isso - ambas são respostas corretas. Embora eu diria que instalar um Windows X Server e geditapenas editar um arquivo WSL é provavelmente um exagero. Praticamente qualquer outro editor também poderia ter sido citado (alguém quer fornecer uma resposta do Emacs para completar? ;-)).

OResposta de 2020 de Brixton Mavu, que menciona o uso de VSCode, também é uma variação da mesma ideia. Mesmo usando uma ferramenta Windows, o VSCode lança um servidor dentro da instância WSL com o qual se comunica para permitir a edição, navegação e até depuração da instância WSL.

Então háResposta recente de @Jon(o que esbarrou nessa questão e foi por isso que a vi). Esta é (principalmente) a resposta correta sobre como editar arquivos WSL com segurança de dentro do Windows, em vez de dentro da instância WSL. Na verdade, isso já foi mencionado na entrada do blog da Microsoft que foi vinculada à pergunta original.

Digo "principalmente", porque você deve, em geral, evitar o uso de ferramentas do Windows para editar arquivos do Linux, já que muitos editores do Windows usam como padrão finais de linha do DOS/Windows, o que ~/.bashrctambém causará falhas. Algumas ferramentas são inteligentes o suficiente para reconhecer que o arquivo existente é um arquivo Linux, outras não, mas a maioria das ferramentas será padronizada para CRLF (DOS/Windows) na ausência de qualquer outro formato.

Se a instância WSL não iniciar devido a um erro no ~/.bashrc, então vocêpoderiause a sugestão de @Jon \\wsl$\para editá-lo, mas também existem (IMHO) outras alternativas mais seguras.

Para editar ~/.bashrcquando esse arquivo está impedindo sua inicialização, execute:

wsl -e bash --norc -c "vi ~/.bashrc"

ou

wsl ~ -e bash --norc
vi .bashrc

Isso será lançado bashsem terceirizar o arquivo ~/.bashrc.

Outras alternativas incluem iniciar a sessão como root:

wsl -u root

E então faça as edições necessárias.

WSL, em geral, possui alguns mecanismos de recuperação incríveis por meio do uso dos wslargumentos do comando para iniciar a instância.

Responder4

Se você preferir um editor GUI, instale VcXsrvconforme detalhado aqui:

Então usegedit ~/.bashrc

informação relacionada