Linux komandas

Bash lamatas komanda

Bash lamatas komanda
Iebūvēto bash komandu, ko izmanto komandas izpildei, kad čaula saņem jebkuru signālu, sauc par “slazdu”. Kad notiek kāds notikums, bash nosūta paziņojumu ar jebkuru signālu. Daudzi signāli ir pieejami bash. Visizplatītākais bash signāls ir SIGINT (Signal Interrupt). Kad lietotājs nospiež CTRL + C, lai pārtrauktu jebkuru procesu no termināla, šis signāls tiek nosūtīts, lai paziņotu sistēmai.  Šajā apmācībā ir paskaidrots, kā jūs varat izmantot komandu trap, lai apstrādātu dažāda veida signālus.

Sintakse:

slazds [-lp] [[arg] signāla_spec…]

vai

slazds [darbība] [signāls]
Atslēga Apraksts
-l To izmanto, lai parādītu visu signālu nosaukumu sarakstu ar atbilstošu numuru.
-lpp To izmanto, lai parādītu signāla komandu vai slazdošanas komandu signāla_spec.
arg To izmanto komandas izpildei, kad čaula saņem signālu (-us).
signāla_spec Tas satur signāla nosaukumu vai signāla numuru.

Slazdošanas komanda bez jebkādas opcijas un arg

Izpildiet šo komandu no termināļa, lai parādītu visu komandu sarakstu, kas saistītas ar katru nosacījumu. Ja kāda “lamatas” komanda nav iestatīta iepriekš, šī komanda neparādīs nekādu informāciju.

$ slazds

Slazdošanas komanda ar -l opciju

Izpildiet šo komandu no termināļa, lai parādītu visu signālu nosaukumu sarakstu ar numuru.

$ slazds -l

Iepriekš minētās komandas izvade parādīs 64 signālu sarakstu ar skaitļiem.

Iestatiet slazdošanas komandu ERR un EXIT

Šī pirmā komanda iestatīs komandu “slazds”, kas tiks izpildīta, kad notiek kāda čaulas kļūda vai ja iziet. Šī komanda “slazds” tiks noņemta temp.txt failu no pašreizējās atrašanās vietas. 'ls' komandu izmanto, lai pārbaudītu temp.txt fails pastāv vai neatrodas pašreizējā atrašanās vietā. Visbeidzot Izeja komandu izmanto, lai aizvērtu termināli un izpildītu iepriekš iestatīto komandu “trap”.

$ trap 'rm temp.txt 'kļūdīties iziet
$ ls
$ iziet

Pēc iepriekš minēto komandu izpildīšanas parādīsies šāda izeja.

Tagad, ja lietotājs pēc iziešanas atkal atver termināli un izpilda komandu 'ls' temp.txt fails nepastāv.

Iestatiet komandu “trap” ar signāla numuru SIGUP, SIGQUIT un SIGKILL

Signāla numurs SIGUP, SIGQUIT un SIGKILL ir 1, 3 un 9. Šī pirmā komanda iestatīs slazdu šiem trim signāliem. Kad notiks kāds no šiem signāliem, tiks parādīts ziņojums “Slazdošanas komanda tiek izpildīta”Izdrukās.  Izpildiet šo komandu no termināļa.

$ trap 'izpildīta echo Trap komanda' 1 3 9

Kad lietotājs nospiedīs Ctrl + C lai ģenerētu signāla piešķiršanu ar komandu "trap", tad "atbalss" komanda trap tiks izpildīta, un parādīsies šāda izeja.

Skriptā iestatiet komandu SIGTERM 'trap'

SIGTERM signāls tiek izmantots, lai nekavējoties pārtrauktu procesu, atbrīvojot tā resursus. Izveidojiet bash failu ar nosaukumu 'atslēgvārds.sh"ar šādu kodu. Skriptā tiek paziņots par bezgalīgu cilpu, kas tekstu nepārtraukti drukās līdz SIGTERM rodas signāls. Lietotājam ir jānospiež Ctrl + Z ģenerēt SIGTERM signāls.

atslēgvārds.sh

#!/ bin / bash
 
# Iestatiet SIGINT un SIGTERM signālu slazdu
trap "echo Programma ir pārtraukta."SIGTERM SIGINT
 
#Display ziņojums, lai ģenerētu SIGTERM
atbalss "Nospiediet Ctrl + Z apturēt procesu"
 
# Inicializējiet skaitītāja mainīgo, t.i
i = 1
 
#declare infinite for loop
priekš(;;)
darīt
# Drukāt ziņojumu ar skaitītāju i
atbalss “cikla palaišana $ i reizes”
#Papildināt skaitītāju pa vienam
((i ++))
izdarīts

Palaidiet skriptu, izpildot šo komandu un nospiediet Ctrl + Z, lai ģenerētu SIGTERM signāls. Parādīsies šāda līdzīga izeja.

atslēgvārds $ bash.sh

Iestatiet komandu “trap”, lai palaistu funkciju, pamatojoties uz konkrētu signālu

Komandu “trap” var saistīt ar jebkuru lietotāja definētu funkciju. Izveidojiet bash nosaukumu trapfunc.sh un pievienojiet šādu skriptu. Šeit pielāgota funkcija ar nosaukumu func () ir deklarēts, ka drukā vienkāršu ziņojumu, “Uzdevums pabeigts”. Ievades cilpa ir definēta, lai lasītu un izdrukātu visu pašreizējā darba direktorija failu un mapju sarakstu. "slazds" komanda, kas definēta saraksta sākumā, izsauks funkciju, func () kad programma beidzas.

trapfunc.sh

#!/ bin / bash
# Izsaucot func funkciju, izejot
slazds func izeja
# Paziņojiet funkciju
funkcija func ()
 
atbalss "Uzdevums pabeigts"

# Izlasiet pašreizējā direktoriju saraksta failus un mapes, izmantojot cilni
priekš manis *
darīt
atbalss "$ i"
izdarīts

Palaidiet skriptu no termināla.

Palaidiet skriptu.

$ bash trapfunc.sh

Tālāk redzamais rezultāts to parāda, “Uzdevums pabeigts”Teksts tiek izdrukāts pēc visu pašreizējā direktorija failu un mapju izdrukāšanas.

Secinājums

Šī apmācība parāda, kā komandu “trap” var izmantot Linux, lai veiktu jebkuru automatizētu uzdevumu, pamatojoties uz ģenerēto signālu. Tas lietotājiem palīdz izsekot dažāda veida kļūdām un veikt pareizas darbības, kuras var piešķirt jau iepriekš, izmantojot šo komandu. Daudzas programmas vai skripti, darbojoties sistēmā, piešķir dažus īpašus resursus. Ja kāda darbojas programma vai skripts iziet vai tiek pārtraukts neparasti, šīs programmas izmantotie resursi tiek bloķēti. Komandu 'trap' var izmantot, lai atrisinātu šo problēmu. Resursu tīrīšanas uzdevumu var viegli izdarīt, izmantojot šo komandu. Ceru, ka lasītājs gūs skaidru priekšstatu par šīs komandas lietošanu, izlasot šo apmācību.

Kā instalēt un spēlēt Doom uz Linux
Ievads liktenī Doom sērija radās 90. gados pēc sākotnējā Doom izlaišanas. Tas bija tūlītējs hīts, un kopš tā laika spēļu sērija ir saņēmusi daudzas ba...
Vulkan Linux lietotājiem
Ar katru jauno grafisko karšu paaudzi mēs redzam, kā spēļu izstrādātāji pārspēj grafiskās uzticamības robežas un tuvojas fotoreālismam. Neskatoties uz...
OpenTTD vs Simutrans
Transporta simulācijas izveide var būt jautra, relaksējoša un ārkārtīgi vilinoša. Tāpēc jums jāpārliecinās, ka izmēģināt pēc iespējas vairāk spēļu, la...