Как найти самые часто используемые команды в Linux
На днях мы с одним пользователем Linux обсуждали команды Linux. Он спросил меня, какую команду Linux я использую чаще всего. Я сказал ему, что одна из моих наиболее часто используемых команд — sudo
. Я использую его каждый день для установки, обновления, удаления пакетов и других административных задач на моем компьютере с Linux. Я думаю, "sudo"
— наиболее часто используемая команда многими пользователями Linux. Если вы когда-нибудь задавались вопросом, какие самые часто используемые команды в Linux, вот как их найти.
Найдите самые часто используемые команды в Linux
Как вы знаете, файл истории (~/.bash_history
) хранит запись всех команд, которые вы запускаете в Терминале. Вы можете легко узнать, какие команды вы используете чаще всего, воспользовавшись этим файлом.
Позвольте мне показать вам 5 наиболее часто используемых команд в моем компьютере с Linux:
history | awk '{print $2}' | sort | uniq -c | sort -nr | head -5
Пример вывода:
153 sudo
118 pngquant
33 cd
30 ssh
29 exit
Давайте разберем приведенную выше команду и посмотрим, что делает каждая опция.
- Команда
"awk '{print $2}'"
печатает первую строку из файла истории, не показывая параметры и аргументы команды. - Команда
"sort"
упорядочивает все строки в алфавитном порядке. - Команда
"uniq -c"
удаляет повторяющиеся строки (введенные команды) и подсчитывает их. - И последняя команда
"sort -nr"
отображает команды в обратном порядке по номеру счетчика, возвращенному командой"uniq"
.
Внимание! Вы можете использовать ExplainShell, чтобы узнать, что делает каждая часть команды.
Как видите, "sudo"
— самая часто используемая команда, я использовал ее 153 раза. А "exit
" — наименее используемая команда.
Я отсортировал результат в порядке убывания (обратный), т. е. от большего к меньшему. Чтобы отобразить наиболее часто используемую команду в порядке возрастания (от меньшего к большему), используйте вместо этого следующую команду:
history | awk {'print $2'} | sort | uniq -c | sort -n | tail -n5
Пример вывода:
29 exit
30 ssh
33 cd
118 pngquant
153 sudo
Найдите самые часто используемые команды в Linux
Вот другая версия той же команды, которая показывает немного больше деталей:
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 -n5
1 177 17.7177% pngquant
2 173 17.3173% vagrant
3 101 10.1101% cd
4 71 7.10711% sudo
5 47 4.7047% ffmpeg
Если вы не хотите ограничивать количество результатов, просто удалите последнюю (head
или tail
) часть приведенных выше команд:
history | awk '{print $2}' | sort | uniq -c | sort -nr
Вышеупомянутые команды специфичны для Bash. Если вы используете оболочку Fish, запустите:
history | cut -d ' ' -f 1 | sort | uniq -c | sort -nr | head -5
Теперь пришло ваше время. Идите и найдите самые часто используемые команды на вашем компьютере с Linux.