首先我要说的是,我根本不熟练, 如果之前有人问过/回答过,请道歉。 基本上我已经在我的妈妈笔记本电脑上安装了Ubuntu,我正在寻找一种方法 能够将stdout从她的电脑直接重定向到我自己的终端。
我所拥有的是非常基本但是, 在我的机器上(A)我用
打开一个监听端口nc -l -v -p (1111)
在我的妈妈机器上(B)
nc -nv x.x.x.x(my IP) 1111 -e /bin/bash
到目前为止一切顺利。
我可以cd /var/log
和ls
查看内容,
但是当我尝试more
或cat
文件时,屏幕仍为空白。
如果我做cat messages > /dev/tty 2>&1
,她会告诉我,她看到我在自己的终端上输入的内容,
但我根本没有看到内容,只是命令本身。
我也尝试过,在我的终端和机器上打开一个监听端口,
bash -i >& /dev/tcp/x.x.x.x/1111 0>&1.
现在有了这个,我可以看到我的机器(A)'成为'她的机器(B)外壳,但是, 当做猫或更少或等等时,屏幕仍为空白。
我正在使用Debian,从我读过的内容和检查/ dev开始,没有tcp描述符。 如果我按照例子尝试,`
cat messages &> /dev/stdout/x.x.x.x(my IP)/1111
我得到/dev/stdout/x.x.x.x/22: Not a directory
如何将输出直接重定向到终端,而不是重定向到txt文件?
非常感谢,
答案 0 :(得分:0)
您可以通过多种方式同时连接。这意味着您可以使用VNC查看她在桌面上正在做什么。如果您需要检查某些内容,可以通过SSH 连接连接到当前的VNC会话。这样,您可以在后台运行各种命令(例如安装更新),而不会打扰您的妈妈。
由于VNC的内置安全性不是很好,你可以将两者结合起来。许多VNS客户端都可以选择启用SSH。如果这没有帮助,您可以启动SSH并将远程VNC端口(只需要localhost
,而不是整个Internet)的端口转发添加到您的计算机。然后,您可以针对本地端口运行本地VNC客户端,SSH将确保这有效。
ssh -L x:localhost:y snoopy
表示“启动与snoopy的SSH连接,并在我的计算机上侦听端口x,并将其中的任何连接转发到snoopy上的端口y。”
要将远程显示器:1连接到本地显示器:1,请使用:
ssh -L 5901:localhost:5901 moms-computer
更长的解释:http://www.cl.cam.ac.uk/research/dtg/attarchive/vnc/sshvnc.html
[编辑] 至于为什么捕获某些命令的输出不起作用:某些命令(如less
)期望TTY(一个真正的终端能够移动光标周围,显示颜色等)作为标准输出。将stdout重定向到管道或文件时,这些不起作用或无法正常工作。
现在为什么cat
不起作用?您的命令仅重定向stdout。如果cat
找不到该文件,则错误将打印到stderr,而不是stdout,您将看不到任何内容。
这是ls
工作时我能想到的唯一原因; ls
和cat
都是简单的命令,不关心TTY。它们都从父进程继承了它们的stdout,并且它们都没有对stdout做任何特殊操作(好吧,ls --color
从termcap获取转义序列。)