GNU/Linux >> Tutoriales Linux >  >> Linux

¿Regenerar .bashrc desde Shell actual?

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 de declare -p en bash --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 en bash --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?
Linux
  1. Personalización del shell Bash

  2. ¿El propósito de .bashrc y cómo funciona?

  3. ¿Funciones en variables de Shell?

  4. Consejos de Unix Shell:Cambie el Shell de inicio de sesión de Bash a otros

  5. Ejecutar script bash desde URL

.bashrc frente a .bash_profile

Script bash:usar el comando de script desde un script bash para iniciar sesión

Abra Vim desde dentro de un script de shell Bash

iniciando apachectl desde bash

Shell script directorio actual?

Ejecute un script de shell en la nueva terminal desde la terminal actual