我正在尝试构建 vlc,它相当复杂,并且依赖于安装正确的软件包,并且不断因错误而窒息。为了跟踪我的所有步骤,我希望在与 shell 交互时将我正在执行的操作输出到日志文件。
根据有用的答案这个问题
我通过输入以下内容得到了提升的提示
(sudo bash) | tee -a vlc_attempt.log
不幸的是,输出不包括路径提示,我希望看到它来区分输入和输出。
我尝试通过管道将 stderr 传输到 stdout,反之亦然,这两种方法都会产生错误的结果,但不会在文件中输入任何内容。与尝试将 lxterminal 通过管道连接到 tee 或使用 --command= 选项启动 lxterminal 然后将上面的示例命令放在引号中是一样的。从这往哪儿走?
答案1
用于script(1)
记录发送到终端的所有内容:
$ script
Script started, file is typescript
$ # do your work
...
$ # then exit with ^D
$ exit
Script done, file is typescript
您稍后可以使用以下命令查看输出less
:
$ less -r typescript
请注意,日志将包含发送到终端的所有控制字符,例如 ANSI 颜色或 shell 提示符发送的任何其他内容。如果您不想在日志中包含控制字符,则可以PS1
在运行之前简化您的操作script
,或者使用类似stripansi(1)
清理输出的内容。