Ripristino di ~ / .bashrc senza usare i comandi bash

Aug 21 2020

Penso di aver avuto un errore di battitura quando aggiungo un percorso ~/.bashrce dopo averlo generato, non posso più usare i comandi bash.

Ora voglio ripristinare una normale ~/.bashrc, tuttavia la maggior parte della discussione che ho trovato (ad esempio, come riparare un .bashrc che è stato modificato in modo errato? ) Richiede l'uso dei comandi bash, ad esempiocp

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

Posso sapere come posso ripristinare ~/.bashrcsenza usare i comandi bash?

Grazie.

Risposte

25 user1686 Aug 21 2020 at 16:35

cpnon è un comando bash - è un programma esterno. Questo è il motivo per cui fallisce; i comandi bash effettivi non sarebbero influenzati dalle modifiche alla libreria o al percorso. Quindi vuoi il contrario, cioè usare solo i comandi bash.

È possibile eliminare completamente il contenuto del file, utilizzando:

true > ~/.bashrc

O sovrascrivi con altri contenuti:

echo "" > ~/.bashrc

Oppure potresti provare ad annullare temporaneamente le modifiche errate all'interno della shell live:

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

Oppure puoi copiare il contenuto del file, riga per riga, usando solo i built-in della shell:

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

Sei attualmente connesso al sistema? In tal caso, puoi passare a un'altra shell, quindi modificare il file

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

Hai interrotto il percorso della libreria che viene utilizzato per i programmi collegati dinamicamente. Quelli non contengono tutto il codice necessario per eseguire il programma, ma ne caricano alcuni dalle librerie condivise all'avvio.

Alcuni programmi vengono compilati per evitare questo problema (ad esempio per i programmi in esecuzione come root o necessari all'inizio del processo di avvio). Sono tradizionalmente collocati in /sbine /usr/sbin. Cosa c'è esattamente dipende da cosa è installato.

Sul mio Mac non sembra che sia disponibile un editor, ma il tuo sistema potrebbe averlo.

JohnnyTam Aug 24 2020 at 09:09

Ho seguito il suggerimento di @Peter Cordes di annullare la mia modifica tramite: unset LD_LIBRARY_PATH.

Grazie mille!