Por defecto, no hay un lugar donde todos los comandos se graben y se mantengan indefinidamente, aunque ~/.bash_history
contiene los últimos comandos (si los usa bash
, que es el shell predeterminado en Ubuntu).
Si desea que todos los comandos escritos se bash
graben para siempre , debe configurarlos usted mismo. Por ejemplo, puede poner lo siguiente en su ~/.bashrc
archivo para registrar todos los comandos escritos en un bash
shell en el archivo ~/.command_log
:
# log every command typed and when
if [ -n "${BASH_VERSION}" ]; then
trap "caller >/dev/null || \
printf '%s\\n' \"\$(date '+%Y-%m-%dT%H:%M:%S%z')\
\$(tty) \${BASH_COMMAND}\" 2>/dev/null >>~/.command_log" DEBUG
fi
Lo anterior establece una trampa DEBUG
, que se ejecuta justo antes de que se ejecute un comando ordinario. El caller
incorporado se usa para probar si el comando se está escribiendo en un shell interactivo o se ejecuta a través de algo así ~/.bashrc
. El valor ${BASH_COMMAND}
contiene el comando que se está ejecutando actualmente.