Así que estúpidamente, sin darme cuenta, destruí ~/.bashrc. Si tengo terminales abiertos con la configuración que estaba allí anteriormente, ¿hay alguna forma de exportar la configuración actual a un nuevo .bashrc? (He probado set > ~/.bashrc
desde uno de dichos terminales con cierta medida de éxito, pero preguntándose si hay alguna forma más mágica).
Respuesta aceptada:
Una cosa que puedes intentar es recuperar tu .bashrc
de la memoria de una instancia en ejecución de bash. En Linux, ejecute gcore PID
para hacer un volcado de memoria de un proceso especificado por su PID. Si esto tiene posibilidades de funcionar depende de cómo bash gestione su memoria; No he comprobado el código fuente para ver si es posible. No me funciona en Debian jessie amd64.
Si eso no funciona, puede guardar su configuración actual, pero no puede recuperar la forma en que se configuró, por lo que se perderá mucha información. Si tenía una configuración que depende de la máquina, del tipo de terminal, etc., solo recuperará la configuración de las instancias de bash que aún se estén ejecutando.
-
Imprima todas las variables en un formulario que se pueda volver a leer. Esto incluye mucho ruido que tendrás que solucionar. Variables de entorno (marcadas con
declare -x
) no debería estar definido en su.bashrc
pero podrías haberlo hecho de todos modos. Elimine las variables que bash establece automáticamente (consulte el manual y observe el resultado dedeclare -p
enbash --norc
).declare -p
-
Imprime todas las funciones. Esto incluye funciones no definidas por usted, por ejemplo, funciones definidas por el sistema de finalización (para las que desea
. /etc/bash_completion
en su lugar).declare -f
-
Imprimir alias. Estos probablemente se pueden usar tal como están.
alias
-
Imprime las opciones de shell. Comparar con la salida de
shopt
enbash --norc
para ver lo que has cambiado.shopt
-
Imprima la configuración de finalización (si utiliza el sistema de finalización sensible al contexto). La mayoría de estos probablemente provengan del sistema de finalización; encontrar los que ha sintonizado puede ser un poco difícil.
complete
-
Imprima asociaciones de teclas, si ha definido asociaciones de teclas en su
.bashrc
en lugar de en.inputrc
. Esto incluye enlaces predeterminados.bind -p
A partir de ahora, haga una copia de seguridad de todos sus archivos y ponga sus archivos de configuración bajo control de versiones.
Relacionado:Linux:¿no se pueden extraer los metadatos del repositorio EPEL?