最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一天一個(gè)shell命令 文本操作系列-linux dd使用教程

 更新時(shí)間:2016年05月31日 23:42:09   投稿:mdxy-dxy  
dd 是 Linux/UNIX 下的一個(gè)非常有用的命令,作用是用指定大小的塊拷貝一個(gè)文件,并在拷貝的同時(shí)進(jìn)行指定的轉(zhuǎn)換

今天第一天寫,先說(shuō)下寫shell腳本的基本知識(shí)

1. shell腳本以.sh 為擴(kuò)展名,通常運(yùn)行 ./${filename}.sh 或者 sh ${filename}.sh
2. shell 腳本開(kāi)頭以 #!/bin/bash #!讀作 “shebang”
3. 開(kāi)啟調(diào)試  #!/bin/bash –xv
4. /dev/null 任何東西丟進(jìn)去都會(huì)消失,linux黑洞。 /dev/zero 用于初始化,會(huì)產(chǎn)生0

今天先介紹 dd 命令

由來(lái)(全稱):本來(lái)應(yīng)根據(jù)其功能描述“Convert an copy”命名為“cc”,但“cc”已經(jīng)被用以代表“CComplier”,所以命名為“dd”

開(kāi)篇例子:

1.  dd if=infile.log  of=outfile.log bs=1M count=1

  拷貝 infile.log內(nèi)容 到 outfile.log. 一次讀寫比特?cái)?shù)為1M , 每次讀寫一個(gè)塊(1M,由bs決定)

2.  echo -n "hello world" | dd cbs=1 conv=unblock 2>/dev/null

  主要演示cbs,每次轉(zhuǎn)換一個(gè)字節(jié), conv=unblock 是將cbs 大小的塊中尾部的空格替換為一個(gè)換行符  2> 是錯(cuò)誤信息輸出流  /dev/null 開(kāi)頭介紹了

解讀help:

(不愿意看這么一大段,嘗試先跳過(guò),看解讀)

用法:dd [操作數(shù)] ...
或:dd 選項(xiàng)
 復(fù)制文件,依照操作數(shù)轉(zhuǎn)換并格式化。

  bs=比特?cái)?shù)    一次讀寫的比特?cái)?shù)
  cbs=比特?cái)?shù)    一次轉(zhuǎn)換的比特?cái)?shù)
  conv=CONVS    依照每個(gè)逗號(hào)分割的標(biāo)志列表轉(zhuǎn)換文件
  count=塊數(shù)    只將指定個(gè)塊數(shù)復(fù)制到塊
  ibs=比特?cái)?shù)    一次讀取的比特?cái)?shù)(默認(rèn):512)
   if=文件    從指定文件中讀取
  iflag=符號(hào)    按照以逗號(hào)分隔的符號(hào)列表指定的方式讀取
  obs=比特?cái)?shù)    一次寫入指定比特?cái)?shù)(默認(rèn):512)
   of=文件    寫入到指定文件
  oflag=符號(hào)    按照以逗號(hào)分隔的符號(hào)列表指定的方式寫入
  seek=塊數(shù)    在輸出開(kāi)始處跳過(guò)指定的塊數(shù)
  skip=塊數(shù)    在輸入開(kāi)始處跳過(guò)指定的塊數(shù)
  status=noxfer    禁止傳輸統(tǒng)計(jì)

塊和字節(jié)數(shù)后可能帶有以下的一個(gè)或多個(gè)后綴:
c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M
 GB =1000*1000*1000, G =1024*1024*1024, and so on for T, P, E, Z, Y.

每個(gè) CONV 符號(hào)可能為:

  ascii        由EBCDIC 碼轉(zhuǎn)換至ASCII 碼
  ebcdic    由ASCII 碼轉(zhuǎn)換至EBCDIC 碼
  ibm        由ASCII 碼轉(zhuǎn)換至替換的EBCDIC 碼
  block        將結(jié)束字符塊里的換行替換成等長(zhǎng)的空格
  unblock    將cbs 大小的塊中尾部的空格替換為一個(gè)換行符
  lcase        將大寫字符轉(zhuǎn)換為小寫
  ucase        將小寫字符轉(zhuǎn)換為大寫
  swab        交換每一對(duì)輸入數(shù)據(jù)字節(jié)
  sync        將每個(gè)輸入數(shù)據(jù)塊以NUL 字符填滿至ibs 的大小;當(dāng)配合block
         或unblock 時(shí),會(huì)以空格代替NUL 字符填充
  excl        fail if the output file already exists
   nocreat    do not create the output file
   notrunc    不截?cái)噍敵鑫募?
  noerror    讀取數(shù)據(jù)發(fā)生錯(cuò)誤后仍然繼續(xù)
  fdatasync    結(jié)束前將輸出文件數(shù)據(jù)寫入磁盤
  fsync    類似上面,但是元數(shù)據(jù)也一同寫入

FLAG 符號(hào)可以是:

  append    追加模式(僅對(duì)輸出有意義;隱含了conv=notrunc)
   direct    使用直接I/O 存取模式
  directory    除非是目錄,否則 directory 失敗
  dsync        使用同步I/O 存取模式
  sync        與上者類似,但同時(shí)也對(duì)元數(shù)據(jù)生效
  fullblock    為輸入積累完整塊(僅iflag)
   nonblock    使用無(wú)阻塞I/O 存取模式
  noatime    不更新存取時(shí)間
  nocache    丟棄緩存數(shù)據(jù)
  noctty    不根據(jù)文件指派控制終端
  nofollow    不跟隨鏈接文件

 

解讀:

1. bs ibs obs  cbs

bs: 一次 讀寫 = ibs+obs
ibs: 一次讀
obs: 一次寫
cbs: 一次轉(zhuǎn)換

2. if of

if 是讀取的文件
of 是輸出的文件

3. seek skip

skip 在從if中讀取時(shí)  跳過(guò)多少比特
seek 在寫入of時(shí), 跳過(guò)多少比特

實(shí)戰(zhàn)例子:

1. 批量生成隨機(jī)名稱的測(cè)試文件

for i in {10..10}  
do  
dd if=/dev/zero of=junk.test$i bs="$RANDOM"K count=20  
done

2. 備份和恢復(fù)

備份

dd if=abc.gz of=abc.gz.bak1 bs=1k count=10000  
dd if=abc.gz of=abc.gz.bak2 bs=1k skip=10000 count=70000  
dd if=abc.gz of=abc.gz.bak3 bs=1k skip=80000 

恢復(fù)方法如下:

dd if=abc.gz.bak1 of=abc.gz  
dd if=abc.gz.bak2 of=abc.gz bs=1k seek=10000  
dd if=abc.gz.bak3 of=abc.gz bs=1k seek=80000 

3. 轉(zhuǎn)換大小寫

生成大寫:dd if=dd.txt of=my.log bs=1M count=1 conv=ucase

生成小寫:為了不懶惰,留給讀者試試

4. 拷貝自己 

復(fù)制代碼 代碼如下:

file_subscript=copy  
dd if=$0 of=$0.$file_subscript 2>/dev/null

5.要把一張軟盤的內(nèi)容拷貝到另一張軟盤上,利用/tmp作為臨時(shí)存儲(chǔ)區(qū)。把源盤插入驅(qū)動(dòng)器中,輸入下述命令:

$ dd if =/dev/fd0 of = /tmp/tmpfile

拷貝完成后,將源盤從驅(qū)動(dòng)器中取出,把目標(biāo)盤插入,輸入命令:

$ dd if = /tmp/tmpfile of =/dev/fd0

軟盤拷貝完成后,應(yīng)該將臨時(shí)文件刪除:

$ rm /tmp/tmpfile  

6. 把net.i這個(gè)文件寫入軟盤中,并設(shè)定讀/寫緩沖區(qū)的數(shù)目。

(注意:軟盤中的內(nèi)容會(huì)被完全覆蓋掉)

$ dd if = net.i of = /dev/fd0 bs = 16384  

7.將文件sfile拷貝到文件 dfile中。

$ dd if=sfile of=dfile

8.創(chuàng)建一個(gè)100M的空文件

dd if=/dev/zero of=hello.txt bs=100M count=1

=============================================

/dev/null,外號(hào)叫無(wú)底洞,你可以向它輸出任何數(shù)據(jù),它通吃,并且不會(huì)撐著!
/dev/zero,是一個(gè)輸入設(shè)備,你可你用它來(lái)初始化文件。

/dev/null------它是空設(shè)備,也稱為位桶(bit bucket)。任何寫入它的輸出都會(huì)被拋棄。如果不想讓消息以標(biāo)準(zhǔn)輸出顯示或?qū)懭胛募?,那么可以將消息重定向到位桶?br /> /dev/zero------該設(shè)備無(wú)窮盡地提供0,可以使用任何你需要的數(shù)目——設(shè)備提供的要多的多。他可以用于向設(shè)備或文件寫入字符串0。
$ dd if=/dev/zero of=./test.txt bs=1k count=1
$ ls -l
total 4
-rw-r--r--     1 oracle    dba           1024 Jul 15 16:56 test.txt

eg:

$ find / -name access_log   2>/dev/null


本文出自 “書(shū)生” 博客

相關(guān)文章

  • 詳解Shell cut用法

    詳解Shell cut用法

    cut是一個(gè)選取命令,就是將一段數(shù)據(jù)經(jīng)過(guò)分析,取出我們想要的。一般來(lái)說(shuō),選取信息通常是針對(duì)“行”來(lái)進(jìn)行分析的,并不是整篇信息分析的。本文重點(diǎn)給大家介紹Shell cut用法,感興趣的朋友一起看看吧
    2017-10-10
  • Shell編程之特殊變量的筆記小結(jié)

    Shell編程之特殊變量的筆記小結(jié)

    這篇文章主要介紹了Shell編程之特殊變量的筆記小結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • shell正則表達(dá)式、grep命令和sed命令舉例詳解

    shell正則表達(dá)式、grep命令和sed命令舉例詳解

    正則表達(dá)式就是用于描述這些規(guī)則的工具,換句話說(shuō)正則表達(dá)式就是記錄文本規(guī)則的代碼,這篇文章主要給大家介紹了關(guān)于shell正則表達(dá)式、grep命令和sed命令的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • shell性能測(cè)試腳本優(yōu)化的技巧

    shell性能測(cè)試腳本優(yōu)化的技巧

    這篇文章主要介紹了shell性能測(cè)試腳本優(yōu)化技巧,本文通過(guò)實(shí)例截圖的形式給大家展示,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • linux虛擬機(jī)上安裝配置redis3.0.7

    linux虛擬機(jī)上安裝配置redis3.0.7

    本篇內(nèi)容給大家介紹在linux虛擬機(jī)上安裝redis3.0.7這個(gè)版本的過(guò)程以及相關(guān)的配置問(wèn)題。
    2017-11-11
  • 什么是Shell?Shell腳本基礎(chǔ)知識(shí)詳細(xì)介紹

    什么是Shell?Shell腳本基礎(chǔ)知識(shí)詳細(xì)介紹

    這篇文章主要介紹了什么是Shell?Shell腳本基礎(chǔ)知識(shí)介紹,本文是一篇Shell腳本入門文章,在本文你可學(xué)到什么是Shell、有多少種Shell、一個(gè)Shell腳本代碼實(shí)例,需要的朋友可以參考下
    2014-07-07
  • 一問(wèn)弄懂Shell變量四大分類

    一問(wèn)弄懂Shell變量四大分類

    Shell變量分為環(huán)境變量、本地變量、位置參數(shù)變量和特殊變量,本文就詳細(xì)的介紹一下這四種變量的具體使用,具有一定的參考,感興趣的可以了解一下
    2023-05-05
  • 分享awk變量$0的妙用

    分享awk變量$0的妙用

    對(duì)awk的非常入學(xué),于是把exp.log的處理那段都用awk寫出來(lái)。驚喜的發(fā)現(xiàn)awk有個(gè)內(nèi)置參數(shù)NR,而且awk內(nèi)部也可以進(jìn)行運(yùn)算
    2013-03-03
  • Shell腳本讀取ini配置文件的實(shí)現(xiàn)代碼2例

    Shell腳本讀取ini配置文件的實(shí)現(xiàn)代碼2例

    這篇文章主要介紹了Shell腳本讀取ini配置文件的實(shí)現(xiàn)代碼2例,如果只是讀取內(nèi)容推薦使用簡(jiǎn)單版,有更多需求請(qǐng)見(jiàn)復(fù)雜版,需要的朋友可以參考下
    2014-08-08
  • Linux Shell制作錄制回放功能腳本

    Linux Shell制作錄制回放功能腳本

    這篇文章主要為大家詳細(xì)介紹了Linux Shell制作錄制回放功能腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12

最新評(píng)論

宝应县| 松滋市| 怀仁县| 阳高县| 湘潭市| 延安市| 孝义市| 富阳市| 驻马店市| 龙口市| 隆安县| 罗山县| 绥阳县| 皋兰县| 定西市| 襄垣县| 栾城县| 阿拉尔市| 滦南县| 拉孜县| 周至县| 北安市| 包头市| 嫩江县| 循化| 于田县| 锦屏县| 钟山县| 新建县| 时尚| 吉木乃县| 澄城县| 胶南市| 永定县| 额敏县| 榕江县| 逊克县| 宝鸡市| 开原市| 冷水江市| 喀喇沁旗|