I can't know what happened without access to your machine but here is a short explanation of how the history system works which might help you figure out what happened.
Each open terminal has its own history buffer. These buffers are appended to your
$HISTFILE when the terminal is closed (maybe also whenever the buffer is filled, but I don't know how often that happens). Now, the way to search for a command in your history is to simply run:
history | grep command
But if the command was run in a different shell, you won't see it in the history of your current one. To fix that, you close all open shells, open a new terminal window and search your history again.
If that still doesn't help, you've probably passed the threshold of commands stored in the
$HISTFILE. The behavior of the
$HISTFILE is controlled by various environment variables (see
man bash for the full list), but the relevant ones here are:
The number of commands to remember in the command history (see HISTORY below). If the value is 0, commands are not saved in the history list. Numeric values less than
zero result in every command being saved on the history list (there is no limit). The shell sets the default value to 500 after reading any startup files.
The maximum number of lines contained in the history file. When this variable is assigned a value, the history file is truncated, if necessary, to contain no more than
that number of lines by removing the oldest entries. The history file is also truncated to this size after writing it when a shell exits. If the value is 0, the history
file is truncated to zero size. Non-numeric values and numeric values less than zero inhibit truncation. The shell sets the default value to the value of HISTSIZE after
reading any startup files.
The higher values you set these to, the more commands you'll keep in your
$HISTFILE. For example, I use:
If you want to import the history from one shell into another, you can use the
$ help history | grep -E -- '-a|-r'
-a append history lines from this session to the history file
-r read the history file and append the contents to the history
history -a to write the history from one terminal and then
history -w to read it from the another. Now, running
history will show you the history of both shells.
Finally, you can make all your terminals share the same history by adding these lines to your
## history -a causes the last command to be written to the
## history file automatically and history -r imports the history
export PROMPT_COMMAND='history -a;history -r'
I also suggest you add this:
## Make Bash append rather than overwrite the history on disk:
shopt -s histappend