Как восстановить Bashrc по умолчанию?

9

Я случайно перезаписал .bashrc. Я сделал следующее

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

Но я случайно набрал >вместо >>. Я думаю, это была плохая идея.

Я все еще могу войти, используя этот трюк (нажмите, Ctrl+Cпрежде чем .bashrc будет полностью выполнен). Но как мне восстановить его по умолчанию .bashrc?

Я использую CentOS 6.5 x86_64. Если в дистрибутиве есть файл bashrc по умолчанию , я не могу его найти.

Николай Лещов
источник

Ответы:

13

Удалите поврежденный файл, затем переустановите пакет, содержащий поврежденный файл.

mv /etc/bashrc /etc/bashrc.damaged
yum reinstall $(rpm -qf /etc/bashrc)
Майкл Хэмптон
источник
Спасибо! Пожалуйста, добавьте, чтобы удалить поврежденный файл до ( rm /etc/bashrc) и перезапустить bash после ( source ~/.bash_profile)
Николай Лешов
9

Вы перезаписали .bashrcв своем пользовательском каталоге? Или для всей системы, .bashrcхранящейся в /etc/skel/? You can always copy the default.bashrc from/ etc / skel / `, например:

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

РЕДАКТИРОВАТЬ: В комментариях ниже оригинального плаката говорится:

Я сделал echo export EDITOR = / usr / bin / nano> / etc / bashrc, когда мне следовало написать >> .

Хорошо, это объясняет, что пошло не так. Но в целом любой, кто предлагает настроить системные файлы Linux / Unix с помощью >>конкатенации, должен быть публично опозорен навсегда. Проблема именно в том, что вы столкнулись. Все, что >>нужно, это добавить содержимое слева >>к элементу вверху справа >>. Это кажется скользким и быстрым, но, по моему скромному мнению, вам гораздо безопаснее, просто открыв файл в редакторе и добавив все, что вам нужно добавить в конец файла. Просто сделай это:

sudo nano /etc/bashrc

Добавьте все, что вам нужно, чтобы добавить в этот файл, сохранить его и двигаться дальше.

JakeGould
источник
1
Добавлено: я сделал, echo 'export EDITOR=/usr/bin/nano' > /etc/bashrcкогда я должен был написать >>. Я уже заменил файл на файл из /etc/skel/, но я продолжаю получать «Соединение с 1.2.3.4 закрыто». Я предполагаю, что файл в /etc/skel/является шаблоном для «реального» .bashrc, а не экземпляром правильного файла конфигурации сам по себе. Может быть, .bashrcдолжен содержать бесконечный цикл или что-то? Я могу войти только через нажатие Ctl+Cмежду выполнением sshкоманды с моего компьютера и временем, когда оно меня выгоняет. Кстати, в моей системе это /etc/bashrcбез периода
Николай Лещов
Аааа, хорошо Несколько общих советов о том, что >>я отредактировал в своем ответе.
JakeGould
1

Похоже, что / etc / bashrc находится в этом пакете: setup-2.8.14-20.el6_4.1.noarch.rpm

Вы можете попробовать переустановить этот RPM. (что может иметь непредвиденные последствия)

Или вы можете скачать исходный rpm и скопировать файл вручную:

RPM источника: setup-2.8.14-20.el6_4.1.src.rpm

http://www.wikihow.com/Extract-RPM-Packages

http://rpm.pbone.net/index.php3/stat/4/idpl/25011386/dir/centos_6/com/setup-2.8.14-20.el6_4.1.noarch.rpm.html

Дэвид
источник
0

3 командной строки для восстановления bashrc! Вы даете нам очень полезный ответ, особенно для начинающего пользователя Linux, как я, я успешно применяю его,

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

Спасибо за все

чидат линда
источник
0

Выполнить (вам не нужно быть пользователем root)

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

скачать rpmпакет в текущем каталоге. Затем извлеките пакет и переместите файл туда, где он принадлежит. Таким образом, вам не нужно переустанавливать какой-либо пакет.

Арк Стентон
источник