zsh の History コマンドを使用して前または最新の履歴エントリを表示する

zsh の History コマンドを使用して前または最新の履歴エントリを表示する

コマンド履歴を入力しましたが、私が実行した最後の10個のコマンドが表示されました。今私が実行した最後の20個のコマンドを見たいです(文書を読んだ後)。

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

と入力しましたhistory 20。これにより、コマンド番号20から始まり、現在のコマンド(約2000)までのすべてのコマンドが表示されます。それで試してみましたが history -20 効果がありました。最後の20個のコマンドを表示します。しかし、それは文書に記載されているものではありません。

history -d [offset]そのオフセットのコマンドも削除する必要があります。それは私のzshでも動作しません。

これは私のzshシェルから直接インポートしたものです。 ここに画像の説明を入力してください。

答え1

zshでは、historyisはエイリアスfc -l 1なので、これを実行すると機能しないものに置き換えられますhistory -20fc -l 1 -20fc

➜  ~  fc -l -20
10095  grep -R PAPER /usr/lib/locale/
10096  man locale
10097  man 7 locale
10098  mc
10099  history
10100  history --help
10101  run-help history
10102  history 20
10103  history 1 20
10104  history -l 20
10105  fc
10106  history -l 20
10107  type history
10108  fc -l ..20
10109  fc -l -20
10110  history -l -20
10111  history -20
10112  fc -l -20
10113  type history
10114  fc -l 1 -20

大丈夫でしょう。

答え2

まず、「in zshhistoryの意味を知る必要がありますfc -l

それでは読んでください。マンズヴィルティン、命令に関する部分fc

以下のコマンド範囲を選択してください。最初から最後まで履歴リストから。 パラメータfirstとlastは、数値または文字列で指定できます。負の数は、現在の記録イベント番号のオフセットとして使用されます。。文字列は、指定された文字列で始まる最新のイベントを指定します。次に、コマンドですべての代替old = new(存在する場合)を実行します。

...

firstが指定されていない場合は-1(最も最近のイベント)に設定され、-lフラグが指定されている場合は-16に設定されます。lastが指定されていない場合はfirstに設定され、-lフラグが指定されている場合は-1に設定されます。

ドキュメントによると、負の数を使用すると、現在の履歴オフセットです。したがって、history -20現在のコマンドから前の20個のコマンドまでリストされます。

数値を指定するとhistory 20テーブルとzsh見なされます。first to lastこの例ではfirst20に設定されていますが、省略lastされています。したがって、が使用されるためlast設定されます。-1fc -l

関連情報