Gostaria de saber qual comando eu mais uso na linha de comando. Gostaria de saber para melhorar meu uso da linha de comando. Se eu souber qual comando eu mais uso, posso ler mais sobre eles e tentar descobrir maneiras melhores de usá-los.
Eu sei que a história mantém uma lista de todos os comandos anteriores que eu digitei. Como eu processaria para ver uma lista dos 10 ou 20 principais comandos mais usados.
linux
command-line
history
nelaaro
fonte
fonte
Respostas:
Acabei de ver este post em http://linux.byexamples.com/
Basicamente, você usa um script awk simples de uma linha
Uma explicação completa pode ser encontrada no link acima.
Exemplo de colocar na minha máquina é:
fonte
O comando awk imprimirá a primeira string de ~ / .bash_history (não mostrando opções ou argumentos de comando); a classificação ordenará todas as linhas em ordem alfabética; "uniq -c" removerá as linhas duplicadas (seus comandos digitados) e as contará e a última classificação ordenará seus comandos pelo número de contagem retornado pela uniq.
fonte
-r
no final do comando para classificá-los na ordem inversa e| head -10
para limitar o número de resultados.Você pode usar o
hash
comando no seu terminal, que mantém uma entrada de hash de todos os comandos que você usa, juntamente com o número de ocorrências e, com base nas ocorrências, você pode classificá-las e processá-las.Consulte este artigo para obter mais informações.
fonte
Para uma resposta mais geral, ative a " contabilidade do processo " no seu sistema. Você pode obter não apenas a frequência de uso, mas agregar estatísticas de CPU, memória e E / S.
fonte
Os scripts nas outras respostas contam apenas o primeiro comando executado em cada linha de comando; eles não incluem comandos executados após pipes (ou seja, '|'). Por exemplo, se essa linha estiver no seu histórico do bash:
então, no resumo retornado dos comandos mais executados, 'sort' e 'uniq' e o segundo 'sort' não seriam incluídos, pois não eram o primeiro token na linha.
Com base na resposta da nelaar, basta dividir primeiro as linhas do seu histórico do bash em cada canal:
fonte
Uma adição divertida seria um gráfico de barras das contagens:
Saída:
Comandos longos compensarão o espaçamento.
fonte
printf
ou emsprintf
vez deprint
.Use
$ history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10
para obter uma lista dos seus 10 principais comandos.Exemplo:
fonte
Você pode
awk
transformar a resposta acima de @nelaar em um bom script de bash:fonte
Bem, esta é uma versão modificada do comando "Неделчо Христов" copiada e colada aqui ...
Isso o ajudará a usar melhor:
fonte