web-dev-qa-db-ja.com

コマンド履歴に最初の75行が欠落しているようです

数年前、14.04から16.04に自動配布を更新しました。私の人生で初めて、自動配布の更新後もコンピューターを使い続けることができました。いつものように、ソフトウェアリポジトリはすべておしゃべりであるため、システムの更新は正しく機能しませんが、私はうまくいきました。

ただし、18.04のクリーンインストールを実行します。インストール後にシステムをより簡単に構成できるようにするために、コマンド履歴をテキストファイルにエクスポートしました。

$ history > /.../20180915_Command_history.txt

美しく、結果のテキストファイルには行番号が含まれています。少し不思議なことに、最初の行番号は76です。最初の数行を見てみると、おそらく以前のコマンドがいくつかあったようです。

  1. 何らかの理由で行番号が76から始まるのでしょうか?
  2. そうでない場合、1行目から75行目を表示する方法はありますか?
5
el_gallo_azul

まず、コマンドライン履歴のバックアップを取得する必要がある場合は、次のファイルをコピーします。

~/.bash_history

すべての端末を閉じるか、history -aを実行して、これらの履歴セッションからのすべてのコマンドを履歴ファイルに追加する必要があることに注意してください。


そうでない場合、1行目から75行目を表示する方法はありますか?

履歴に保存されたすべてのコマンドは、~/.bash_historyファイルで利用できます。すべてのコマンドは、ターミナルを開いて実行します:

cat ~/.bash_history

番号付けを実行してhistoryコマンドに類似した出力を取得するには:

cat -n ~/.bash_history

何らかの理由で行番号が76から始まるのでしょうか?

次のコマンドを実行します:

grep "^HIST" .bashrc

次のような出力を取得する必要があります。

HISTSIZE=1000
HISTFILESIZE=2000

前に言ったように、~/.bash_historyはコマンドラインの履歴を保持します。

  • HISTFILESIZEは、~/.bash_historyが追跡するコマンドの数を示します。私の場合は2000です。

  • HISTSIZEは、historyコマンド(実際にシェルに組み込まれている)が追跡するコマンドの数です。

端末を開いてhistoryを実行すると、~/.bash_historyから最後のHISTSIZE個のコマンドが選択され、表示されます。

新しいコマンドを実行すると、セッションから古いコマンドが削除され、リストの最後に新しいコマンドが追加され、コマンドの数がHISTSIZEと一致します。

.bash_historyHISTSIZEのコマンドが74個以上あるという質問をしているときに、75で始まる理由だと思います。


man bashから:

  • HISTSIZE

    コマンド履歴に記憶するコマンドの数。

  • HISTFILESIZE

    履歴ファイルに含まれる行の最大数。

12
Ravexina