如何使用Python脚本串联Linux命令并自动执行指定终端命令
用Python脚本执行交互式Linux命令
要实现自动执行指定的nc命令并输入后续指令,Python的subprocess模块是最佳选择——它能处理交互式进程的输入输出。
实现脚本
下面是直接满足需求的Python脚本,会自动启动nc连接SMTP服务器,并发送HELO google.com指令:
import subprocess # 启动nc进程,开启标准输入管道 nc_process = subprocess.Popen( ['nc', '-C', 'smtp.google.com', '25'], stdin=subprocess.PIPE, text=True # 使用文本模式,无需手动编码字节 ) # 发送HELO命令,注意末尾的换行符 nc_process.stdin.write('HELO google.com\n') nc_process.stdin.flush() # 确保输入被立即发送 # 等待进程结束 nc_process.communicate()
关键说明
subprocess.Popen:用于启动外部进程,stdin=subprocess.PIPE允许我们向进程输入内容text=True:让输入输出以字符串而非字节形式处理,简化编码操作flush():必须调用这个方法,否则输入可能会被缓存,不会立即发送给nc进程
注意事项
- 确保系统已安装
nc工具(大部分Linux发行版默认自带) - smtp.google.com的25端口可能被ISP或防火墙拦截,若连接失败可尝试使用465端口(SSL加密),命令改为
nc -C smtp.google.com 465 - 该脚本仅完成基础的连接和HELO指令发送,若需完整的SMTP操作,建议直接使用Python内置的
smtplib模块,比调用nc更可靠
内容的提问来源于stack exchange,提问作者Mitchell Zhou
相关产品推荐
相关产品推荐

