O comando interno fc
permite que você extraia comandos do histórico usando vários critérios (consulte man zshbuiltins
para obter detalhes).
fc
significa "fix command" e, quando invocado sem parâmetros, abre um editor com o último comando digitado. Você pode usar todos os recursos do seu editor para alterar o comando e, quando salvar e sair, zsh
executará o comando fixo. O editor usado por padrão é vi
, mas isso pode ser substituído usando a variável EDITOR
shell ou, se você quiser usar um editor específico com o comando fc
, FCEDIT
.
fc
tem muitas opções para manipular o histórico além do último comando, algumas das quais fornecem exatamente os recursos que você está solicitando.
A opção -l
"lista" o conteúdo do histórico. Por padrão, ele lista os últimos 16 comandos, mas você pode especificar limites inferiores e superiores, como índices no histórico ou até como o texto inicial de um comando. Índices negativos voltam do último comando, para extrair as últimas 15 linhas:
fc -l -15
Por padrão, fc -l
inclui índices de histórico como a primeira coluna de sua saída. Assim que você tiver o intervalo exato desejado, -n
descartará os números assim:
fc -ln -12 -5
extrairá apenas essas linhas (de 12 de volta para 5 de volta) em um formato adequado para um script.
Usar comandos como limites pode ser muito útil:
fc -l rm ls
lista todo o histórico começando com o último rm
e terminando com o último ls
(então haverá um único comando rm
na saída, mas pode haver vários comandos ls
).
Existem muitas outras opções, como adicionar registros de data e hora, substituir porções de comandos, carregar e salvar partes do histórico, alternando pilhas de histórico inteiras ...