UNIXで、unixの歴史の中で最も一般的に使用されるコマンドを見つける方法は?


8

UNIXで、履歴で最も一般的に使用されるコマンドを見つける方法は?


これはトピックから外れていると思いますが、グーグルは参考のためにいくつかの良いリストを示しています。明らかに、使用法は、コマンドのディストリビューションや可用性、ユーザー、その目的、および他のコマンドに関する知識によって異なりますが、先頭に浮かび、件名のすべてのリストに表示されるものは確かにいくつかあります。
カレブ

7
「シェルコマンドの履歴ファイル」または「UNIXの履歴」という意味ですか?
アレックス

回答:


11

それはむしろあなたが「コマンド」によって何を意図するかに依存します。1つの観点から見ると、コマンドはコマンドラインから呼び出される実行可能ファイルにすぎないためlsls -alh /tmp/foo/bar/*tar.bzどちらもコマンドlsです。別の見方では、コマンドはその部分の合計であり、上記の例は2つの異なるコマンドであることを意味します。

履歴内で完全に一意のコマンドを数えることが目的である場合は、次のコマンドを実行できます。 history | cut -d' ' -f4- | uniq -c | sort -n

これはDebianシステムでテストされていることに注意してください。historyコマンドの出力構文は少し異なる場合があります。コマンドの数値「4」を調整して、代替列を選択します。

引数なしの最初のコマンドのみを検討する場合は、次のコマンドを実行できます。 history | cut -d' ' -f4- | cut -d' ' -f1 | uniq -c | sort -n

引数を含めるが、その後に続くチェーンまたはパイプされたコマンドは含めない場合は、次のコマンドを実行できます。 history | cut -d ' ' -f4- | cut -d'|' -f1 | uniq -c | sort -n

これらの各コマンドは、最後に出現する頻度が最も高いコマンドの数を数値順に並べ替えます。


私は、追加を追加するために必要なsortuniq:のみをチェックし、隣接するラインそれ以来、正確なカウントを取得するにはhistory | cut -d' ' -f4- | cut -d' ' -f1 | sort | uniq -c | sort -n
nocash

4

私はvucartokの両方の回答を見てきましたが、非常に便利ですが、素晴らしいツールを使用することもできますawk

最も頻繁に使用するコマンドの一覧を表示したい場合:

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 | head -1 

私にとってはvi

94 vi

4

もう1つのアプローチは、Linuxでも使用可能なBSDプロセスアカウンティングを使用することです(ただし、デフォルトで有効になっているかどうかはわかりません)。基本的に、アカウンティングがアクティブである限り、実行されるすべてのプログラム(およびCPU消費時間などの他のいくつかの測定)のタブを保持します。そこから、いくつかの集約された統計が利用可能です。とりわけ、システムでこれまでに実行されたすべてのプログラムのリストのようなもので、ソートされています。

検索するコマンドはlastcomm、実行中のログsa用と集計された統計用です。元の質問に戻ります。問題のシステムがインストールされてからアカウンティングが有効になっていると仮定すると、システムでsa -nこれまでに実行されたすべてのコマンドのリストが(すべてのユーザーに対して)頻度順に表示されます。パイプラインの場合、各部分は分岐する新しいプロセスを構成するため、パイプラインの各部分は個別にカウントされます。

詳細については、Linuxジャーナルにその仕組みを説明する記事があります。私自身、NetBSDガイドからアイデアを得ました。そこにあるより一般的な管理のヒントの多くはNetBSDに固有のものではなく、他のUnixシステムにも当てはまります。


2

最も使用頻度の高い上位20のCLIコマンド:

history |  cut -c7- | sort  | uniq -c | sort -nr | head -n 20

1

単一のカットコマンドを使用できます。

history | cut -c 7-100  | sort  | uniq -c | sort -nr

1

現在のセッションのみの場合hashは、引数はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.