Przywracanie ~ / .bashrc bez użycia poleceń bash
Wydaje mi się, że miałem literówkę, gdy dodałem ścieżkę do ~/.bashrci po jej źródle nie mogę już używać poleceń bash.
Teraz chcę przywrócić normalne działanie ~/.bashrc, jednak większość dyskusji, które znalazłem (np. Jak naprawić plik .bashrc, który był źle edytowany? ) Wymaga użycia poleceń bash, np.cp
clam@cuerei:~# cp /etc/skel/.bashrc ~
cp: /home/cltam/script/lib/libc.so.6: version `GLIBC_2.17' not found (required by cp)
Czy mogę wiedzieć, jak mogę przywrócić ~/.bashrcbez używania poleceń bash?
Dziękuję Ci.
Odpowiedzi
cpnie jest poleceniem bash - to program zewnętrzny. Dlatego zawodzi; na rzeczywiste polecenia basha nie miałyby wpływu zmiany biblioteki ani ścieżki. Więc chcesz czegoś przeciwnego, tj. Używania tylko poleceń bash.
Możesz całkowicie usunąć zawartość pliku, używając:
true > ~/.bashrc
Lub nadpisz inną zawartością:
echo "" > ~/.bashrc
Lub możesz spróbować tymczasowo cofnąć złe zmiany w aktywnej powłoce:
unset LD_LIBRARY_PATH LD_PRELOAD LD_AUDIT
export PATH=/bin:/usr/bin
cp /etc/skel/.bashrc ~
Lub możesz skopiować zawartość pliku wiersz po wierszu, używając tylko wbudowanych funkcji powłoki:
while IFS="" read -r line; do
echo "$line";
done < /etc/skel/.bashrc > ~/.bashrc
Czy jesteś aktualnie zalogowany do systemu? Jeśli tak, możesz przełączyć się na inną powłokę, a następnie edytować plik
> chsh
> vi ~/.bashrc
Przerwałeś ścieżkę do biblioteki, która jest używana dla dynamicznie połączonych programów. Nie zawierają one całego kodu potrzebnego do wykonania programu, ale niektóre ładują się z bibliotek współdzielonych w czasie uruchamiania.
Niektóre programy są kompilowane, aby uniknąć tego problemu (na przykład programy działające jako root lub potrzebne na bardzo wczesnym etapie procesu uruchamiania). Są tradycyjnie umieszczane w /sbini /usr/sbin. To, co dokładnie tam jest, zależy od tego, co jest zainstalowane.
Na moim Macu nie wygląda na to, że jest dostępny edytor, ale Twój system może go mieć.
Postępowałem zgodnie z sugestią @Peter Cordes, aby cofnąć edycję przez: unset LD_LIBRARY_PATH.
Dziękuję Ci bardzo!