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 mainated 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!)
- [macOS] How to search or view previous terminal command history
- [Eclipse] Locate Preferences in macOS
- macOS Big Sur compatible Macs List
- How to connect Airpods to Macbook Air or Pro?
- Display ls command file sizes in KB (kilobytes) MB (megabytes) or GB (gigabytes) [Linux/macOS]
- [macOS] Change homepage Macbook Safari Browser
- [Vi/Vim] How to move cursor to the start of a line
- bash: command not found error [macOS Terminal Linux, Unix or Windows]
- Set Python 3.8 as a default python version on macOS
- 30+ Zoom video communications application shortcuts for macOS
- say command macOS terminal examples
- Mac (macos) startup keyboard boot sequence combinations
- Cut, Copy and Paste keyboard commands on mac
- Struts2 : java.lang.ClassNotFoundException: org.apache.commons.fileupload.RequestContext - Java
- Upload Pdf file using PHP Script - PHP
- How to Gzip a file directory on Mac OS X using Terminal Command - Mac-OS-X
- Get-ADUser PowerShell - Get AD user details using email address - SharePoint
- How to Import External Jars to Android Studio 1.0.1 Project - Android-Studio
- How to destroy PHP session() - PHP
- Add Blank Lines Between Each Lines in Notepad++ - NotepadPlusPlus
- Take Screenshot on Mac OS X (Keyboard Shortcuts) - Mac-OS-X
- How to remove blank lines from a file using Notepad++ - NotepadPlusPlus
- Calculate Area of ellipse - C-Program
- SharePoint 2010 DataForm Unable to display this Web Part System.StackOverflowException - SharePoint
- SwissCovid App Launched in Switzerland - News
- ASCII to HEX and HEX to ASCII Conversion Notepad++ - NotepadPlusPlus
- Android : Duplicate registration for activity com.example.abc - Android
- Android Emulator Soft Back button action using Computer keyboard - Android