Как мне составить список наиболее часто используемых команд в терминале?

Как я могу составить список с наиболее часто используемыми командами в терминале?

Я знаю, что этот вопрос может оказаться бесполезным для любых будущих предложений для некоторых из нас, но даже в этом случае список может быть полезен, когда мы не помним команду, использовавшуюся один или несколько раз в прошлом, когда мы могли искать в конце этого списка.

14
задан 23 April 2016 в 19:52

3 ответа

Мы будем использовать записи из файла .bash_history , чтобы сделать это. Следующая команда предоставит вам список всех команд в том порядке, в котором вы их чаще всего использовали:

history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr

Если вы хотите только топ-10, вы должны добавить head в приведенную выше команду:

history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr | head

To получить определенную вершину, например верхнюю 5, используйте head с опцией -n 5 :

Top 5 commands

Если вы хотите, чтобы список был в обратном порядке (вверху с редко используемыми командами), не используйте r oprion для второй sort :

history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -n

И, наконец, чтобы получить список с командами, использованными один раз, например, используйте grep '1' (замените 1 желаемым числом):

history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | grep ' 1 '

Для работы с sudo командами (например, sudo vim foo ) вместо просто {print $ 3} в команде awk используйте:

{if($3 ~ /sudo/) print $4; else print $3}

Таким образом, вся команда будет выглядеть так:

history | awk 'BEGIN {FS="[ \t]+|\\|"} {if($3 ~ /sudo/) print $4; else print $3}' | sort | uniq -c | sort -nr

Например:

$ history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr | head
    284 vim
    260 git
    187 find
    174 man
    168 echo
    149 rm
    134 awk
    115 pac
    110 sudo
    102 l

$ history | awk 'BEGIN {FS="[ \t]+|\\|"} {if($3 ~ /sudo/) print $4; else print $3}' | sort | uniq -c | sort -nr | head
    298 vim
    260 git
    189 find
    174 man
    168 echo
    153 rm
    134 awk
    115 pac
    102 l
     95 cd

Вы можете увидеть скачок в счетчиках для vim , ] rm и т. д.

20
ответ дан 23 April 2016 в 19:52

Fish & Bash - Вопрос не указывает конкретную оболочку, только "терминал". Смените голову на любое число, которое хотите.

Рыба

история | awk '{print $ 1}' | сортировать | uniq --count | sort --numeric-sort --reverse | head -10

517 git
314 drush
197 sudo
171 cd
115 man
103 echo
 95 vi
 81 dig
 67 set
 66 ls

Этот ответ на Bash, похоже, работает, он немного короче и легче для понимания, чем другие ответы. Мне нравятся длинные варианты, чтобы облегчить чтение таких примеров.

Bash

история | awk '{print $ 2}' | сортировать | uniq --count | sort --numeric-sort --reverse | head -10

73 drush
72 exit
65 sudo
46 g
40 echo
35 ll
34 tmux
30 history
30 fish
27 mux
2
ответ дан 23 April 2016 в 19:52

ქვემოთ მოცემული ბრძანება ასევე ჩამოთვლის ტოპ 10 ყველაზე ხშირად გამოყენებულ ტერმინალურ ბრძანებებს,

history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head

ბრძანება ყველა ბრძანების ჩამოსათვლელად, რომლებიც ყველაზე ხშირად იყენებენ ტერმინალში,

history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn
3
ответ дан 23 April 2016 в 19:52

Другие вопросы по тегам:

Похожие вопросы: