O poder do Linux History Command em Bash Shell

O poder do Linux History Command em Bash Shell

Nós usamos história Comando frequentemente em nossos trabalhos de rotina diária para verificar o histórico de comando ou obter informações sobre o comando executado pelo usuário. Nesta postagem, veremos como podemos usar o comando histórico de maneira eficaz para extrair o comando que foi executado pelos usuários no shell bash. Isso pode ser útil para fins de auditoria ou para descobrir qual comando é executado no que data e tempo.

Por padrão data e Timestamp não será visto durante a execução história comando. No entanto, Bash Shell fornece CLI Ferramentas para editar o histórico de comando do usuário. Vamos ver algumas dicas e truques e poder de história comando.

Exemplos de comando de história

1. Lista Last/todos os comandos executados no Linux

Executando simples história O comando do terminal mostrará uma lista completa dos últimos comandos executados com números de linha.

[[Email protegido] ~] $ History 1 ps1 = '\ e [1; 35m [\ [email protegido] \ h \ w] $ \ e [m' 2 ps1 = "\ e [0; 32m [\ [email protegido] \ h \ w] $ \ e [m "3 ps1 =" \ [email protegido] \ h: \ w [\ j] $ "4 ping google google.com 5 eco $ ps1 6 cauda -f/var/log/mensagens 7 cauda -f/var/log/mensagens 8 saia 9 limpe 10 histórico 11 limpo 12 histórico

2. Liste todos os comandos com data e registro de data e hora

Como encontrar data e Timestamp contra comando? Com 'exportar' O comando com variável exibirá o comando histórico com o registro de data e hora correspondentes quando o comando foi executado.

[[Email Protected] ~] $ export histimeformat = " %f %t" 1 2013-06-09 10:40:12 gato /etc /edição 2 2013-06-09 10:40:12 CLEAR 3 2013-06- 09 10:40:12 Find /etc -Name *.Conf 4 2013-06-09 10:40:12 CLEAR 5 2013-06-09 10:40:12 HISTÓRIA 6 2013-06-09 10:40:12 ps1 = '\ e [1; 35m [\ [Email protegido ] \ h \ w] $ \ e [m '7 06-06-09 10:40:12 ps1 = "\ e [0; 32m [\ [email protegido] \ h \ w] $ \ e [m" 8 2013-06-09 10:40:12 ps1 = "\ [email protegido] \ h: \ w [\ j] $" 9 2013-06-09 10:40:12 Ping Google.com 10 2013-06-09 10:40:12 eco $ ps1
Significado das variáveis ​​histimeformat
%F equivalente a %y - %m - %d %t substituído pelo tempo ( %h: %m: %s)

3. Comandos de filtro na história

Como podemos ver o mesmo comando, está sendo repetido o número de vezes na saída acima. Como filtrar comandos simples ou não destrutivos na história?. Use o seguinte 'exportarComando especificando o comando em Histignore = 'ls -l: pwd: data:' não será salvo pelo sistema e não será mostrado no comando da história.

[[email protegido] ~] $ export histignore = "ls -l: pwd: data:"

4. Ignorar comandos duplicados na história

Com o comando abaixo, nos ajudará a ignorar os comandos duplicados, a entrada feita pelo usuário. Somente a entrada única será mostrada na história, se um usuário executar um mesmo comando várias vezes em um prompt de bash.

[[email protegido] ~] $ export histcontrol = ignoredups

5. Comando de exportação Unset

Comando de exportação não definido em tempo real. Executar exportação não definida comando com variável um por um, todos os comandos foram exportados por exportar comando.

[[Email Protected] ~] $ Unset Export HistControl

6. Salvar o comando de exportação permanentemente

Fazer uma entrada como segue em .Bash_profile salvar exportar comando permanentemente.

[[Email protegido] ~] $ VI .Bash_profile # .Bash_profile # Obtenha os aliases e funções se [-f ~///.Bashrc]; então . ~/.Bashrc Fi # Programas específicos de ambiente e inicialização do usuário Exportar HistControl = IgnoredUps Caminho = $ caminho: $ Home/Bin Export Path

7. Liste os comandos executados do usuário específico

Como ver o histórico de comando executado por um usuário específico. Bash mantém registros da história em um '~//.Bash_history ' arquivo. Podemos visualizar ou abrir arquivo para ver o histórico de comando.

[[Email protegido] ~] $ VI .BASH_HISTORY CD / TMP / CD LOGSTALGIA-1.0.3/ ./Configure sudo passwd root apt-get install libsdl1.2-DEV LIBSDL-IMAGE1.2-DEV libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc ./Configure Faça Apt-Get Install Libsdl1.2-DEV LIBSDL-IMAGE1.2-DEV libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev fazer gcc ++ apt-get install libsdl1.2-DEV LIBSDL-IMAGE1.2-DEV libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev fazer gcc apt-get install fazer mysql -u root -p apt-get install grync apt-get install unison unison

8. Desativar a história de armazenamento de comandos

Alguma organização não mantém o histórico de comandos devido à política de segurança da organização. Nesse caso, podemos editar .Bash_profile arquivo (é o arquivo oculto) do usuário e faça uma entrada como abaixo.

[[Email protegido] ~] $ VI .Bash_profile # .Bash_profile # Obtenha os aliases e funções se [-f ~///.Bashrc]; então . ~/.BASHRC FI # Ambiente específico do usuário e programas de inicialização Caminho = $ PATH: $ Home/Bin Histsize = 0 Caminho de exportação .Bash_profile (final)

Salvar o arquivo e carregar alterações com o comando abaixo.

[[email protegido] ~] $ fonte .Bash_profile

Observação: Se você não deseja que o sistema se lembre dos comandos que você digitou, basta executar o comando abaixo que desativará ou parará de gravar o histórico.

[[email protegido] ~] $ export histsize = 0

Pontas: Procurar 'Histsize'e editar em'/etc/perfil ' Arquivo com SuperUser. A mudança no arquivo afetará globalmente.

9. Excluir ou limpar o histórico de comandos

Com acima e abaixo Arrow, podemos ver o comando usado anteriormente que pode ser útil ou pode irratá -lo. Excluindo ou limpando todas as entradas da lista de histórico da Bash com '-c'Opções.

[[Email protegido] ~] $ History -C

10. Comandos de pesquisa na história usando o comando grep

Comando de pesquisa através de '.Bash_history'Ao canalizar seu arquivo de histórico para'grep' como abaixo. Por exemplo, o comando abaixo pesquisará e encontrará 'PWD'Comando da lista de história.

[[Email Protected] ~] $ History | GREP PWD 113 2013-06-09 10:40:12 PWD 141 2013-06-09 10:40:12 PWD 198 2013-06-09 15:46:23 História | Grep PWD 202 2013-06-09 15:47:39 História | grep pwd

11. Pesquisar comando finalmente executado

Pesquise o comando executado anteriormente com 'Ctrl+r' comando. Depois de encontrar o comando que você está procurando, pressione 'Digitar'Para executar o mesmo caso de pressão'esc'Para cancelar.

(reverse-i-Search) 'fonte': fonte .Bash_profile

12. Lembre -se do último comando executado

Lembre -se de um comando específico usado anteriormente. Combinação de Bang e 8 (!8) Comando o número do RECORD 8 comando que você executou.

[[Email protegido] ~] $ !8

13. Lembre -se de finalmente executado comando específico

Recorno comando usado anteriormente (netstat -np | Grep 22) com '!'e seguido por algumas cartas desse comando em particular.

[[Email protegido] ~] $ !netstat -np | Grep 22 (nenhuma informação poderia ser lida para "-p": getEuid () = 501, mas você deve ser raiz.) TCP 0 68 192.168.50.2:22 192.168.50.1: 1857 estabelecido - TCP 0 0 192.168.50.2:22 192.168.50.1: 2516 estabelecido - unix 2 [] dgram 12284 - @/org/freedesktop/hal/udev_event Unix 3 [] fluxo conectado 14522 - unix 2 [] dgram 13622 - UNIX 3 [] fluxo conectado 12250 - @var/run/ hald/dbus -ujajomna0g unix 3 [] fluxo conectado 12249 - unix 3 [] fluxo conectado 12228 -/var/run/dbus/system_bus_socket Unix 3 [] fluxo conectado 12227 -

Tentamos destacar o comando do poder da história. No entanto, isso não é o fim disso. Por favor, compartilhe sua experiência de comando de história conosco através de nossa caixa de comentários abaixo.