Inyectar líneas para bash historia

Por defecto bash carga líneas de ~/.bash_history a history. ¿Es posible agregar un file personalizado para que también se cargue? Quiero inyectar files que contengan commands que uso con frecuencia y acceder a ellos a través de la búsqueda integrada.

Lo mantengo simple con un alias h='history|grep' cargado en mi perfil de Bash.

Entonces mi flujo de trabajo es h command , por ejemplo: h hpssa

 # h hpssa 202 05-28-2015 11:54:33 hpssacli 217 05-28-2015 11:54:33 hpssa -start 225 05-28-2015 11:54:33 hpssacli -stop 226 05-28-2015 11:54:33 hpssa -stop 228 05-28-2015 11:54:33 hpssa -start 

Si quiero ejecutar " hpssa -stop ", simplemente hpssa -stop !226


Este es solo mi enfoque, pero tal vez podrías modificar cómo estás recordando los artículos del historial. No creo que tenga sentido inyectar datos en el file del historial.

Solía ​​depender mucho de Ctrl-R (command de lectura reverse-search-history lectura) que busca hacia atrás a través del historial para recuperar commands largos previamente ingresados, pero ahora prefiero usar alias y scripts / funciones de shell. De todos modos, el command incorporado history Bash se puede utilizar para cargar una list de commands personalizados en su historial actual.

 history -r [filename] 

Desde la página del hombre bash:

Lea los contenidos del file de historial y añádalos a la list de historial actual.

Automatización de arranque

Acabo de intentar ejecutar este command automáticamente al agregarlo como la última línea en mi .bashrc . Sin embargo, los commands de mi file de historial personalizado no estaban disponibles cuando comencé un nuevo shell. Parece que el historial del shell solo se carga desde el file .bash_history pnetworkingeterminado: después de que se hayan procesado los files de inicio y justo antes de que se presente el post para el shell interactivo. Desafortunadamente, parece que no hay una manera fácil de automatizar esto.

Como @AnthonyGeoghegan observó, el historial se carga después de que se procesan los files de inicio. Eso ofrece una forma diferente de precargar el historial deseado en un file de inicio:

 mv .bash_history .bash_history.tmp cat .extra_hist .bash_history.tmp > .bash_history # or swap them, to put the extra stuff at the end of the history, for # quicker ^R access. 

Tenga en count que este enfoque podría dar como resultado que se agreguen múltiples copys de sus commands especiales a .bash_history, a lo largo del time. Puede envolver sus commands especiales con líneas de comentarios, para que pueda encontrarlos y eliminarlos fácilmente (por ejemplo, sed) como parte del llenado del file .bash_history. Algo como:

 cp .extra_hist .bash_history sed '/: remove from here/,/:remove to here/d' .bash_history >> .bash_history