Как показать источник текущего файла .bashrc?

Так что я просто повторил в bashrc и удалил там все. Но моя оболочка не закрывалась и не перезагружалась, так что источник моего баша старый. Есть ли способ увидеть источник моего текущего файла bashrc?


person Community    schedule 22.02.2013    source источник
comment
Вы хотите восстановить свой старый .bashrc или просто обновить текущую среду, как если бы вы запускали оболочку с новым, пустым?   -  person Cairnarvon    schedule 23.02.2013
comment
Ваш bashrc пропал. Я делал это раньше. Вам придется воссоздать его. Не забудьте сохранить резервную копию.   -  person Hai Vu    schedule 23.02.2013
comment
попробуйте /etc/skel для шаблона или ~/.bashrc~ для предыдущей резервной копии, затем используйте env и alias, чтобы попытаться выяснить, что может отсутствовать, и в следующий раз echo >> в конец вашего файла   -  person technosaurus    schedule 23.02.2013


Ответы (2)


Нет, в принципе. Bash оценивает содержимое ваших сценариев входа, но не хранит их. Возможно, вы сможете реконструировать некоторые из них, взглянув на текущую среду (с помощью команды env), но большая ее часть утеряна. Bash не предлагает расширенного отражения.

Считайте это учебным опытом, и пусть он мотивирует вас делать резервные копии и сохранять важную конфигурацию в системе контроля версий с этого момента.

person Cairnarvon    schedule 22.02.2013

Вы можете получить довольно полный дамп текущей среды оболочки bash с помощью команд bash set (без аргументов она выводит текущие переменные и функции среды) и alias (аналогично выводит псевдонимы). Это может помочь вам восстановить множество старых файлов .bashrc.

Однако вы должны иметь в виду, что они не показывают сам старый .bashrc, они показывают его результаты. Например, если системный PATH по умолчанию был /usr/bin:/bin:/usr/sbin:/sbin, а ваш старый .bashrc содержал

PATH="$PATH:/opt/X11/bin"

это просто покажет чистый результат:

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin

Если вы скопируете это в свой новый .bashrc, а системный PATH когда-либо обновится (например, чтобы включить /usr/local/bin), ваш .bashrc удалит обновление.

Таким образом, вы не должны просто взять вывод set и alias и использовать его в качестве нового .bashrc. Но вы можете использовать их как напоминания о том, что было раньше, а также использовать их, чтобы избежать, например, необходимость переписывать любые сложные функции и такие, которые вы определили.

person Gordon Davisson    schedule 22.02.2013