install_monitor_user_command_zsh.sh 969 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #!/bin/bash
  2. # 监控用户命令
  3. cat >> ~/.zshrc << 'EOZ'
  4. # ============= 监控用户命令 =============
  5. preexec() {
  6. # Get current date and time
  7. timestamp=$(date "+%Y-%m-%d %H:%M:%S")
  8. # Get current user
  9. user=$(whoami)
  10. # Get current directory
  11. cwd=$(pwd)
  12. # Print command execution info
  13. echo "$timestamp - $user - $cwd - START: $1" >> /tmp/users-command.log
  14. }
  15. # 记录命令执行后
  16. precmd() {
  17. # 获取命令返回值
  18. exit_code=$?
  19. # 获取上一条命令
  20. last_command=$(fc -ln -1)
  21. # 获取当前日期和时间
  22. timestamp=$(date "+%Y-%m-%d %H:%M:%S")
  23. # 获取当前用户
  24. user=$(whoami)
  25. # 获取当前目录
  26. cwd=$(pwd)
  27. # 打印命令执行后的信息
  28. echo "$timestamp - $user - $cwd - END: $last_command [exit code: $exit_code]" >> /tmp/users-command.log
  29. }
  30. # ============= 监控用户命令 =============
  31. EOZ
  32. echo "安装完成: source ~/.zshrc ,请查看:/tmp/users-command.log"