提起系統管理員,看字面意思似乎是個比較輕鬆,技術含量不那麼高的工作。然而,真正的系統管理員行業對從業人員的素質要求並不低,最基本的要求就是大而全,不要求精通某一項,但是相關的知識技能都必須要懂一些。
一個合格的系統管理員,最好在網絡操作系統、網絡數據庫、網絡設備、網絡管理、網絡安全、應用開發等六個方面具備紮實的理論知識和應用技能,才能在工作中做到得心應手,遊刃有餘。在出現的短短几年內,系統管理員就已經成為現代化公司必備的崗位了,身處IT技術發展迅猛的時代,一名合格的系統管理員就必須建立起終身學習的理念。
Python語言已經發展出了許多特性,它適用於所有可能的IT子領域。系統管理員可以利用Python特性編寫高效的腳本程序,並創建命令行工具(用於數據類型、循環、條件、函數和錯誤處理等)來管理其系統環境。那麼,在python腳本編程方面,有哪些內容是系統管理員必須瞭解的呢?
在不同的操作系統中安裝Python
1. Linux
大多數Linux發行版默認安裝了Python 2,其中一些發行版也默認安裝了Python 3。
在Debian系列Linux發行版上,使用如下命令安裝Python 3。
<code>sudoaptinstallpython3
/<code>
在centos上使用如下命令安裝Python 3。
<code>sudoyuminstallpython3/<code>
如果使用上述命令無法安裝Python,請在官網下載Python安裝包並根據引導安裝Python。
2. Windows
要在Microsoft Windows中安裝Python,需要從Python官網下載可執行文件並安裝。首先從官網下載python.exe,然後選擇要安裝的Python版本,最後雙擊下載的安裝文件並安裝Python。在安裝嚮導中,選中將“Python添加到路徑”的複選框,然後按照說明安裝Python 3。
安裝pip並使用pip安裝軟件包:
<code>sudoaptinstallpython-pip---Thiswillinstallpipforpython2.
sudoaptinstallpython3-pip---Thiswillinstallpipforpython3.
/<code>
在Linux上安裝pip:
<code>sudoaptinstallpython-pip---Thiswillinstallpipforpython2.
sudoaptinstallpython3-pip---Thiswillinstallpipforpython3./<code>
在Windows上安裝pip。
python -m pip install pip
3.Mac
安裝Python 3之前需要安裝brew,使用如下命令安裝brew。
<code>/usr/bin/ruby-e"$(curl-fsSL
https://raw.githubusercontent.com/Homebrew/install/master/install)"
/<code>
然後使用brew安裝Python 3。
<code>brewinstallpython3
/<code>
4.Jupyter notebook
方法一:Anaconda包含了Jupyter Notebook,下載Anaconda後根據引導安裝即可。
方法二:使用pip安裝。
<code>pipinstalljupyter
/<code>
在Linux中,運行pip install jupyter這條命令將會安裝Python 2的Jupyter。如果我們需要安裝Python 3的Jupyter,可以運行以下命令。
<code>pip3installjupyter
/<code>
5.安裝並使用虛擬環境
在Linux上,按照如下步驟安裝虛擬環境。
1.首先檢查是否已經安裝pip,然後使用pip安裝Python 3。
<code>sudoaptinstallpython3-pip
/<code>
2.使用pip3安裝虛擬環境。
<code>sudopip3installvirtualenv
/<code>
3.創建一個虛擬環境。我們可以為虛擬環境起一個名字,這裡使用pythonenv。
<code>virtualenvpythonenv
/<code>
4.激活這個虛擬環境。
<code>sourcevenv/bin/activate
/<code>
5.使用完畢後,使用如下命令註銷virtualenv。
<code>deactivate
/<code>
在Windows上,使用命令pip install virtualenv安裝虛擬環境,安裝步驟與Linux相同。
函數
函數是執行特定功能的一組語句。使用函數有助於將程序分解為更小的部分,也可以使程序更有條理,因為它提高了代碼的可重用性,避免重複編寫代碼。我們來參考以下語法。
<code>deffunction_name(parameters):
statement(s)
/<code>
參考以下代碼。
<code>defwelcome(name):
print("Hello"+name+",WelcometoPythonProgramming!")
welcome("John")/<code>
輸出如下:
Hello John, Welcome to Python Programming !
1.return語句
return語句用於退出函數。我們來參考以下語法。
<code>return[expression_list]
/<code>
此語句可以包含一個用於返回值的表達式。如果沒有表達式,則該函數將返回None,如下所示。
<code>defreturn_value(a):
ifa>=0:
returna
else:
return–a
print(return_value(2))
print(return_value(-4))
/<code>
輸出如下:
2
4
2.lambda函數
在Python中,匿名函數是一個沒有名稱的函數,也叫lambda函數,因為它是使用關鍵字lambda定義的。當我們需要一個臨時函數時,就可以使用lambda函數。
lambda函數可以與內置函數一起使用,例如filter()函數和map()函數。
filter()函數只接收一個可迭代對象作為輸入,並返回一個元素列表。
以下是使用filter()函數的示例代碼。
<code>numbers=[10,25,54,86,89,11,33,22]
new_numbers=list(filter(lambdax:(x%2==0),numbers))
print(new_numbers)
/<code>
輸出如下:
[10, 54, 86, 22]
在此示例中,filter()函數將lambda函數和一個列表作為參數。
map()函數在接收指定函數後返回一個結果列表。以下是使用map()函數的示例代碼。
<code>my_list=[1,5,4,6,8,11,3,12]
new_list=list(map(lambdax:x*2,my_list))
print(new_list)
/<code>
輸出如下:
[2, 10, 8, 12, 16, 22, 6, 24]
這裡,map()函數將lambda函數和一個列表作為參數。
Python調試技術
我們可以使用多種方法調試Python程序,以下是調試Python程序的4種方法。
● print語句:這是瞭解程序運行時狀況的一種簡單方法,它可以檢查程序執行的過程。
● 日誌(logging):這類似於print語句,但可以輸出更多上下文信息,所以我們十分有必要學習它。
● pdb調試器:這是一種常用的調試技術。pdb的優點是使用非常方便,只需要一個Python解釋器,一段Python程序,就可以在命令行使用pdb了。
● IDE調試器:IDE集成了調試器,它可以讓我們執行其編寫的代碼,並在需要時檢查正在運行的程序。
調試基本程序崩潰的方法
每當Python程序崩潰時,我們可以查看崩潰的位置,並通過將其導入腳本,或從命令行啟動來使用跟蹤模塊。
現在我們創建一個腳本,命名為trace_example.py,並添加以下代碼。
<code>classStudent:
def__init__(self,std):
self.count=std
defgo(self):
foriinrange(self.count):
print(i)
return
if__name__=='__main__':
Student(5).go()
/<code>
運行腳本程序,如下所示。
<code>student@ubuntu:~$python3-mtrace--tracetrace_example.py
---modulename:trace_example,funcname:<module>
trace_example.py(1):classStudent:
---modulename:trace_example,funcname:Student
trace_example.py(1):classStudent:
trace_example.py(2):def__init__(self,std):
trace_example.py(5):defgo(self):
trace_example.py(10):if__name__=='__main__':
trace_example.py(11):Student(5).go()
---modulename:trace_example,funcname:init
trace_example.py(3):self.count=std
---modulename:trace_example,funcname:go
trace_example.py(6):foriinrange(self.count):
trace_example.py(7):print(i)
0
trace_example.py(6):foriinrange(self.count):
trace_example.py(7):print(i)
1
trace_example.py(6):foriinrange(self.count):
trace_example.py(7):print(i)
2
trace_example.py(6):foriinrange(self.count):
trace_example.py(7):print(i)
3
trace_example.py(6):foriinrange(self.count):
trace_example.py(7):print(i)
4
/<module>/<code>
因此,通過在命令行中使用trace --trace,我們就可以逐行跟蹤程序。當程序崩潰時,我們就會了解崩潰時的信息。
寫給系統管理員的Python腳本編程
購買請到異步社區
《寫給系統管理員看的Python腳本編程》
本書是一本介紹Python編程的進階圖書,包含了大量關於Python腳本設計的主題。本書共18章,首先帶領讀者快速複習Python基礎知識,然後循序漸進地介紹了一些實用主題,包括Python腳本的調試和分析、編寫單元測試、系統管理、處理文件和數據、文件歸檔以及文本處理等。
然後介紹了網絡編程、處理電子郵件、遠程控制主機、創建圖形用戶界面、處理日誌文件、編寫網絡爬蟲、數據收集和可視化以及操作數據庫等更加高級的主題。本書中每一知識點都結合可以運行的源碼講解,幫助讀者更好地掌握Python腳本編程。
本書要求讀者具備Python的基礎知識,非常適合對Python編程有基本瞭解並且有興趣將編程技能擴展到命令行腳本和系統管理的讀者閱讀。
查看目錄
-END-
閱讀更多 異步社區 的文章