17 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			17 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: Bash History | ||
|  | --- | ||
|  | ## History
 | ||
|  | `history` with no arguments prints a chronological list of command line input to standard out, each preceded with a sequential numerical identifier. | ||
|  | 
 | ||
|  | You can pass a single numerical argument, e.g. `history 10`, which will show only the last *n* commands. | ||
|  | 
 | ||
|  | `!` is known as the history expansion. It enables selection of specific historical commands. For example, `!5` will reproduce the fifth command from the beginning. | ||
|  | `!` can be followed with a string as well, e.g. `!cd`. This will reproduce the last command beginning with that string. | ||
|  | 
 | ||
|  | A common use case for history is to recall and repeat a previous used sequence of commands (workflow). This process can be made more convenient by redirecting the output of `history` to the `grep` command using a `|` (pipe). (In it's simplest usage, `grep` takes a single string argument and filters out lines of the command's input that do not contain the string.) For example, `history | grep cd` will output a list of all uses of the cd command (plus any other command that happened to include that string). | ||
|  | 
 | ||
|  | ### More information
 | ||
|  | * [gnu.org](https://www.gnu.org/software/bash/manual/html_node/Bash-History-Builtins.html) (online manual page) | ||
|  | * [rootusers.com](https://www.rootusers.com/17-bash-history-command-examples-in-linux/) (common usage examples) |