Bash:「記録番号」対「コマンド番号」

Bash:「記録番号」対「コマンド番号」

PS1変数を使用してシェルプロンプトをカスタマイズする方法を検索するときに使用できる特殊文字テーブルを見ました。特に:

          \!     the history number of this command
          \#     the command number of this command

!523「履歴番号」がより一般的に使用されているようで、redo Historyコマンドなどのコマンドを使用する方法を知っています。ところで、「コマンド番号」にも同様の機能があるかどうかはわかりません。 PS1変数を入れてみましたが、\#特定のセッションに入力されたコマンドの数が出力されるようです(とは異なり、\!ログアウト/終了後も持続します)。

「コマンド番号」を便利で意味のある方法で使用する方法を知っている人はいますか?

ベストアンサー1

fc私が知っている限り(そしてこれはあなたの研究によって確認されたようです)、対応するマジックナンバーを対話的にまたは近道で参照する方法はありません!n。もちろん、これらは特定のシェルが起動した後の相対位置ではなく、履歴リストの絶対位置のみを参照しているようです(\#正確に指摘したように、これは何を参照しているのか)。

この問題を改善するために私が見つけた唯一の方法は、次のように設定することです。

export HISTFILESIZE=1001
export HISTSIZE=-1

そのように:

  1. 新しいセッションの記録は最初から始まり、1000セッション内の現在の場所をより簡単に識別できます。
  2. (多少関係ありません)特定のセッションで以前の履歴を失うことはありません(ただしファイルはあふれません)。

デフォルトでは、以下で変更されたプロンプト()を取得しますPS1="\\!$ "

499$ 

到着する:

1000$ 

...最初はもう少しきれいになりました。しかし、これはあなたが望む答えではないかもしれません。 :)

(ところで、私はまた解決策を見つけるためにzshを見てみましたが、同等のものがまったくないようで、\#それも役に立ちません。)

おすすめ記事