1. linux虛擬終端bash裡面運行python 2,然後如何調到vi鍵綁定
bash里先啟動vi,比如vi yourpythonfile.py
然後鍵入你的代碼
命令模式:!python yourpythonfile.py
執行完回車就可以接著編輯了
要是實驗室的系統估計vi/vim是配置好的支持高亮縮進語法檢查自動完成等等,要是自己的機器,想用vim做python集成開發環境需要一些插件和定製的配置,可以參考下面的鏈接完成配置
http://sontek.net/blog/detail/turning-vim-into-a-modern-python-ide#test-integration
2. linux下,寫了一個python腳本,但是在bash里只能通過python環境運行,無法直接運行,求助
#!/usr/bin/env python
# -*- coding: utf-8 -*-
一般來說在linux下運行的python文件要加上這兩句。
在Linux系統下可以免去很多錯誤
3. 如何使用python腳本調用adb shell裡面的命令
python調用Shell腳本,有兩種方法:os.system(cmd)或os.popen(cmd),前者返回值是腳本的退出狀態碼,後者的返回值是腳本執行過程中的輸出內容。實際使用時視需求情況而選擇。
現假定有一個shell腳本
test.sh:
#!/bin/bash
echo "hello world!"
exit 3
4. Linux:Python編寫Linux自定義命令工具
摘要: Linux , Python
工作中需要頻繁使用到一個字元串的md5,因此編寫一個md5命令工具,輸入字元串直接得到輸出,並且命令支持參數設置,比如是否事先格式化,指定不同參數可以支持多功能輸出,操作步驟如下
直接vim一個腳本,腳本名md5不需要.py後綴,這樣更像一個命令,注意在腳本第一行引入python解釋器,並設置utf-8編碼
其中-f支持先格式化再得到md5,-l支持傳入多個字元串用空格分開
賦予可執行許可權
測試是否符合要求
直接放置到 /usr/local/bin 目錄下(需要root許可權)
也可以使用軟連接的方式,推薦使用絕對路徑
之後就可以在環境變數中直接使用到md5命令
shebang :中文翻譯「釋伴」,由 #! 開頭的字元串,出現在文本文件的 第一行 。類UNIX操作系統的程序載入器會分析shebang後的內容,將這些內容作為解釋命令,並調用該指令,並將載有 shebang的文件路徑作為該解釋器 的參數
比如 #!/bin/bash 就是使用/bin/bash作為解釋器運行腳本,如果以Python作為解釋器運行腳本先找到Python解釋器的路徑,一般在Linux自帶的 /usr/bin/python 是Python2版本,也可以指定其他Python版本 #!/opt/anaconda3/bin/python ,第二行為 # coding=utf-8 用來指定編碼格式,否則Python2輸出中文亂碼
對於自定義腳本,推薦放置在 /usr/local/bin 目錄,有多個可執行文件目錄在環境變數中,區別如下:
/bin : 包含二進制可執行文件,為系統最基本的命令,如ls等
/sbin : 與/bin 類似,不同之處是其為root許可權命令文件
/usr/bin : 系統預裝可執行文件,會隨著系統升級而改變
/usr/sbin : 同上,不同之處是其為root許可權運用
/usr/local/bin : 三級目錄,用戶自己的可執行文件,系統不管理
/usr/local/sbin : root許可權用戶程序
5. python執行shell命令
Python執行Linux系統命令,即在Python腳本中調用Shell命令,具體有以下四種方法:
1、os.system
//僅僅在一個子終端運行系統命令,而不能獲取命令執行後的返回信息
system(command)->exit_status
Executethecommand(astring)inasubshell.
//如果再命令行下執行,結果直接列印出來:
>>>os.system('ls')
04101419778.CHMbashdocumentmediapy-djangovideo
11.
all-
2、os.popen
//該方法不但執行命令還返回執行後的信息對象
popen(command[,mode='r'[,bufsize]])->pipe
Openapipeto/.
3、使用模塊 subprocess
>>>importsubprocess
>>>subprocess.call(["cmd","arg1","arg2"],shell=True)
//獲取返回和輸出:
importsubprocess
p=subprocess.Popen('ls',shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
forlineinp.stdout.readlines():
printline,
retval=p.wait()
4、使用模塊 commands
>>>importcommands
>>>dir(commands)
['__all__','__builtins__','__doc__','__file__','__name__','getoutput','getstatus','getstatusoutput','mk2arg','mkarg']
>>>commands.getoutput("date")
'WedJun1019:39:57CST2009'
>>>
>>>commands.getstatusoutput("date")
(0,'WedJun1019:40:41CST2009')
6. python腳本入參的單、雙引號
Linux的shell中存在一些特殊字元(保留字),我們將這些具有一些特殊功能的字元叫做meta(元字元),還有一些普通的,沒有特殊功能的字元我們叫做literal(文字)。bash中,常使用的引用有如下三種方法:
1、單引號:單引號中的所有meta均被當作普通字元使用。
2、雙引號:在雙引號中的大部分meta都被當作普通字元,但某些字元的功能保留(如$)。
3、反斜線:只有緊接在反斜線(跳脫字元)之後的單一meta才被當作普通字元。
Windows的cmd下,同樣也有類似的概念。單引號和雙引號有時候沒有區別(可以使用任意一個),有時候只能用特定的一個。
這篇文章主要記錄python腳本入參帶有&&符號時,在Linux和Windows平台的不同表現。
編寫python腳本quote.py,內容如下:
$ cat quote.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
print(sys.argv[1])
1、參數不使用引號
$ python quote.py whoami&&whoami
whoami
sunday
可以看出,第一個whoami被當作入參傳給腳本,第二個whoami當作bash命令,在終端執行。
2、參數使用單引號
$ python quote.py 'whoami&&whoami'
whoami&&whoami
可以看出,&&被當作普通字元,whoami&&whoami作為參數傳給了腳本。
3、參數使用雙引號
$ python quote.py "whoami&&whoami"
whoami&&whoami
可以看出,&&被當作普通字元,whoami&&whoami作為參數傳給了腳本。
在Windows執行腳本,用戶為winsunday:
1、參數不使用引號
C:\test>python quote.py whoami&&whoami
whoami
winsunday
可以看出,第一個whoami被當作入參傳給腳本,第二個whoami當作CMD命令,在終端執行絕或消。
2、參數使用單引號
C:\test>python quote.py 'whoami&&whoami'
'whoami
'whoami'' 不是內部或外部命令,也不是可運行的程序
或批處理文件。
可以看出,並知單引號被當作普通字元,&&對命團猜令進行了分割,'whoami作為第一個參數被傳給腳本;whoami'被認為是一個命令進行執行(報錯了)。
3、參數使用雙引號
C:\test>python quote.py "whoami&&whoami"
whoami&&whoami
可以看出,雙引號時&&被當作普通字元,whoami&&whoami作為整體被傳給腳本。