Como recordar a história no teminal

4

Eu instalei o Ubuntu 10.10 ontem. Então, enquanto usava o terminal, notei que uma vez eu saí de uma sessão de terminal, seu histórico se foi, embora a história exista para aplicações no histórico de terminal-like ROOT (CERN).

Ao dar o comando

echo $HISTFILESIZE 

mostra 2000. Mudei para 10000 quando saí da sessão e abri um novo terminal; novamente mostra o histórico como 2000 e nenhum comando pode ser acessado por meio da tecla de seta para cima / para baixo.

Por favor ajude. Estou ficando frustrado com muuuuito ... muita digitação no terrminal.

    
por SUMIT GOSWAMI 20.05.2011 / 11:06

2 respostas

7

Se nenhum comando puder ser executado usando ou , isso indica que seu arquivo de histórico está vazio ou você não tem permissões de leitura. Verifique isso.

Talvez você execute os comandos como outro usuário. Se assim for:

su otheruser
history 10

e observe a saída.

Se você alterar $HISTFILESIZE , as alterações serão sobrescritas sempre que você chamar outro shell. Para evitar que você altere essa variável no seu .bashrc . Além disso, você deve definir a variável $HISTSIZE para um valor maior.

Dicas geralmente úteis usando histórias:

Ctrl + R faz uma busca reversa do seu histórico por você. Alt + . cola o último argumento do último comando no seu prompt na posição do cursor.

Além disso, o operador bang ( ! ) irá repetir os comandos para você no terminal (se você quiser economizar alguns tipos de digitação. Exemplo:

confus@confusion:~$ echo "bang + letters will repeat the last command starting with these letters."
bang + letters will repeat the last command starting with these letters.

confus@confusion:~$ clear

confus@confusion:~$ !ech
bang + letters will repeat the last command starting with these letters.

Todas essas coisas relacionadas ao histroy são armazenadas no diretório inicial de qualquer usuário em um arquivo chamado .bash_history . Você pode procurá-los usando o history -command. Ela é um pequeno tutorial sobre como usar o histórico .

confus@confus:~$ history 4 #will print last 4 commands
 1848  ls
 1849  clear
 1850  vi /home/confus/.local/share/applications/nautilus-home.desktop
 1851  history 4

Outra coisa muito útil é criar um arquivo .inputrc em seu diretório pessoal com o seguinte conteúdo:

"\e\e[C": forward-word
"\e\e[D": backward-word
"\e[A": history-search-backward
"\e[B": history-search-forward

Desta forma, você pode usar o ou para completar os comandos que você começou a digitar no histórico. Por exemplo. quando você digita um comando bastante longo como rsync -a -v --human-readable --prune-empty-dirs -e 'ssh -i .ssh/id_rsa' --include="*/" --exclude="snapshot_*" --exclude="restart.*" /scratch/ x@cluster1:/home/x/runs/ e quer executá-lo uma segunda vez, você pode digitar rsy e então e ele irá completar o último comando que começou com rsy. Outra pressão do uparrow terminará no penúltimo e assim por diante. Eu não sei porque isso não é o padrão.

    
por con-f-use 20.05.2011 / 13:10
2

Você pode pressionar Control + R e pesquisar no seu histórico bash se você se lembrar de uma parte do comando que você digitou.

Há também um arquivo chamado .bash_history na sua pasta pessoal que você pode abrir ou usar o grep para encontrar seus comandos inseridos anteriormente.

    
por Smotko 20.05.2011 / 11:13