¿Hay alguna forma de verificar el historial solo de la sesión actual?

10

Quería saber si hay algún comando o de alguna otra manera, puedo verificar mi historial de comandos solo en la sesión actual.

Andrés
fuente

Respuestas:

12

El historyincorporado bashpermite especificar nombres de archivo cuando se usa con -anrwbanderas, y la -adescripción de la bandera de los help historyestados:

agregar líneas de historial de esta sesión al archivo de historial

Por lo tanto, podemos hacer:

~$ history -a this_session.history
~$ cat ./this_session.history 
history mysession.history 
cat mysession.history 
clear
history -a this_session.history

Para el registro, -w(el historial de escritura en la opción de archivo) escribe el historial completo en el archivo especificado, por lo que -a(agregar) aquí es la opción preferida.


Hay otras formas manuales. En particular, kshno tiene -amarcar como bashlo hace, pero lo que ksh y mkshque tienen es HISTFILEvariable de entorno (y bashtiene que, también, porque bashse incluye un montón de kshcaracterísticas); por cierto, esta variable por defecto no está configurada (al menos mkshen Ubuntu no la configuró). Entonces, para enviar la sesión actual a otro archivo, llamamos HISTFILEal comando prepended to que, en la sintaxis de shell, significa ejecutar el comando con la variable de entorno adicional que especifique. Al igual que:

bash-4.4$ HISTFILE='mykshfile.hist' ksh
$ echo 'Hello'
Hello
$ echo 'World'
World
$ 
bash-4.4$ cat ./mykshfile.hist 
�echo 'Hello'
echo 'World'

Lo que también se puede ver de esto es que kshy sus shells relacionados muestran el historial con caracteres especiales, en lugar de texto sin formato como lo bashhace. Por lo tanto, es posible que desee abrir ese archivo con ksh.

En cuanto al shell POSIX /bin/shen Ubuntu , que es Debian Almquist Shell o Dash, existe fcincorporado . Sin embargo, en Ubuntu guión se compila sin lib-edit , que es una elección consciente por parte de los desarrolladores de Ubuntu por razones de rendimiento, de modo fcy otros modos que requieren la edición de línea no funcionan fuera de la caja (a menos que volver a compilar dashsu cuerpo e instale lib-edit).


Las formas neutrales de Shell serían grabar su sesión con las herramientas existentes o escribir su propia función para grabar según el comando.

Sergiy Kolodyazhnyy
fuente