I'm working in Ubuntu bash terminal application and remotely on a RHEL server in cloud platform. I typed the wrong and dangerous command. I no longer wish to remember dangerous command in the history file. How can I remove or delete a single command from bash history file?
You can use the history command to clear all history or selected command line.
You can use the history command to clear all history or selected command line.
How do I view history with line number?
Simply type the history command:
Sample outputs:
$ history
Sample outputs:
How to delete a single command number 1013 from history
The syntax is:
## Delete the bash history entry at offset OFFSET ## history -d offset history -d number history -d 1013
Verify it:
$ history
How do I delete all the history?
The syntax is:
history -c
Tip: Control bash history like a pro
First, you can increase your bash history size by appending the following config option in ~/.bashrc file:
## Set the maximum number of lines contained in the history file ## HISTFILESIZE=5000000 ## Set the number of commands to remember in the command history ## HISTSIZE=10000 ## Append it ## shopt -s histappend ###### # Controlling how commands are saved on the history file ## # ignoreboth means: ## # a) Command which begin with a space character are not saved in the history list ## # b) Command matching the previous history entry to not be saved (avoid duplicate commands) ## ###### HISTCONTROL=ignoreboth
Save and close the file.
Where to find more information about history command?
You can read bash man page by typing the following command:
Or simply type the following command:
Sample outputs:
$ man bash
Or simply type the following command:
$ help history
Sample outputs:
history: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...] Display or manipulate the history list. Display the history list with line numbers, prefixing each modified entry with a '*'. An argument of N lists only the last N entries. Options: -c clear the history list by deleting all of the entries -d offset delete the history entry at offset OFFSET. -a append history lines from this session to the history file -n read all history lines not already read from the history file -r read the history file and append the contents to the history list -w write the current history to the history file and append them to the history list -p perform history expansion on each ARG and display the result without storing it in the history list -s append the ARGs to the history list as a single entry If FILENAME is given, it is used as the history file. Otherwise, if $HISTFILE has a value, that is used, else ~/.bash_history. If the $HISTTIMEFORMAT variable is set and not null, its value is used as a format string for strftime(3) to print the time stamp associated with each displayed history entry. No time stamps are printed otherwise. Exit Status: Returns success unless an invalid option is given or an error occurs.