Linux如何在history上添加时间和用户等参数

更新日期:2021-09-30

来源:系统部落

Linux系统下可以使用history命令来查看指令的历史记录。为了提高history命令的效率,还可以在history命令加上一些参数,比如时间、用户和IP等等参数。那么如何在history上添加这些参数呢?

Linux如何在history上添加时间和用户等参数

  1.设置显示时间和用户:

  echo ‘export HISTTIMEFORMAT=“%F %T `whoami` ”’ 》》 /etc/profile

  执行source生效:

  source /etc/profile

  查看结果:

  history

  1852 2016-01-11 16:24:52 xubo hs

  1853 2016-01-11 16:24:53 xubo ls

  1854 2016-01-11 16:24:56 xubo history

  1855 2016-01-11 16:25:02 xubo history --help

  1856 2016-01-11 16:26:35 xubo vi /etc/profile

  1857 2016-01-11 16:27:27 xubo echo ‘export HISTTIMEFORMAT=“%F %T `whoami` ”’ 》》 /etc/profile

  1858 2016-01-11 16:27:29 xubo vi /etc/profile

  1859 2016-01-11 16:27:42 xubo source /etc/profile

  1860 2016-01-11 16:27:46 xubo history

  1861 2016-01-11 16:27:59 xubo ls

  1862 2016-01-11 16:28:01 xubo history

  1863 2016-01-11 16:31:00 xubo clear

  1864 2016-01-11 16:31:02 xubo history

  2.只看到自己的操作记录(时间,用户,ip名):

  USER_IP=`who -u am i 2》/dev/null| awk ‘{print $NF}’|sed -e ‘s/[]//g’`

  xport HISTTIMEFORMAT=“[%F %T][`whoami`][${USER_IP}] ”

  执行source生效:

  source /etc/profile

  查看结果:

  hadoop@Master:~$ history

  1002 [2016-01-11 16:47:37][hadoop][host-e-150.ustcsz.edu.cn] cd 。。/

  1003 [2016-01-11 16:47:37][hadoop][host-e-150.ustcsz.edu.cn] du -h --max-depth=1

  1004 [2016-01-11 16:47:37][hadoop][host-e-150.ustcsz.edu.cn] du -h --max-depth=2

  1005 [2016-01-11 16:47:37][hadoop][host-e-150.ustcsz.edu.cn] sudo find /* -name pokec-relationships

  1006 [2016-01-11 16:47:37][hadoop][host-e-150.ustcsz.edu.cn] sudo find /* -name pokec

  1007 [2016-01-11 16:47:37][hadoop][host-e-150.ustcsz.edu.cn] sudo find /* -name kddcup

  1008 [2016-01-11 16:47:37][hadoop][host-e-150.ustcsz.edu.cn] sudo find /* -name kddcup*

  1009 [2016-01-11 16:47:37][hadoop][host-e-150.ustcsz.edu.cn] sudo find /* -name *kddcup*

  3.将history记录到log:

  #export HISTTIMEFORMAT=“%F %T $USER_IP:`whoami` ”

  #export HISTTIMEFORMAT=“%F %T $USER_IP:`whoami` ”

  USER_IP=`who -u am i 2》/dev/null| awk ‘{print $NF}’|sed -e ‘s/[]//g’`

  export HISTTIMEFORMAT=“[%F %T][`whoami`][${USER_IP}] ”

  #history

  LOGIP=`who -u am i 2》/dev/null| awk ‘{print $NF}’|sed -e ‘s/[]//g’`

  LOG_DIR=/var/log/history

  if [ -z $LOGIP ]

  then

  LOGIP=`hostname`

  fi

  if [ ! -d $LOG_DIR ]

  then

  mkdir -p $LOG_DIR

  chmod 777 $LOG_DIR

  fi

  if [ ! -d $LOG_DIR/${LOGNAME} ]

  then

  mkdir -p $LOG_DIR/${LOGNAME}

  chmod 777 $LOG_DIR/${LOGNAME}

  fi

  export HISTSIZE=4096

  LOGTM=`date +“%Y%m%d_%H%M%S”`

  export HISTFILE=“$LOG_DIR/${LOGNAME}/${LOGIP}-$LOGTM”

  chmod 777 $LOG_DIR/${LOGNAME}/*-* 2》/dev/null

  运行结果:

  root@xubo:/media/xubo/My Passport/gene_data/1000genomes# ls /var/log/history/root/

  host-e-150.ustcsz.edu.cn-20160111_171845 host-e-150.ustcsz.edu.cn-20160111_172719 host-e-213.ustcsz.edu.cn-20160111_202047

  root@xubo:/media/xubo/My Passport/gene_data/1000genomes# vi /var/log/history/root/host-e-213.ustcsz.edu.cn-20160111_202047

  #1452514808

  ls root/

  #1452514818

  history

  #1452514847

  source /etc/profile

  #1452514848

  history

  #1452514860

  ls root/

  #1452514861

  ls

  #1452514863

  cd root/

  #1452514864

  ls

  #1452514866

  exit

  以上就是Linux如何在history上添加时间和用户等参数的方法了,这样一来就能让history查阅命令时显示时间和用户的这些参数,查找更加精准。