Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 将netcat输出发送到光标位置_Linux_Bash_Debian_Netcat_Caret - Fatal编程技术网

Linux 将netcat输出发送到光标位置

Linux 将netcat输出发送到光标位置,linux,bash,debian,netcat,caret,Linux,Bash,Debian,Netcat,Caret,我有一个连接到本地网络的设备,它向运行Debian的PC(连接到同一网络)的特定端口发送字符串。在这台电脑上,我需要将该字符串放到光标位置(例如,在打开的文本编辑器中) 我可以用这个命令从终端读取字符串 nc -l -p 8888 但是我想不出一种方法来把字符串放到光标的位置 测试后,我希望这成为一个服务,仍然活跃在后台 感谢所有有建议的人 编辑: 按照JoseLinares的建议,我尝试使用命令将netcat输出复制到剪贴板 nc -l -p 8888 | xclip 然后我试着把它粘贴到

我有一个连接到本地网络的设备,它向运行Debian的PC(连接到同一网络)的特定端口发送字符串。在这台电脑上,我需要将该字符串放到光标位置(例如,在打开的文本编辑器中)

我可以用这个命令从终端读取字符串

nc -l -p 8888
但是我想不出一种方法来把字符串放到光标的位置

测试后,我希望这成为一个服务,仍然活跃在后台

感谢所有有建议的人

编辑:

按照JoseLinares的建议,我尝试使用命令将netcat输出复制到剪贴板

nc -l -p 8888 | xclip
然后我试着把它粘贴到文本编辑器上,但什么也没发生。 使用echo命令(echo“something”| xclip)它可以工作


另一件奇怪的事情是,如果将输出发送到一个文件(nc-l-p 8888>测试)并使用“nano”编辑器打开该文件,我会看到该值,但如果我尝试使用“cat”打开该文件,则该值为空。

您可以使用xclip将nc的输出保存在剪贴板中:

nc -l -p 8888 | xclip

然后使用XDOWORKER来模拟鼠标中间按钮的点击。这将导致在大多数桌面管理器中将剪贴板内容复制到光标位置:

xdotool click 2   

2是中间按钮的id。
ncurses提供的
tcut cup
命令允许您将终端光标移动到屏幕上的任何位置(0,0为左上方)

您可以这样使用它,例如:

nc -k -l 8888 \
| while read -r line; do
    tput cup 5 5
    printf '%s        ' "$line"
done
这里,
nc
在端口
8888
上接收到的所有内容都写入位置(5,5)处的终端

注1:netcat有多个版本(
nc
)。您的可能没有
-k
开关(=第一次连接结束后请勿死亡)


注2:您提到的是一项服务。服务通常不绑定到终端,但您可以打开一个(
man openvt
)或将上面的命令重定向到现有的一个(例如
/dev/tty1

您的意思是希望将netcat的输出通过管道传输到shell,但要在光标所在的位置?是的@JakeCope,这正是感谢您的回答,nc的结果不会使用xclip复制到剪贴板。例如,如果我尝试使用echo“test”|xclip,它会起作用。@MattiaGAZZANIGA和nc-l-p8888 |&xclip?也不会以这种方式起作用。我尝试使用nc-l-L8888 | xclip-selection剪贴板,但没有luck@MattiaGAZZANIGA你做到了吗?我可以用你的解决方案更新答案谢谢你的回复,我会试试你的指示。关于这项服务,我不需要启动终端(我现在只使用它进行测试),我只需要当我启动电脑时,它会自动监听8888端口,并将所有输出发送到活动用户图形会话的光标位置(它将是浏览器上的输入字段)。恐怕您的程序无法知道当前图形会话中当前活动的终端是什么。在我的机器上,目前有40个伪终端在运行,从系统的角度来看,它们都同样有效。