En los sistemas UNIX, puede presionar las flechas superior e inferior para navegar por los comandos anteriores. Esto es extremadamente útil.
A veces, subo y encuentro un comando que quiero usar de nuevo, pero con algunas variaciones. Si hago tales cambios, entonces no tengo una forma de recuperar el comando original, a menos que lo registre history
.
¿Hay alguna forma de "deshacer" los cambios en el comando en el historial al que se accede a través de las teclas?
Mi solución actual es anteponer un #
al comando. De esta manera, el comando actual se realiza como un comentario, por lo que no sucede nada. Luego, puedo navegar nuevamente a través de los comandos con las teclas. El problema es que el comando que estaba usando puede estar muy lejos en la lista, así que subir doscientas veces es un poco. Control + R tampoco es una solución, ya que es posible que no recuerde exactamente lo que estaba buscando.
Ejemplo
Escribí los siguientes "hace 50 comandos":
ls -l /etc/httpd/conf/
Ahora subí a esa línea y la cambié a
ls -l /etc/init.d/
pero no presionó enter. Ahora, quiero llegar al ls -l /etc/httpd/conf/
nuevo.
Mi entorno
$ echo $SHELL
/bin/bash
$ echo $TERM
xterm
ksh
el comportamiento difiere aquí, parece. Y sus opciones de edición del historial también dependen del modo de edición elegido. En ksh
el modo vi, por ejemplo, la entrada anterior no se sobrescribe, y también puedo emitir un comando de deshacer, como en vi
, con 'u'.
ksh
, pero es bueno saber que tal cosa existe allí.
ksh
, por ejemplo, puede editar entradas del historial e invocarlas sin eliminar la "versión anterior" de la entrada; Tiene todos los comandos invocados disponibles.