No UNIX, como encontrar os comandos mais usados no histórico do unix?

8

No UNIX, como encontrar os comandos mais usados no histórico?

    
por swetha 15.06.2011 / 13:18

6 respostas

11

Depende do que você pretende por 'comando'. De uma perspectiva, um comando é simplesmente um executável chamado a partir da linha de comandos, portanto, ls e ls -alh /tmp/foo/bar/*tar.bz são ambos o comando ls . Outra perspectiva é que um comando é a soma de suas partes, significando que o exemplo acima é de 2 comandos distintos.

Se sua intenção é contar comandos totalmente únicos no histórico, você pode executar: history | cut -d' ' -f4- | uniq -c | sort -n

Por favor, esteja ciente que isto foi testado em um sistema Debian, a sintaxe de saída do seu comando history pode variar um pouco. Ajuste o número '4' no comando para selecionar colunas alternativas.

Se você deseja considerar apenas o primeiro comando sem argumentos, você pode executar: history | cut -d' ' -f4- | cut -d' ' -f1 | uniq -c | sort -n

Para incluir os argumentos, mas não comandos encadeados ou canalizados que se seguem, você pode executar: history | cut -d ' ' -f4- | cut -d'|' -f1 | uniq -c | sort -n

Por favor, note que cada um destes tipos o número de comandos numericamente com a maior freqüência aparecendo por último.

    
por 15.06.2011 / 14:19
4

Eu vi os vucar e tok responde, eles são muito úteis, mas você pode usar a incrível ferramenta awk também:

se você quiser listar os comandos mais usados:

history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head

para encontrar o comando mais usado:

history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head -1 

para mim, foi vi :

94 vi
    
por 23.07.2014 / 14:25
4

Outra abordagem seria usar a contabilidade do processo BSD , que também está disponível no Linux (embora eu não saiba se ela está ativada por padrão). Basicamente, ele mantém uma aba de todos os programas que são executados (e algumas outras medidas, como o tempo de CPU consumido, etc.) enquanto a contabilidade estiver ativa. A partir daí, algumas estatísticas agregadas estão disponíveis, entre outras: um tipo de lista de todos os programas já executados no sistema, classificados por um número superior de usos.

Os comandos a serem procurados são lastcomm para o log em execução e sa para as estatísticas agregadas. Voltando à pergunta original, assumindo que o sistema em questão teria a contabilidade ativada desde que foi instalado, então sa -n daria uma lista de todos os comandos já executados no sistema (para todos usuários ), ordenada por frequência. Para tubulações, cada parte do gasoduto seria, naturalmente, contada separadamente, pois cada parte compreende um novo processo a ser bifurcado.

Para mais detalhes, a revista Linux tem um artigo explicando o funcionamento. Eu mesmo tive a idéia do guia do NetBSD ; muitas das dicas de administração mais genéricas não são específicas do NetBSD, mas também se aplicam a outros sistemas Unix.

    
por 10.12.2012 / 21:48
2

Os 20 principais comandos CLI mais usados:

history |  cut -c7- | sort  | uniq -c | sort -nr | head -n 20
    
por 21.06.2016 / 23:50
1

Você pode usar um único comando de corte:

history | cut -c 7-100  | sort  | uniq -c | sort -nr
    
por 20.07.2014 / 20:54
1

Se for apenas para a sessão atual, então hash sem argumentos.

    
por 21.06.2016 / 23:56