Por padrão, não há lugar onde todos os comandos são gravados e mantidos indefinidamente, embora ~/.bash_history
contenha os últimos comandos (se você usa bash
, que é o shell padrão no Ubuntu).
Se você quiser que todos os comandos digitados em bash
registrados para sempre , você tenha que configurá-lo por conta própria. Por exemplo, você pode colocar o seguinte no arquivo ~/.bashrc
para registrar todos os comandos digitados em um shell bash
no arquivo ~/.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
O item acima define um trap em DEBUG
, que é executado imediatamente antes de um comando ordinário ser executado. O caller
integrado é usado para testar se o comando está sendo digitado em um shell interativo ou executado por meio de algo como ~/.bashrc
. O valor ${BASH_COMMAND}
contém o comando atualmente sendo executado.