Linux 中使用过的命令的日志在哪里?

Linux 中使用过的命令的日志在哪里?

在Linux中,我们通常会使用很多命令,并且很难记住所有命令。

 history

命令提供了我们之前使用过的命令列表,但其限制较少。新命令会覆盖旧命令,然后旧命令会丢失。我认为命令日志存储在系统中的某个地方。

该日志可以打开和阅读吗?如果可能的话,我们可以更改它可以处理的最大日志大小吗?

命令的输出history取决于登录用户吗?

答案1

一个简单的解决方案是增加 保存和返回的命令数量history。如果您使用 bash,请将此行添加到您的~/.profile

export HISTSIZE=100000
export HISTFILESIZE=999999

man bash

   HISTFILESIZE
          The maximum number of lines contained in the history file.  When
          this  variable  is  assigned  a value, the history file is trun‐
          cated, if necessary, to contain no  more  than  that  number  of
          lines  by removing the oldest entries.  The history file is also
          truncated to this size after writing it when a shell exits.   If
          the  value  is  0,  the  history file is truncated to zero size.
          Non-numeric values and numeric values  less  than  zero  inhibit
          truncation.   The  shell  sets the default value to the value of
          HISTSIZE after reading any startup files.
   HISTSIZE
          The number of commands to remember in the command  history  (see
          HISTORY  below).   If  the value is 0, commands are not saved in
          the history list.  Numeric values less than zero result in every
          command  being  saved  on  the history list (there is no limit).
          The shell sets the  default  value  to  500  after  reading  any
          startup files.

答案2

该文件~/.bash_history保存已执行命令的列表。至少在CentOS中这个文件存在,我不知道在其他发行版中是否存在。

答案3

没有这样的日志,至少默认情况下没有。

您可以安装一些工具,例如acct(“用于进程和登录记帐的 GNU 记帐实用程序”),它可以跟踪系统上执行的所有程序。

acct为大多数(可能除了tiny-distros 之外的所有)Linux 发行版打包。主页位于http://www.gnu.org/software/acct/

acct提供以下命令,lastcomm可能会满足您的要求:

ac 打印有关用户连接时间的统计信息。 ac 可以告诉您特定用户或用户组连接到系统的时间,按天打印总计或 wtmp 文件中的所有条目。

accton 打开或关闭记帐。

lastcomm 列出了系统上执行的命令,最新的命令在前,显示每个命令的运行状态。最后,您可以在 acct 文件中搜索特定用户、终端或命令。

sa 将 acct 文件中的信息汇总到 savacct 和 usracct 文件中。它还生成有关命令的报告,给出调用次数、使用的 CPU 时间、平均核心使用率等。

dump-acct dump-utmp 以人类可读的格式显示 acct 和 utmp 文件。

答案4

请注意,如果您不使用bash,则惯于是在~/.bash_history,但是~/.<shell name>_history。例如,我使用zsh,我的日志在~/.zsh_history.

相关内容