操作系统:debian8。有两个用户:普通用户和root用户。
touch /var/log/all.log
chmod 777 /var/log/all.log
对于正常情况。
vim /home/normal/.bashrc
export HISTTIMEFORMAT="%Y-%m-%d:%H-%M-%S: `whoami` : "
export PROMPT_COMMAND='history > /var/log/all.log'
source /home/normal/.bashrc
普通用户的所有历史命令都会写入/var/log/all.log。
对于 root 来说方法相同。
vim /root/.bashrc
export HISTTIMEFORMAT="%Y-%m-%d:%H-%M-%S: `whoami` : "
export PROMPT_COMMAND='history > /var/log/all.log'
source /root/.bashrc
root(用户)的所有历史命令都会写入/var/log/all.log。
现在我想将两个配置文件合并为一个文件。
删除 /home/normal/.bashrc 和 /root/.bashrc 中的两行。1
. 将它们合并为/etc/profile
。
vim /etc/profile
export HISTTIMEFORMAT="%Y-%m-%d:%H-%M-%S: `whoami` : "
export PROMPT_COMMAND='history > /var/log/all.log'
source /etc/profile
normal 的所有历史信息不能写入 /var/log/all.log ,
root 的所有历史信息都可以写入 /var/log/all.log 。2
. 合并到 /etc/bash.bashrc 中。
vim /etc/bash.bashrc
export HISTTIMEFORMAT="%Y-%m-%d:%H-%M-%S: `whoami` : "
export PROMPT_COMMAND='history > /var/log/all.log'
source /etc/bash.bashrc
normal 的所有历史信息不能写入 /var/log/all.log。root
的所有历史信息都可以写入 /var/log/all.log。
为什么不能将两个配置文件 --/home/normal/.bashrc 和 /root/.bashrc-- 合并为一个文件?
答案1
您正在寻找的是 $HISTFILE,您可以从以下位置获取该信息man bash
:
HISTFILE ---- The name of the file in which command history is saved (see HISTORY below). The default value is ~/.bash_history. If unset, the command history is not saved when a shell exits.
因此,在您的配置文件中将 $HISTFILE 设置为 /var/log/all.log 就可以了。
export HISTFILE=/var/log/all.log