将 netcat 输出发送到光标位置
send netcat output to cursor position
我有一个连接到本地网络的设备,该设备将字符串发送到 PC 的特定端口(连接到同一网络)运行 Debian。在这台电脑上,我需要将该字符串放在光标位置(例如,在打开的文本编辑器中)。
我可以使用此命令从终端读取字符串
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
然后用xdotool模拟鼠标中键的点击。这将导致在大多数桌面管理器中复制光标位置的剪贴板内容:
xdotool click 2
2是中间按钮的id
tcut cup
命令,由 ncurses
提供,允许您将终端光标移动到屏幕上的任何位置(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
)
我有一个连接到本地网络的设备,该设备将字符串发送到 PC 的特定端口(连接到同一网络)运行 Debian。在这台电脑上,我需要将该字符串放在光标位置(例如,在打开的文本编辑器中)。
我可以使用此命令从终端读取字符串
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
然后用xdotool模拟鼠标中键的点击。这将导致在大多数桌面管理器中复制光标位置的剪贴板内容:
xdotool click 2
2是中间按钮的id
tcut cup
命令,由 ncurses
提供,允许您将终端光标移动到屏幕上的任何位置(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
)