web-dev-qa-db-ja.com

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

historyの最後のN個のコマンドを確認したい。 history | tail -n 5でうまくいきますが、複数行のコマンドはそれと同じ数の行を数えることに気づきました。

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

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

38
fedorqui

見つけた!

履歴[n]

引数nは、最後のn行のみをリストします。

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

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

history -1

または、範囲(最後の10)を使用します。

history -1 -11 
0
robertrv

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

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

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

別の便利な履歴エイリアス:

  alias hsg=' history | grep ' 

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

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

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

0
Alexey K.

OpenBSD 6.3(PD KSH v5.2.14 99/07/13.2)でテスト済み。

history [b]

番号[b]のエントリから始まるすべての履歴を表示します

history [b] [e]

[b]から[e]までの履歴間隔を表示します