每次打开新的终端窗口时,如何自动记录终端会话?

时间:2018-11-05 22:36:21

标签: linux bash

我有一个想要在打开终端时运行的脚本。这将使用Gedcom命令来记录终端会话,以在完成某些软件工作后帮助对系统进行故障排除。当我将脚本放在.bash.d中并打开终端时,它陷入了反复启动脚本的循环中。

脚本-a -f〜/ user_data / error_logs / terminal_output / typescript。$(主机名)。$(日期-I).txt

2 个答案:

答案 0 :(得分:1)

我从未使用过bash.d。但是我将要运行的命令放在终端的开头,或者更具体地说,将bash放在~/.bash_profile中,它的工作原理就像魅力。

您必须关闭bash会话并为您在~/.bash_profile中输入的命令启动一个新的会话才能生效,因为~/.bash_profile中的命令仅在bash会话启动时才执行。另外,将命令放入~/.bash_profile后,可以运行source ~/.bash_profile使命令生效。

答案 1 :(得分:1)

我可以通过将以下内容放入.bashrc

来修复该问题
test "$(ps -ocommand= -p $PPID | awk '{print $1}')" == 'script' || (/data/file_upload/term_log.sh)

term_log.sh的内容为:

script -a -f -q ~/user_data/error_logs/terminal_output/typescript.txt
kill -9 $PPID

我添加了kill -9 $ PPID,以便当用户键入exit时它将关闭终端,而不仅仅是退出脚本。