Vim 編輯器與 Python 命令腳本

Vim 文本編輯器

Vim 編輯器的三種模式——命令模式、末行模式和編輯模式python

  • 命令模式:控制光標移動,可對文本進行復制、粘貼、刪除和查找等工做。
  • 輸入模式:正常的文本錄入。
  • 末行模式:保存或退出文檔,以及設置編輯環境。

在每次運行 Vim 編輯器時,默認進入命令模式,此時須要先切換(i)到輸入模式後再進行文檔編寫工做,而每次在編寫完文檔後須要先返回(ESC)命令模式,而後再進入(:)末行模式,執行文檔的保存(wq)或退出(q!)操做。linux

Vim 中經常使用的命令

命令 做用
dd 刪除(剪切)光標所在整行
5dd 刪除(剪切)從光標處開始的5行
yy 複製光標所在整行
5yy 複製從光標處開始的5行
n 顯示搜索命令定位到的下一個字符串
N 顯示搜索命令定位到的上一個字符串
u 撤銷上一步的操做
p 將以前刪除(dd)或複製(yy)過的數據粘貼到光標後面

末行模式中可用的命令

命令 做用
:w 保存
:q 退出
:q! 強制退出(放棄對文檔的修改內容)
:wq! 強制保存退出
:set nu 顯示行號
:set nonu 不顯示行號
:命令 執行該命令
:整數 跳轉到該行
:s/one/two 將當前光標所在行的第一個one替換成two
:s/one/two/g 將當前光標所在行的全部one替換成two
:%s/one/two/g 將全文中的全部one替換成two
?字符串 在文本中從下至上搜索該字符串
/字符串 在文本中從上至下搜索該字符串

Python 命令腳本

shell 的功能 python 都可實現,並且代碼量更少、結構更優、可閱讀性更好,而 python 可實現的功能 shell 卻不必定能。使用 python 做爲 shell 腳本的替代,一般有不少優點:shell

  • python 在主流的linux發行版本中都被默認安裝。
  • python 很是容易閱讀,語法容易理解。
  • python 是一個解釋性語言,這意味着,不須要編譯。
  • python 是一個功能齊全的編程語言。
  • python 能夠訪問優秀的標準庫,還有大量的實現多種功能的第三方庫。
  • python 能夠是命令鏈中的一部分。

腳本聲明

#!/usr/bin/env python3

在腳本中,第一行以(#!)開頭的代碼,在計算機行業中叫作"shebang",其做用是"指定由哪一個解釋器來執行腳本"。編程

#!/usr/bin/env/ python3表示"從PATH環境變量"中查找 python3 解釋器的位置,再調用該路徑下的解釋器來執行腳本。vim

接收命令行參數

在 Python 中,sys 模塊是一個很是經常使用且十分重要的模塊,經過模塊中的 sys.argv 就能夠訪問到全部的命令行參數,它的返回值是包含全部命令行參數的列表(list)。app

len(sys.argv)   # 參數個數
sys.argv[0]     # 腳本名稱
sys.argv[1]     # 參數1
sys.argv[2]     # 參數2

調用Shell命令

經過os模塊system方法會建立子進程運行外部程序,方法只返回外部程序的運行結果。編程語言

import os
print os.system("ls -al")

經過os模塊popen方不單單返回結果,還能夠調用read()方法讀取輸出內容。編輯器

import os
output = os.popen('ls -al').read()
print(output.split('\n'))

不規範的例子

[root@localhost ~]# vim showfile.py

#!/bin/env python3
import os,sys
if __name__ == '__main__':
    directory = sys.argv[1]
    output = os.popen("ls -lh " + directory).read()
    filelist = output.split('\n')
    for fileinfo in filelist:
        print(fileinfo)
[root@localhost ~]# chmod +x showfile.py 
[root@localhost ~]# ./showfile.py /usr/local/share/
total 0
drwxr-xr-x.  2 root root   6 Apr 11 00:59 applications
drwxr-xr-x.  2 root root   6 Apr 11 00:59 info
drwxr-xr-x. 21 root root 243 Aug 15 06:42 man
相關文章
相關標籤/搜索