Por ejemplo:
[root@ip-10-0-7-125 ~]# history | grep free
  594  free -m
  634  free -m | xargs | awk '{print "free/total memory" $17 " / " $ 8}'
  635  free -m
  636  free -m | xargs | awk '{print "free/total memory" $9 " / " $ 10}'
  736  df -h | xargs |  awk '{print "free/total disk: " $11 " / " $9}'
  740  df -h | xargs |  awk '{print "free/total disk: " $11 " / " $8}'
  741  free -m | xargs | awk '{print "free/total memory: " $17 " / " $8 " MB"}'
Me pregunto si hay alguna forma de ejecutar el comando 636 sin volver a escribirlo, simplemente escriba algo más el número, como el historial 636 o algo así.
                    
                        bash
                                command-history
                                
                    
                    
                        El único
fuente
                
                fuente

ctrl-r?Respuestas:
En bash, solo
!636estará bien.fuente
In Linux- Esto tiene más que ver con el shell (bash, zsh, etc.) que una persona está ejecutando y luego con el sistema operativo en el que lo está ejecutando. Hay shells en linux sin soporte para la historia.:pimprimir el comando sin ejecutarlo,!636:ppor ejemplo. Lo que significa que puede volver a seleccionarlo fácilmente desde su historial presionando la flecha hacia arriba y realizar los cambios menores que deseeSí, se llama "expansión de la historia". Ver
para más detalles
El uso de un signo de exclamación seguido de un número es posiblemente el uso más simple:
Sin embargo, también puede ejecutar el último comando ejecutado directamente sin conocer su número de historial:
O puede ejecutar dos comandos de regreso:
Sin embargo, la forma que uso con más frecuencia es repetir el último argumento del último comando:
O, digamos que estoy inspeccionando un archivo. Usando la finalización de pestañas, podría hacer lo siguiente:
Nuevamente, lea la página del manual para más detalles:
fuente
Alt-.puede ser más conveniente que!$. Inserta el último argumento del último comando textualmente en la línea.!$, pero nunca supeAlt-.)? ¿Publicarás un enlace, por favor?LESS="+/DEFAULT KEY BINDINGS" man 3 readline,/etc/inputrc,~/.inputrc. Muchos programas además de bash usan libreadline; para aquellos que lo hacen, obtiene las mismas funciones comoAlt-.,Ctrl-X-U(deshacer),Ctrl-/(describir acceso directo), completar pestañas, etc., de forma gratuita. Por ejemplo, con solo tres líneas dePYTHONSTARTUPuna puede habilitar la finalización de pestañas y el historial en el stock python REPL . Que funcionará (principalmente) igual que en bash, ya que es la biblioteca GNU Readline la que hace el trabajo. La página de manual de readline describe las características en detalle.echo {1..5}seguida portouch !$tocará cinco archivos, no sólo uno. Hablando estrictamente, no es el último argumento, sino la última palabra de shell en esa línea. (Intente tambiénecho hello >tempseguido deecho goodbye !$). Si puede pensar en una forma de expresarlo con mayor claridad, no dude en sugerir una edición.Una buena pregunta, si no quieres primero el historial, anota el número, etc.
en bash (y tal vez otros):
(
ctrl-r= "búsqueda inversa interactivamente") (something= una parte de un comando anterior)Esto le mostrará la última línea del historial que contiene
something. Para obtener el anterior, haga ctrl-r (solo) nuevamente, cada vez que obtenga una línea anterior.ex:
para mostrar la última línea del historial que contiene '10' (por ejemplo, la línea con
$10, en su ejemplo), yctrl-rnuevamente hasta que recupere la línea del historial que estaba buscandoCuando aparece la línea que deseaba, solo
Enterpara ejecutarla (o también puede editarla, usando elarrow keys,backspaceyctrl-apara ir al principio de la línea,ctrl-epara llegar al Fin,ctrl-kpara "matar" desde el cursor hasta el final de la línea (= elimina + lo guarda en un búfer),:ctrl-ypara restaurar, desde el búfer, un bit muerto previamente, etc.)Si desea buscar hacia adelante (ctrl-s), primero debe deshabilitar XON : consulte https://stackoverflow.com/a/791800/1841533 :
"solo para deshabilitar XON / XOFF ejecutando
"(y luego podrá usar ctrl-s, sin tener que congelar el terminal)
fuente
Puede usar el shell incorporado fc :
fuente
-spara obtener los beneficios. Si ejecutafc 636, abrirá un editor con el comando 636 de su historial en el búfer, y cuando guarde y salga del comando (modificado o no) se ejecutará. Y aún mejor, este es compatible con POSIX .helpno es POSIX - podría tener que hacerman dasho similarhelpexiste. Otro caparazón incorporado. Y desconcertante para los usuarios incautos que podrían querer ayuda con un nuevo sistema, pero en cambio se enfrentan a una corriente de galimatías. :-(Hay
HSTR-hhcomando parabashyzshselección de comando interactivo, mejor que la búsqueda inversa Ctrl-R:es interactivo, por lo que puede buscar y editar el comando antes de ejecutarlo.
En Ubuntu, puede instalar
hhcon el siguiente one-liner:o paso a paso:
Instalar
hhen Fedora, RHEL o CentOS:En macOS con
homebrew:... luego configúrelo con:
Esto reemplazará el comportamiento predeterminado de Ctrl-R.
Ejecute
hh --show-configurationpara determinar qué se agregará a su perfil de Bash.Más opciones de configuración disponibles en la página de inicio del proyecto en Github: https://github.com/dvorka/hstr
fuente