Tal vez estoy pasando por alto algo, pero ¿hay alguna manera de obtener su historial de bash actual para la sesión actual que está utilizando como
si corro
ssh host
$ pwd
$ ls
$ cd /tmp
Solo quiero ver esos 3 comandos y nada más
bash
command-history
Miguel
fuente
fuente
history
comando?history
pero eso no da solo mi sesiónHISTSIZE
yHISTFILESIZE
.Respuestas:
Una forma ligeramente indirecta:
Esto guardará el historial de bash no guardado de la sesión actual
~/current_history
, que luego puede ver.fuente
~/$$_history
.history -a
, junto con el historial anterior en ~ / .bash_history ... lo que podría ser un problema si su historial es más largo que el límite, que es 1000 en mis sistemas centos7 y fedora 24.Tuve el problema de que quería escribir la corriente
history
en un archivo pero aún quería que las entradas se registraran en el bash principalhistory
Resolví esto simplemente adjuntando el archivo con
cat
:fuente
Utilícelo
comp
para comparar todo el historial (incluida la sesión actual de Bash) con el historial ya persistente.bash_history
y solo imprima las líneas que son exclusivas de la sesión actual, que deberían mostrar solo aquellos comandos que se ejecutaron desde que inició el shell Bash actualEditar: como señaló @Wildcard, este comando no funciona para todas las distribuciones de
comm
. Probé esto en Mac OS.Una variación de la misma idea usando
diff
:fuente
comm
asume una entrada ordenada. Pero, ¡bienvenido a Stack Exchange! :)comm
se ordenan inherentemente en mi ejemplo anterior. ¿Lo corriste? ¿Y no produjo su historial actual de sesiones de Bash?~/.bash_history
está ordenado; y tampoco se ordena la salida de una vez que se eliminan los números de línea iniciales. (Además de lo cual, espera una entrada ordenada lexicográficamente, no una entrada ordenada numéricamente.)history
comm
comm
comando en mi ejemplo están en el mismo orden, no que estén ordenados lexicográficamente. La versión de FreeBSDcomm
no requiere entrada clasificada lexicográficamente