history|awk '{print $2}'|sort|uniq -c|sort -rn|head -30|awk '!max{max=$1;}{r="";i=s=100*$1/max;while(i-->0)r=r"#";printf "%50s %5d %s %s",$2,$1,r,"\n";}'
Эта команда выполняет следующие действия:
1. history
— выводит список предыдущих команд, выполненных в командной строке.
2. awk '{print $2}'
— извлекает только второе поле (команду) из вывода history
.
3. sort
— сортирует команды в алфавитном порядке.
4. uniq -c
— считает количество повторяющихся команд и добавляет число повторений перед каждой командой.
5. sort -rn
— сортирует команды по убыванию количества повторений.
6. head -30
— оставляет только первые 30 команд.
7. awk '!max{max=$1;}{r="";i=s=100*$1/max;while(i-->0)r=r"#";printf "%50s %5d %s %s",$2,$1,r,"\n";}' - форматирует вывод, отображая команды, количество повторений и гистограмму в виде символов "#".
Эта команда полезна для отображения наиболее часто используемых команд в истории командной строки. Альтернативой может быть использование других инструментов для анализа истории команд, таких как grep,
sed или
python`. Аргументы команды не требуются.