在計(jì)算機(jī)編程中,Python作為一種強(qiáng)大的編程語言,提供了豐富的庫(kù)和函數(shù)來操作Linux系統(tǒng)。本文將介紹如何使用Python操作Linux,包括文件和目錄管理、進(jìn)程管理、網(wǎng)絡(luò)配置等。
一、文件和目錄管理
要列出當(dāng)前目錄下的所有文件和文件夾,可以使用Python內(nèi)置的os模塊中的listdir()函數(shù)。該函數(shù)返回一個(gè)列表,包含當(dāng)前目錄下的所有文件和文件夾的名稱。以下是一個(gè)示例代碼:
import os
# 列出當(dāng)前目錄下的所有文件和文件夾
files = os.listdir()
print(files)
要?jiǎng)?chuàng)建一個(gè)新目錄,可以使用Python內(nèi)置的os模塊中的mkdir()函數(shù)。該函數(shù)接受一個(gè)路徑參數(shù),表示要?jiǎng)?chuàng)建的目錄的路徑。如果指定的路徑不存在,則創(chuàng)建一個(gè)新的目錄;如果已經(jīng)存在,則會(huì)拋出異常。以下是一個(gè)示例代碼:
import os
# 創(chuàng)建一個(gè)名為"example_folder"的新目錄
folder_path = "example_folder"
if not os.path.exists(folder_path):
os.mkdir(folder_path)
要?jiǎng)h除一個(gè)目錄及其所有內(nèi)容,可以使用Python內(nèi)置的shutil模塊中的rmtree()函數(shù)。該函數(shù)接受一個(gè)路徑參數(shù),表示要?jiǎng)h除的目錄的路徑。如果指定的路徑不存在,則會(huì)拋出異常。以下是一個(gè)示例代碼:
import shutil
# 刪除名為"example_folder"的目錄及其所有內(nèi)容
folder_path = "example_folder"
if os.path.exists(folder_path):
shutil.rmtree(folder_path)
要重命名一個(gè)文件或文件夾,可以使用Python內(nèi)置的os模塊中的rename()函數(shù)。該函數(shù)接受兩個(gè)參數(shù),第一個(gè)參數(shù)是要重命名的文件或文件夾的舊路徑,第二個(gè)參數(shù)是新路徑。以下是一個(gè)示例代碼:
import os
# 將名為"old_file.txt"的文件重命名為"new_file.txt"
old_file_path = "old_file.txt"
new_file_path = "new_file.txt"
os.rename(old_file_path, new_file_path)
二、進(jìn)程管理
要獲取當(dāng)前運(yùn)行的所有進(jìn)程信息,可以使用Python內(nèi)置的psutil模塊。該模塊提供了一些常量和函數(shù),用于獲取進(jìn)程ID、CPU使用率、內(nèi)存使用情況等信息。以下是一個(gè)示例代碼:
import psutil
# 獲取當(dāng)前運(yùn)行的所有進(jìn)程信息
processes = psutil.process_iter(['pid', 'name', 'cpu_percent', 'memory_info'])
for process in processes:
print(process.info)
要結(jié)束一個(gè)進(jìn)程,可以使用Python內(nèi)置的os模塊中的kill()函數(shù)。該函數(shù)接受兩個(gè)參數(shù),第一個(gè)參數(shù)是要結(jié)束的進(jìn)程的進(jìn)程ID,第二個(gè)參數(shù)是信號(hào)類型。以下是一個(gè)示例代碼:
import os
import signal
import psutil
# 獲取名為"example.py"的進(jìn)程ID并結(jié)束該進(jìn)程
process = psutil.Process(name="example.py")
os.kill(process.pid, signal.SIGTERM)
三、網(wǎng)絡(luò)配置
要獲取本機(jī)IP地址,可以使用Python內(nèi)置的socket模塊中的gethostbyname()函數(shù)。該函數(shù)接受一個(gè)主機(jī)名參數(shù),返回主機(jī)名對(duì)應(yīng)的IP地址。以下是一個(gè)示例代碼:
import socket
# 獲取本機(jī)IP地址
ip_address = socket.gethostbyname(socket.gethostname())
print("IP Address:", ip_address)
四、網(wǎng)絡(luò)配置
要配置Linux的網(wǎng)絡(luò)接口,可以使用Python內(nèi)置的os模塊和subprocess模塊。以下是一個(gè)示例代碼:
import os
import subprocess
# 列出所有網(wǎng)絡(luò)接口
interfaces = os.listdir('/sys/class/net/')
print("Network Interfaces:", interfaces)
# 配置網(wǎng)絡(luò)接口1為自動(dòng)獲取IP地址
interface = 'eth0'
subprocess.run(['sudo', 'ifconfig', interface, 'up'])
subprocess.run(['sudo', 'dhclient', interface])
# 配置網(wǎng)絡(luò)接口2為靜態(tài)IP地址
ip_address = '192.168.1.100'
netmask = '255.255.255.0'
gateway = '192.168.1.1'
subprocess.run(['sudo', 'ifconfig', interface, ip_address, netmask, 'up'])
subprocess.run(['sudo', 'route', 'add', 'default', 'gw', gateway, interface])
以上代碼首先列出了所有的網(wǎng)絡(luò)接口,然后分別配置了兩個(gè)接口為自動(dòng)獲取IP地址和靜態(tài)IP地址。在配置靜態(tài)IP地址時(shí),需要指定IP地址、子網(wǎng)掩碼和默認(rèn)網(wǎng)關(guān)。注意,這些操作需要管理員權(quán)限,因此在命令前使用了sudo
。
五、Python操作Linux的高級(jí)技巧文章來源:http://www.zghlxwxcb.cn/news/detail-798194.html
- 使用
os.system()
執(zhí)行系統(tǒng)命令 - 使用
os.walk()
遍歷目錄 - 使用
os.path.join()
拼接路徑 - 使用
os.path.exists()
檢查文件或目錄是否存在 - 使用
os.path.isfile()
和os.path.isdir()
判斷是文件還是目錄 - 使用
os.path.getsize()
獲取文件大小 - 使用
os.path.getmtime()
和os.path.getctime()
獲取文件的修改時(shí)間和創(chuàng)建時(shí)間 - 使用
os.chmod()
修改文件權(quán)限 - 使用
os.chown()
修改文件所有者和所屬組 - 使用
os.rename()
重命名文件或目錄 - 使用
os.remove()
刪除文件 - 使用
os.rmdir()
刪除空目錄 - 使用
os.makedirs()
遞歸創(chuàng)建多級(jí)目錄 - 使用
os.listdir()
列出目錄下的文件和子目錄 - 使用
os.environ
獲取和設(shè)置環(huán)境變量 - 使用
os.pipe()
創(chuàng)建管道進(jìn)行進(jìn)程間通信 - 使用
os.fork()
創(chuàng)建子進(jìn)程 - 使用
os.exec*()
系列函數(shù)替換當(dāng)前進(jìn)程映像 - 使用
os.waitpid()
等待子進(jìn)程結(jié)束并獲取其返回值 - 使用
os.setuid()
和os.setgid()
切換用戶和組 - 使用
os.umask()
設(shè)置文件創(chuàng)建掩碼 - 使用
os.symlink()
創(chuàng)建符號(hào)鏈接 - 使用
os.readlink()
讀取符號(hào)鏈接指向的路徑 - 使用
os.ttyname()
獲取終端設(shè)備名稱 - 使用
os.dup()
和os.dup2()
復(fù)制文件描述符 - 使用
os.fcntl()
對(duì)文件進(jìn)行低級(jí)操作,如鎖定、解鎖等 - 使用
os.statvfs()
獲取文件系統(tǒng)信息 - 使用
os.sysconf()
獲取系統(tǒng)配置參數(shù) - 使用
os.tempnam()
和os.tmpnam()
生成臨時(shí)文件名 - 使用
os.tmpfile()
創(chuàng)建一個(gè)臨時(shí)文件對(duì)象 - 使用
os.getenv()
和os.putenv()
獲取和設(shè)置環(huán)境變量 - 使用
os.getlogin()
獲取當(dāng)前登錄用戶名 - 使用
os.getpid()
獲取當(dāng)前進(jìn)程ID - 使用
os.getppid()
獲取父進(jìn)程ID - 使用
os.getuid()
和os.getgid()
獲取當(dāng)前用戶和組ID - 使用
os.geteuid()
和os.getegid()
獲取有效用戶和組ID - 使用
os.getgroups()
獲取當(dāng)前用戶所屬的所有組ID - 使用
os.getgrent()
和os.endgrent()
遍歷組信息 - 使用
os.getpwent()
和os.endpwent()
遍歷用戶信息 - 使用
os.getpass()
安全地獲取用戶輸入的密碼 - 使用
os.getcwd()
和os.chdir()
獲取和更改當(dāng)前工作目錄 - 使用
os.scandir()
遍歷目錄(Python 3.5+) - 使用
os.pathconf()
獲取文件系統(tǒng)配置參數(shù) - 使用
os.access()
檢查文件或目錄的訪問權(quán)限 - 使用
os.Xattr
操作擴(kuò)展屬性 - 使用
os.pathconf_names
獲取所有可用的文件系統(tǒng)配置參數(shù)名稱 - 使用
os.pathconf_values()
獲取指定配置參數(shù)的值 - 使用
os.pathconf_max()
獲取指定配置參數(shù)的最大值 - 使用
os.pathconf_min()
獲取指定配置參數(shù)的最小值 - 使用
os.pathconf_flags()
獲取指定配置參數(shù)的標(biāo)志位
六、Python操作Linux的高級(jí)庫(kù)與模塊文章來源地址http://www.zghlxwxcb.cn/news/detail-798194.html
-
psutil
:跨平臺(tái)庫(kù),用于獲取系統(tǒng)進(jìn)程和系統(tǒng)利用率(CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等)信息。 -
paramiko
:用于實(shí)現(xiàn)SSHv2協(xié)議,實(shí)現(xiàn)遠(yuǎn)程服務(wù)器的連接、執(zhí)行命令、傳輸文件等功能。 -
requests
:用于發(fā)送HTTP請(qǐng)求,支持多種請(qǐng)求方法(GET、POST、PUT、DELETE等)。 -
ftplib
:用于實(shí)現(xiàn)FTP協(xié)議,實(shí)現(xiàn)文件的上傳、下載、刪除等操作。 -
xmlrpc
:用于實(shí)現(xiàn)XML-RPC協(xié)議,實(shí)現(xiàn)遠(yuǎn)程過程調(diào)用。 -
httplib2
:用于實(shí)現(xiàn)HTTP/1.1協(xié)議,實(shí)現(xiàn)HTTP客戶端的功能。 -
sqlite3
:用于操作SQLite數(shù)據(jù)庫(kù)。 -
zlib
:用于壓縮和解壓縮數(shù)據(jù)。 -
bz2
:用于壓縮和解壓縮數(shù)據(jù)。 -
gzip
:用于壓縮和解壓縮數(shù)據(jù)。 -
mmap
:用于將文件映射到內(nèi)存中,實(shí)現(xiàn)大文件的高效處理。 -
readline
:用于實(shí)現(xiàn)命令行的歷史記錄功能。 -
rlcompleter
:用于實(shí)現(xiàn)命令行的自動(dòng)補(bǔ)全功能。 -
atexit
:用于注冊(cè)程序退出時(shí)的回調(diào)函數(shù)。 -
signal
:用于處理操作系統(tǒng)信號(hào)。 -
threading
:用于實(shí)現(xiàn)多線程編程。 -
multiprocessing
:用于實(shí)現(xiàn)多進(jìn)程編程。 -
queue
:用于實(shí)現(xiàn)進(jìn)程間的數(shù)據(jù)交換。 -
collections
:提供了一系列有用的容器類,如列表、元組、字典等。 -
itertools
:提供了一系列高效的迭代器函數(shù),如排列組合、循環(huán)迭代等。 -
functools
:提供了一系列高階函數(shù),如裝飾器、偏函數(shù)等。 -
operator
:提供了一系列對(duì)應(yīng)于內(nèi)置類型的運(yùn)算符函數(shù)。 -
builtins
:提供了一些內(nèi)置函數(shù)和異常類。 -
math
:提供了一系列數(shù)學(xué)函數(shù)和常量。 -
cmath
:提供了一系列復(fù)數(shù)數(shù)學(xué)函數(shù)。 -
random
:提供了一系列隨機(jī)數(shù)生成函數(shù)。 -
string
:提供了一系列字符串處理函數(shù)。 -
datetime
:提供了一系列日期和時(shí)間處理函數(shù)。 -
timeit
:用于測(cè)量代碼執(zhí)行時(shí)間。 -
traceback
:用于打印異常堆棧信息。 -
warnings
:用于發(fā)出警告信息。 -
weakref
:用于創(chuàng)建弱引用對(duì)象。 -
gc
:用于控制垃圾回收機(jī)制。 -
marshal
:用于序列化和反序列化Python對(duì)象。 -
array
:用于創(chuàng)建和操作數(shù)組對(duì)象。 -
bisect
:用于在有序列表中查找插入位置。 -
ctypes
:用于調(diào)用C語言動(dòng)態(tài)庫(kù)中的函數(shù)。 -
cPickle
:用于序列化和反序列化Python對(duì)象,兼容舊版本的pickle模塊。 -
sqlite3
:用于操作SQLite數(shù)據(jù)庫(kù)。 -
zlib
:用于壓縮和解壓縮數(shù)據(jù)。 -
bz2
:用于壓縮和解壓縮數(shù)據(jù)。 -
gzip
:用于壓縮和解壓縮數(shù)據(jù)。 -
mmap
:用于將文件映射到內(nèi)存中,實(shí)現(xiàn)大文件的高效處理。 -
readline
:用于實(shí)現(xiàn)命令行的歷史記錄功能。 -
rlcompleter
:用于實(shí)現(xiàn)命令行的自動(dòng)補(bǔ)全功能。 -
atexit
:用于注冊(cè)程序退出時(shí)的回調(diào)函數(shù)。 -
signal
:用于處理操作系統(tǒng)信號(hào)。 -
threading
:用于實(shí)現(xiàn)多線程編程。 -
multiprocessing
:用于實(shí)現(xiàn)多進(jìn)程編程。 -
queue
:用于實(shí)現(xiàn)進(jìn)程間的數(shù)據(jù)交換。
到了這里,關(guān)于Python操作Linux的全面指南的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!