记录Mac终端的脚本

6
script 是一个非常好用的工具,可以记录终端中的所有操作(详情请见:http://linuxers.org/article/script-command-line-tool-recordsave-your-terminal-activity)。然而,在 Mac 上内置的 script 可执行文件无法记录 typescript 的时间。我正在尝试编译包含 Linux 版本 script 的 util-linux 包(详情请见:https://github.com/karelzak/util-linux),但一直没有成功。
$ make
make  all-recursive
Making all in po
make[2]: Nothing to be done for `all'.
  CC       lib/libcommon_la-strutils.lo
In file included from lib/strutils.c:16:
./include/strutils.h:77: error: conflicting types for 'strmode'
/usr/include/string.h:168: error: previous declaration of 'strmode' was here
lib/strutils.c:351: error: conflicting types for 'strmode'
/usr/include/string.h:168: error: previous declaration of 'strmode' was here
lib/strutils.c: In function 'size_to_human_string':
lib/strutils.c:442: warning: format '%jd' expects type 'intmax_t', but argument 8 has type 'uint64_t'
make[2]: *** [lib/libcommon_la-strutils.lo] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

有没有适用于Mac的已编译可执行文件?

4个回答

10
在OS X上,script版本具有-r选项,可以将所有输入、输出和时间记录在单个文件中。可以使用-p选项重新播放。

说明:

开始:

$ script -r

开始输入命令...

停止:

$ exit

重放:

$ script -p typescript


7

ttyrec 包含解决时间问题的修复,就所有目的而言,它与 script 的功能相同(在其手册中被描述为 script 的衍生物)。它可以通过 brew (brew install ttyrec) 或 MacPorts (sudo port install ttyrec) 获得。

  • ttyrec: 官方网站
  • shelr.tv: 终端录制的 YouTube
  • ttygif: 将终端录制转换为动画 GIF 的工具

OSX High Sierra:错误:找不到端口ttyrec,而且Brew版本失败,显示 pty's已用完 :( - Ivan Marinov

3
如果有人在尝试找出如何在MacOS上重放使用util-linux版本的script记录的脚本时遇到困难,你可能会发现这个链接很有用:https://bitbucket.org/rewbs/docker-scriptreplay。它只是一个非常简单的基于Alpine Linux的Docker镜像,使您能够通过Docker在MacOS上运行scriptreplay。我发现这对确保广泛的Mac用户可以使用标准工具重放在Linux服务器上记录的脚本非常有用。希望其他人也会发现这个链接有用! :)

0
我试图编译工具包util-linux(https://github.com/karelzak/util-linux,其中包含Linux版本脚本),但没有成功:
编译器输出的“不兼容类型”错误消息是导致失败的原因。在OS X(基于BSD)系统头文件中的声明与来自util-linux的包含文件中的声明之间存在冲突(基于GNU / Linux)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接