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/sda1 në partition-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ë.