teetty 使用教程
项目介绍
teetty
是一个用于在伪终端(PTY)中执行命令的封装二进制文件,同时提供远程控制功能。这允许将进程的标准输出记录到文件中,而输出与不通过 teetty
传递时的输出没有区别。从程序的角度来看,它连接到一个终端。同时,teetty
将输出多路复用到终端和可选的日志文件中,并允许在用户键盘仍然连接的情况下远程向程序发送输入。底层功能在 tty-spawn
crate 中可用。
项目快速启动
安装
你可以使用以下脚本安装预构建的二进制文件:
curl -LsSf https://github.com/mitsuhiko/teetty/releases/latest/download/teetty-installer.sh | sh
或者使用 cargo
自行构建:
cargo install teetty
使用示例
在一个终端中,我们告诉 teetty
创建并连接到一个新的 FIFO 命名 stdin
,将输出写入一个名为 stdout
的文件,并启动一个 Python 进程:
teetty --in /stdin --out /stdout -- python
应用案例和最佳实践
远程控制和日志记录
teetty
的一个典型应用场景是远程控制和日志记录。例如,你可以在服务器上运行一个需要长时间运行的进程,并使用 teetty
将其输出记录到文件中,同时允许远程输入控制进程。
teetty --in /stdin --out /stdout -- long-running-process
多路复用输出
teetty
还可以用于将输出多路复用到多个目标,例如终端和日志文件。
teetty --in /stdin --out /stdout --log /logfile -- another-process
典型生态项目
faketty
faketty
是一个模拟两个伪终端以保留标准输出和标准错误的工具。这与 teetty
的 --script-mode
类似。
script
script
是一个大多数类 Unix 系统内置的工具,可以捕获终端的输出。
tmux
tmux
模拟整个终端,包括绘图表面,并允许你分离和重新连接到多个终端会话。
expect
expect
允许你脚本化交互式命令行实用程序。这个工具的变体存在于编程语言中,如 Python 的 pexpect
。
通过这些工具和 teetty
的结合使用,可以实现更复杂的终端管理和远程控制需求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考