¿Cuál es la diferencia entre .bashrc y .inputrc

14

Soy nuevo en el sistema Unix y me parece interesante crear funciones y configuraciones personalizadas en los archivos de configuración como .bashrcy .inputrc.

Sin embargo, no entiendo las diferencias entre los dos. Por ejemplo, cuando creé un alias, los puse .bashrc.

Example 1: alias ...='cd ../../'

Cuando creo operaciones como usar la tecla de flecha para buscar el comando anterior o siguiente, pongo el comando .inputrc.

Example 2: "\e[A": history-search-backward

¿Por qué necesito ponerlos en diferentes archivos de configuración? ¿Cómo distingo cuándo poner qué y dónde?

¡Gracias de antemano!

Counter10000
fuente

Respuestas:

18

Las configuraciones que están en el .inputrcarchivo afectan a todos los programas que usan la biblioteca de línea de lectura GNU , no solo bash. Piense en el .inputrcarchivo como un archivo de configuración para GNU Readline similar a cómo .bashrces un archivo de configuración bash.

GNU Readline se describe como:

... Un conjunto de funciones para uso de las aplicaciones que permiten a los usuarios editar líneas de comando a medida que se escriben.

Para aclarar un poco más, las configuraciones que están en el .bashrcarchivo solo afectan bash. Si desea ejecutar opcionalmente bashsin el apoyo de GNU Readline o el uso, puede invocar bashcon la --noeditingopción de la siguiente manera: bash --noediting. Puede encontrar más información sobre las bashopciones aquí .

Para responder a tu última pregunta de

¿Cómo distingo cuándo poner qué y dónde?

Si desea una opción para afectar a todos los programas en su sistema que usan la biblioteca GNU Readline, .inputrcsería la mejor opción. De lo contrario, si simplemente desea configurar su bashsesión, .bashrcsería la mejor opción.

aliceinpalth
fuente
Gracias @aliceinpalth. ¿Quieres decir que bash pertenece a la biblioteca GNU Readline? ¿Qué más hay en la biblioteca GNU Readline?
Counter10000
55
@ Counter10000 En este sentido, la biblioteca no es "una colección de herramientas" (puedo ver por qué podría pensar eso) sino "un conjunto de funcionalidades que las diferentes herramientas pueden usar". En este caso, son funciones para trabajar con una línea de comando (incluyendo desplazamiento hacia atrás, edición de línea, etc.). Bash usa esto para el indicador de comandos de shell. En mi sistema justo en frente de mí, también se usa para bc(calculadora de línea de comandos), xfsprogs(programas de administración del sistema de archivos), sqlite(un sistema de base de datos muy pequeño), lftp(un cliente ftp de línea de comandos) y más.
mattdm
1
No hay problema @ Counter10000! Me alegra poder ayudar. @mattdm respondió su pregunta muy bien. Para obtener más información sobre cómo estos programas utilizan GNU Readline, hay una buena reseña disponible aquí .
aliceinpalth
1
parece que el último párrafo en su respuesta es al menos inexacto. Supongo que hay algunas opciones, que solo se pueden configurar en el archivo inputrc, por lo que los dos archivos no son completamente "intercambiables". Traté de establecer las opciones de esta respuesta en .bashrcy no pasó nada. Solo tienen efecto al establecerse.inputrc
user907860