首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过网络完全控制终端?

如何通过网络完全控制终端?
EN

Stack Overflow用户
提问于 2013-02-11 04:45:24
回答 3查看 144关注 0票数 1

有没有办法通过网络完全控制终端?例如,我有一个用C语言编写的服务器和客户机,我想向服务器(本例中的服务器是一台linux计算机)发送一个类似rm filecd directory的命令,并将终端输出返回给客户机。我目前使用popen()让它在ls上工作,但它不能更改目录或执行其他复杂的命令。有没有更好的方法来做到这一点,也许是使用fork() pipe()和其他函数,以便使用任何命令并从终端获得完整的输出。

EN

回答 3

Stack Overflow用户

发布于 2013-02-11 04:52:36

您所要求的是由SSH完成的。

例如,我有一个用C编写的服务器和客户机,我想向服务器(在这种情况下,服务器是一台

计算机)发送一个类似rm文件或cd目录的命令,并将终端输出返回给客户机。

我强烈建议您自己实现这样的功能。你自己的方法有几个安全问题的可能性很高。

SSH是远程终端的事实标准,具有强大的加密、经过实际测试的身份验证和强大的维护支持。还有一些优秀的开源实现,比如OpenSSH。

票数 1
EN

Stack Overflow用户

发布于 2013-02-11 04:53:52

不确定您的确切设置是什么,但为什么不在远程端创建一个shell?然后,您可以从命令行执行任何可以执行的操作。

如果可以选择真正的交互式连接,请查看pty(“伪tty”)。这就是真正的终端应用程序的工作方式。

票数 0
EN

Stack Overflow用户

发布于 2013-02-11 04:57:56

如果您可以从ls获得输出,那么您就走在了正确的道路上。

下一件事是能够发送输入,与输出没有太大的不同。您可以使用命令cat同时检查输入和输出是否正确。

然后,只需运行您最喜欢的shell命令,例如bash,您就可以将这些命令写入输入流并读取每个命令的输出。

请注意,cd不是一个程序;它是一个外壳命令,因此您必须运行一个外壳才能使其具有任何意义。对于重定向和其他看起来你想要做的复杂事情也是如此。

PS:请注意,这可能是一个严重的安全问题,您应该认真考虑已有的替代方案,如其他人所说的ssh。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14802393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档