SunOS 5.10 での複数の PuTTy セッションにわたるコマンド履歴

SunOS 5.10 での複数の PuTTy セッションにわたるコマンド履歴

SunOS 5.10 サーバーに複数の PuTTy セッションを開いており、ksh を使用しています。コマンド履歴は異なるセッション間で共有される場合もあれば、共有されない場合もあります。共有されるかどうかを決定する要因がわかりません。共有されるというのは、あるセッションで実行されたコマンドが、別のセッションでは以前に実行されたコマンドとして表示されることを意味します。

共有したくないのですが、そのための設定はありますか?

答え1

ほとんどの Unix シェルは、シェルの起動時にファイルから古い履歴を一度読み取り、そのシェルを閉じると、履歴がファイルに再度書き込まれます。

通常は古い内容が単純に上書きされるだけなので、以下のようなことをすると…

  1. セッションAとBにログインする
    • AとBは同じ内容を読んでいる~/.history
  2. testAで コマンドを実行する
    • Aはtest記憶に残る歴史を追加する
    • Bはコマンドを知らない
  3. Aからログアウト
    • Aは~/.history履歴を上書きし、test
  4. セッションCにログイン
    • Cは の内容を読み取り~/.historytest
  5. Bからログアウト
    • Bは~/.history履歴を上書きしますが、test
  6. Cからログアウト
    • Cは~/.history履歴を上書きし、test

その後、testステップ 3 の後に履歴ファイルに保存されますが、ステップ 5 で破棄され、ステップ 6 で再度追加されます...

一部のシェルには、これを回避する「履歴を追加」オプションがあります (例: shopt -s histappendBash)。

完全に別の履歴を作成したい場合は、履歴ファイルを にシンボリックリンクするのが簡単な方法です/dev/null

関連情報