お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2007-11-30 20:53:56

tonpa
新しいメンバ
登録日: 2007-11-30

コマンドの履歴って、

コマンドの履歴を見たい場合
# history
と実行すれば、参照できますよね?

しかし、以前のスレッドで
~/.bash_history
に履歴が書き込まれていると載っていましたが、実際にこのファイルにはカーソルの↑を押したときに見れる
履歴とは違うみたいです。

man history
してみると、
~/.history
というファイルにデフォルトで書き込むようになっているらしいのですが、
検索してみると、このようなファイルが見つかりません。

いったい、どこに履歴は書き込まれているのでしょう?

オフライン

 

#2 2007-11-30 22:17:03

f0705
メンバ
登録日: 2007-05-03

Re: コマンドの履歴って、

おそらく複数の端末を起動しているのが原因では?
参考: http://iandeth.dyndns.org/mt/ian/archives/000651.html

zsh なら端末間の履歴の共有が簡単にできます。
ほかにも先頭にスペースを空けて実行したコマンドの履歴を残さない
(例えば rm -rf * 等の危険なコマンドを実行して誤ってその履歴を実行
してしまうのを防げます) 等便利な機能がたくさんあるのでおすすめです。

オフライン

 

#3 2007-12-01 12:03:24

tonpa
新しいメンバ
登録日: 2007-11-30

Re: コマンドの履歴って、

お返事くれてありがとうございます。

しかし、複数の端末を起動しているということはありません><
f0705さんは、
~/.history
というファイルはありますか?

オフライン

 

#4 2007-12-01 12:21:27

f0705
メンバ
登録日: 2007-05-03

Re: コマンドの履歴って、

私のホームディレクトリには .history というファイルはありません。
bash を使っているならば
 
echo $HISTFILE

を実行して表示されるファイルが履歴を記録するファイルです。
history はビルトインコマンドなので man history ではなく man bash を読んでください。

端末を起動 -> てきとうなコマンドを実行 -> 端末を閉じる

を実行しても履歴が残りませんか?
あとは何かのミスでファイルのパーミッションが変わっているかもしれません。
  ls -l .bash_history
を実行してファイルの所有者、グループがあなたのアカウントと同じかどうか
確認してみてください。

オフライン

 

#5 2007-12-01 22:59:13

hito
管理者
登録日: 2007-03-18

Re: コマンドの履歴って、

tonpa による投稿:

~/.bash_history
に履歴が書き込まれていると載っていましたが、実際にこのファイルにはカーソルの↑を押したときに見れる
履歴とは違うみたいです。

これは、「.bash_historyに履歴らしきものが書き込まれているが、↑を押したときに
表示されるよりも古いものが .bash_historyに書き込まれている」という現象に遭遇
された、ということで良いでしょうか?

もしそうであれば、.bash_history は bash が終了したタイミング(つまり、端末を
閉じたりしたタイミング)で書き込まれるものです、というのが回答になります。

つまり、
・bashを起動すると、.bash_historyからこれまでの履歴が読み込まれる。
・この履歴は、コマンドを入力するたびに、さらにメモリ上に記録される。
 ↑で表示されるのは、このメモリ上の記録です。
・bashが終了すると、.bash_historyに、メモリ上にあったデータが記録される。
という動作になっています。

オフライン

 

#6 2007-12-03 14:03:33

tonpa
新しいメンバ
登録日: 2007-11-30

Re: コマンドの履歴って、

なるほど〜。
hitoさんの言う通りなら、↑を押したときのものと.bash_historyの食い違いにも納得がいきます!

# echo $HISTFILE
ためしてみます!

オフライン

 

Board footer

Powered by FluxBB