Przywracanie ~ / .bashrc bez użycia poleceń bash

Aug 21 2020

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

25 user1686 Aug 21 2020 at 16:35

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
1 NuclearFission Aug 22 2020 at 05:35

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
1 ThorbjørnRavnAndersen Aug 22 2020 at 18:14

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ć.

JohnnyTam Aug 24 2020 at 09:09

Postępowałem zgodnie z sugestią @Peter Cordes, aby cofnąć edycję przez: unset LD_LIBRARY_PATH.

Dziękuję Ci bardzo!