Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – Bash命令记录器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述@H_616_4@ 我想知道,出于好奇,如果可以编码bash脚本,则记录在 Bash / SSH会话中运行的所有命令.我知道历史记录是假设记录所有运行的命令,但它似乎非常不可靠! 我今天早上一直在搞乱,并提出了以下bash脚本,它记录了用户在终端中运行的内容,但没有正确运行所有命令. prompt_read() { echo -n “$(whoami)@$(hostName):$(pwd)~$“ read u
我想知道,出于好奇,如果可以编码bash脚本,则记录在 Bash / SSH会话中运行的所有命令.我知道历史记录是假设记录所有运行的命令,但它似乎非常不可靠!

我今天早上一直在搞乱,并提出了以下bash脚本,它记录了用户在终端中运行的内容,但没有正确运行所有命令.

prompt_read() {
  echo -n “$(whoami)@$(hostName):$(pwd)~$“
  read userinput
}

prompt_read

while :; do
  if [[ $userinput != exit ]]; then
    logger "logit $userinput"
    bash -c "$userinput"
    prompt_read
  else
    kill -1 $PPID
  fi
done

是否有人知道任何记录命令比历史记录更好,更可靠的东西

干杯

解决方法

历史似乎不可靠的原因是因为它只会在BASH会话结束时写入历史记录,因此您可能会丢失命令.

我的bash配置文件中有一些内容

HISTFILESIZE=10000 # how many lines of history to store in the history file

HISTSIZE=10000 # how many lines of history to store in a session ( I think )

HISTCONTROL=ignoredups # ignore duplicate commands

shopt -s histappend # append history,rather than having sessions obliterate exisTing history
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"

最后几个是重要的,将PROMPT_COMMAND设置为历史记录 – 会立即追加历史记录,而不是会话后追加.并设置shopt -s histappend将使bash会话附加到历史文件,而不是覆盖现有的历史记录.

更多信息:http://linuxcommando.blogspot.com/2007/11/keeping-command-history-across-multiple.html

此外,如果这对您有用,则可以使用HISTFILE环境变量更改用于特定bash会话的历史记录文件名称.

大佬总结

以上是大佬教程为你收集整理的linux – Bash命令记录器全部内容,希望文章能够帮你解决linux – Bash命令记录器所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。