Alguém perguntou na lista de discussão do meu LUG local se existe alguma maneira de aprender o último comando emitido em um sistema GNU/Linux.
Estamos falando do último comando em todo o sistema, eu acho. Depois de raciocinar um pouco, se você limitar o conjunto de comandos àqueles emitidos por usuários reais usando um console interativo, o último deverá ter sido registrado no histórico de comandos.
Outra forma de pensar nesta questão seria perguntar como saber qual foi o último processado que foi criado em uma caixa GNU/Linux, se ainda está rodando ou já terminou a execução, quais foram os processos pai e outras informações relevantes.
Responder1
Encontrei um pacote para Linux que ajuda na contabilidade de processos.
No meu sistema Ubuntu 9.10 fiz isso para instalar o programa "acct":
sudo apt-get install acct
Em seguida, um arquivo de log em branco precisa ser criado, o que você pode fazer assim:
sudo touch /var/log/pacct
Depois disso, a contabilidade do processo precisa ser ativada:
sudo /usr/sbin/accton /var/log/pacct
A partir desse ponto, os processos são registrados junto com o usuário que os executou e o terminal associado.
O arquivo de log pode ser visto com este comando:
lastcomm -f /var/log/pacct
Ainda estou pesquisando esse programa... mas parece que isso ajuda.
Responder2
Para um usuário específico (e shell): histórico
Para um processo atual: ps
Responder3
Bem, um sistema amplo parece bastante complicado. Tal sistema implica que deve haver algum processo que monitore o .bash_history de todos os usuários. Então, quando isso for atualizado, um banco de dados central será atualizado. Feito isso, podemos corrigir uma extensão para o comando "history" que escolhe no banco de dados central. Não é uma má ideia.
Responder4
Você pode usarbisbilhoteiropara monitorar todos os comandos que são executados.