Existe alguma maneira de verificar o histórico apenas da sessão atual?

9

Eu queria saber se existe algum comando ou qualquer outra maneira que eu possa verificar meu histórico de comandos somente na sessão atual.

    
por Andrew 21.04.2018 / 19:22

1 resposta

12

O history incorporado em bash permite especificar nomes de arquivos quando usados com -anrw flags e -a flag description de help history states:

append history lines from this session to the history file

Portanto, podemos fazer:

~$ history -a this_session.history
~$ cat ./this_session.history 
history mysession.history 
cat mysession.history 
clear
history -a this_session.history

Para o registro, -w (o histórico de gravação para opion do arquivo) grava o histórico whole no arquivo especificado, portanto -a (append) aqui é a escolha preferida.

Existem outras formas manuais. Em especial, ksh não tem -a sinalizador como bash , mas o que ksh e mksh têm é HISTFILE variável de ambiente (e bash tem isso também, porque bash incluiu muitos recursos ksh ); a propósito, esta variável por padrão não está definida (pelo menos mksh no Ubuntu não configurou). Portanto, para a saída da sessão atual para outro arquivo, chamamos HISTFILE prepended to command, que na sintaxe shell significa executar o comando com a variável de ambiente adicional que você especificar. Assim:

bash-4.4$ HISTFILE='mykshfile.hist' ksh
$ echo 'Hello'
Hello
$ echo 'World'
World
$ 
bash-4.4$ cat ./mykshfile.hist 
�echo 'Hello'
echo 'World'

O que você também pode ver a partir disso é que ksh e seus shells relacionados geram histórico com caracteres especiais, em vez de texto simples como o que bash faz. Então, você pode querer abrir esse arquivo com ksh .

Tanto quanto o POSIX /bin/sh shell no Ubuntu , que é o Debian Almquist Shell ou o Dash, existe fc embutido . No entanto, no Ubuntu dash é compilado sem o lib-edit , que é uma escolha consciente dos desenvolvedores do Ubuntu por razões de desempenho, portanto fc e outros modos que requerem edição de linha não funcionam imediatamente (a menos que você recompile dash e instale %código%).

As formas neutras da Shell seriam gravar sua sessão com as ferramentas existentes ou para gravar por comando.     

por Sergiy Kolodyazhnyy 21.04.2018 / 19:25