La respuesta de Jon Reinhold es excelente, pero hay una solución mucho más poderosa que sugeriré. También tengo un comentario sobre un error en la respuesta de Jon, pero no tengo suficiente reputación para poder comentar directamente, así que @Jon Reinhold, si lees esto, dirígete mi comentario a continuación.
Bash incluye un comando fc
, que toma como parámetros los números de línea de la lista del historial de bash. Luego abre su editor predeterminado con esas líneas como texto. En ese punto, opcionalmente puede editar las líneas. Luego, cuando salgas del editor, bash ejecuta esas líneas.
Un ejemplo de una edición que quizás desee hacer es agregar a todos menos a la última línea algo así como "; lea -p" siguiente ... ". Esto hará que bash ejecute cada línea y le indique antes de continuar.
Comentario para Jon Reinhold: Gran respuesta, pero debe calificarlo porque si el usuario ha configurado la variable bash HISTCONTROL para incluir
erasedups
, entonces, después de realizar C-o
el usuario, se confundirá porque en lugar del siguiente comando esperado en el historial que se muestra, el siguiente será mostrado. Esto se debe a que bash ha eliminado la instancia original del comando ejecutado y, por lo tanto, todos los comandos posteriores han cambiado una línea, es decir. a un número de índice inferior en la lista del historial.