在本文中,小编将简单介绍如何在Linux中使用script和scriptreplay命令,它们可以帮助您在给定会话期间记录命令及其在终端上打印的输出。
虽然history命令是一个很棒的命令行实用程序,可以帮助用户存储以前使用的命令,但它不存储命令的输出。因此,script命令可以派上用场,为你提供强大的功能,帮助你将终端上打印的所有内容记录到 log_file中。
如果你想从log_file中查看历史记录中命令的输出,可以稍后参考该文件。此外,你还可以通过使用计时信息来重播使用scriptreplay命令录制的命令。
如何在Linux中录制终端?
如果要在Linux中创建打字稿(终端会话的记录),可以使用script命令启动新的shell会话并将终端上显示的所有内容(包括输入和输出)记录到指定的文件名中:
script my_terminal_session.txt
运行脚本命令后,你将看到终端提示符,可以在其中运行各种命令,并且你的终端会话将记录到“ my_terminal_session.txt ”文件中。
现在尝试执行一些命令,让脚本记录终端上执行的命令。
cal w uptime whoami pwd
要停止录制,只需键入exit或按Ctrl+D即可。
exit
现在尝试查看日志文件“ my_terminal_session.txt ”以获取所有记录的命令,当你查看日志时,会发现该脚本还存储换行符和退格键。
vi my_terminal_session.txt
你可以使用-a
选项附加日志文件或打字稿,保留先前的内容。
script -a my_terminal_session.txt vi my_terminal_session.txt
要记录除交互式shell会话之外的单个命令的结果,请使用-c
选项:
script -c 'hostname' script.log
如果你希望脚本以安script静模式运行,则可以使用-q
选项,这样你不会看到显示脚本正在启动或退出的消息。
script -c 'who' -q script.log
要将计时信息设置为标准错误或文件,请使用--timing
选项。当你想要重新显示存储在log_file中的输出时,计时信息非常有用。
让我们启动script并运行命令w、uptime和cal进行记录。
script --timing=time.txt script.log
你可以查看上面计时命令的script.log和time.txt文件。
vi script.log
现在查看time.txt文件。
vi time.txt
time.txt文件有两列,第一列显示自上次显示以来经过的时间,第二列显示本次显示的字符数。
使用手册页--help
寻求更多选项和使用脚本命令行实用程序的帮助。
在Linux中重播录制的终端会话
scriptreplay命令有助于重播script命令记录的log_file中的信息。
计时信息由与script命令一起使用的-timing=file
选项定义,本例文件是与script命令一起使用的script.log。
scriptreplay --timing=time.txt script.log
当使用计时信息重放log_file时,记录的命令被运行并且它们的输出在原始输出被显示的同时被显示。
总结
script和scriptreplay这两个命令易于使用,当你需要多次运行同一批命令时,它会很有帮助。
它们对于管理只有命令行界面与系统交互的服务器有很大帮助。希望本文内容对大家有所帮助,有任何不懂的操作可以参考手册页内容。