Cuando estoy ejecutando mis análisis usando el shell bash, a menudo quiero guardar los comandos que he usado que me dieron buenos resultados en un archivo en el mismo directorio (mi "LOGBOOK", como se llama) para que pueda verificar qué Lo hice para obtener esos resultados. Hasta ahora esto me ha significado copiar o pasar el comando desde el terminal o presionar "arriba" modificando el comando a una echo"my command" >> LOGBOOK
u otras travesuras similares.
Descubrí que había una history
herramienta el otro día, pero no puedo encontrar una manera de usarla para obtener el comando ejecutado previamente para poder hacer algo como eso getlast >> LOGBOOK
.
¿Hay alguna manera fácil de hacer esto? Alternativamente, ¿cómo tratan los demás guardar los comandos para obtener los resultados que tienen?
fuente
fc -lnr | head -n 1
se puede abreviarfc -lnr -1
.help fc
para mi documentación. La página de manual de bash tiene más detalles, incluido el uso de índices negativos. Eliminarhead
es bueno porque el único comando restante está incorporado, por lo que ahora no hay fork / exec.fc
...Un problema con la respuesta de @ camh es que si tiene un comando que abarca varias líneas, solo muestra la primera línea:
Prueba esto:
fuente
cmdhist
lo arreglará: "Si está configurado, bash intenta guardar todas las líneas de un comando de varias líneas en la misma entrada del historial. Esto permite una fácil edición de los comandos de varias líneas".En lugar de usar la flecha hacia arriba, puede usar
"!!"
para referirse al comando anterior.p.ej
nota: esto no cita el texto literal
fuente
ls | less
->echo !! >> LOGBOOK
->echo ls | less >> LOGBOOK
.Puede hacerlo con el siguiente comando si está utilizando bash shell:
Esto agregará todos sus comandos de la sesión actual a ese archivo, también puede agregar un alias en su archivo ~ / .bashrc para hacer esto con un solo comando:
fuente