Я хотел бы знать, какую команду я использую больше всего в командной строке. Я хотел бы знать, чтобы я мог улучшить свое использование командной строки. Если я знаю, какую команду я использую чаще всего, тогда я смогу прочитать о них больше, попытаться найти более эффективные способы их использования.
Я знаю, история хранит список всех предыдущих команд, которые я набрал. Как бы я обработал его, чтобы увидеть список из 10 или 20 самых популярных команд.
linux
command-line
history
nelaaro
источник
источник
Ответы:
Я только что видел этот пост на http://linux.byexamples.com/
В основном вы используете простой однострочный сценарий awk
Полное объяснение можно найти по ссылке выше.
Пример выхода на мою машину:
источник
Команда awk выведет первую строку из ~ / .bash_history (без отображения параметров или аргументов команды), затем sort отсортирует все строки в алфавитном порядке, затем "uniq -c" удалит дублированные строки (введенные вами команды) и посчитает их, а также последняя сортировка упорядочит ваши команды по количеству, возвращаемому uniq.
источник
-r
в конце команды, чтобы отсортировать их в обратном порядке и| head -10
ограничить количество результатов.Вы можете использовать
hash
команду в своем терминале, которая хранит запись хеш-функции для каждой команды, которую вы используете, а также количество совпадений и на основе совпадений вы можете их отсортировать и обработать.Проверьте эту статью для получения дополнительной информации.
источник
Для более общего ответа включите « учет процессов » в своей системе. Вы можете получить не только частоту использования, но и статистику процессора, памяти и ввода / вывода.
источник
Сценарии в других ответах учитывают только первую команду, выполненную в каждой командной строке; они не включают команды, выполняемые после каналов (то есть '|'). Например, если эта строка была в вашей истории bash:
тогда в возвращаемую сводку наиболее выполняемых команд не будут включены `sort 'и' uniq ', а также второй` sort', поскольку они не были первым токеном в строке.
Основываясь на ответе от nelaar, достаточно сначала разбить строки в истории Bash на каждую трубу:
источник
Веселым дополнением будет гистограмма:
Выход:
Длинные команды смещают интервал.
источник
printf
илиsprintf
вместоprint
.Используйте,
$ 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
чтобы получить список ваших лучших 10 команд.Пример:
источник
Вы можете
awk
смоделировать вышеуказанный ответ от @nelaar в хороший сценарий bash:источник
Ну, это модифицированная версия команды "Неделчо Христов", скопированная и вставленная здесь .... если вы сохранили или отметили дату в своей истории bash, то у вас будет ошибочный вывод
Это поможет вам лучше использовать это:
источник