命令行歷史
history
登錄shell時,會讀取命令歷史文件中記錄下的命令:~/.bash_history
登錄進shell後新執行的命令只會記錄在緩存中;這些命令會用戶退出時“追加”至命令歷史文件中;
history:
-a: 追加本次會話新執行的命令歷史列表至歷史文件中;
-d: 刪除歷史中指定的命令;
-c: 清空命令歷史;
快捷操作:
!#: 調用歷史中第#條命令;
!string:調用歷史中最近一個以string開頭的命令;
!!: 上一條命令
讓history記錄顯示時間
效果:
[root@localhost ~]# history 5
365 [2020-01-27 20:50:11]vim .bash_profile
366 [2020-01-27 20:50:50]vim /etc/profile
367 [2020-01-27 20:51:34]source /etc/profile
368 [2020-01-27 20:51:41]history
369 [2020-01-27 20:57:37]history 5
配置:
在全局配置文件/etc/profile或者用戶家目錄.bash_profile的文件末尾添加一行配置,並使配置生效
# vim /etc/profile或.bash_profile
export HISTTIMEFORMAT="[%F %T]"
####################################
使配置立即生效
[root@localhost ~]# source [/etc/profile|.bash_profile]
還可以顯示執行的用戶及其IP
# vim /etc/profile
#在文件最後加上如下內容
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` #獲取用戶登錄IP
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
export HISTTIMEFORMAT="[%F %T][`whoami`][${USER_IP}] " #定義歷史命令顯示格式
####################################
[root@localhost ~]# source /etc/profile
查看歷史命令,已生效
[root@localhost ~]# history 5
433 [2020-01-27 21:39:40][root][192.168.0.106]source /etc/profile
434 [2020-01-27 21:39:42][root][192.168.0.106]history 5
435 [2020-01-27 21:39:49][root][192.168.0.106]reboor
436 [2020-01-27 21:39:51][root][192.168.0.106]reboot
437 [2020-01-27 21:43:13][root][192.168.0.106]history 5