When working on Linux it is often very helpful to review the commands that you have entered. For example, you may want to paste some of the commands into a script or may want to recreate the steps to solve the problem you were working on.
Here is how I do it:
## Modify History for Current Session # Add Timestamp to .bash_history HISTTIMEFORMAT="%d/%m/%y %T " # Write Current History to .bash_history history -a # Update .bash_history with every command export PROMPT_COMMAND='history -a' ## Add to .bash_profile to make changes permanent echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> $HOME/.bash_profile echo "export PROMPT_COMMAND='history -a'" >> $HOME/.bash_profile ## Save the last 10,000 lines to disk and keep 5000 lines in memory cat $HOME/.bashrc | sed 's/#\?\(HISTSIZE\s*=\s*\).*$/\15000/' | sed 's/#\?\(HISTFILESIZE\s*=\s*\).*$/\110000/' > temp.txt mv -f temp.txt $HOME/.bashrc source ~/.bashrc # See also https://www.digitalocean.com/community/tutorials/how-to-use-bash-history-commands-and-expansions-on-a-linux-vps ## From BASH_BUILTINS(1)... # # history [n] # history -c # history -d offset # history -anrw [filename] # history -p arg [arg ...] # history -s arg [arg ...] # With no options, display the command history list with line numbers. Lines listed with a * have been modified. An argument of n # lists only the last n lines. If the shell variable HISTTIMEFORMAT is set and not null, it is used as a format string for strftime(3) # to display the time stamp associated with each displayed history entry. No intervening blank is printed between the formatted time # stamp and the history line. If filename is supplied, it is used as the name of the history file; if not, the value of HISTFILE is # used. Options, if supplied, have the following meanings: # -c Clear the history list by deleting all the entries. # -d offset # Delete the history entry at position offset. # -a Append the ``new'' history lines (history lines entered since the beginning of the current bash session) to the history file. # -n Read the history lines not already read from the history file into the current history list. These are lines appended to the # history file since the beginning of the current bash session. # -r Read the contents of the history file and use them as the current history. # -w Write the current history to the history file, overwriting the history file's contents. # -p Perform history substitution on the following args and display the result on the standard output. Does not store the results # in the history list. Each arg must be quoted to disable normal history expansion. # -s Store the args in the history list as a single entry. The last command in the history list is removed before the args are # added. # # If the HISTTIMEFORMAT variable is set, the time stamp information associated with each history entry is written to the history file, # marked with the history comment character. When the history file is read, lines beginning with the history comment character followed # immediately by a digit are interpreted as timestamps for the previous history line. The return value is 0 unless an invalid option is # encountered, an error occurs while reading or writing the history file, an invalid offset is supplied as an argument to -d, or the # history expansion supplied as an argument to -p fails.