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.
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 command 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 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!
- Opening mac Terminal
- How to change default macOS Terminal Window size
- How to clear Mac Terminal screen
- Find Hostname of Mac running on macOS Ventura 13
- Installing MongoDB on Linux/Unix/macOS/Ubuntu
- How to switch from bash to zsh shell in macOS Terminal
- Limit scrollback rows in macOS Terminal
- How to Set Background Wallpaper on macOS 13 Ventura
- This operation couldnt be completed. Unable to locate a Java Runtime. [macOS]
- Encode or Decode Base64 String using Mac Terminal Command
- List of All Apple Silicon ARM Based M1/M2 Mac [updated Oct 2022)
- How to remove Siri from Menu Bar [macOS Big Sur]
- Must Know Homebrew Commands for Mac/Linux Users
- Hide Keyboard Text Input Icon on macOS Ventura Menu Bar
- 13.0 MacOS Ventura release date
- How to change the default location of Mac Screenshot
- How to set Out Of Office (OOO) on Outlook for Mac
- 30+ Zoom video communications application shortcuts for macOS
- How to install wget on macOS
- Mac turn dark mode on or off using terminal command
- Create Symbolic Link using Terminal Command
- Mac - How to Install VirtualBox
- How to Enable or Disable Dark Mode on macOS Ventura 13
- How to install homebrew (brew) on M1 Mac
- How to uninstall Microsoft Outlook on Mac
- How to integrate Salesforce CRM Sales and Service with Microsoft Teams - Teams
- Deploy SharePoint wsp solution package using PowerShell - SharePoint
- How to install maven in macOS using Terminal Command - MacOS
- How to destroy PHP session() - PHP
- Install Oh My Zsh on Ubuntu Docker complete steps - Ubuntu
- How to Skip or Ignore JUnit test cases in Java - Java
- macOS Ventura 13: The default interactive shell is now zsh - zsh
- Turn Off Auto-Brightness on iPhone running iOS 16 - iOS