Quando estou executando minhas análises usando o shell bash, geralmente desejo salvar os comandos que usei que me deram bons resultados em um arquivo no mesmo diretório (meu "LOGBOOK", como é chamado) para que eu possa verificar o que Eu fiz para obter esses resultados. Até agora, isso significava que eu copiava o comando do terminal ou pressionava "para cima" modificando o comando para uma echo"my command" >> LOGBOOK
ou outras palhaçadas semelhantes.
Descobri que havia uma history
ferramenta no outro dia, mas não consigo encontrar uma maneira de usá-la para obter o comando executado anteriormente, para que eu possa fazer algo assim getlast >> LOGBOOK
.
Existe uma maneira fácil e agradável de fazer isso. Como alternativa, como os outros lidam com o salvamento dos comandos para obter os resultados obtidos?
fonte
fc -lnr | head -n 1
pode ser abreviado parafc -lnr -1
.help fc
para a minha documentação. A página do manual do bash tem mais detalhes, incluindo esse uso de índices negativos. Eliminarhead
é bom porque o único comando restante é incorporado e agora não há fork / exec.fc
...Um problema com a resposta do @ camh é que se você possui um comando que abrange várias linhas, ele mostra apenas a primeira linha:
Tente o seguinte:
fonte
cmdhist
corrigirá: "Se definido, o bash tenta salvar todas as linhas de um comando de várias linhas na mesma entrada do histórico. Isso permite reeditar facilmente os comandos de várias linhas".Em vez de usar a seta para cima, você pode usar
"!!"
para se referir ao comando anterior.por exemplo
nota: isto não cita o texto literal
fonte
ls | less
->echo !! >> LOGBOOK
->echo ls | less >> LOGBOOK
.Você pode fazer isso com o seguinte comando se estiver usando o bash shell:
Isso anexará todos os seus comandos da sessão atual a esse arquivo. Você também pode adicionar um alias ao seu arquivo ~ / .bashrc para fazer isso com um único comando:
fonte