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.