履歴から最後のNコマンドを取得するには?

履歴から最後のNコマンドを取得するには?

私が何であるかを確認したかったですhistory。成功すると思いましたが、history | tail -n 5複数行のコマンドにそれほど多くの行があることがわかりました。

$ echo "hello
how are you"
$ history | tail -2
how are you"
1051  history | tail -2

だから私の質問は:これを行うには、コマンドの出力を解析する必要がありますか?

答え1

見つけました!

歴史[n]

nパラメーターは、最後のn行のみをリストします。

$ echo "hello
how are you"
$ history 2
1060  echo "hello
how are you"
1061  history 2

答え2

たとえば、次のように負の数を使用することもできます。

history -1

または範囲(最後の10)を使用してください。

history -1 -11 

答え3

履歴を適用すると、最後の履歴コマンドも表示されます。スペースの無駄を防ぐには、次のエイリアスが便利です。

alias hs=' history 16 | head -n 15'

(コマンド自体history 16 | head -n 15

別の有用な歴史的エイリアス:

  alias hsg=' history | grep ' 

(ctr+Rが小さすぎて選択できない場合)

_history 前のスペースは、履歴に書き込まれないコマンドを実行します。

fc -l#は最後の16個のコマンド(およびそれ以上)もリストします。

答え4

OpenBSD 6.3(PD KSH v5.2.14 99/07/13.2)でテストされました。

history [b]

数値[b]項目で始まるすべての履歴を表示

history [b] [e]

[b]から[e]までの過去の間隔を表示します。

関連情報