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 work 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.
Syntax:
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 commands in sequence with the mostly newest command at the last.
1. With no arguments$ history
1 printf '%s\n' ${PATH//:/\/* }
2 vi ?
3 vi asf
4 ssh 192.168.1.111
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 example 1, we get all the previous history list when you simply use history, if you want to restrict 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 interesting stuff, you can combine the grep command with the history command to find specific keywords 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 lists 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 nowadays, so the separate history program is not used anymore (mostly!)
This is not an AI-generated article but is demonstrated by a human.
Please support independent contributors like Code2care by donating a coffee.
Buy me a coffee!

Comments & Discussion
Facing issues? Have questions? Post them here! We're happy to help!