linux - 将标准输出重定向到远程终端

标签 linux bash shell stdout

首先我要说的是,我在这方面一点也不熟练, 如果之前有人问过/回答过这个问题,我们深表歉意。 基本上我已经在我妈妈的笔记本电脑上安装了 Ubuntu,我正在寻找一种方法 能够将标准输出从她的计算机直接重定向到我自己的终端。

我所拥有的是非常基本的,但是, 在我的机器上 (A) 我打开一个监听端口

nc -l -v -p (1111)

在我妈妈的机器上(B)

nc -nv x.x.x.x(my IP) 1111 -e /bin/bash

到目前为止一切顺利。 我可以执行 cd/var/logls 并查看内容, 但是当我尝试 morecat 文件时,屏幕保持空白。

如果我执行cat messages >/dev/tty 2>&1,她会告诉我她会看到我在她自己的终端上输入的任何内容, 但我根本看不到内容,只能看到命令本身。

我也尝试过,在我这边和她的机器上打开监听端口,

bash -i >& /dev/tcp/x.x.x.x/1111 0>&1.

现在,我可以看到我的机器 (A) “变成”了她的机器 (B) shell ,但同样, 当执行 cat 或 less 或诸如此类的操作时,屏幕保持空白。

我使用的是 Debian,从我读到的内容和检查/dev 来看,没有 tcp 描述符。 如果我尝试每个示例,`

cat messages &> /dev/stdout/x.x.x.x(my IP)/1111

我得到/dev/stdout/x.x.x.x/22:不是目录

如何将输出直接重定向到终端而不是 txt 文件?

提前非常感谢,

最佳答案

您可以同时通过多种方式进行连接。这意味着您可以使用 VNC 来查看她在桌面上正在做什么。如果您需要检查某些内容,您还可以通过 SSH 连接到当前的 VNC session 。这样,您就可以在后台运行各种命令(例如安装更新),而无需打扰您的妈妈。

由于 VNC 的内置安全性不是很好,因此您可以将两者结合起来。许多 VNS 客户端都有启用 SSH 的选项。如果这没有帮助,您可以启动 SSH 并将远程 VNC 端口的端口转发(仅需要对 localhost 可用,而不是对整个 Internet 可用)添加到您的计算机。然后,您可以针对本地端口运行本地 VNC 客户端,SSH 将确保其正常工作。

ssh -L x:localhost:y snoopy

means "Start an SSH connection to snoopy, and also listen on port x on my machine, and forward any connections there to port y on snoopy."

要将远程显示器 :1 连接到本地显示器 :1,请使用:

ssh -L 5901:localhost:5901 moms-computer

更长的解释:http://www.cl.cam.ac.uk/research/dtg/attarchive/vnc/sshvnc.html

[编辑] 至于为什么捕获某些命令的输出不起作用:某些命令(如 less)需要 TTY(一个真正的终端,能够移动光标、显示颜色等)作为标准输出。当您将标准输出重定向到管道或文件时,这些功能不起作用或无法正常工作。

现在为什么cat不起作用?您的命令仅重定向标准输出。如果 cat 找不到该文件,错误将被打印到 stderr,而不是 stdout,并且您将看不到任何内容。

这是我能想到 ls 起作用的唯一原因; lscat 都是简单命令,不关心 TTY。它们都从父进程继承标准输出,并且都不对标准输出执行任何特殊操作(好吧,ls --color 从 termcap 获取转义序列)。

关于linux - 将标准输出重定向到远程终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29626243/

相关文章:

Bash:用带有特殊字符的逗号分隔

shell - bjam : Unable to load Boost. 构建:找不到 "boost-build.jam"

Python 脚本 : Print new line each time to shell rather than update existing line

linux - 使用 Bash 检测网关/路由器 : Functions and Variables.

C: snprintf 不接受 GUI 显示。需要建议

c# - Linux 上的 .net 核心日期格式

bash - 为ssh获取短路

bash - 初始化变量的不同方法

linux - 在 shell 脚本中执行 make 命令的正确方法是什么?

linux - 如何在 Linux shell 上 pull git 存储库时转义 '@' (at) 符号