Personalizando a saída do comando history

De Wiki Hackstore

Bash History

O "history" (ou histórico) no bash, apesar de extremamente poderoso, é muito pouco usado, além do tradicional "setinha pra cima" para exibir os últimos comandos.

Seu comportamento é regido por algumas variáveis:

HISTSIZE - Tamanho (em número de comandos) do histórico.

HISTFILESIZE - Tamanho máximo (em linhas) do arquivo selecionado acima. Se um valor for especificado, o arquivo será truncado para conter apenas o número especificado de linhas.

HISTFILE - Arquivo em que serão salvos os comandos (normalmente ~/.bash_history).

HISTTIMEFORMAT - Para adicionar a data e hora no comando history.

HISTCONTROL - Pode ter um dentre três valores: "ignorespace", "ignoredups" ou "ignoreboth". Se se usar o primeiro, comandos começando com espaço não vão para o histórico. Com o segundo (e isso é particularmente interessante), se um comando é executado mais de uma vez em seguida, só uma ocorrência vai para o histórico. O terceiro implementa ambas as funcionalidades.


Inserindo data e hora no comando history

Para adicionar a data e hora no comando history você precisa inserir o conteúdo "%h/%d - %H:%M:%S" na variável HISTTIMEFORMAT, dentro do arquivo /etc/profile então faça:

echo 'export HISTTIMEFORMAT="%h/%d - %H:%M:%S "' >> /etc/profile

Quando reiniciar sua máquina, ou fizer o logoff com o seu usuário, a variável automaticamente será ativada. Caso queira que a alteração surta efeito imediato, recarregue as variáveis do sistema:

source /etc/profile


Definindo quantidade de comandos armazenados no history

Para definir por exemplo que 10.000 linhas será o limite para o histórico do sistema, exporte as variáveis necessárias dentro do arquivo /etc/profile:

echo 'export HISTFILESIZE="10000"' >> /etc/profile
echo 'export HISTSIZE="10000"' >> /etc/profile


Fontes:

http://www.dicas-l.com.br/arquivo/bash_history.php#.TuIAlpZKnk1
http://leodamasceno.blogspot.com/2010_08_01_archive.html