假设我打开了三个终端窗口:
- 蒂斯001:我所在的当前终端。当前目录是
~
- ttys002: 当前目录是
~/Desktop
- ttys003:我通过 SSH 连接到远程计算机的终端。本地计算机上的当前目录是
~/test
.远程机器的当前目录是~/abcdef
是否可以执行一个命令,该命令就像在其他打开的终端之一中一样运行,但在我当前活动的终端中打印输出。
例如,从蒂斯001,我可以得到它的输出,ls
就好像它运行在ttys002并打印出来蒂斯001。
我也可以对我连接的远程计算机执行相同的操作吗ttys003ls ~/abcdef
(即得到not的输出ls ~/test
。
我很想听听这在 macOS 和 Linux 上如何工作。
编辑:我知道我问的是“终端窗口”,而不是其中运行的进程。这是故意的。目的是编写一个工具,可以获取用户打开的每个终端窗口可用的文件/文件夹列表。如果终端窗口主动通过 SSH 连接到另一台计算机,那么我想获取远程计算机工作目录中的文件/文件夹。
答案1
看看tmux
或screen
。
您可以通过本地、远程方式多次附加到“会话”,ssh
或者以任何其他方式在相关计算机上启动 shell。
一个会话中发生的所有事情都将显示在所有连接的终端上。
它适用于 MacOS 和 Linux。