É possível definir um número fixo para o comando "histórico" mostrar apenas uma certa quantidade de itens do histórico como 100, em vez de tudo desde o início dos tempos?
Responder1
history n
imprime apenas n
linhas do histórico. Por exemplo:
$ history 4
2000 type history
2001 help
2002 help history
2003 history 4
$
Portanto, podemos criar um alias em seu .bashrc
:
alias h="history 100"
De help history
:
history: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
Display or manipulate the history list.
Display the history list with line numbers, prefixing each modified
entry with a `*'. An argument of N lists only the last N entries.
Isto é útil se você quiser manter um grande conjunto de históricos, talvez até mesmo umilimitado. ComHISTCONTROL=ignoreboth:erasedups
epesquisa incremental reversa, é uma ocasião especial quando você realmente executa o history
comando.
Responder2
Configuração HISTFILESIZE
e HISTSIZE
você pode restringir o tamanho do comando histórico.
Por exemplo HISTFILESIZE=100
e HISTSIZE=100
. Ele restringirá o arquivo de histórico para armazenar 100 linhas e HISTFILE
armazenará seu comando de sessão curaente na memória em 100 linhas.
Quando o shell é inicializado, o histórico é inicializado a partir do arquivo nomeado pela HISTFILE
variável (padrão ~/.bash_history). O arquivo nomeado pelo valor de HISTFILE
é truncado, se necessário, para conter no máximo o número de linhas especificado pelo valor da HISTFILESIZE
variável.
Você pode adicionar HISTFILESIZE=100
e HISTSIZE=100
em seu ~/.bashrc
arquivo . Troque 100 pelo número desejado.
Explicação
HISTFILESIZE=10
eHISTSIZE=10
- Você inicia sua sessão.
- Seu HISTFILE (arquivo que armazena seu histórico de comandos bash) é truncado para conter HISTFILESIZE=10 linhas.
- Você escreve 50 linhas.
- Ao final dos seus 50 comandos, apenas os comandos 41 a 50 estarão na sua lista de histórico, cujo tamanho é determinado por HISTSIZE=10.
- Você encerra sua sessão.
- Supondo
histappend
que não esteja habilitado, os comandos 41 a 50 são salvos em seu HISTFILE, que agora contém os 10 comandos que continha no início, mais os 10 comandos recém-escritos. - Seu HISTFILE é truncado para conter HISTFILESIZE=10 linhas.
- Supondo
- Agora você tem 10 comandos em seu histórico – os últimos 10 que você digitou na sessão que acabou de terminar.
- Ao iniciar uma nova sessão, você recomeça em 1 com um HISTFILE de HISTFILESIZE=10.
HISTFILESIZE=10
eHISTSIZE=5
- Você inicia sua sessão.
- Seu HISTFILE (arquivo que armazena seu histórico de comandos bash) é truncado para conter no máximo HISTFILESIZE=10 linhas.
- Você escreve 50 linhas.
- Ao final dos seus 50 comandos, apenas os comandos 46 a 50 estarão na sua lista de histórico, cujo tamanho é determinado por HISTSIZE=5.
- Você encerra sua sessão.
- Supondo
histappend
que não esteja habilitado, os comandos 46 a 50 são salvos em seu HISTFILE, que agora contém os 10 comandos que continha no início, mais os 5 comandos recém-escritos. - Seu HISTFILE é truncado para conter HISTFILESIZE=10 linhas.
- Supondo
- Agora você tem 10 comandos em seu histórico - 5 de uma sessão anterior e os últimos 5 que você digitou na sessão que acabou de terminar.
- Ao iniciar uma nova sessão, você recomeça em 1 com um HISTFILE de HISTFILESIZE=10.
HISTFILESIZE=5
eHISTSIZE=10
- Você inicia sua sessão.
- Seu HISTFILE (arquivo que armazena seu histórico de comandos bash) é truncado para conter no máximo HISTFILESIZE=5 linhas.
- Você escreve 50 linhas.
- Ao final dos seus 50 comandos, apenas os comandos 41 a 50 estarão na sua lista de histórico, cujo tamanho é determinado por HISTSIZE=10.
- Você encerra sua sessão.
- Supondo
histappend
que não esteja habilitado, os comandos 41 a 50 são salvos em seu HISTFILE, que agora contém os 5 comandos que continha no início, mais os 10 comandos recém-escritos. - Seu HISTFILE é truncado para conter HISTFILESIZE=5 linhas.
- Supondo
- Agora você tem 5 comandos em seu histórico - os últimos 5 que você digitou na sessão que acabou de terminar.
- Ao iniciar uma nova sessão, você recomeça na etapa 1 com um HISTFILE de HISTFILESIZE=5.