參考實驗樓課程Linux命令實例練習
comm命令
通常比較文本文件的內容很有幫助。對於系統管理員和軟件開發者來說,這個尤為重要。一名系統管理員可能,例如,需要拿現有的配置文件與先前的版本做比較,來診斷一個系統錯誤。同樣的,一名程序員經常需要查看程序的修改。
comm 命令將逐行比較已經排序的兩個文件。顯示結果包括 3列:第 1
列為只在第一個文件中找到的行,第 2列為只在第二個文件中找到的行,第 3
列為兩個文件的共有行。
注意,comm命令和 join、uniq命令一樣,只能用於已經排過序的數據。
命令格式:
comm [選項]文件 1
文件 2
常用參數:
參數 描述
| -1
不輸出文件 1
特有的行
-2
不輸出文件 2
特有的行
-3
不輸出兩個文件共有的行
diff命令
類似 comm命令,diff
命令被用來監測文件之間的差異。然而,diff是一款更加復雜的工具,它支持許多輸出格式,並且一次能處理許多文本文件。軟件開發員經常使用 diff程序來檢查不同程序源碼版本之間的更改,diff能夠遞歸地檢查源碼目錄,經常稱之為源碼樹。diff程序的一個常見用例是創建
diff文件或者補丁,它會被其它程序使用,例如 patch程序(我們後面會講到),來把文件從一個版本轉換為另一個版本。
diff 在命令行中打印每一個行的改動,並且 diff是 svn、cvs、git等版本控制工具不可或缺的一部分。
diff 命令是 differential的縮寫。
命令格式:
diff [選項]文件
常用參數:
參數 描述
| -c
上下文模式,顯示全部內文,並標出不同之處
-u
統一模式,以合並的方式來顯示文件內容的不同
-a
只會逐行比較文本文件
-N
在比較目錄時,若文件 A
僅出現在某個目錄中,預設會顯示:Only in 目錄。若使用-N
參數,則 diff 會將文件 A
與一個空白的文件比較
-r
遞歸比較目錄下的文件
patch命令
patch 命令被用來把更改應用到文本文件中。它接受從 diff程序的輸出,並且通常被用來把較老的文件版本轉變為較新的文件版本。讓我們考慮一個著名的例子。Linux內核是由一個大型的,組織松散的貢獻者團隊開發而成,這些貢獻者會提交固定的少量更改到源碼包中。這個
Linux內核由幾百萬行代碼組成,雖然每個貢獻者每次所做的修改相當少。對於一個貢獻者來說,每做一個修改就給每個開發者發送整個的內核源碼樹,這是沒有任何意義的。相反,提交一個 diff文件。一個 diff
文件包含先前的內核版本與帶有貢獻者修改的新版本之間的差異。然後一個接受者使用 patch程序,把這些更改應用到他自己的源碼樹中。使用 diff/patch組合提供了兩個重大優點:
1. 一個 diff文件非常小,與整個源碼樹的大小相比較而言。
2. 一個 diff文件簡潔地顯示了所做的修改,從而允許程序補丁的審閱者能快速地評估它。
當然,diff/patch能工作於任何文本文件,不僅僅是源碼文件。它同樣適用於配置文件或任意其它文本。
准備一個 diff文件供 patch
命令使用,GNU
文檔建議這樣使用 diff命令:
diff-Naur old_file new_file > diff_file
old file 和 new file部分不是單個文件就是包含文件的目錄。這個 r選項支持遞歸目錄樹。
命令格式:
diff [選項]補丁文件
常用參數:
參數 描述
| -p num
忽略幾層文件夾
-E
如果發現了空文件,那麼就刪除它
-R
取消打過的補丁
df命令
linux 中 df命令的功能是用來檢查 linux
服務器的文件系統的磁盤空間占用情況。可以利用該命令來獲取硬盤被占用了多少空間,目前還剩下多少空間等信息。
df 命令是 disk free的縮寫。
命令格式:
df [選項]文件
常用參數:
參數 描述
| -a
全部文件系統列表
-h
方便閱讀方式顯示
-i
顯示 inode
信息
-T
文件系統類型
-t<文件系統類型>
只顯示選定文件系統的磁盤信息
-x<文件系統類型>
不顯示選定文件系統的磁盤信息
du命令
linux 中 du命令也是查看使用空間的,但是與 df
命令不同的是 Linux du命令是對文件和目錄磁盤使用的空間的查看。
du 命令是 disk usage的縮寫。
命令格式:
du [選項]文件
常用參數:
參數 描述
| -a
顯示目錄中個別文件的大小。
-b
顯示目錄或文件大小時,以 byte為單位。
-c
除了顯示個別目錄或文件的大小外,同時也顯示所有目錄或文件的總和。
-k
以 KB(1024bytes)為單位輸出。
-m
以 MB 為單位輸出。
-s
僅顯示總計,只列出最後加總的值。
-h
以 K,M,G為單位,提高信息的可讀性
time命令
time 命令常用於測量一個命令的運行時間,包括實際使用時間(real time)、用戶態使用時間(the process spent in user mode)、內核態使用時間(the
process spent in kernel mode)。
實際時間:從 command
命令行開始執行到運行終止的時間。
用戶態使用時間:命令執行完成花費的用戶 CPU時間,即命令在用戶態中執行時間總和。
內核態使用時間:命令執行完成花費的系統 CPU時間,即命令在核心態中執行時間總和。
命令格式:
time 命令
常用范例:
time date運行的時間
{time date; } 2>1.txt將 time命令的執行結果保存到文件中(timedate) 2>2.txt將 time命令的執行結果保存到文件中