Shell 基于netcat会话的vi

Shell 基于netcat会话的vi,shell,vi,netcat,Shell,Vi,Netcat,可以通过netcat使用vi吗 服务器: mkfifo tun; sh tun | netcat -l 4444 > tun 客户: netcat SERVER_IP 4444 威尔给了我远程外壳,但发送特殊热键是个问题,例如,我不能按ESC进入vi中的“正常模式” 或者将使用最佳选择?此命令以脚本形式从nc运行输入,它将失败,原因与此脚本无法编辑文件的原因相同: #!/bin/sh vi file 42G dd :wq 相反,具有讽刺意味的是,您可以使用script来避免将其作为脚

可以通过netcat使用vi吗

服务器:

mkfifo tun; sh tun | netcat -l 4444 > tun
客户:

netcat SERVER_IP 4444
威尔给了我远程外壳,但发送特殊热键是个问题,例如,我不能按ESC进入vi中的“正常模式”


或者将使用最佳选择?

此命令以脚本形式从nc运行输入,它将失败,原因与此脚本无法编辑文件的原因相同:

#!/bin/sh
vi file
42G
dd
:wq
相反,具有讽刺意味的是,您可以使用
script
来避免将其作为脚本运行,而是获得一个终端会话来与之交互:

server$ mkfifo tun; script -q < tun | netcat -l 4444 > tun
您现在应该能够在
vi
中编辑文件

这显然只是一个简洁的概念证明。希望通过网络提供健壮shell访问的非root用户应使用
sshd

client$ stty -icanon -echo; nc localhost 4444