[macOS] How to search or view previous terminal command history

This happens to most of us that we used some command in the Terminal in the past and forgot about it, some ssh command or a grep with a regex, or a curl command that you want to reuse but do not recall it, in such case you can use a very powerful command called as history,

Whenever you are working on a shell (say a terminal on macOS, or any other CLI), it maintains a record of commands or operations that you had executed during the current session. Using the history command you can works with this list of maintained records and search and manipulate it.

When you fire a history command (with or without arguments) this list is printed out in the console/terminal.


history [-c] [-d offset] [n] or 
history -anrw [filename] or 
history -ps arg [arg...]

History Command Examples:

This will print out all the previously typed command in sequence with the mostly newest command at the last.

1. With no arguments
Terminal history command
Terminal history command
$ history
1    printf '%s\n' ${PATH//:/\/* }
2    vi ?
3    vi asf
4    ssh
5    help
6    vi help
7    vi abc
8    vi abc
9    vim abc.txt
10   grep '%a'
11   ls -ltr
12   clear
1    grep '%chicago%'
1    grep '%linux%'
564  help history
2. With with number [n] argument: history [n]

As you would have seen in the example 1, we get all the previous history list when you simply use history, if you want to restric the results you can make use of a numeric value post the command,

$ history 10
  505  bash
  506  ls -ltrh
  507  grep '%sweden%'
  508  grep '%txt%'
  509  curl http://code2care.org
  510  ls -ltr
  511  ps -ef
  512  clear
  513  pwd
  514  history 10
3. Search history with grep command:

Now this is the most most interesting stuff, you can combine the grep command with history command to find specific key words you are looking for in the command search.

$ history | grep curl
   27  curl https://code2care.org
   29  history | grep curl

⛔️ If you want to delete all historical command list you can make use of history -c.

⚡️ Did you know?: In initial versions of Unix based Operating Systems the history command was available as a separate program. Which is built-in now-a-days, so the separate history program is not used anymore (mostly!)

Have Questions? Post them here!
Try Out Code2care Dev Tools:


Android Java Linux Microsoft Google Python macOS Notepad++ Microsoft Teams CSS PHP SharePoint Html Linux C Programs Bootstrap jQuery Sublime Android Studio Facebook Eclipse WhatsApp News MySQL Json HowTos JavaScript FTP S3


Code2care is an initiative to publish and share varied knowledge in programming and technical areas gathered during day-to-day learnings and development activities.

Students and Software Developers can leverage this portal to find solutions to their various queries without re-inventing the wheel by referring to our easy to understand posts. Technical posts might include Learnings, Tutorials, Trouble-Shooting steps, Video Tutorials, Code Snippets, How Tos, Blogs, Articles, etc.
🎉 We are celebrating the 10th years of Code2care! Thank you for all your support! We hope we made a difference.
We strong support Gender Equality & Diversity.

We stand in solidarity with Ukraine - Make a donation to UNHCR - https://donate.unhcr.org/in/en-in/ukraine-emergency