history

To get history show time

echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc
source  ~/.bashrc

history -a will append your current session history to the content of the history file.

history -w will replace the content of the history file with your current session history.

To remove the line number from history, run

history | sed 's|[0-9]\+\s\+||'

Or

history | cut -d' ' -f5-40

Log everything

To log everything, edit

vi /etc/bash.bashrc

Add

test "$(ps -ocommand= -p $PPID | awk '{print $1}')" == 'script' || (script -f $HOME/$(date +"%d-%b-%y_%H-%M-%S")_shell.log)

Or manually start logging in with

script -f $HOME/session.log

Linux Server show IP address in history

Method 2: Log Commands

edit /etc/profile

vi /etc/profile

At end of the file, add

export HISTTIMEFORMAT="%F %T "
PROMPT_COMMAND='echo "$(date +"%F %T") `whoami` from `who -u am i 2>/dev/null | awk "{print \$NF}" | tr -d "()"` ran `history 1 | sed "s/^[ ]*[0-9]\+[ ]*//"`" >> /var/log/commands.log'

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *