last命令

last命令:用于显示用户最近登录信息。单独执行last命令,它会读取​​/var/log/wtmp​​的文件,并把该文件的内容记录的登入系统的用户名单全部显示出来。

语法



last(选项)(参数)
-a:把从何处登入系统的主机名称或ip地址,显示在最后一行;
-d:将IP地址转换成主机名称;
-f <记录文件>:指定记录文件。
-n <显示列数>或-<显示列数>:设置列出名单的显示列数;
-R:不显示登入系统的主机名称或IP地址;
-x:显示系统关机,重新开机,以及执行等级的改变等信息。


相关命令

​last​

/var/log/wtmp

所有成功登录/登出的历史记录

​lastb​

/var/log/btmp

登录失败尝试

​lastlog​

/var/log/lastlog

最近登录记录

其中lastb登录需要root权限

清空日志

[root@localhost root]# > /var/log/wtmp

[root@localhost root]# > /var/log/btmp

[root@localhost root]# > /var/log/lastlog

 



 

history命令

history命令:用于显示历史记录和执行过的指令命令。history命令读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号​!执行指定序号的历史命令例如,要执行第2个历史命令,则输入​!2​。

history命令:是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量 ​HISTSIZE​进行控制。默认是不显示命令的执行时间,命令的执行时间,history 已经记录,只是没有显示。

注:如想查询某个用户在系统上执行了什么命令,可以使用root用户身份登录系统,检查Home目录下的用户主目录下的“.bash_history”文件,该文件记录了用户所使用的命令和历史信息。

语法:



history(选项)(参数)

number 显示最近number个记录
-a 添加记录到history文件中
-c 将目前shell中的所有history命令清除
-d [n] 删除指定n条记录
-r 将history文件内容读入到目前shell的history记忆中
-w 将目前history记忆的内容写入到history文件中(直接覆盖方式)


实际应用:

  • 删除历史记录并保存



[root@localhost root] history -cw


  • 删除第5条历史记录



[root@localhost root] history 5


  • 执行第10条命令



[root@localhost root] !10


  • 执行上一条命令



[root@localhost root] !!


  • 显示执行历史记录时间

使用HISTTIMEFORMAT在历史中显示TIMESTAMP。把上 export HISTTIMEFORMAT="%F %T " 命令加入到~/.bashrc中即可在登录后自动开启history时间戳了。添加完成后,执行source .bashrc



[root@localhost root] echo 'export HISTTIMEFORMAT="%F %T "'>> ~/.bashrc


  • Ctrl+R搜索历史命令

用关键字搜索一下历史命令然后重新执行这条命令。方法是:按下Ctrl+R然后输入关键字。如搜索”ping”,则显示历史的命令中含有”ping”的命令 。按回车,就可以重新执行这条命令了,而按左右箭头键则可以直接修改。在命令行提示符下按下Ctrl+R,终端将显示如下提示【reverse-i-search】

last和history  查看登录和操作命令_bash