Questão É possível recuperar em comandos de histórico de um arquivo bash?


Eu tenho muitos comandos que quero executar novamente, mas há muitos deles, e ir até eles com a tecla de seta para cima é muito longa. É possível obtê-lo em um comando cat / tail e canalizá-lo para um arquivo?


1


origem


Você não precisa da seta para cima. Você também pode simplesmente digitar Ctrl-r e depois começar a digitar um de seus comandos anteriores. Em seguida, digite Ctrl-r repetidamente para percorrer uma lista de comandos correspondentes. - zedoo
Ele é armazenado em ~/.bash_history    Veja também stackoverflow.com/questions/8168676/… - user123444555621


Respostas:


Você pode usar o comando history:

history > my_file

3



Muito obrigado eu não sabia disso! - epsilones
FYI, o history comando irá mostrar o conteúdo do .bash_history arquivo, mais comandos recentemente executados ainda não armazenados nesse arquivo. - chepner


Digite Ctrl-R e digite as primeiras letras do comando.


1





Adicionar isso a ~ / .inputrc faria com que as setas para cima e para baixo percorressem os comandos correspondentes ao início da linha:

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

Eu também uso muito essas funções:

h() {
    if [ $# = 0 ]; then
        history 33 | sed '$d'
    else
        history | grep -iEF "$*" | grep -v '^ *[0-9]* *h '
    fi
}

r() {
    history ${1-200} | sed 's/^ *[0-9]* *//' | tail -r > /tmp/recent
    open /tmp/recent -e
}

Se você adicionar " ": magic-space para .inputrc, você pode inserir o comando 1234 digitando !1234 e um espaço. Mas também faz com que o espaço pare de funcionar no irb e o modo interativo no gnuplot.


1



Muito interessante ! - epsilones