ターミナルで作業するときは、以前に実行したコマンドを再利用する必要があることがよくあります。または、最もよく使用されるコマンドの統計を検索することもできます。ほとんどのユーザーは、矢印キーを使用して前のコマンドにスクロールして戻ることにより、bashの履歴を参照する方法を知っています。ただし、上下の矢印キーを使用するよりも、bash履歴でより多くのことができることを知っているユーザーはほとんどいません。
この記事では、ターミナルで最も頻繁に使用したコマンドを確認するための2つの異なる方法を紹介します。この記事で説明する手順を説明するためにDebian10を使用します。
方法1:historyコマンドを使用してコマンドの統計を表示する
この方法では、historyコマンドを使用して、最も使用されているターミナルコマンドを表示します。 Linuxでは、通常〜/ .bash_historyに履歴ファイルがあります。 これは、ユーザーが以前のセッションで実行したすべてのコマンドの履歴を保存します。履歴ファイルは、セッションが閉じられるたびに更新されます。
これにより、ユーザーは以前に実行したコマンドを取得できるだけでなく、最もよく使用されるコマンドを検索することもできます。履歴コマンドを使用すると、最もよく使用されるコマンドを一覧表示することもできます。
仕組みを確認するには、 historyと入力するだけです。 ターミナルで:
$ history
出力は次のようになります。現在のユーザーセッションで以前に実行されたすべてのコマンドが、最新のコマンドが一番下にある順序で一覧表示されていることがわかります。
最後のxのリストを表示するには 以前に実行したコマンドの数、「 history」と入力します 続いてx:
$ history x
たとえば、最後の 6を一覧表示するには コマンドの数、 xを置き換えます 6 上記のコマンドで。
履歴リストで特定のコマンドを検索するには、次の構文を使用します。
$ history | grep command
たとえば、ネットワークを検索します 履歴リストでコマンドを実行し、ターミナルで次のコマンドを実行します。
$ history | grep network
1。最もよく使用されるコマンドのリストを表示する
historyコマンドの使用法を見てきました。次に、historyコマンドを使用して、ターミナルで最も使用されているコマンドを表示します。これを行うには、ターミナルで次のコマンドを実行します。
$ history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr
上記の出力から、OSのインストール以降、上部に最新のコマンドがあり、下部に最も使用されていないコマンドがある履歴リストを確認できます。上記の結果によると、履歴 コマンドは最もよく使用されたコマンドであり、13回使用され、2番目のコマンドは ip でした 3番目はping 。同様に、最も使用されていないコマンドは systemctl でした 、1回使用されました。
2。最もよく使用されるコマンドの特定の数を表示する
また、最もよく使用されるコマンドの特定の数のみを表示できます。これを行うには、ターミナルで次のコマンドを実行します。
$ history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr | head -n x
たとえば、上位の 4のみを表示するには 最もよく使用されるコマンド、 xを置き換えます 4で 。
3。最もよく使用されるコマンドのリストを逆の順序で表示します
履歴リストを逆の順序で表示することもできます。つまり、最近のものが一番下に、以前のものが一番上になります。これを行うには、上記と同じコマンドを使用しますが、 rは使用しません 以下のコマンドに示すように、2番目のソートのオプション。
$ history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -n | head -n x
これで、履歴が逆の順序で表示されます。
4。発生ごとに最もよく使用されるコマンドのリストを表示する
1回、2回、または特定の回数だけ発生したコマンドの履歴リストを表示するには、次の構文を使用します。
$ history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -n | grep ' x '
xを置き換えます 任意の数で。
たとえば、2回だけ発生したコマンドのリストを表示するには、 xを置き換えます。 2 上記の構文で:
$ history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -n | grep ' 2 '
履歴コマンドで使用できるその他のオプションは次のとおりです。
5。履歴から特定のエントリを削除します
シェル履歴から特定の行を削除するには、以下のコマンドを実行します。
$ history -d <line number>
たとえば、行番号 19を削除するには リストから、<行番号>を置き換えます 19による 。
上記のコマンドは、行番号 19に対応するエントリを削除します 。
6。履歴を保存せずに終了
履歴を保存せずにターミナルを終了する場合は、次のコマンドを使用します。
$ kill -9 $$
7。履歴全体をクリアする
現在のユーザーセッションの履歴全体をクリアすることもできます。これを行うには、次のコマンドを使用します。
$ history -c
方法2#コマンド統計を表示する関数を作成する
ターミナルで最も実行されたコマンドのリストを表示するために使用できる別の方法があります。これを使用するには、まずターミナルで次のコマンドを実行して関数を作成します。
$ function zsh-stats() { fc -l 1 | 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 -n25; }
次に、次のコマンドを実行してこの関数を呼び出します。
$ zsh-stats
これに似た出力が表示されます。
上記の出力では、上記のコマンドの出力として表示された4つの列を確認できます。最初の列にはインデックス番号が表示され、2番目と3番目の列にはそれに応じて最もよく使用されるコマンドの頻度と発生率が表示され、最後の列にはコマンド名が表示されます。
これが、Debian10OSで最もよく使用されるターミナルコマンドを確認する方法です。上記の2つの方法であるhistoryコマンドとzsh-stats関数について説明しましたが、都合に合わせて任意の方法を使用できます。ただし、上記の両方の方法では、現在のユーザーセッションのコマンドの履歴のみが表示されることに注意してください。