Eu queria saber se existe algum comando ou qualquer outra maneira de verificar meu histórico de comandos apenas na sessão atual.
fonte
Eu queria saber se existe algum comando ou qualquer outra maneira de verificar meu histórico de comandos apenas na sessão atual.
O history
interno bash
permite especificar nomes de arquivos quando usados com -anrw
sinalizadores e -a
descrição dos sinalizadores dos help history
estados:
anexar linhas de histórico desta sessão ao arquivo de histórico
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 no arquivo opion) grava todo o histórico no arquivo especificado, portanto -a
(anexar) aqui é a opção preferida.
Existem outras maneiras manuais. Em particular ksh
, não possui -a
sinalizador bash
, mas o que tem ksh
e o mksh
que é é HISTFILE
variável de ambiente (e bash
possui isso também porque bash
inclui muitos ksh
recursos); a propósito, essa variável por padrão não está definida (pelo menos mksh
no Ubuntu não a definiu). Portanto, para enviar a sessão atual para outro arquivo, chamamos o HISTFILE
prefixo de comando, que na sintaxe do shell significa executar o comando com a variável de ambiente adicional especificada. Igual a:
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 é que isso ksh
e seus shells relacionados geram histórico com caracteres especiais, em vez de texto sem formatação bash
. Portanto, convém abrir esse arquivo com ksh
.
Quanto ao shell POSIX /bin/sh
no Ubuntu , que é o Debian Almquist Shell ou Dash, existe fc
embutido . No entanto, no Ubuntu traço é compilado sem lib-edit , que é uma escolha consciente pelos desenvolvedores do Ubuntu, por razões de desempenho, por isso fc
e outros modos que exigem edição de linha não funcionam fora da caixa (a menos que recompilação dash
-se e instalar lib-edit
).
Formas neutras do shell seriam gravar sua sessão com ferramentas existentes ou escrever sua própria função para gravar por comando.