Jak przywrócić domyślny bashrc?

9

Przypadkowo nadpisałem .bashrc. Zrobiłem następujące

echo 'export EDITOR=/usr/bin/nano' >> /etc/bashrc

Bur przypadkowo wpisałem >zamiast >>. To chyba zły pomysł.

Nadal jestem w stanie zalogować się przy użyciu tej sztuczki (naciśnij, Ctrl+Czanim plik .bashrc zostanie w pełni wykonany). Ale jak przywrócić go do ustawień domyślnych .bashrc?

Używam CentOS 6.5 x86_64. Jeśli domyślny plik bashrc znajduje się gdzieś w dystrybucji , nie mogę go znaleźć.

Nickolai Leschov
źródło

Odpowiedzi:

13

Odsuń uszkodzony plik na bok, a następnie zainstaluj ponownie pakiet zawierający uszkodzony plik.

mv /etc/bashrc /etc/bashrc.damaged
yum reinstall $(rpm -qf /etc/bashrc)
Michael Hampton
źródło
Dzięki! Dodaj, aby usunąć uszkodzony plik przed ( rm /etc/bashrc) i ponownie uruchomić bash po ( source ~/.bash_profile)
Nickolai Leschov
9

Czy nadpisałeś .bashrcw swoim katalogu użytkownika? Lub systemowo .bashrcprzechowywane w /etc/skel/? You can always copy the default.bashrc from/ etc / skel / `w następujący sposób:

cp /etc/skel/.bashrc ~/.bashrc

EDYCJA: W komentarzach poniżej oryginalny plakat stwierdza:

Zrobiłem eksport echa EDITOR = / usr / bin / nano> / etc / bashrc, kiedy powinienem był napisać >> .

Okej, to wyjaśnia, co poszło nie tak. Ale ogólnie rzecz biorąc, każdy, kto sugeruje dostosowanie plików systemowych Linux / Unix za pomocą >>konkatenacji, powinien być publicznie zawstydzony na zawsze. Problem dotyczy dokładnie tego, na co wpadłeś. Wystarczy >>dodać zawartość po lewej >>stronie elementu u góry po prawej stronie >>. Wydaje się być szybki i szybki, ale moim skromnym zdaniem znacznie bezpieczniej jest otworzyć plik w edytorze i dodać wszystko, co trzeba dodać na końcu pliku. Po prostu zrób to:

sudo nano /etc/bashrc

Dodaj wszystko, co chcesz dodać do tego pliku, zapisz go i przejdź dalej.

JakeGould
źródło
1
Dodano: Zrobiłem, echo 'export EDITOR=/usr/bin/nano' > /etc/bashrckiedy powinienem napisać >>. Plik już zastąpiłem tym z /etc/skel/, ale ciągle pojawia się komunikat „Połączenie z 1.2.3.4 zostało zamknięte”. Domyślam się, że plik /etc/skel/jest szablonem „prawdziwym” .bashrc, a nie instancją właściwego pliku konfiguracyjnego. Może .bashrcma zawierać nieskończoną pętlę czy coś takiego? Mogę się zalogować tylko przez naciśnięcie Ctl+Cpomiędzy wydaniem sshpolecenia z mojego komputera a czasem, w którym mnie wyrzuca. Nawiasem mówiąc, w moim systemie to /etc/bashrcbez okresu
Nickolai Leschov
Ahhh, okej Trochę ogólnych porad na temat >>edytowałem w mojej odpowiedzi.
JakeGould,
0

3 wiersze poleceń, aby przywrócić bashrc! dajesz nam bardzo przydatną odpowiedź, szczególnie dla początkującego Linuksa takiego jak ja, z powodzeniem ją stosuję,

mv /etc/bashrc /etc/bashrc.damaged
yum reinstall $(rpm -qf /etc/bashrc)
source ~/.bash_profile

dzięki za wszystko

Tchidat Linda
źródło
0

Uruchom (nie musisz być rootem)

dnf download $(rpm -qf /etc/bashrc)

aby pobrać rpmpakiet w bieżącym katalogu. Następnie wyodrębnij pakiet i przenieś plik, do którego należy. W ten sposób nie musisz ponownie instalować żadnego pakietu.

Arch Stanton
źródło