#macos
Related thread on HN: [https://news.ycombinator.com/item?id=33186412](https://news.ycombinator.com/item?id=33186412)
# The Problem
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 `/etc/zshrc`.
You should ****not**** edit the one in `/etc`.
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.
# The Solution
To make your own `.zshrc` file that will persist through updates and search through your entire `history` file:
1. `nano ~/.zshrc`
2. Add the following lines to your new `.zshrc` file:
```bash
alias history="history 1"
HISTSIZE=99999
SAVEHIST=$HISTSIZE
```
3. Save
This ensures that history command can display commands back to the beginning of your `history` file, rather than the last 16 commands.