Udhëzues i komandës Linux mkfifo për fillestarët (me shembuj)


Nëse jeni edhe një përdorues i moderuar i linjës së komandës Linux, duhet të jeni të vetëdijshëm për tubacionet, një veçori themelore e linjës së komandës që lejon proceset të komunikojnë. Pastaj ekziston një koncept i tubave të emërtuar (po, tuba me emra, në mënyrë që të mund të bëni më shumë me tuba). Komanda mkfifo ju lejon të krijoni tuba të tillë me emër.

Në këtë tutorial, ne do të diskutojmë bazat e mkfifo duke përdorur disa shembuj të lehtë për t'u kuptuar. Por, përpara se ta bëjmë këtë, ia vlen të përmendim të gjithë shembujt këtu janë testuar në Ubuntu 22.04 LTS.

Komanda Linux mkfifo

Komanda mkfifo në thelb ju lejon të krijoni FIFO (të njohura si tuba me emër). Më poshtë është sintaksa e komandës:

mkfifo [OPTION]... NAME...

Dhe ja se si e shpjegon faqja e njeriut të mjeteve:

Create named pipes (FIFOs) with the given NAMEs.

Më poshtë janë disa shembuj të stilit të pyetjeve dhe përgjigjeve që duhet t'ju japin një ide të mirë se si funksionon mkfifo.

Q1. Si quhen saktësisht tubacionet?

Për ta kuptuar këtë, së pari duhet të jeni të vetëdijshëm për konceptin e tubave bazë. Ju keni parë komanda që përmbajnë një shirit vertikal (|) në to. Ky shufër quhet tub. Ajo që bën është, krijon një kanal komunikimi midis dy proceseve (kur komanda e plotë ekzekutohet).

Për shembull:

ls | grep .txt

Komanda e përmendur më sipër përbëhet nga dy programe: grep. Të dy këto programe janë të ndara nga një tub (|). Pra, ajo që bën tub këtu është, ai krijon një kanal komunikimi midis këtyre programeve - kur komanda e lartpërmendur ekzekutohet, dalja e ls futet si hyrje në grep. Pra, më në fund, dalja që shfaqet në terminal përbëhet vetëm nga ato hyrje që kanë vargun .txt në to.

Pra, ky ishte një rifreskim i shpejtë i tubave normalë. Tani vjen koncepti i tubave me emër. Siç sugjeron vetë emri, këto janë tuba me emra. Ju mund të krijoni një tub me emër duke përdorur komandën mkfifo. Për shembull:

mkfifo pipe2

Pra, pipe2 tani është një tub me emër. Tani lind pyetja se si tubat me emër janë më të dobishëm? Epo, merrni parasysh rastin kur keni një proces që funksionon në një terminal dhe prodhon dalje, dhe ajo që dëshironi është ta kanalizoni atë dalje në një terminal tjetër. Pra, këtu, një tub me emër mund të ndihmojë shumë.

Për shembull, supozoni se ls është procesi që ekzekutohet në terminalin e parë dhe ju dëshironi të shihni daljen e tij në një terminal tjetër. Pra, ja çfarë mund të bëni:

ls > pipe2

dhe ja çfarë mund të bëni në terminalin e dytë:

cat < pipe2

Q2. Si të identifikoni tubat me emër?

Tubat me emër mund të aksesohen normalisht si skedarët. Pra, kjo do të thotë që ju mund të përdorni komandën ls për t'iu qasur atyre. Nëse shihni lejet e hyrjes për një tub me emër, do të shihni një p në fillim. Kjo do të thotë se skedari në fjalë është një tub me emër. Ja një shembull:

Q3. Si të vendosni lejet e personalizuara të hyrjes?

Siç mund ta shihni në pyetjet dhe përgjigjet e mëparshme, lejet e parazgjedhura të aksesit për tubacionet me emër janë rw, rw dhe r (për përdoruesit, grupin dhe të tjerët, respektivisht). Megjithatë, nëse dëshiron, mund të caktosh gjithashtu leje të personalizuara, diçka që mund ta bësh duke përdorur opsionin -m.

Për shembull:

mkfifo pipe3 -m700

Pamja e mëposhtme e ekranit konfirmon se lejet e personalizuara janë caktuar:

Për të ditur më shumë rreth mkfifo, mund të përdorni opsionet --help dhe --version.

konkluzioni

Pra, në varësi të llojit të punës që bëni në linjën e komandës Linux, komanda mkfifo mund të jetë shumë e dobishme për ju. Pasi të keni mbaruar me përdorimin bazë që kemi diskutuar këtu, mund të mësoni më shumë rreth mjetit duke shkuar te faqja e tij drejtuese.