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!
- How to show line numbers in Nano on Mac
- How to install Jupyter Notebook on macOS Sonoma
- How to Disable Remote Management using Mac Terminal
- Test internet speed using macOS Terminal command
- Docker Desktop needs privileged access macOS
- Google Search Hot Trends Screensaver for Mac OS X
- How to do calculations in Mac Terminal
- How to make TextEdit the default text Editor on Mac
- How to Show Full Website Address on Safari for Mac (Ventura/Sonoma)
- The Zsh Shell - Mac Tutorial
- Opening mac Terminal
- How to change the name of your Mac running on macOS Ventura 13
- How to find the Battery Cycle Count on macOS Ventura
- How to set an emoji as Zsh terminal prompt in macOS
- How to access Trash Folder using Mac Terminal Command
- macOS Ventura XCode Command Line Tools Installation
- Hide Bluetooth icon on Mac Menu Bar macOS Ventura 13
- How to run .sh file in Mac Terminal
- Terminal Command to get the list of available shells in macOS
- How to see Storage Information on macOS Ventura
- How to Go To /usr/local/bin on Mac Terminal?
- How to do screen recording on Mac
- How to Find File and Directory Size in Mac Terminal
- Open .bash_profile File in TextEdit using Terminal
- Remove Now Playing icon from macOS Big Sur Menu Bar
- How to increase macOS Terminal text font size (Big Sur) - MacOS
- PowerShell Traditional For Loop Example - Powershell
- Make Notepad++ the default App for .txt file extensions - NotepadPlusPlus
- How to Check PowerShell Version? [Windows/Mac/Linux] - Powershell
- 18: Get Sub List By Slicing a Python List - 1000+ Python Programs - Python-Programs
- How to Sort a LinkedList in Java - Java
- How to know the Serial Number of MacBook on macOS Ventura 13.0 - MacOS
- SharePoint 2016 error - Could not find file ManageUserProfileServiceApplicationTenantSimplified.xml - SharePoint