簡體   English   中英

寫一個在ubuntu終端上輸入命令的python腳本?

[英]Write a python script that enters commands on an ubuntu terminal?

我在Ubuntu 16.04上使用spyder。 我想編寫一個腳本,它將在同一Linux終端中執行多個命令。

首先,我想打開一個終端,然后SSH到另一台計算機,然后輸入我的密碼,然后繼續輸入命令。

我已經嘗試過os.system(command)但這並沒有為我打開新的終端,也沒有運行我想要的命令。

os.system("gnome-terminal -e 'bash -c \\"ssh blah blah blah; exec bash\\"'")可以正常工作,但是在嘗試輸入密碼時卡住了。

在這種情況下,如何使用Python腳本輸入命令?

如果您希望使用密碼自動連接並登錄到ssh服務器,則可以使用sshpass輸入密碼,但最好使用SSH密鑰。 Github上對如何生成密鑰一個很好的教程在這里

如果您希望在SSH進入服務器后執行命令,可以使用以下命令執行: os.system("ssh user@host 'command1 && command2'")

為了在終端上執行命令,您可以使用python的子進程模塊。 目前已經是一個問題, 在這里就如何執行使用與子單個終端與多個命令。

如果使用的是Gnome,則可以將subprocess模塊與gnome-terminal命令一起使用。

這個想法是產生一個GUI終端,並通過-e選項在其中執行腳本。 這是一個非常簡單的示例,說明如何在新終端中執行Shell腳本。

myscript.sh

#!/bin/bash

pwd
ls
cat

spawn_and_run.py

import subprocess

subprocess.Popen(["gnome-terminal", "-e", "myscript.sh"])

運行python spawn_and_run.py將產生一個新的終端,打印工作目錄( pwd ),打印該目錄的內容( ls ),然后回顯來自stdin (不帶參數的cat )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM