
Ubuntu日本語フォーラム

ログインしていません。
コマンドの履歴を見たい場合
# history
と実行すれば、参照できますよね?
しかし、以前のスレッドで
~/.bash_history
に履歴が書き込まれていると載っていましたが、実際にこのファイルにはカーソルの↑を押したときに見れる
履歴とは違うみたいです。
man history
してみると、
~/.history
というファイルにデフォルトで書き込むようになっているらしいのですが、
検索してみると、このようなファイルが見つかりません。
いったい、どこに履歴は書き込まれているのでしょう?
オフライン
おそらく複数の端末を起動しているのが原因では?
参考: http://iandeth.dyndns.org/mt/ian/archives/000651.html
zsh なら端末間の履歴の共有が簡単にできます。
ほかにも先頭にスペースを空けて実行したコマンドの履歴を残さない
(例えば rm -rf * 等の危険なコマンドを実行して誤ってその履歴を実行
してしまうのを防げます) 等便利な機能がたくさんあるのでおすすめです。
オフライン
お返事くれてありがとうございます。
しかし、複数の端末を起動しているということはありません><
f0705さんは、
~/.history
というファイルはありますか?
オフライン
私のホームディレクトリには .history というファイルはありません。
bash を使っているならば
echo $HISTFILE
を実行して表示されるファイルが履歴を記録するファイルです。
history はビルトインコマンドなので man history ではなく man bash を読んでください。
端末を起動 -> てきとうなコマンドを実行 -> 端末を閉じる
を実行しても履歴が残りませんか?
あとは何かのミスでファイルのパーミッションが変わっているかもしれません。
ls -l .bash_history
を実行してファイルの所有者、グループがあなたのアカウントと同じかどうか
確認してみてください。
オフライン
tonpa による投稿:
~/.bash_history
に履歴が書き込まれていると載っていましたが、実際にこのファイルにはカーソルの↑を押したときに見れる
履歴とは違うみたいです。
これは、「.bash_historyに履歴らしきものが書き込まれているが、↑を押したときに
表示されるよりも古いものが .bash_historyに書き込まれている」という現象に遭遇
された、ということで良いでしょうか?
もしそうであれば、.bash_history は bash が終了したタイミング(つまり、端末を
閉じたりしたタイミング)で書き込まれるものです、というのが回答になります。
つまり、
・bashを起動すると、.bash_historyからこれまでの履歴が読み込まれる。
・この履歴は、コマンドを入力するたびに、さらにメモリ上に記録される。
↑で表示されるのは、このメモリ上の記録です。
・bashが終了すると、.bash_historyに、メモリ上にあったデータが記録される。
という動作になっています。
オフライン
なるほど〜。
hitoさんの言う通りなら、↑を押したときのものと.bash_historyの食い違いにも納得がいきます!
# echo $HISTFILE
ためしてみます!
オフライン