密钥登录unix

时间:2011-09-25 14:13:24

标签: bash unix

我是unix脚本的新手,我想做以下操作,我不知道如何继续。

我想将终端上给定的某些命令集的输入和输出记录到跟踪文件中。我应该可以打开和关闭它。

E.g。

switch trace on

user:echo Hello World

user:Hello World

switch trace off

然后是跟踪日志文件,例如trace.log,它的内容应该是

echo Hello World

Hello World

我能想到的一件事是使用set -x,将其输出重定向到某个文件,但找不到办法。我做了man setman -x,但我没有找到任何条目。也许我太天真了,但是一些指导会非常有帮助。 我正在使用bash shell。

1 个答案:

答案 0 :(得分:3)

参见script(1),“制作终端会话的打字稿”。要在文件xyz:script xyz中开始新的记录。要添加到文件xyz中的现有记录:script -a xyz

会有一些架空线,例如Script started on ...Script done on ...,您可以使用awk或sed过滤掉打印输出。 -t开关允许实时播放。

我认为最近可能有关于如何在less中显示成绩单的问题,虽然我找不到它,但this questionthis one解决了一些问题查看包含控制字符的文件的问题。 (捕获的成绩单通常包含ANSI控制序列,通常包含Return和Linefeeds。)

更新1 Perl程序script-declutter可用于从脚本日志中删除特殊字符。
该程序在链接中间附近找到大约45行代码。将这些代码行保存在名为script-declutter的文件中,位于PATH上的子目录中(例如,$HOME/bin如果它位于您的搜索路径上,否则(例如)/usr/local/bin)并制作文件可执行文件。之后,像

这样的命令
    script-declutter typescript > out

将删除文件typescript中的大多数特殊字符, 将结果定向到文件out