Si të përdorni komandën dd në Linux [15 shembuj të dobishëm]


Përmbledhje: Në këtë udhëzues të avancuar, ne do të diskutojmë disa shembuj praktikë të komandës dd. Pas ndjekjes së këtij udhëzuesi, përdoruesit e avancuar do të jenë në gjendje të punojnë me pajisjet e bllokimit të qetë nga ndërfaqja e linjës së komandës.

Në Linux, një disk USB bootable, dhe lista vazhdon.

Sigurisht, ne mund të përdorim mjete grafike për të kryer të gjitha këto operacione. Megjithatë, shumica e administratorëve Linux preferojnë të përdorin komandën dd për shkak të funksionalitetit dhe qëndrueshmërisë së tij të pasur.

Në këtë udhëzues të avancuar, ne do të mësojmë rreth komandës dd për të konvertuar dhe kopjuar skedarët. Sidoqoftë, ndryshe nga komanda cp shumicën e kohës përdoret me pajisjet e bllokut.

Në këtë udhëzues, së pari, ne do të kuptojmë përdorimin e komandës dd me shembuj bazë, më pas do të diskutojmë disa raste përdorimi të avancuar.

Pra, le të fillojmë.

dd Sintaksa e komandës

Sintaksa më e zakonshme e komandës dd është si më poshtë:

$ dd [if=] [of=]

Në sintaksën e mësipërme:

  • nëse – përfaqëson skedarin hyrës ose burimor.
  • nga – përfaqëson skedarin e daljes ose të destinacionit.

1. Si të kopjoni një skedar në Linux

Një nga përdorimet bazë të komandës dd është kopjimi i një skedari në një direktori aktuale. Le të kuptojmë duke krijuar një skedar teksti të thjeshtë:

$ echo "this is a sample text file" > file-1.txt

Tani, le të krijojmë një kopje të tij duke përdorur komandën dd:

$ dd if=file-1.txt of=file-2.txt

Në këtë shembull, parametri if përfaqëson skedarin burim, ndërsa parametri of përfaqëson skedarin e destinacionit.

A nuk është saktësisht e ngjashme me komandën cp? Atëherë, çfarë është kaq e veçantë në lidhje me komandën dd?

Komanda dd është shumë më e fuqishme se komanda e rregullt cp. Seksionet e fundit të tutorialit diskutojnë disa nga rastet e përdorimit të avancuar të tij.

2. Si të konvertohet teksti nga shkronja të vogla në të mëdha

Komanda dd na lejon të kryejmë konvertimin e rasteve. Për ta arritur këtë, ne mund të përdorim parametrin conv me të.

Për ta kuptuar këtë, së pari, shfaqni përmbajtjen e skedarit file-1.txt:

$ cat file-1.txt

this is a sample text file

Tani, le të konvertojmë përmbajtjen e skedarit në shkronjat e mëdha duke përdorur komandën e mëposhtme:

$ dd if=file-1.txt of=upper-case.txt conv=ucase

Në këtë shembull, opsioni conv=ucase përdoret për të kthyer shkronjat e vogla në shkronja të mëdha.

Më në fund, verifikoni përmbajtjen e skedarit të krijuar rishtazi:

$ cat upper-case.txt

THIS IS A SAMPLE TEXT FILE

3. Si të konvertohet teksti nga shkronja të mëdha në të vogla

Në mënyrë të ngjashme, ne mund të përdorim komandën dd për të kthyer shkronjat e mëdha në shkronja të vogla:

Le të përdorim opsionin conv=lcase për të kthyer shkronjat e mëdha në shkronja të vogla:

$ dd if=upper-case.txt of=lower-case.txt conv=lcase

Tani, le të shfaqim përmbajtjen e skedarit të krijuar rishtazi dhe të verifikojmë që konvertimi është bërë saktë:

$ cat lower-case.txt

this is a sample text file

4. Shmangni mbishkrimin e skedarit të destinacionit në Linux

Si parazgjedhje, komanda dd zëvendëson skedarin e destinacionit, që do të thotë se do ta mbishkruajë skedarin nëse ekziston në destinacion me të njëjtin emër.

Megjithatë, ne mund ta çaktivizojmë këtë sjellje të paracaktuar duke përdorur opsionin conv=excl siç tregohet.

$ dd if=file-1.txt of=file-2.txt conv=excl

dd: failed to open ‘file-2.txt’ File exists

Këtu mund të shohim se komanda dd i ka ndërprerë operacionet sepse skedari me të njëjtin emër është i pranishëm në destinacion.

5. Shtoni të dhënat në një skedar duke përdorur komandën dd

Ndonjëherë, ne duam të përditësojmë skedarin në modalitetin e shtojcave, që do të thotë se përmbajtja e re duhet të shtohet në fund të skedarit të destinacionit.

Këtë mund ta arrijmë duke kombinuar dy flamujt – oflag=append dhe conv=notrunc. Këtu, oflag përfaqëson flamurin e daljes ndërsa opsioni notrunc përdoret për të çaktivizuar shkurtimin në destinacion.

Për ta kuptuar këtë, së pari, le të krijojmë një skedar të ri teksti:

$ echo "append example demo" > dest.txt

Më pas, le t'i shtojmë përmbajtjet skedarit dest.txt duke përdorur komandën e mëposhtme:

$ dd if=file-1.txt of=dest.txt oflag=append conv=notrunc

Tani, le të kontrollojmë përmbajtjen e skedarit dest.txt:

$ cat dest.txt 

append example demo
this is a sample text file

6. Kapërceni bajt ose karaktere gjatë leximit të skedarit hyrës

Ne mund të udhëzojmë komandën dd të kapërcejë karakteret e para gjatë leximit të skedarit hyrës duke përdorur opsionet ibs dhe kapërcej.

Së pari, le të shfaqim përmbajtjen e skedarit file-1.txt:

$ cat file-1.txt

this is a sample text file

Më pas, le të kalojmë 8 karakteret e para duke përdorur komandën e mëposhtme:

$ dd if=file-1.txt of=file-2.txt ibs=8 skip=1

Tani, le të verifikojmë përmbajtjen e skedarit file-2.txt:

$ cat file-2.txt

a sample text file

Në daljen e mësipërme, mund të shohim se komanda ka anashkaluar 8 karakteret e para.

7. Rezervoni ndarjen e diskut Linux duke përdorur komandën dd

Deri më tani kemi diskutuar shembujt bazë të komandës dd që nuk kërkon qasje rrënjësore. Tani, le të shohim disa raste përdorimi të avancuar.

Ashtu si skedarët, ne mund të bëjmë kopje rezervë të ndarjes së diskut duke përdorur komandën dd. Për shembull, komanda e mëposhtme merr një kopje rezervë të ndarjes /dev/sda1partition-bkp.img:

$ sudo dd if=/dev/sda1 of=partition-bkp.img

8. Rivendosni ndarjen e diskut të Linux duke përdorur komandën dd

Në shembullin e mëparshëm, ne rezervuam ndarjen /dev/sda1 në skedarin partition-bkp.img.

Tani, le ta rivendosim atë në ndarjen /dev/sdb1 duke përdorur komandën e mëposhtme:

$ sudo dd if=partition-bkp.img of=/dev/sdb1

Është e rëndësishme të theksohet se, madhësia e ndarjes së destinacionit duhet të jetë e barabartë ose më e madhe se madhësia rezervë.

9. Rezervoni të gjithë hard diskun Linux duke përdorur komandën dd

Disku mund të ketë ndarje të shumta. Pra, marrja dhe rivendosja e kopjeve rezervë për ndarje mund të marrë kohë ndërsa numri i ndarjeve rritet. Për të kapërcyer këtë kufizim, ne mund të kopjojmë të gjithë diskun, ashtu si ndarjet.

Pra, le të marrim kopjen rezervë të diskut /dev/sda duke përdorur komandën e mëposhtme:

$ sudo dd if=/dev/sda of=disk-bkp.img

Komanda e mësipërme kopjon të gjithë diskun duke përfshirë ndarjet e tij.

10. Rivendosni hard diskun Linux duke përdorur komandën dd

Ashtu si ndarjet, ne mund të rivendosim kopjen rezervë të të gjithë diskut. Në shembullin e mëparshëm, ne rezervuam të gjithë diskun në skedarin disk-bkp.img. Tani, le të përdorim të njëjtën gjë për ta rikthyer atë në diskun /dev/sdb.

Së pari, le të fshijmë të gjitha ndarjet nga disku /dev/sdb dhe të verifikojmë që të gjitha ndarjet janë fshirë:

$ lsblk /dev/sdb

Më pas, le të rivendosim kopjen rezervë në diskun /dev/sdb duke përdorur komandën e mëposhtme:

$ sudo dd if=disk-bkp.img of=/dev/sdb

Më në fund, verifikoni që ndarja është krijuar në diskun /dev/sdb:

$ lsblk /dev/sdb

11. Rezervoni regjistrimin kryesor të nisjes duke përdorur komandën dd

Master Boot Record (MBR) ndodhet në sektorin e parë të diskut të nisjes. Ai ruan informacione rreth ndarjeve të diskut. Ne mund të përdorim komandën dd siç tregohet më poshtë për të marrë një mbrapa të saj:

$ sudo dd if=/dev/sda of=mbr.img bs=512 count=1

Komanda e mësipërme merr 512 bajt të parë, pra një sektor.

Është e rëndësishme të theksohet se komanda e mësipërme duhet të ekzekutohet në diskun e nisjes.

12. Rivendosni regjistrimin kryesor të nisjes duke përdorur komandën dd

Në shembullin e mëparshëm, ne rezervuam Master Boot Record (MBR). Tani, le ta rivendosim atë në diskun /dev/sdb duke përdorur komandën e mëposhtme:

$ sudo dd if=mbr.img of=/dev/sdb

13. Kopjoni përmbajtjen e diskut të CD/DVD duke përdorur komandën dd

Ngjashëm me ndarjet dhe disqet, ne mund të përdorim komandën dd për të kopjuar përmbajtjen nga disku CD ose DVD. Pra, le të përdorim komandën e mëposhtme për të bërë të njëjtën gjë:

$ sudo dd if=/dev/cdrom of=alma-minimal.iso

Në Linux, disku CD/DVD përfaqësohet nga pajisja /dev/cdrom. Prandaj ne po e përdorim atë si një skedar burimi.

Tani, le të verifikojmë që përmbajtja është kopjuar me sukses duke verifikuar komandën e saj checksum:

$ sha256sum alma-minimal.is

14. Krijoni një disk USB bootable duke përdorur komandën dd

Në shembullin e mëparshëm, ne krijuam një imazh iso të Alma Linux. Tani le ta përdorim atë për të krijuar një disk USB të bootable:

$ sudo dd if=alma-minimal.iso of=/dev/sdb

Është e rëndësishme të theksohet se komanda e mësipërme duhet të ekzekutohet me diskun e duhur USB.

15. Si të tregohet shiriti i progresit

Si parazgjedhje, komanda dd nuk tregon përparimin gjatë kryerjes së operacionit të kopjimit. Megjithatë, ne mund ta anashkalojmë këtë sjellje të paracaktuar duke përdorur opsionin e statusit.

Pra, le të përdorim opsionin status=progress me komandën dd për të treguar shiritin e përparimit:

$ sudo dd if=alma-minimal.iso of=/dev/sdb status=progress
konkluzioni

Në këtë artikull, ne diskutuam disa shembuj praktikë të komandës dd. Përdoruesit e avancuar mund t'u referohen këtyre shembujve në jetën e përditshme gjatë punës me sistemet Linux. Megjithatë, duhet të jemi shumë të kujdesshëm gjatë ekzekutimit të këtyre komandave. Sepse një gabim i vogël mund të mbishkruajë përmbajtjen e të gjithë diskut.

A dini ndonjë shembull tjetër më të mirë të komandës dd në Linux? Na tregoni pikëpamjet tuaja në komentet më poshtë.