Con frecuencia busco cambios con history | grep 'string'
Recibo una lista de comandos en mi historial, junto con el número de línea del historial), p. Ej.
history | grep 'git'
755 git status
1535 git push origin master
1570 git merge origin/one-146
1667 git reset --hard origin/master
Ahora puedo recordar y ejecutar un comando de una vez con !nnn
, por ejemplo:
!755
git status
# On branch master
nothing to commit, working directory clean
Mi pregunta es: ¿cómo puedo recordar un comando de historial numerado y permanecer en la línea de comandos para editarlo y no ejecutarlo de inmediato 'como está', de la manera que lo !
hace, para que pueda cambiar un par de cosas antes de regresar?
fuente
Ctrl-a
por ejemplo) detendrá la búsqueda dejando la entrada del historial actual en el símbolo del sistema, sin ejecutarla. Esto puede o no ser suficiente, dependiendo de lo que @Michael quiera.Si configura su archivo .bashrc para usar el editor vi en la línea de comando, hará que las ediciones de la línea de comando sean mucho menos complejas.
Primero, una vez que "set -o vi" está habilitado, simplemente puede presionar "<esc> k" , luego seguir presionando "k" para subir el archivo del historial, si pasa una entrada, use "j" a bajar .
NOTA: cuando se usa vi, hay dos modos: comando y edición para ingresar al modo de comando, presione ESCAPE KEY ONCE, luego a, A, i, I, etc. para insertar.
Teclado simple en vi: izquierda = h, abajo = j, arriba = k, derecha = l http://linuxmeister.net/vi/vi-Summary.jpg
He agregado todas las entradas necesarias para que esto funcione en: http://linuxmeister.net/Notes/bashrc-simple.html
Entonces, en base a la información muy útil anterior, pude usar "historial" y RECUPERAR una línea de "historial", sin ejecutarla. (¡GRACIAS POR ESE POST!)
si shopt aparece en la lista e histverify está "apagado" a! EJECUTARÁ inmediatamente,
si ha agregado a su .bashrc, o ha escrito: shopt -s histverify , entonces a! permite una edición, por ejemplo:
->! 5
cuando presiono! 5 aparece el siguiente comando, pero NO se ejecuta
### si histverify está "activado".
Recuerde que Linus y Richard crearon herramientas Linux y GNU para aprovechar UNIX. El editor vi (creado por Bill Joy) es una de las mejores herramientas para dominar, ya que se encuentra en CADA distribución de UNIX y Linux.
Todos los demás editores de línea de comandos deben cargarse y requieren software adicional. Usar una GUI en Linux (que no sea Firefox, Thunderbird y OpenOffice) es como remolcar tu Diesel 4x4 con un VW Beetle de 1968 ... funcionará, pero seguro que no tiene ningún sentido.
Recuerde lo que dijo Kernigan sobre una GUI, "lo que ves es todo lo que obtienes".
fuente
luego presione la flecha hacia arriba, elimine la palabra
echo
y edite el resto; presione enter para ejecutar.fuente