Related thread on HN: https://news.ycombinator.com/item?id=33186412
macOS ships with Z shell settings that do not find commands far back enough using the
history command to be useful.
If you have a shell open and
echo "test", then
history | grep echo, it will return something like:
891 echo "test".
However, if you issue 16 more unique commands,
history | grep echo will no longer be able to find your
891 echo "test" entry.
This is because running the history command only lists the 16 last unique commands. These relatively recent history entries don’t reflect a real world use case of the
history command where you want to remember a complex command you used a week or a month ago.
macOS stores the main configuration file in
You should not edit the one in
To change your
zsh settings, you need to make one in your home directory instead.
This is because the one in
/etc usually gets blown away during updates and if you mess up configuration settings in this file, it can be difficult to fix.
To make your own
.zshrc file that will persist through updates and search through your entire
- Add the following lines to your new
alias history="history 1" HISTSIZE=99999 SAVEHIST=$HISTSIZE
This ensures that history command can display commands back to the beginning of your
history file, rather than the last 16 commands.