Como encontrar o histórico de comandos do shell desde que a máquina foi criada?

20

Eu criei uma máquina virtualbox Ubuntu algumas semanas atrás e tenho trabalhado com projetos desde então.

Agora eu gostaria de encontrar a sintaxe de alguns comandos que eu digitei no terminal há uma semana, mas abri e fechei a janela do terminal e reiniciei a máquina várias vezes.

Como posso obter o comando history para voltar ao primeiro comando digitado depois que criei a máquina?
Ou há outro lugar em que todos os comandos estão armazenados no Ubuntu?

    
por Edward Tanguay 07.07.2012 / 08:16

4 respostas

25

Pode ou não ser possível obter todos os comandos. Depende de quantos comandos você executou e como o limite de histórico foi definido.

No entanto, você pode ver a lista de histórico armazenada aqui

/home/<YOUR_USERNAME>/.bash_history

Pergunta relacionada (para lidar com vários históricos do shell):

É possível escrever para .bash_history imediato?

    
por Web-E 07.07.2012 / 09:20
6

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.

    
por Richard Hansen 12.07.2012 / 04:22
5

Algo que também pode ser interessante para você é como pesquisar em seu histórico de comandos anterior. Você pode reverter seu histórico de pesquisas na linha de comando pressionando Ctrl+r e digitando as letras que deseja corresponder. Se você tiver mais de um comando correspondente, pressione Ctrl+r novamente. Para sair da pesquisa inversa, pressione Ctrl+g .

link

    
por Sepero 07.07.2012 / 10:33
4

Você só pode voltar até onde seu limite de histórico está definido; uma vez atingido esse ponto, o histórico começará a ser sobrescrito. No entanto, é possível ter um tamanho de histórico maior para o futuro. Coloque isso no seu .bashrc e especifique um valor (o meu é definido como 1000):

export HISTSIZE=1000
    
por user76204 10.07.2012 / 21:35