當前位置: 妍妍網 > 碼農

Linux下的dd命令真心強大實用~

2024-02-01碼農

關註上方 浩道Linux ,回復 資料 ,即可獲取海量 L inux Python 網路通訊、網路安全 等學習資料!

前言

大家好,這裏是 浩道Linux ,主要給大家分享 L inux P ython 網路通訊、網路安全等 相關的IT知識平台。

今天浩道跟大家分享Linux下一個強大實用的Linux命令,即dd命令,相信你熟悉之後,可以感受到它強大實用之處。一起看看!

一、dd命令可以幹什麽

Linux的dd命令是一個強大的磁盤操作工具,用於在Linux和其他UNIX-like作業系統中進行低階別的數據轉換和拷貝操作。 它可以用於復制檔、轉換檔格式、建立磁盤映像以及進行磁盤備份和恢復等操作。

dd命令有其如下幾個特點:

1、強大的數據轉換和拷貝功能: dd命令可以用來復制和轉換檔、裝置等,並且在拷貝過程中可以進行格式轉換。它能夠讀取和寫入指定的數據塊,支持多種不同的數據塊大小和轉換方式,可以實作復雜的數據處理任務。

2、靈活的參數和選項: dd命令具有許多參數和選項,可以根據需要進行靈活的配置。例如,可以使用「if=」選項指定輸入檔,使用「of=」選項指定輸出檔,還可以設定塊大小、轉換方式等。這些選項提供了很大的靈活性,使得dd命令可以滿足各種不同的需求。

3、 底層數據處理: dd命令在底層進行數據處理,可以與作業系統底層進行互動。這使得它可以用於一些需要直接操作底層數據的任務,例如建立磁盤映像、轉換檔格式等。

4、需要謹慎使用: 雖然dd命令非常強大,但使用不當可能導致數據遺失或損壞。因此,在使用dd命令之前,需要仔細了解其參數和選項的含義,並確保命令的正確性。此外,還需要謹慎處理數據,確保不會意外地覆蓋或刪除重要數據。

二、dd命令語法

dd命令的基本語法如下所示:

dd [option]...

其中 option 是dd命令的可選參數,用於指定dd命令的功能和操作。

以下是一個使用dd命令的範例,將一個名為input.txt的檔拷貝到另一個名為output.txt的檔中,並且每次讀入和寫出的字節數為1024字節

dd if=input.txt of=output.txt ibs=1024 obs=1024

以下是dd命令的常用參數和選項:

1、if=檔名: 指定輸入檔名,預設為標準輸入。

2、of=檔名: 指定輸出檔名,預設為標準輸出。

3、ibs=bytes: 一次讀入bytes個字節,即指定一個塊大小為bytes個字節。

4、cbs=bytes: 一次轉換bytes個字節,即指定轉換緩沖區大小。

5、skip=blocks: 從輸入檔開頭跳過blocks個塊後再開始復制。

6、obs=bytes: 一次寫入bytes字節,即寫入緩沖區的字節數。

7、bs=bytes: 同時設定讀/寫緩沖區的字節數(等於設定ibs和obs)。

8、cbs=byte: 一次轉換bytes字節。

9、count=blocks: 只拷貝輸入的blocks塊,塊大小等於ibs指定的字節數。

10、seek=blocks: 從輸出檔開頭跳過blocks個塊後再開始復制。

11、status=progress: 顯示進度資訊,例如每秒鐘復制的字節數和進度百分比等。

12、conv=<關鍵字>: 關鍵字可以有以下11種:

conversion:用指定的參數轉換檔。

ascii:轉換ebcdic為ascii

ebcdic:轉換ascii為ebcdic

ibm:轉換ascii為alternate ebcdic

block:把每一行轉換為長度為cbs,不足部份用空格填充

unblock:使每一行的長度都為cbs,不足部份用空格填充

lcase:把大寫字元轉換為小寫字元

ucase:把小寫字元轉換為大寫字元

swap:交換輸入的每對字節

noerror:出錯時不停止

notrunc:不截短輸出檔

sync:將每個輸入塊填充到ibs個字節,不足部份用空(NUL)字元補齊。

三、dd命令例項演示

例項1:透過dd命令完成檔復制

dd if=haodao_in.txt of=haodao_out.txt ibs=1024 obs=1024

以上命令表示將一個名為haodao_in.txt的檔拷貝到另一個名為haodao_out.txt的檔中,並且每次讀入和寫出的字節數為1024字節。

例項2:透過dd命令建立一個空檔

dd if=/dev/zero of=test.out bs=1M count=1000

以上命令表示建立一個名為test.out的空檔,大小為1000MB,其中每個塊的大小為1MB。

例項3:結合time命令, 透過dd命令測試對磁盤的讀寫操作。

[root@k8s-master ~]# time dd if=/dev/zero of=test.out bs=1M count=1000 oflag=direct記錄了1000+0 的讀入記錄了1000+0 的寫出1048576000字節(1.0 GB)已復制,10.9335 秒,95.9 MB/秒real 0m11.022suser 0m0.040ssys 0m1.828s

如上得出: 對磁盤讀操作的速度可以達到 9 5.9MB/s 。並且生成test.out檔。

例項4:透過dd命令實作將file1中的小寫字母轉換成大寫字母,並且轉成file2檔保存。

dd if=file1 of=file2 conv=ucase

例項5:透過dd命令將一個磁盤的內容復制到另一個磁盤中。

dd if=/dev/sda of=/dev/sdb bs=4096

以上命令表示將 /dev/sda 磁盤的內容復制到 /dev/sdb 磁盤中,並且塊大小為4096字節。

例項6:透過dd命令將一個磁盤的內容復制到一個檔中。

dd if=/dev/sda of=haodao.out bs=4096 count=1000 status=progress

以上命令表示將 /dev/sda 磁盤的前1000個塊內容復制到 haodao.out 檔中,每個塊大小為4096字節,並且顯示進度條資訊。

例項7:透過dd備份整個硬碟:使用dd命令可以將整個硬碟備份到另一個硬碟中。

dd if=/dev/sda of=/dev/sdb bs=4096 conv=noerror,sync

以上命令表示將/dev/sda磁盤的內容復制到/dev/sdb磁盤中,每個塊大小為4096字節。 conv=noerror,sync則表示在復制過程中忽略讀取中的錯誤,並將輸出同步到對應磁盤中。

例項8:透過dd命令可以將檔從一種格式轉換為另一種格式。

dd if=input.txt of=output.bin bs=1 count=1

例項9:透過dd命令可以建立磁盤的映像檔。

dd if=/dev/cdrom of=image.iso

以上命令表示要建立一個名為image.iso的CDROM映像檔。

例項10、透過dd命令可以測試磁盤的讀寫速度。

dd if=/dev/sda of=/dev/null bs=1M count=1000

四、總結

講真,dd命令簡單實用,可以用來做一些實用的測試計畫。不知道大家平時有沒有使用過這個命令,歡迎下方留言討論。

更多精彩

關註公眾號 浩道Linux

浩道Linux ,專註於 Linux系統 的相關知識、 網路通訊 網路安全 Python相關 知識以及涵蓋IT行業相關技能的學習, 理論與實戰結合,真正讓你在學習工作中真正去用到所學。同時也會分享一些面試經驗,助你找到高薪offer,讓我們一起去學習,一起去進步,一起去漲薪!期待您的加入~~~ 關註回復「資料」可 免費獲取學習資料 (含有電子書籍、視訊等)。

喜歡的話,記得 點「贊」 「在看」