質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

2回答

613閲覧

bashのhistoryが980件程度までしか保持できない

Yoshiro

総合スコア5

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

1クリップ

投稿2020/03/03 05:57

前提・実現したいこと

ubuntu 16.04 標準ターミナルにて作業しています。
historyの履歴が意図せずに消えてしまいます。

1.回避方法があれば教えて下さい。

2.また、これまでに消えたhistoryの復旧方法があれば教えて下さい。

発生している問題

標準ターミナルにて作業を行なった後にexitし、再度開くとhistoryが約980件になっている場合があります。
古いものから消えて行くようです。必ずしも発生する訳ではなく、油断して作業していると再びhistoryが980件程度へと消えてしまいます。
ターミナルは複数使用しています。.bashrcでの保存件数は2000に設定しているつもりです。

初心者ですので、念のため、.bashrcのhistory該当箇所を下に抜粋しました。

該当のソースコード

#.bashrcにおけるhistory該当箇所の抜粋 # don't put duplicate lines or lines starting with space in the history. # See bash(1) for more options HISTCONTROL=ignoreboth # append to the history file, don't overwrite it shopt -s histappend # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) HISTSIZE=2000 HISTFILESIZE=2000 # Add an "alert" alias for long running commands. Use like so: # sleep 10; alert alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]+\s*//;s/[;&|]\s*alert$//'\'')"' export HISTTIMEFORMAT='%F %T '

試したこと

VS codeのterminalを使用している際にこの現象に遭遇しました。そのため、VS codeの使用をやめて標準ターミナルに移行しましたがダメでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

複数端末を開いていた場合、最後に閉じた端末の履歴で.bash_historyが上書きされます。
980件のhistoryが残っている端末を最後に閉じた場合、.bash_historyに980件が保存されます。

おそらく複数端末開いていることが原因かと思いますので、history -aをどこかで実行させる、ログが主目的であればscriptコマンドを使う、などの対策が必要かと思います。

投稿2020/03/11 09:31

Eggpan

総合スコア2727

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yoshiro

2020/03/11 09:43

回答ありがとうございます。 思い当たる節があります。端末を1週間くらい開きっぱなしのことがありました。 、とタイピングしながら思っていましたが、よく考えると、これでは古いhistoryから順番に消えたことの説明がつかないことに気がつきました。 本サーバーを昨年11月末に導入。 本年2月後半に11月から約3週間分のhistoryが消えました。
Eggpan

2020/03/11 09:57

あとはありえるとしたら ・HISTSIZEを一時的に変更して閉じた ・誰かが.bash_historyを直接編集して保存した ・history -c を誰かが実行した くらいしか思いつかないですね・・。historyは.bash_history読み込んでるだけでログ機能ではないので、追いかけるのは難しいと思います。
guest

0

ヒストリサイズを増やしてみてはいかがでしょう?

$ echo "HISTSIZE=100000" >> ~/.bashrc

.bash_historyファイルも確認してみてください。

(追記)
HISTFILESIZEもあります。
HISTFILE(通常は~/.bash_history)に保存するコマンド履歴の上限数(デフォルトは500)

投稿2020/03/03 06:03

編集2020/03/03 06:10
technocore

総合スコア7225

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yoshiro

2020/03/04 06:52

回答ありがとうございます。 昨日、助言に従って以下のようにしました。その後はトラブル見られていません。 HISTSIZE=100000 HISTFILESIZE=100000 トラブル再発しましたら改めて報告致します。 ヒストリを2000件保持する設定にしているにも関わらず、980件程度で消えてしまう仕組みが分からずすっきりしません。。。 消えたヒストリの回復法についてもどなたかアドバイスいただけますと幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問