Так что я просто повторил в bashrc и удалил там все. Но моя оболочка не закрывалась и не перезагружалась, так что источник моего баша старый. Есть ли способ увидеть источник моего текущего файла bashrc?
Как показать источник текущего файла .bashrc?
Ответы (2)
Нет, в принципе. Bash оценивает содержимое ваших сценариев входа, но не хранит их. Возможно, вы сможете реконструировать некоторые из них, взглянув на текущую среду (с помощью команды env
), но большая ее часть утеряна. Bash не предлагает расширенного отражения.
Считайте это учебным опытом, и пусть он мотивирует вас делать резервные копии и сохранять важную конфигурацию в системе контроля версий с этого момента.
Вы можете получить довольно полный дамп текущей среды оболочки 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. Но вы можете использовать их как напоминания о том, что было раньше, а также использовать их, чтобы избежать, например, необходимость переписывать любые сложные функции и такие, которые вы определили.
env
иalias
, чтобы попытаться выяснить, что может отсутствовать, и в следующий разecho >>
в конец вашего файла - person technosaurus   schedule 23.02.2013