BASH HISTORY

From Indie IT Wiki

HOWTO: HISTORY:

Change Display Format - Add Time & Date

Edit your ~/.bashrc file... or system wide for all users /etc/bash.bashrc

# history format
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S  "

Reload:

source ~/.bashrc
source /etc/bash.bashrc

Delete An Entry From History

Find the number next to the one you want to delete and run...

history -d $num

Log Commands Executed By All Users

Edit the /etc/bash.bashrc file and add this line...

sudo nano /etc/bash.bashrc

PROMPT_COMMAND='history -a >(logger -t "$USER[$PWD] $SSH_CONNECTION")'

or

readonly PROMPT_COMMAND='history -a >(logger -t "$USER[$PWD] $SSH_CONNECTION")'

or

readonly PROMPT_COMMAND='history -a >(logger -p local2.info -t "$USER[$PWD] $SSH_CONNECTION")'

Thanks to Ashok Linux Tips

Prevent Command From Being Recorded In History

If you want to run a command without saving it in history, prepend it with an extra space.

prompt$ echo saved
prompt$ echo not saved \
> #     ^ extra space

For this to work you need either ignorespace or ignoreboth in HISTCONTROL. For example, run...

HISTCONTROL=ignorespace

To make this setting persistent, put it in your .bashrc.