小编Ed *_*Man的帖子

少打断

我经常通过管道将程序输出减少到更少,例如

produce_output | less
Run Code Online (Sandbox Code Playgroud)

这很好用,直到produce_output产生大量输出。如果我搜索文件深处的某些文本,则报告较少

Calculating line numbers... (interrupt to abort)
Run Code Online (Sandbox Code Playgroud)

如果我用 Control+C 中断,它也会杀死produce_output,这会阻止它产生进一步的输出。有没有办法将中断发送到less,以便produce_output继续运行?

我知道我可以使用kill -INT less_process,但我认为必须有更好的解决方案。

less sigint

16
推荐指数
2
解决办法
2554
查看次数

在分离的 tmux 会话中运行命令并将控制台输出记录到文件

我可以在分离的 tmux 会话中运行命令:

tmux new -d 'while true; do date; sleep 1; done'
Run Code Online (Sandbox Code Playgroud)

我可以在附加的 tmux 会话中运行命令并使用以下命令记录控制台输出:

tmux new 'while true; do date; sleep 1; done' \; pipe-pane 'bzip2 > /tmp/log.bz2'
Run Code Online (Sandbox Code Playgroud)

但是如何在分离的 tmux 会话中运行命令并记录控制台输出?以下在分离的 tmux 会话中运行命令,但无法记录输出:

tmux new -d 'while true; do date; sleep 1; done' \; pipe-pane 'bzip2 > /tmp/log.bz2'
Run Code Online (Sandbox Code Playgroud)

我能够得到的最接近的是以下内容,它在非分离的 tmux 中启动命令,开始记录,然后分离:

tmux new 'while true; do date; sleep 1; done'  pipe-pane 'bzip2 > /tmp/log.bz2' \; detach
Run Code Online (Sandbox Code Playgroud)

这有效,但在以下之后会在控制台上打印以下乱码:

^[[?62;9;c
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?

tmux

13
推荐指数
1
解决办法
1万
查看次数

标签 统计

less ×1

sigint ×1

tmux ×1