记录用户操作历史命令history

我们知道可以使用history命令,查看自己的操作记录,但如果你是root用户,如何查看其它用户的操作记录呢?
 
其实history命令只是把当前用户目录下的~/.bash_History文件内容列出来而已。
 1.第一种:配置/etc/bashrc
一般而言,history展示的操作记录是没有时间的,可以在/etc/bashrc文件中加入下列代码:
HISTFILESIZE=2000  # #设置保存历史命令的文件大小
HISTSIZE=2000      ##保存历史命令条数
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S:"   ###记录每条历史命令的执行时间
export HISTTIMEFORMAT
注意:
其中:
        %Y:4位数的年份;
        %m:2位数的月份数;
        %d:2位数的一个月中的日期数;
        %H:2位数的小时数(24小时制);
        %M:2位数的分钟数;
        %S:2位数的秒数

 2.第二种:配置脚本,放入/etc/profile
#history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
HISTDIR=/usr/share/.history
if [ -z $USER_IP ]
then
USER_IP=`hostname`
fi
if [ ! -d $HISTDIR ]
then
mkdir -p $HISTDIR
chmod 777 $HISTDIR
fi
if [ ! -d $HISTDIR/${LOGNAME} ]
then
mkdir -p $HISTDIR/${LOGNAME}
chmod 300 $HISTDIR/${LOGNAME}
fi
export HISTSIZE=4000
DT=`date +%Y-%m-%d_%H:%M:%S`
export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT"
HISTTIMEFORMAT="`whoami`: | %F | %T: |${USER_IP}:" 
chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/nul

脚本的作用是记录用户登陆后的操作,如果这个用户是root用户,会在/usr/share/.history/下创建用户名的文件夹,里面存放用户相关的历史命令记录。

 

下面看下一个文件中的内容

[root@iZ2ze2db4rp7b7weknjhneZ root]# cat 49.4.151.23.history.2018-03-08_12:25:10
#1520483137
cd /usr/share/.history/
#1520483138      ###记录命令执行的时间戳,可通过相关软件转换
ls
#1520483139
cd xin/
#1520483140
ls
#1520483150
cd ..
#1520483151
ls

 

3.第三种:配置/etc/profile

这种方法最简单,只需要在/etc/profile中加入下面一句话即可。

#history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
HISTTIMEFORMAT="`whoami`: | %F | %T: |${USER_IP}:" 

配置完,需要使用source /etc/profile使其生效。

效果图如下:

 

转载于:https://www.cnblogs.com/dadonggg/p/8522907.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要删除Linux中的历史命令记录,可以使用以下命令: 1. 清空历史命令记录history -c 2. 删除特定命令记录history -d 命令编号 其中,命令编号是指要删除的命令历史记录中的序号。 3. 配置不记录历史命令: 在用户的.bashrc文件中添加以下行: unset HISTFILE 这样就可以禁止记录历史命令了。 ### 回答2: 如果在Linux终端中使用命令历史记录功能,那么输入的命令将被记录在一个历史记录文件中。有时候,我们不希望这些历史命令记录被保留下来,因为这可能会导致一些安全隐患。下面是如何在Linux系统中删除历史命令记录的几种方法: 1. 手动清除历史记录:可以使用“history命令查看命令历史记录并删除记录。可以使用以下命令删除历史记录文件中的所有记录: ```bash # 清空历史命令记录 history -c ``` 2. 禁用记录功能:可以在命令终端配置文件(例如.bashrc或.bash_profile)中禁用记录功能。您可以编辑文件并添加以下行: ``` unset HISTFILE ``` 这会禁用历史记录文件,从而防止命令记录。 3. 自动删除命令:您还可以在配置文件中添加以下行,以便自动删除记录命令: ``` export HISTSIZE=0 export HISTFILESIZE=0 ``` 添加这些行后,每次终端关闭时,历史记录将会被删除。 4. 使用“HISTIGNORE”:如果您希望删除某些命令而不是删除所有历史记录,可以使用“HISTIGNORE”环境变量。您可以在配置文件中添加以下行,并用逗号分隔要忽略的命令: ``` export HISTIGNORE="ls:cd" ``` 这样,我们就会忽略所有的“ls”和“cd”命令并不会将这些命令记录历史记录文件中。 总之,以上是Linux删除历史命令记录的方法,适用于各种Linux版本和终端中,可以根据个人需求选择合适的方法。 ### 回答3: Linux系统中的历史命令记录可以很方便地帮助用户查找和重复执行过去的命令。但是有时候我们可能需要删除这些命令记录,以维护隐私或清理系统。本文将介绍几种方法来删除Linux历史命令记录。 1.使用命令行参数 在Linux终端中,我们通常可以使用history命令查看历史命令。默认情况下,这些命令记录会保存在bash的历史记录文件中,该文件的默认位置是~/.bash_history。如果我们不想让某个命令记录历史记录文件中,可以在执行该命令时添加一个空格和连字符(-)作为命令行参数。例如: $ ls -l 这个命令将被记录历史记录文件中。如果我们使用: $ ls -l - 则该命令不会被记录历史记录文件中。 2.手动删除历史记录文件 手动方式是删除历史记录的最基本方式。可以使用以下命令来删除历史记录文件: $ rm ~/.bash_history 这将永久删除历史记录文件。然而,当您再次输入命令时,bash将创建新的历史记录文件。如果您希望不再将历史记录保存在文件中,则需要使用下面这个命令: $ unset HISTFILE 这将阻止bash保存任何历史记录。 3.更改历史记录文件 如果您希望将历史记录保存到不同的文件中,可以使用以下命令: $ export HISTFILE=/path/to/new/history/file 按照这个命令,在执行命令时,bash将命令记录保存到指定路径的文件。如果您想要删除历史记录,请删除该文件即可。 总的来说,Linux系统中删除历史命令记录的方法有很多,上述三种就是一些比较实用的方式,具体使用方法需要根据自己的需求和偏好进行选择。但是需要注意的是,在删除历史记录时要小心,避免误删除重要的记录文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值