繁体   English   中英

如何从Python中删除bash shell?

[英]How do I drop a bash shell from within Python?

我正在使用python tcp shell; 我希望能够远程登录到端口,并用shell提示我:例如。

$ telnet localhost 5555
Connected to localhost.
Escape character is '^]'.
$

下面的答案对帮助我前进很有帮助。 这是工作代码。

import SocketServer, os, subprocess
class EchoRequestHandler(SocketServer.BaseRequestHandler ):
    def setup(self):
        print self.client_address, 'connected!'
        self.request.send(str(self.client_address) + '\n')
        self.request.send(os.system('sh'))
    def handle(self):
        data = 'dummy'
        while data:
            data = self.request.recv(1024)
            self.request.send(os.popen(data.strip()).read())
            if data.strip() == 'bye':
                return

    def finish(self):
        print self.client_address, 'disconnected!'
        self.request.send('bye ' + str(self.client_address) + '\n')

server = SocketServer.ThreadingTCPServer(('', 7784), EchoRequestHandler)
server.serve_forever()
import os
os.system('sh')  # or bash, tcsh, zsh, whatever. :-P

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM