Skip to main content
 首页 » 编程设计

python之如何从 Python 中删除 bash shell

2025年05月04日15Free-Thinker

我正在研究 python tcp shell;我希望能够远程登录到一个端口,并让它用一个 shell 提示我:ex。

$ 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