Restaurando ~ / .bashrc sem usar comandos bash

Aug 21 2020

Acho que cometi um erro de digitação ao adicionar um caminho ~/.bashrce, depois de obtê-lo, não posso mais usar comandos bash.

Agora eu quero restaurar um normal ~/.bashrc, porém a maior parte da discussão que encontrei (por exemplo, Como consertar um .bashrc que foi editado incorretamente? ) Precisa usar comandos bash, por exemplocp

clam@cuerei:~# cp /etc/skel/.bashrc ~
cp: /home/cltam/script/lib/libc.so.6: version `GLIBC_2.17' not found (required by cp)

Posso saber como posso restaurar ~/.bashrcsem usar comandos bash?

Obrigado.

Respostas

25 user1686 Aug 21 2020 at 16:35

cpnão é um comando bash - é um programa externo. É por isso que falha; Os comandos bash reais não seriam afetados por alterações de biblioteca ou caminho. Então você quer o oposto, ou seja, usando apenas comandos bash.

Você pode excluir o conteúdo do arquivo completamente, usando:

true > ~/.bashrc

Ou substitua por algum outro conteúdo:

echo "" > ~/.bashrc

Ou você pode tentar desfazer temporariamente as alterações ruins no shell ao vivo:

unset LD_LIBRARY_PATH LD_PRELOAD LD_AUDIT
export PATH=/bin:/usr/bin
cp /etc/skel/.bashrc ~

Ou você pode copiar o conteúdo do arquivo, linha por linha, usando apenas os internos do shell:

while IFS="" read -r line; do
    echo "$line";
done < /etc/skel/.bashrc > ~/.bashrc
1 NuclearFission Aug 22 2020 at 05:35

Você está atualmente logado no sistema? Nesse caso, você pode mudar para outro shell e editar o arquivo

> chsh
> vi ~/.bashrc
1 ThorbjørnRavnAndersen Aug 22 2020 at 18:14

Você quebrou o caminho da biblioteca que é usado para programas vinculados dinamicamente. Eles não contêm todo o código necessário para executar o programa, mas carregam alguns de bibliotecas compartilhadas no momento da inicialização.

Alguns programas são compilados para evitar esse problema (por exemplo, para programas executados como root ou necessários no início do processo de inicialização). Eles são tradicionalmente colocados em /sbine /usr/sbin. O que exatamente está lá depende do que está instalado.

No meu Mac, não parece que haja um editor disponível, mas seu sistema pode ter.

JohnnyTam Aug 24 2020 at 09:09

Segui a sugestão de @Peter Cordes para desfazer minha edição: unset LD_LIBRARY_PATH.

Muito obrigado!