history | perl -F"\||<\(|;|\`|\\$\(" -alne 'foreach (@F) { print $1 if /\b((?!do)[a-z]+)\b/i }' | sort | uniq -c | sort -nr | head
Эта команда выводит самые часто используемые команды в истории выполненных команд в терминале.
Объяснение:
— history выводит список выполненных в терминале команд с номерами.
— perl запускает интерпретатор скриптов Perl.
— -F"\||<\(|;|\|\\$\(« задает разделитель для Perl - символы |, <, (, ;, ` и \$(.-alne
- указывает Perl разбить каждую строку на элементы массива, удалить символы новой строки, разбивать каждый элемент массива по пробелам и прочитывать файл построчно.‘foreach (@F) { print $1 if /\b((?!do)[a-z]+)\b/i }’
- проходит циклом по каждому элементу массива и печатает только те, которые соответствуют регулярному выражению.sort
- сортирует список команд.uniq -c
- подсчитывает количество уникальных команд.sort -nr
- сортирует команды по количеству использований в обратном порядке.head
- выводит первые несколько строк, в данном случае самые часто используемые команды.
Альтернативный подход может быть использован для анализа файла истории команд или использования специализированных инструментов для анализа истории команд, таких как awk, grep` или сценариев оболочки. Передаваемые аргументы команде необходимы для обработки и разделения команд в истории.
