Lugha ya amri ya mfumo wa uendeshaji. Lugha ya amri ya Shell. Kazi kuu za OS katika usimamizi wa kumbukumbu

Kazi ya maabara No 1: Utangulizi wa processor ya lugha ya amri ya familia ya OS Windows.


Ili kukabidhi kazi ya maabara, mifano yote iliyotolewa katika nyenzo za kinadharia lazima iwasilishwe kwa mwalimu kwa namna ya faili za popo zilizoundwa na mwanafunzi.

Maswali:

  1. Je, ungependa kufafanua faili ya kundi? Je, faili ya batch ina kiendelezi gani?
  2. Kuna tofauti gani kati ya kutumia > na >> wakati wa kupanga uelekezaji wa pato?
  3. Jinsi ya kufunga mstari mrefu kwenye faili ya batch?
  4. Vigezo hupitishwaje kwa faili ya batch? Toa mfano wa faili ya amri na vigezo.
  5. Eleza kusudi kuweka amri. Ni faida gani ya kutumia vigezo? Toa mfano wa faili ya batch inayotumia amri iliyowekwa.
  6. Vigezo vya faili ya batch vinatofautiana vipi na vijiti vyake?
  7. Katika hali gani amri ya amri inaweza kutumika? Toa mfano wa faili ya batch inayotumia amri.
  8. Ni amri gani inayotumika kuita faili nyingine ya batch kutoka faili moja ya batch? Toa mfano wa faili za kundi kama hilo.

Tumia nyenzo za ziada kuandaa majibu kwa maswali yafuatayo:

  1. Inayomaanisha: epuka mhusika mwingine yeyote kwa utangulizi usio na masharti.
  2. Eleza madhumuni ya waendeshaji:<, >, >>, &, && na ||.


"Faili zinazoweza kutekelezwa DOS"

(Lugha faili za kundi MS-DOS).

Maelekezo : Kazi inatekelezwa chini ya emulator ya mstari wa amri Windows XP.

Utangulizi

Katika chumba cha upasuaji Mfumo wa MS-DOS na katika mifumo yote ya uendeshaji ya familia ya Microsoft Windows kwa urahisi wake Kinachojulikana faili za batch hutumika kama njia ya kuorodhesha usindikaji wa faili (na saraka). Faili za kundi sio njia pekee ya kufanya kazi ya mtumiaji kiotomatiki, hata kati ya zilizojengwa ndani. Katika mifumo ya uendeshaji ya familia Microsoft Windows, kuanzia toleo la 98, kuna Windows zaidi Script(ing)Mpangishi. Kwa kuongeza, lugha iliyotafsiriwa Perl, Python au Ruby inaweza kutumika kwa madhumuni haya. Fedha zilizohamishwa, zina nguvu kabisa, lakini zinahitaji ujuzi wa programu, i.e. tunga na, muhimu, utatue programu, angalau kwa kiwango kizuri cha amateur. Kutumia faili za kundi kunapatikana kwa mtu yeyote bila mafunzo maalum; usikivu na akili ya kawaida inatosha.

Kichakataji cha amri

Mifumo mingi ya uendeshaji, ikiwa ni pamoja na iliyotengenezwa na Microsoft, inajumuisha processor ya amri. Hili ndilo jina la programu inayoanzisha utekelezaji wa vitendo mbalimbali kwa kukabiliana na amri zilizoingizwa na mtumiaji kutoka kwenye kibodi. Kimsingi, vitendo hivi vinajumuisha kuzindua mipango muhimu na vigezo fulani. Lakini amri zingine zinatekelezwa moja kwa moja na processor ya amri. Kimsingi, hizi ni amri zinazotumika kudhibiti muktadha na mlolongo wa utekelezaji wa amri. Programu yoyote ambayo inawezekana kitaalam kukimbia kutoka kwa safu ya amri inachukuliwa kuwa amri na ganda. Haina tofauti kati ya amri za asili ambazo zilijengwa awali kwenye mfumo wa uendeshaji na programu ambazo ziliwekwa juu yake.

Kazi nambari 1

Ili kuanza processor ya amri:

  1. Bofya kwenye kifungo Anza . Menyu kuu itaonyeshwa kwenye skrini.
  2. Chagua Run kutoka kwenye menyu kuu. Sanduku la mazungumzo litaonekana kwenye skriniKuanzisha programu.
  3. Katika uwanja Fungua, ingiza kamba cmd.
  4. Bofya kwenye kifungo sawa . Dirisha la processor ya amri itaonekana kwenye skrini.

Mstari wa amri na amri

Dirisha la processor ya amri katika fomu yake ya asili inaonekana kuwa mbaya, na kufanya kazi nayo sio rahisi sana kwa watu wengi. Rahisi zaidi kutumia wasimamizi wa faili kwa mtindo Kamanda wa Norton au MBALI . Wanatoa njia zote mbili urambazaji wa haraka kwenye mfumo wa faili, na kipindi cha kuingiza amri.

Kazi nambari 2

Ili kuingiza amri:

  1. Andika maandishi ya amri kwenye mstari wa amri (kwa mfano, amri dir).
  2. Bonyeza kitufe Ingiza.

Msindikaji wa amri na amri za mfumo wa uendeshaji zinaelezwa katika nyaraka za uendeshaji kwa mwisho. Nyaraka hizi zimo ndani ya mfumo wa uendeshaji yenyewe. Ili kuipata, tumia amri ya usaidizi. Amri hii inaonyesha orodha amri zinazopatikana. Ili kupata maelezo ya amri maalum, unapaswa kutaja jina lake kama parameter kwa amri ya usaidizi (au taja amri na kutengwa na nafasi /?).

Kazi nambari 3

Ili kuona orodha ya amri zinazopatikana:

  1. Andika maandishi ya amri msaada kwenye mstari wa amri.
  2. Bonyeza kitufe Ingiza.

Uelekezaji kwingine wa I/O

Matokeo ya kutekeleza amri ya usaidizi haifai kwenye skrini moja (tatizo sawa hutokea kwa maandishi ya maelezo ya amri). Usumbufu huu unaweza kuepukwa kwa kuelekeza pato kwa faili.

Kazi nambari 4

Ili kuelekeza matokeo ya amri kwa faili, tumia ishara >:

  1. Fungua FAR (kupitia menyu ya Mwanzo, au kwa kuingiza amri ya mbali katika "Run a program" - tazama kazi No. 1)
  2. Nenda kwako folda ya kufanya kazi(katika FAR e : bonyeza Alt+F1, chagua kiendeshi cha "Z: mtandao" kisha uende kwenye folda yako
  3. Bonyeza njia ya mkato ya kibodi Ctrl+O (nenda kwa amri ya haraka ili kurudi kwenye ganda FAR, bonyeza Ctrl + O tena)
  4. Andika maandishi ya amri msaada > a. txt kwenye mstari wa amri.
  5. Bonyeza kitufe Ingiza.
  6. MBALI faili mpya iliyoundwa a. txt.
  7. Andika maandishi ya amri msaada >> a. txt kwenye mstari wa amri.
  8. Bonyeza kitufe Ingiza.
  9. Angalia matokeo: Fungua kupitia meneja wa faili MBALI faili mpya iliyoundwa a. txt (chagua faili inayofaa na ubonyeze kitufe F 4).
  10. Amua ni tofauti gani kati ya kutumia > na >> (Ili kufanya hivyo, amri zinazolingana zinaweza kutekelezwa mara kadhaa, na kila wakati unahitaji kutathmini matokeo yaliyopatikana)?
  11. Angalia orodha ya amri zinazopatikana.

Kazi nambari 5

Jifunze jinsi timu zinavyofanya kazi hoja na ren :

  1. Kagua usaidizi wa amri hizi.
  2. Unda saraka kwenye saraka yako ya kufanya kazi sanduku na meza.
  3. Katika saraka ya kisanduku, tengeneza jaribio la faili 1. txt.
  4. Hamisha faili mtihani 1.txt kutoka kwa saraka ya kisanduku hadi saraka ya jedwali kwa kutumia amri: hoja box\ test 1.txt table .
  5. Badilisha jina la faili test 1.txt to file test 2.txt kwa kutumia amri: mtihani wa ren 1.txt mtihani 2.txt.

Saraka ya sasa. Njia kamili na za jamaa

Wakati wa kufanya kazi na amri za faili, dhana ya saraka ya sasa inakuwa muhimu sana. Ukweli ni kwamba wakati wa kutaja faili kama parameta ya amri, sisi hutumia moja ya njia mbili zinazowezekana kuwaelekeza: ama njia kabisa, au njia ya jamaa. Katika njia kamili tunaonyesha kila kitu kuanzia na gari (au jina la mtandao wa kompyuta), kwa mfano d:\misha\box\ mtihani 1.txt. Chochote saraka itatokea kuwa ya sasa wakati amri imeingizwa, njia kamili itafanana na faili sawa. Kwa njia ya jamaa saraka ya sasa hutumika kama mahali pa kuanzia. Kesi rahisi zaidi ya njia ya jamaa ni jina la faili. Katika muktadha wa utekelezaji wa amri, inamaanisha faili iliyo na jina hilo iko kwenye saraka ya sasa.

Kuandika njia ya jamaa kwa saraka ya sasa kuna nukuu ya masharti. (kitone). Ili kurekodi njia ya jamaa kwenye saraka ambayo ina saraka ya sasa, kuna nukuu ya masharti .. (dots mbili). Timu nakala *.* .\ jedwali inakili faili zote kutoka kwa saraka ya sasa hadi saraka meza , iko karibu nayo.

Faili za kundi

Hadi sasa, wakati wa kutoa mifano, tulidhani kuwa tulikuwa tunaingiza amri kwa mikono kila wakati. Wakati wa kusindika idadi kubwa ya faili au kutekeleza kwa utaratibu amri sawa, hii inakuwa ngumu. Kwa hiyo, processor ya amri hutoa uwezo wa kutekeleza faili za amri.Faili ya amri ni faili ya maandishi ambayo amri huandikwa(au angalau amri moja). Mfano wa faili ya batch:

msaada kunakili > copy.help

saidia kusonga > kusonga.saidia

md msdos-msaada

sogeza *.saidia msdos-help

Kazi Nambari 6

  1. Eleza kile kinachotokea wakati amri hizi zinatekelezwa.

Ni kawaida kutoa faili za amri ugani wa popo. Hivi ndivyo faili za aina hii zinatambuliwa na processor ya amri. Faili hii inaweza kuitwa, kwa mfano, make-help.bat.

Ili kuendesha faili ya batch:

  1. Ingiza jina lake kama amri. Baada ya hayo, faili ya batch itatekelezwa.

Katika faili ya batch, kila amri inachukua mstari mmoja. Kwa usahihi zaidi, kuna njia ya kuweka amri moja kwenye mistari kadhaa mfululizo; kufanya hivyo, mara moja kabla ya kila mstari kukatika unapaswa kuweka herufi ya "cap" ^. (Kila kofia lazima iwe herufi ya mwisho kwenye mstari wake; lazima kusiwe na nafasi au vichupo baada yake.) Mfano:

ikiwa ipo Z:\test.txt ^

nakala test.txt ^

Z:\jaribio\

Wakati faili ya batch inatekelezwa, processor ya amri huichanganua kutoka juu hadi chini kutoka mstari wa kwanza hadi wa mwisho na kutekeleza amri kwa utaratibu ambao inakutana nao. Inazifanya kwa ujumla kana kwamba kila moja imeingizwa kwa mikono.

Ikiwa ni lazima, mlolongo wa utekelezaji wa amri unaweza kubadilishwa kwa kutumia udhibiti.

Usichanganye saraka ya sasa na saraka ambayo faili ya batch itazinduliwa iko. Wacha tuseme saraka ya sasa ni kazi, ina saraka ya zana, na saraka ya zana huhifadhi faili za amri. Unazindua mojawapo kwa zana za amri\collect-images.bat. Kwa hiyo, "kutoka kwa mtazamo" wa faili hii ya kundi, saraka ya sasa bado itakuwa kazi, si zana.

Kutoa maoni juu ya faili ya batch na matokeo yake.

echo na rem amri

Faili ya kundi kimsingi ni programu iliyoandikwa kwa lugha ya kichakata amri ya mfumo wa uendeshaji. Maandishi ya programu yanapaswa kutolewa kwa maoni ili, unaporudi kwa muda fulani baadaye, huna budi kukumbuka kwa uchungu kwa nini programu hii inahitajika na jinsi inavyofanya kazi.

Mfumo wa amri wa MS-DOS hutoa amri ya rem ya kuunda maoni. Hii ni amri ya dummy ambayo haihusishi kufanya vitendo vyovyote, lakini inakuwezesha kuandika maandishi ya kiholela kwenye mstari baada ya jina lako. Kwa kuongezea, kichakataji cha amri hakioni kama kosa la kisintaksia.

Mfano:

rem ********************************************** ****

rem Inazalisha faili za usaidizi

msaada kunakili > copy.help

saidia kusonga > kusonga.saidia

md msdos-msaada

sogeza *.saidia msdos-help

Angalia mistari tupu ambayo inagawanya faili ya batch kuwa "aya." Ujanja huu rahisi hukuruhusu kufanya faili yako ya batch isomeke zaidi.

Wakati wa kutekeleza faili ya batch hapo juu, amri zote zitaonyeshwa kwenye skrini zinapotekelezwa, ambayo sio rahisi kila wakati. Utoaji wa amri unaweza kulemazwa kwa kutumia amri ya @echo off. Ishara ya "mbwa" kabla ya amri ya echo ina maana kwamba amri hii yenyewe inapaswa kutekelezwa katika hali ya "kimya". Tunaweza pia kutotumia amri ya echo off, lakini kuweka "mbwa" mbele ya kila amri.

Mara nyingi, unataka faili ya batch ili kuonyesha ujumbe fulani kwenye skrini (au kwenye faili). Katika baadhi ya matukio haya yanaweza kuwa ujumbe wa makosa, kwa wengine ujumbe wa habari unaoelezea kwa mtumiaji wa faili ya batch kile kinachotokea ndani. wakati huu. Amri sawa ya echo hutumiwa kuonyesha ujumbe. Maandishi ya ujumbe utakaoonyeshwa hupitishwa kwake kama kigezo. Mfano wa faili ya batch iliyoboreshwa:

@echo imezimwa

rem ********************************************** ****

rem Inazalisha faili za usaidizi za kunakili na kuhamisha amri

rem ********************************************** ****

@echo Inazalisha faili za usaidizi. Sekunde moja...

rem Inazalisha faili za usaidizi

msaada kunakili > nakala . msaada

kusaidia kusonga > kusonga. msaada

rem Unda saraka ili kuhifadhi faili za usaidizi

md msdos-msaada

rem Hamisha faili za usaidizi kwenye saraka iliyoandaliwa

sogeza *.saidia msdos-help

mwangwi Umekamilika!

Kupitisha vigezo kwa faili ya amri

Wacha tuseme tunataka kuunda faili ya batch ambayo kwanza hutoa usaidizi wa kuelezea amri iliyoainishwa na mtumiaji, na kisha kuipakia kwenye Notepad kwa kutazamwa. Ujanja ni kusema kwa njia fulani wakati mwingine tunapoendesha faili ya batch ambayo amri tunavutiwa nayo wakati huu.

Ili kutatua tatizo hili, utaratibu wa usindikaji wa parameter hutolewa. Inafanya kazi kwa urahisi kabisa. Ikiwa, wakati wa kuendesha faili ya amri, mtumiaji alitaja vigezo kadhaa, basi katika maandishi ya faili ya amri tunaashiria ya kwanza yao na kuingia% 1, ya pili na kuingia% 2, ya tatu na kuingia% 3, na kadhalika. Tunatumia nukuu hizi katika maandishi ya faili ya amri kwa njia sawa na vile tunavyotumia viwakilishi katika usemi asilia.

Maandishi ya faili ya amri ambayo hutatua tatizo yametolewa hapa chini. Makini na amri ya usaidizi. Kigezo cha kwanza cha faili ya amri hupitishwa kwake kama kigezo chake.

@echo imezimwa

rem Unda faili na maelezo ya amri,

rem ambaye jina lake limepitishwa kama kigezo

msaada %1 > help.tmp

rem Pakia faili ya maelezo kwenye kihariri cha Notepad

notepad help.tmp

Hebu tuchukulie kwamba tuliita faili hii batch show-help.bat. Ili kupakia maelezo ya amri kwenye notepad, kwa mfano, dir, lazima tuingize amri kama ifuatavyo: show-help.bat dir

Faili ifuatayo ya amri huunda saraka na jina lililotajwa kwenye paramu ya kwanza na huandika faili ndani yake na maandishi yanayoelezea amri iliyoainishwa kwenye paramu ya pili:

rem Mfano wa faili ya amri yenye vigezo viwili

rem Unda saraka na jina lililotajwa na parameta ya kwanza

md %1

rem Unda faili ndani yake na maelezo ya amri,

rem iliyoainishwa na parameta ya pili

msaada %2 > %1\%2.help

Ni nini hufanyika ikiwa mtumiaji atabainisha vigezo vinne badala ya viwili wakati wa kuendesha faili hii ya batch? Ni sawa, hawataingilia kati na chochote, hawatatumiwa tu. Ni nini hufanyika ikiwa mtumiaji atabainisha parameta ya kwanza tu? Kigezo cha pili kitakuwa tupu. Athari itakuwa hii: faili ya batch itatekelezwa, lakini kana kwamba hakuna kitu mahali pa kiingilio cha %2. Amri ya usaidizi itatoa orodha ya amri zote na kuiweka kwenye faili na jina tupu na ugani .msaada. Ikiwa mtumiaji anaendesha faili hii bila kutaja vigezo vyovyote, basi wakati processor ya amri inapojaribu kutekeleza amri ya md (iliyokusudiwa kuunda saraka), ujumbe kuhusu kosa la sintaksia, kwa kuwa amri ya md lazima iwe na parameta.

Kwa hivyo, kutumia vigezo hutengeneza fursa nzuri, lakini kunaweza kutatiza mambo kwa kiasi kikubwa. Ili faili ya batch ifanye kazi kwa usahihi kila wakati, ni muhimu kuangalia usahihi wa vigezo maalum vya mtumiaji na kwa namna fulani kujibu data isiyo kamili au sahihi ya pembejeo.

Vigezo. kuweka amri

Tofauti ni thamani iliyopewa jina. Ili kutangaza kutofautiana na wakati huo huo upe thamani kwake, tumia amri iliyowekwa. Mfano wa amri hii umeonyeshwa katika orodha ifuatayo.

rem Mkusanyaji wa faili za HELP katika umbizo la CHM

weka help_compiler=

Ili kutoa thamani ya kutofautisha, jina lake huwekwa kati ya asilimia mbili ya ishara, kama inavyoonyeshwa hapa chini.

rem Mkusanyaji wa faili za usaidizi katika umbizo la CHM

weka help_compiler= C:\Program Files\HTML Help Warsha\hhc.exe

rem Faili ya usaidizi ya mradi kwa moduli ya "Ghala".

set store_hpj=”Z:\store.hpj”

rem Faili ya usaidizi ya mradi kwa moduli ya "Mauzo".

set sales_hpj=”Z:\sales.hpj”

rem Kukusanya faili za usaidizi

%help_compiler% %store_hpj%

%help_compiler% %sales_hpj%

Mfano huu unaonyesha kwa nini vigezo ni muhimu.

Kwanza, wanakuruhusu kutumia kipande kifupi sawa nacho ndani ya faili ya batch badala ya kipande kirefu (kwa mfano, njia ya mkusanyaji wa faili ya usaidizi); hii ni rahisi.

Pili, hukuruhusu kuzuia kurudia katika maandishi ya faili ya amri ya vipande ambavyo vinaweza kubadilika katika siku zijazo.

Vigezo vya faili za kundi pia ni vigeu, lakini vinatofautiana na vigeuzo vya kawaida kwa kuwa maadili yao huwekwa wakati faili ya kundi inapozinduliwa. Katika siku zijazo, wakati wa kuzungumza juu ya vigezo, hasa kuhusu kufanya kazi na maadili yao, tutamaanisha pia vigezo vya faili za amri, angalau kwa kutokuwepo kwa kutoridhishwa wazi juu ya hili.

Wakati wa kuandika faili za kundi, mbinu ifuatayo hutumiwa mara nyingi: maadili kadhaa ya kutofautisha yanaonyeshwa kando (au kuingiliana na alama fulani au mistari), ili kupata thamani mpya ya maana.

Mfano:

set help_compiler=" C:\Program Files\HTML Help Warsha\hhc.exe "

weka project_path=”Z:\<ваша_папка>\msaada"

Kuangalia hali na kuchagua chaguzi. if na goto amri

Amri ya if hukuruhusu kuchagua vikundi vya amri katika faili ya bechi ambayo inatekelezwa au haijatekelezwa kulingana na hali fulani. Ni ya nini?

Angalia hali karibu kipimo cha lazima wakati wa kuunda faili za batch zinazotumia vigezo. Kabla ya kuanza kazi, faili ya batch kwa ujumla inahitaji kuhakikisha kuwa seti sahihi ya vigezo hupitishwa kwake. Vinginevyo, kuna hatari kubwa kwamba itatekelezwa kwa usahihi au kwa ufanisi, na mtumiaji ataachwa tu kujiuliza ni tatizo gani. Zaidi ya hayo, ikiwa faili ya kundi itafuta, kusonga, au kubatilisha data yoyote, inaweza hata kusababisha uharibifu ikiwa vigezo si sahihi.

Mfano ufuatao unaonyesha faili ya amri ya utungaji wa faili ya usaidizi ambayo tayari unaifahamu. Cheki ya kutokuwa tupu kwa parameta ya kwanza imeongezwa mwanzoni mwa faili ya amri. Tafadhali kumbuka kipengele hiki cha syntax: operesheni ya kulinganisha hutumia ishara mbili sawa. Ikiwa parameter ya kwanza haina tupu, amri ya goto inatekelezwa, ambayo "hutupa" shell kwenye lebo maalum. KATIKA kwa kesi hii jina la lebo hii ni mkusanyiko. Kumbuka kwamba mahali ambapo lebo inaonekana, jina lake hutanguliwa na koloni, lakini katika amri ya goto sio. Ikiwa parameter ya kwanza ni tupu, shell huhamia kwenye mstari unaofuata, ambao hutoa ujumbe wa makosa. Na kisha kwa inayofuata, ambayo huihamisha hadi mwisho kabisa wa faili hadi lebo inayoitwa kumaliza.

@echo imezimwa

kama sio "%1"=="" goto compile

echo Jina la mradi wa faili ya Msaada halijabainishwa

rem na uende hadi mwisho wa faili ya batch

alama ya kumaliza

kwenda kumaliza

rem Hii ni lebo inayoitwa mkusanyiko

:kusanya

rem Njia ya mkusanyaji wa faili ya usaidizi

weka help_compiler="c:\Program Files\HTML Help Warsha\hhc.exe"

rem Njia ya saraka ambapo miradi ya faili ya usaidizi iko

weka project_path=”Z:\<ваша_папка>\msaada"

rem Piga simu mkusanyaji kushughulikia mradi maalum,

rem ambaye jina lake limepitishwa katika parameta ya kwanza

%help_compiler% %project_path%\%1.hpj

rem Hii ni lebo yenye jina kumaliza

:maliza

Njia iliyopendekezwa ya kuangalia parameter sio mafanikio zaidi.

Kwanza, ikiwa mtumiaji atataja kimakosa jina la faili ambayo haipo kama kigezo, faili ya batch itaridhika na hii na kujaribu kukusanya. Njia bora ni kuangalia ikiwa faili kama hiyo ipo. Kwa kusudi hili, lugha ya amri ya MS-DOS hutoa neno maalum kuwepo. Kwa hivyo, itakuwa bora kuandika: ikiwa ipo %1.hpj goto compile.

Pili, utumiaji hai wa amri ya goto (kinachojulikana kuruka bila masharti) na lebo huchanganya sana msimbo. Kitaalam, sio mbaya, lakini kurekebisha na kudumisha faili ya batch iliyoandikwa kwa mtindo huu sio rahisi sana. Kwa hivyo, waandaaji wa programu kwa muda mrefu wamezingatia kuruka bila masharti mbinu isiyofaa. Ifuatayo inaonyeshwa sahihi zaidi, kutoka kwa mtazamo wa mtindo wa programu, toleo la muundo, ambalo linatumia ikiwa ... jenga. Inafanya kazi kama hii: ikiwa hali ni kweli, amri kwenye mabano baada ya if inatekelezwa, na ikiwa sio kweli, basi amri kwenye mabano baada ya nyingine kutekelezwa.

@echo imezimwa

rem Angalia ikiwa kigezo kimewekwa

kama haipo %1.hpj (

Rem Ikiwa kigezo ni tupu, tunaonyesha ujumbe wa hitilafu

) mwingine (

Rem Chini ni maagizo ya mkusanyiko

Njia ya Rem kwa mkusanyaji wa faili ya usaidizi

Weka help_compiler="C:\Program Files\HTML Help Warsha\hhc.exe"

rem Njia ya saraka ambapo miradi ya faili ya usaidizi iko

Weka project_path=”Z:\<ваша_папка>\msaada"

rem Piga simu mkusanyaji kushughulikia mradi maalum,

Rem ambaye jina lake limepitishwa katika parameta ya kwanza

%help_compiler% %project_path%\%1.hpj

Wacha tutoe mfano mwingine wa kufanya kazi na hundi. Faili ya bechi ifuatayo inaunda saraka inayoitwa faili-saidizi (ikizingatiwa kutupa faili za usaidizi zilizokusanywa ndani yake). Kwa kuongezea, ikiwa saraka iliyo na jina moja tayari iko (na labda ina faili za usaidizi za zamani ambazo hungependa kupoteza: vipi ikiwa mpya itakuwa mbaya zaidi?), faili ya batch inapeana ugani wa bak kwake. . Lakini ikiwa saraka help-files.bak tayari ilikuwepo, basi faili ya batch inaifuta (tutafikiri kwamba nakala moja ya chelezo inatosha kwetu).

kama zipo help-files.bak rd help-files.bak

kama zipo faili za usaidizi ren faili za msaada help-files.bak

md faili za usaidizi

Usindikaji wa faili nyingi. kwa amri

Kwa amri hukuruhusu kupanga utekelezaji wa vitendo vinavyorudiwa vya aina moja. Unaweza kuitumia kuonyesha nambari moja hadi kumi, kama inavyoonyeshwa kwenye orodha ifuatayo.

kwa /l %%i katika (1,1,10) fanya mwangwi %%i

Tofauti i inaitwa kaunta ya kitanzi. Kwa sababu ya sintaksia ya kipekee ya amri, jina la kihesabu kitanzi lazima liwe na herufi moja. Zaidi ya hayo, ikiwa tunaandika faili ya kundi, basi tunahitaji kuweka ishara ya asilimia mbili mbele ya jina la kitanzi, lakini ikiwa tunaandika tu amri kwenye mstari wa amri, basi moja.

Mantiki ya amri hii ni kama ifuatavyo. Baada ya neno katika anuwai ya mabadiliko ya kihesabu kitanzi imeonyeshwa. KATIKA chaguo hili amri ni mara tatu ya namba: thamani ya awali ya counter, hatua ya kuhesabu, thamani ya kikomo ya counter. Wakati wa kutekeleza amri, processor ya amri itawapa kwanza thamani 1 kwa kutofautiana i, na kisha katika kila hatua ya kitanzi itaongeza kwa 1 hadi kuzidi 10. Ni wazi, kutakuwa na hatua kumi kama hizo. Ikiwa tungetaja nambari 2 kama hatua ya kuhesabu, kitanzi kingetekelezwa mara tano. Katika kila hatua ya kitanzi, mwili wa kitanzi kilichoandikwa baada ya neno fanya hutekelezwa. Katika mfano hapo juu, hii ni amri ya echo, ambayo inaonyesha thamani ya sasa ya counter ya kitanzi.

Pengine unaweza kufikiria hali ambapo kitu kama hiki kinahitajika, lakini kwa kawaida for command hutumiwa kupitia na kuchakata faili. Inapaswa kusemwa kuwa katika hali rahisi, usindikaji wa faili nyingi hufanywa kwa kutumia herufi za kadi ya mwitu. Ikiwa tunataka kuchukua nafasi ya ugani .htm na .html kwa faili zote kwenye saraka ya sasa, tunaingiza amri ren *.htm *.html. Lakini ikiwa kitu kimoja kinahitajika kufanywa sio kwenye saraka moja, lakini kwenye mti wa saraka, basi huwezi kufanya bila amri. Faili ya bechi ifuatayo hufanya operesheni hii kwa faili zote za htm kwenye saraka ndogo ya tovuti ya saraka ya sasa. Kwa usahihi, katika mti mzima wa saraka ambayo iko ndani ya tovuti.

kwa tovuti /r %%i katika (*.htm) fanya %%i %%~ni.html

Swichi ya /r inaonyesha hitaji la kupita saraka ya tovuti na mambo yake yote ya ndani. Ikiwa hutaifafanua (lakini basi hairuhusiwi kutaja saraka), basi faili tu katika saraka ya sasa zitashughulikiwa. Aina mbalimbali za thamani za kihesabu kitanzi katika toleo hili la amri ni seti ya faili zote zilizo na kiendelezi cha .htm kilicho ndani ya saraka (kwa usahihi zaidi, mti) wa tovuti. Nukuu ~ni, ambayo inaonekana ya kushangaza kwa mtazamo wa kwanza, inamaanisha kuwa ni jina la faili pekee linalohitaji kutolewa kutoka kwa thamani ya kutofautisha i. Lugha ya amri ya MS-DOS hutoa marekebisho kadhaa kama haya, kwa mfano, kiingilio ~xi kinaonyesha kiendelezi cha faili. Marekebisho yote yameelezewa katika msaada wa amri.

Mwili wa kitanzi unaweza kujumuisha amri kadhaa zilizofungwa kwenye mabano.

@echo imezimwa

kwa tovuti /r %%i katika (*.htm) fanya (

rem Chapisha jina la faili

Mwangwi %%i

Badilisha jina la faili

Ren %%i %%~ni.html

Inahamisha udhibiti kwa faili nyingine ya batch. piga amri

Inawezekana kupiga faili nyingine ya batch kutoka faili moja ya batch. Amri ya simu inatumika kwa hili. Kubwa, vigezo vilivyoainishwa kwenye faili ya kundi la kupiga simu "zinaonekana" kwa anayeitwa. Na kinyume chake, baada ya faili inayoitwa kumaliza kazi yake na kurejesha udhibiti kwa mpigaji, mwisho "utaona" vigezo vilivyoachwa na "urithi" inayoitwa. Hii inaruhusu msanidi faili wa kundi kufanya kitu kama hiki: Ikiwa faili kadhaa za amri zinapaswa kutumia maadili sawa, kwa mfano, njia za faili fulani, zinaweza kuwekwa kwenye faili tofauti ya amri, ambayo itakuwa na jukumu la faili ya usanidi. Kila faili ya amri ya kufanya kazi itaanza na simu ya usanidi. Faida ni kwamba wakati wa kubadilisha njia, lazima ufanye mabadiliko kwa moja tu faili ya usanidi, na sio kwa wafanyikazi wengi.

"Usanidi" faili ya batch config.bat .

rem Njia ya mkusanyaji wa faili ya usaidizi

set help_compiler="C:\Program Files\HTML Help Warsha\hhc.exe"

rem Njia ya saraka ambapo miradi ya faili ya usaidizi iko

weka project_path="Z:\"<ваша_папка>\msaada"

Faili ya batch "inafanya kazi".

@echo imezimwa

rem Kuweka vigezo

piga simu config.bat

rem Angalia ikiwa kigezo kimewekwa

kama haipo %1.hpj (

Rem Ikiwa kigezo ni tupu, tunaonyesha ujumbe wa hitilafu

Echo Hakuna mradi kama huo wa faili ya usaidizi uliopo.

) mwingine (

Rem Chini ni maagizo ya mkusanyiko

Rem Piga simu mkusanyaji kushughulikia mradi maalum,

Rem ambaye jina lake limepitishwa katika parameta ya kwanza

%help_compiler% %project_path%\%1.hpj

MAELEZO

Amri za FAR (njia za mkato za kibodi):

  • Ctrl+O kubadili kati ya console na shell
    • Alt+F1 chagua kiendeshi kwa paneli ya kushoto
    • Alt+F2 chagua kiendeshi kwa paneli
    • Msaada wa F1
    • F 2 kuhifadhi faili iliyohaririwa
    • F 3 fungua faili kwa kutazamwa
    • F 4 fungua faili kwa ajili ya kuhariri
    • Shift + F 4 kuunda faili mpya
    • F5 nakala faili/saraka
    • F5 sogeza faili/saraka
    • F 7 kuunda katalogi mpya
    • F8 futa faili/saraka ya sasa (iliyochaguliwa).
    • F9 kuu (juu) menyu
    • F 10 pato
    • Ingiza uzindua faili ya sasa (iliyochaguliwa) na programu (pamoja na faili ya amri)

Amri lugha ya ganda(iliyotafsiriwa kama shell, shell) kwa kweli ni lugha ya kiwango cha juu sana cha programu. Katika lugha hii, mtumiaji anadhibiti kompyuta. Kwa kawaida, baada ya kuingia, unaanza kuingiliana na ganda la amri. Ishara kwamba shell iko tayari kupokea amri ni kichocheo kinachoonyesha kwenye skrini. Katika hali rahisi ni dola moja ("$"). Shell sio lazima na lugha ya amri pekee (ingawa ndiyo iliyosawazishwa ndani ya mfumo wa POSIX, kiwango cha mifumo ya rununu). Kwa mfano, lugha ya cshell ni maarufu sana; pia kuna kshell, bashell na zingine. Kwa kuongeza, kila mtumiaji anaweza kuunda lugha yake ya amri. Inaweza kufanya kazi wakati huo huo na lugha tofauti za amri kwenye mfano mmoja wa mfumo wa uendeshaji. shell ni mojawapo ya amri nyingi za UNIX. Hiyo ni, seti ya amri ya "shell" inajumuisha amri ya "sh" - kumwita mkalimani wa "shell". "Shell" ya kwanza inaitwa moja kwa moja unapoingia na kuonyesha programu. Baada ya hayo, unaweza kuita amri yoyote ya utekelezaji, ikiwa ni pamoja na "shell" yenyewe, ambayo itaunda shell mpya kwako ndani ya zamani. Kwa hivyo kwa mfano, ukitayarisha faili "file_1" kwenye kihariri:

Mwangwi Jambo!

basi hii itakuwa faili ya maandishi ya kawaida iliyo na amri ya "echo", ambayo, wakati inatekelezwa, inaonyesha kila kitu kilichoandikwa kwa haki yake kwenye skrini. Unaweza kufanya faili "file_1" itekelezwe kwa kutumia amri "chmod 755 file_1". Lakini inaweza kufanywa kwa kuita kwa uwazi amri ya "sh" ("ganda"):

Sh faili_1

Sh< file1

Faili pia inaweza kutekelezwa katika mfano wa sasa wa ganda. Kuna amri maalum kwa hii "." (kitone), i.e.

Faili_1

Kwa kuwa UNIX ni mfumo wa watumiaji wengi, unaweza hata kompyuta binafsi fanya kazi sambamba, sema, skrini 12 (kubadilisha kutoka skrini hadi skrini ya ALT/kitufe cha kazi), kuwa kwenye kila skrini mtumiaji mpya (au sawa) na ganda lake la amri. Unaweza pia hali ya picha X-Windows pia hufunguliwa idadi kubwa madirisha, na kila dirisha linaweza kuwa na mtumiaji wake na shell yake ya amri ... Kipengele cha msingi cha lugha ya shell ni amri.

Muundo wa amri:

Amri kwenye ganda kawaida huwa na muundo ufuatao:

<имя команды> <флаги> <аргумент(ы)>

Kwa mfano:

Ls -ls /usr/bin

Ambapo ls ni jina la amri ya kutoa yaliyomo kwenye saraka, -ls ni bendera ("-" ni ishara ya bendera, l ni muundo mrefu, s ni kiasi cha faili kwenye vizuizi), /usr/ bin ni saraka ambayo amri inatekelezwa. Amri hii itaonyesha yaliyomo kwenye saraka ya /usr/bin katika umbizo refu, na itaongeza maelezo kuhusu saizi ya kila faili kwenye vizuizi. Kwa bahati mbaya, muundo huu wa amri haufuatwi kila wakati. . Bendera si mara zote hutanguliwa na minus, na bendera sio neno moja kila wakati. Ndiyo aina tofauti katika uwasilishaji wa hoja. Amri zenye miundo ya kigeni hujumuisha amri za "kukimbia" kama vile cc - kuita mkusanyaji wa lugha C, tar - kufanya kazi. na kumbukumbu, dd - kunakili faili na ubadilishaji, pata - kutafuta faili na idadi ya zingine Kama sheria, ganda huona neno la kwanza kama amri. Kwa hivyo, kwenye safu ya amri

neno la kwanza litafutwa na ganda kama amri (concatenation), ambayo itaonyesha faili inayoitwa "paka" (neno la pili) iliyoko kwenye saraka ya sasa. Amri ya uelekezaji upya Ingizo la kawaida (pembejeo) - "stdin" katika UNIX OS inafanywa kutoka kwa kibodi cha terminal, na pato la kawaida(pato) - "stdout" inaelekezwa kwenye skrini ya terminal. Kuna pia faili ya kawaida ujumbe wa uchunguzi - "stderr", ambayo itajadiliwa baadaye kidogo. Timu ambayo inaweza kufanya kazi nayo pembejeo ya kawaida na pato linaitwa FILTER. Mtumiaji ana njia rahisi za kuelekeza pembejeo na pato kwa faili zingine (vifaa). Alama za ">" na ">>" zinaonyesha uelekezaji wa pato. ls >file_1 Amri ya "ls" itazalisha orodha ya faili katika saraka ya sasa na kuiweka kwenye faili "file_1" (badala ya kuichapisha kwenye skrini). Ikiwa faili "file_1" ilikuwepo hapo awali, itafutwa na mpya.

Pwd >>faili_1

amri ya pwd itaunda jina kamili la saraka ya sasa na kuiweka mwishoni mwa faili "file_1", i.e. ">>" inaambatanisha kwenye faili ikiwa ni tupu. Alama"<" и "<<" обозначают перенаправление ввода.

Wc -l

itahesabu na kuonyesha idadi ya mistari kwenye faili_1.

Mhariri faili_2<

itaunda faili "file_2" kwa kutumia kihariri, moja kwa moja kutoka kwa terminal. Mwisho wa pembejeo imedhamiriwa na mhusika kulia "<<" (т. е. "!"). То есть ввод будет закончен, когда первым в очередной строке будет "!". Можно сочетать перенаправления. Так

Wc -l faili_4

Wc -l > faili_4

hufanywa kwa njia ile ile: idadi ya mistari kwenye faili "file_3" imehesabiwa na matokeo yamewekwa kwenye faili "file_4". Njia inayochanganya pato la kawaida la amri moja na pembejeo ya kawaida ya mwingine inaitwa PIPELINE na inaonyeshwa na upau wa wima "|".

ls | wc -l

orodha ya faili katika saraka ya sasa itatumwa kwa pembejeo ya amri ya "wc", ambayo itaonyesha idadi ya mistari kwenye saraka. Bomba pia linaweza kuchanganya amri zaidi ya mbili, wakati zote, ikiwezekana isipokuwa ya kwanza na ya mwisho, ni vichungi:

Faili ya paka_1 | matokeo ya grep -h | aina | paka -b > faili_2

Bomba hili kutoka kwa faili "file_1" ("paka") litachagua mistari yote iliyo na neno "matokeo" ("grep"), kupanga ("panga") mistari inayotokana, na kisha nambari ("paka -b") na chapisha matokeo katika faili "file_2". Kwa sababu vifaa vya UNIX vinawakilishwa na faili maalum, vinaweza kutumika katika uelekezaji kwingine. Faili maalum ziko kwenye saraka ya "/dev". Kwa mfano, "lp" - kuchapisha; "console" - console; "tty" - i-th terminal; "null" ni faili dummy (tupu) (kifaa). Kisha, kwa mfano,

Ls > /dev/lp

itachapisha yaliyomo kwenye saraka ya sasa, na faili_1< /dev/null обнулит файл "file_1".

Panga faili_1 | tee /dev/lp | mkia -20

Katika kesi hii, faili "file_1" itapangwa na kuchapishwa, na mistari 20 ya mwisho pia itachapishwa kwenye skrini. Hebu turudi kwenye uelekezaji upya wa pato. Faili za kawaida zimepewa nambari:

0 - stdin, 1 - stdout 2 - stderr. Ikiwa hutaki kuwa na ujumbe wa hitilafu kwenye skrini, unaweza kuielekeza upya kutoka kwa skrini hadi kwenye faili uliyotaja (au kuitupa kabisa kwa kuielekeza kwenye faili ya "kifaa tupu" - /dev/null). Kwa mfano, wakati wa kutekeleza amri

Faili ya paka_1 faili_2

ambayo inapaswa kuonyesha yaliyomo kwenye faili "file_1" na "faili_2" kwa mpangilio kwenye skrini, itakupa, kwa mfano, zifuatazo.

111111 222222 paka: f2: Hakuna faili au saraka kama hiyo

ambapo 111111 222222 ni yaliyomo kwenye faili "file_1" na faili "file_2" haipo, ambayo amri ya "paka" iliripoti kwa faili ya kawaida ya uchunguzi, kwa chaguo-msingi, kama vile pato la kawaida linalowakilishwa na skrini. Ikiwa hutaki ujumbe kama huo kwenye skrini, unaweza kuuelekeza kwa faili uliyotaja:

Faili ya paka_1 faili_2 2>f-err

ujumbe wa makosa utatumwa (kama inavyoonyeshwa na uelekezaji upya "2>") hadi faili ya "f-err". Kwa njia, unaweza kutuma taarifa zote kwa faili moja "ff", kwa kutumia katika kesi hii ujenzi

Faili ya paka_1 faili_2 >>ff 2>ff

Unaweza kutaja sio tu ni faili gani ya kawaida ya kuelekeza, lakini pia ni faili gani ya kawaida ya kuelekeza.

Faili ya paka_1 faili_2 2>>ff 1>&2

Hapa, kwanza "stderr" inaelekezwa upya (katika hali ya kiambatanisho) hadi faili "ff", na kisha matokeo ya kawaida yanaelekezwa kwa "stderr", ambayo kwa hatua hii ni faili "ff". Hiyo ni, matokeo yatakuwa sawa na ya awali. Ujenzi "1>&2" inamaanisha kuwa pamoja na nambari ya faili ya kawaida ya kuelekeza, lazima uweke "&" mbele; muundo mzima umeandikwa bila nafasi.<- закрывает стандартный ввод. >- hufunga pato la kawaida. Faili za amri. Kuna chaguzi kadhaa za kuruhusu faili ya maandishi kutumika kama amri. Wacha tutumie kihariri kuunda faili inayoitwa "cmd" iliyo na laini moja kama hii:

Tarehe; pwd; ls

Unaweza kuita ganda kama amri, iliyoashiria "sh", na kuipitisha faili ya "cmd" kama hoja au kama pembejeo iliyoelekezwa, i.e.

$ sh cmd

$sh

Matokeo ya kutekeleza mojawapo ya amri hizi itakuwa tarehe, kisha jina la saraka ya sasa, na kisha yaliyomo kwenye saraka. Chaguo la kuvutia zaidi na rahisi la kufanya kazi na faili ya batch ni kuibadilisha kuwa inayoweza kutekelezwa, i.e. tu kuifanya amri, ambayo inafanikiwa kwa kubadilisha msimbo wa usalama. Kwa kufanya hivyo, lazima kuruhusu utekelezaji wa faili hii. Kwa mfano,

Chmod 711 cmd

itafanya msimbo wa usalama "rwx__x__x". Kisha wito rahisi

itatekeleza amri tatu sawa. Matokeo yatakuwa sawa ikiwa faili iliyo na yaliyomo

Tarehe; pwd; ls

inawakilishwa katika umbo: tarehe pwd ls kwani mpito hadi mstari mwingine pia ni kitenganishi katika mlolongo wa amri. Kwa hivyo, faili zinazoweza kutekelezwa haziwezi tu kuwa faili zilizopatikana kama matokeo ya mkusanyiko na mkusanyiko, lakini pia faili zilizoandikwa kwa lugha ya ganda. Zinatekelezwa kwa njia ya kutafsiri kwa kutumia mkalimani wa ganda

Kutatua faili za kundi

SHELL hutumia njia mbili za kurekebisha faili za batch. Ya kwanza ni: set -v inachapisha mistari ya faili ya amri inaposomwa. Hali hii hutumiwa wakati wa kutafuta makosa ya sintaksia. Ili kuitumia, huna haja ya kurekebisha faili ya amri, kwa mfano: sh -v proc... hapa proc ni jina la faili ya amri. Kubadili -v kunaweza kutumika kwa kushirikiana na -n kubadili, ambayo inazuia utekelezaji wa amri zinazofuata (amri ya kuweka -n inazuia terminal hadi bendera ya EOF itaingia). Amri ya kuweka -x inaonyesha amri zinapotekelezwa, na mistari ya programu hutolewa kwa terminal na maadili yao yanabadilishwa badala ya vigezo. Ili kughairi swichi za -x na -v, unaweza kutumia amri iliyowekwa - na kusakinisha, toa thamani inayolingana na tofauti kubwa. MAZINGIRA YA SHELI (VIGEUZI NA VIGEZO) Katika lugha ya ganda, unaweza kuandika faili za kundi na kutumia amri ya "chmod" ili kuzifanya zitekelezwe. Baada ya hayo, hawana tofauti na amri nyingine za UNIX OS.

Vigezo vya shell

Jina la kutofautisha la ganda ni mlolongo wa herufi, nambari, na mistari chini inayoanza na herufi. Thamani ya kutofautisha kwa ganda ni safu ya herufi. Ukweli kwamba kuna aina mbili tu za data kwenye ganda: safu ya wahusika na faili ya maandishi, kwa upande mmoja, inafanya iwe rahisi kuhusisha watumiaji wa mwisho katika programu ambao hawajawahi kufanya programu hapo awali, na kwa upande mwingine. husababisha pingamizi fulani la ndani kati ya watayarishaji programu wengi ambao wamezoea utofauti mkubwa zaidi na unyumbufu mkubwa wa njia za lugha. Walakini, inafurahisha kuona jinsi watengenezaji wa programu waliohitimu sana, wakiwa wamezoea "sheria za mchezo" wa ganda, huandika programu ndani yake mara nyingi haraka kuliko C, lakini, ni nini kinachovutia sana, katika hali zingine programu hizi. kukimbia kwa kasi zaidi kuliko zile zilizotekelezwa katika C. Jina la kutofautisha ni sawa na wazo la jadi la kitambulisho, i.e. jina linaweza kuwa mfuatano wa herufi, nambari, na mistari chini, kuanzia herufi au kistari. Opereta ya kazi "=" inaweza kutumika kugawa maadili kwa vigeu.

Var_1=13 - "13" sio nambari, lakini mfuatano wa tarakimu mbili. var_2="UNIX OS" - Nukuu mbili (" ") zinahitajika hapa kwa sababu kuna nafasi katika mfuatano.

Njia zingine za kugawa maadili kwa anuwai za ganda pia zinawezekana. Kwa mfano, rekodi

DAT=`tarehe`

husababisha amri ya "tarehe" kutekelezwa kwanza (vijiti vya nyuma vinaonyesha kuwa amri iliyoambatanishwa lazima itekelezwe kwanza), na matokeo ya utekelezaji wake, badala ya kutolewa kwa pato la kawaida, hupewa kama thamani ya kutofautisha, katika kesi hii "DAT". Unaweza pia kugawa thamani kwa kutofautiana kwa kutumia amri ya "soma", ambayo inahakikisha kwamba thamani ya kutofautiana inapokelewa kutoka kwa onyesho la (kibodi) katika hali ya mazungumzo. Kawaida amri ya "kusoma" katika faili ya batch inatanguliwa na amri ya "echo", ambayo inakuwezesha kuonyesha ujumbe fulani kwenye skrini. Kwa mfano:

Echo -n "Ingiza nambari ya tarakimu tatu:" soma x

Wakati wa kutekeleza sehemu hii ya faili ya amri, baada ya ujumbe kuonyeshwa

Weka nambari yenye tarakimu tatu:

mkalimani ataacha na kusubiri thamani kuingizwa kutoka kwenye kibodi. Ikiwa umeingia, sema, "753" basi hii itakuwa thamani ya kutofautisha "x". Amri moja ya "kusoma" inaweza kusoma (kukabidhi) maadili kwa anuwai kadhaa mara moja. Ikiwa kuna anuwai nyingi katika "soma" kuliko zilizoingizwa (zilizotenganishwa na nafasi), zile zilizobaki hupewa kamba tupu. Ikiwa kuna maadili zaidi ya kupitishwa kuliko vigezo katika amri ya "kusoma", basi zile za ziada hazizingatiwi. Wakati wa kufikia kutofautiana kwa shell, lazima utangulie jina na ishara ya "$". Kwa hivyo amri echo $var_2 echo var_2 itaonyeshwa kwenye skrini

UNIX OS var_2 Inatoroka

Wacha tuangalie kwa karibu mbinu za kutoroka zinazotumiwa kwenye ganda. Manukuu mara mbili (" "), nukuu moja (" "), na mikwaju ya nyuma (\) hutumiwa kama vifaa vya kutoroka. Hatua yao ni dhahiri kutoka kwa mifano: Unaweza kuandika kazi kadhaa katika mstari mmoja.

X=22 y=33 z=$x A="$x" B="$x" C=\$x D="$x + $y + $z" E="$x + $y + $z " F=$x\ +\ $y\ +\ $z

(mgawo wa G=$x+$y ungeshindwa kwa sababu ya nafasi) Kisha

Echo A = $A B = $B C = $C echo D = $D E = $E F = $F eval echo imetathminiwa A = $A echo ya tathmini imetathminiwa B = $B echo ya tathmini imetathminiwa C = $C

Itaonyeshwa kwenye skrini

A = 22 B = $x C = $x D = 22 + 33 + 22 E = $x + $y + $z F = 22 + 33 + 22 imetathminiwa A = 22 imetathminiwa B = 22 imetathminiwa C = 22

Wacha tutoe mifano zaidi inayohusiana na milisho ya laini ya kutoroka. Acha "kamba" ya kutofautisha ipewe dhamana ya "safu" 2x3: abc def Kumbuka kuwa ili kuzuia kugawa nafasi za ziada, safu ya pili ya safu huanza kutoka nafasi ya kwanza ya safu ifuatayo: string="abc def" Kisha. kuna chaguzi tatu za kuandika kutofautisha katika amri ya "echo" echo $string echo "$string" echo "$string" itatoa matokeo matatu tofauti: abc def $string abc def na mlolongo wa amri echo "str_1 str_2" > file_1 echo "str_1 str_2" > file_2 cat file_1 file_2 itatoa faili zinazofanana kwa mpangilio faili_1 na file_2: str_1 str_2 str_1 str_2 Kumbuka pia kwamba upigaji nyuma (\) hauepuki tu herufi inayoifuata, ambayo hukuruhusu kutumia Alama maalum kama vile wahusika wanaojiwakilisha (inaweza pia kujiepusha yenyewe - \\), lakini katika faili ya amri, kurudi nyuma hukuruhusu kuunganisha mistari kuwa moja (epuka mwisho wa mstari). Kwa mfano, mfano wa safu ya amri uliyopewa hapo awali:

Faili ya paka_1 | matokeo ya grep -h | aina | paka -b > faili_2

inaweza kuandikwa katika faili ya kundi, sema kama

Faili ya paka_1 | grep -h\matokeo | aina | paka -b > faili_2

Kwa njia, ishara ya conveyor pia hutoa athari ya kuendelea na mstari wa amri. Katika kesi hii, inaweza kutoa matokeo mazuri, kama hii:

Faili ya paka_1 | matokeo ya grep -h | aina | paka -b > faili_2

Udanganyifu na vijiwezo vya ganda Licha ya ukweli kwamba vigeu vya ganda kwa ujumla huchukuliwa kuwa vifungu, i.e. "35" sio nambari, lakini safu ya herufi mbili "3" na "5", katika idadi ya kesi zinaweza kufasiriwa tofauti, kwa mfano kama nambari kamili. Amri ya "expr" ina uwezo mbalimbali. Wacha tuonyeshe baadhi kwa mifano: Utekelezaji wa faili ya kundi:

X=7 y=2 a=`expr $x + $y` ; mwangwi a=$a a=`expr $a + 1` ; echo a=$a b=`expr $y - $x` ; echo b=$b c=`expr $x "*" $y` ; echo c=$c d=`expr $x / $y` ; echo d=$d e=`expr $x % $y` ; mwangwi e=$e

itaonyeshwa kwenye skrini

A=9 a=10 b=-5 c=14 d=3 e=1

Operesheni ya kuzidisha ("*") lazima iepukwe, kwa kuwa kwenye ganda ikoni hii inatambulika kama herufi maalum, kumaanisha kuwa mlolongo wowote wa herufi unaweza kubadilishwa mahali hapa. Kwa amri ya "expr", sio tu (integer) inawezekana shughuli za hesabu, lakini pia masharti:

A=`expr "cocktail" : "jogoo"` ; echo $A B=`expr "cocktail" : "tail"` ; echo $B C=`expr "cocktail" : "pika"` ; echo $C D=`expr "jogoo" : "cocktail"` ; mwangwi $D

Nambari zitaonyeshwa kwenye skrini inayoonyesha idadi ya wahusika wanaolingana kwenye minyororo (tangu mwanzo). Mstari wa pili hauwezi kuwa mrefu kuliko wa kwanza:

4 0 0 0

Kuhamisha vigeu vya UNIX OS ina dhana ya mchakato. Mchakato hutokea wakati amri inatekelezwa. Kwa mfano, wakati wa kuandika "p" kwenye kibodi "mchakato "p" huzaliwa. Kwa upande mwingine, "p" inaweza kuibua michakato mingine. Hebu tuchukulie kwamba "p" huita "p1" na "p2", ambayo kwa mfululizo huzaa michakato inayolingana. Kila mchakato una mazingira yake - a seti ya vigeu vinavyopatikana kwake Kwa mfano, kabla ya kuzindua "p" tayari kulikuwa na mazingira ambayo baadhi ya viambajengo vilikuwa vimefafanuliwa.Kuzindua "p" huleta mazingira mapya;"p1" na "p2" tayari yatatolewa ndani yake. Vigezo ni vya ndani kwa mchakato ambao walitangaza, yaani, ambapo wamepewa thamani. Ili ziweze kupatikana kwa michakato mingine iliyozalishwa, lazima zipitishwe kwa uwazi. Ili kufanya hivyo, tumia amri iliyojumuishwa ya "kuuza nje".

Chaguo

Vigezo vinaweza kupitishwa kwa faili ya amri. Ganda hutumia vigezo vya msimamo (yaani, mpangilio ambao wanaonekana ni muhimu). Katika faili ya amri, vigezo vinavyolingana na vigezo (sawa na vigezo vya shell) huanza na ishara "$", ikifuatiwa na moja ya nambari kutoka 0 hadi 9: Hebu "mtihani-1" iitwe na vigezo "jogoo" na "mkia". Vigezo hivi huenda kwenye mazingira mapya chini ya majina ya kawaida "1" na "2". Tofauti (ya kawaida) inayoitwa "0" itahifadhi jina la hesabu inayoitwa. Wakati wa kufikia vigezo, nambari inatanguliwa na ishara ya dola "$" (kama wakati wa kufikia vigezo): $ 0 inafanana na jina la faili hii ya amri; $1 ni kigezo cha kwanza kwa mpangilio; Kigezo cha sekunde $2, nk. Kwa kuwa idadi ya vigezo ambavyo vigezo vinaweza kupitishwa ni mdogo kwa tarakimu moja, i.e. 9 ("0", kama ilivyoonyeshwa tayari, ina maana maalum), basi kwa maambukizi zaidi vigezo, amri maalum "kuhama" hutumiwa. Amri ya "kuweka" hutoa mbinu ya kipekee kwa vigezo. Kwa mfano, kipande

Weka b kwa mwangwi first=$1 second=$2 third=$3

itaonyeshwa kwenye skrini

Ya kwanza=sekunde=b ya tatu=c

hizo. amri ya "kuweka" inaweka maadili ya parameter. Hii inaweza kuwa rahisi sana. Kwa mfano, amri ya "tarehe" inaonyesha tarehe ya sasa, sema "Mon Mei 01 12:15:10 2000", yenye maneno matano, kisha

Weka `tarehe` mwangwi $1 $3 $5

itaonyeshwa kwenye skrini

Jumatatu 01 2000

Amri ya "kuweka" pia inakuwezesha kudhibiti utekelezaji wa programu, kwa mfano: kuweka -v mistari ni pato kwa terminal, kusoma na shell. set +v hughairi hali ya awali. set -x prints amri kwa terminal kabla ya utekelezaji. set +x hughairi hali ya awali. Amri ya "kuweka" bila vigezo inaonyesha hali ya mazingira ya programu kwenye terminal.

Ubadilishaji wa shell

Kabla ya kutafsiri moja kwa moja na kutekeleza amri zilizomo kwenye faili za kundi, ganda hutekeleza aina tofauti mbadala: 1. KUBADILISHA MATOKEO. Amri zote zilizoambatanishwa katika nukuu za nyuma hutekelezwa na matokeo hubadilishwa mahali pake. 2. KUBADILISHA MAADILI YA VIGEZO NA VIGEZO. Hiyo ni, maneno yanayoanza na "$" yanabadilishwa na maadili yanayolingana ya vigezo na vigezo. 3. KUTAFSIRI MAPENGO. Nafasi zilizotoroshwa hazizingatiwi. 4. KUZALISHA MAJINA YA FAILI. Maneno yanaangaliwa kwa uwepo wa wahusika maalum ("*", "?","") na vizazi vinavyofanana vinafanywa. Mazingira ya Programu Kila mchakato una mazingira ambamo unaendeshwa. Shell hutumia idadi ya anuwai hizi za mazingira. Ukiandika amri ya "weka" bila vigezo, skrini itaonyesha habari kuhusu idadi ya vigeu vya kawaida vilivyoundwa wakati wa kuingia (na kisha kupitishwa kwa michakato yako yote mpya "iliyorithiwa"), na vile vile vigeu vilivyoundwa na kusafirishwa na michakato yako. . Aina maalum na maudhui ya pato la habari inategemea kwa kiasi kikubwa juu ya toleo gani la UNIX linatumiwa na jinsi mfumo umewekwa.

Matokeo ya kutekeleza amri iliyowekwa bila vigezo (si kamili):

HOME=/root PATH=/usr/local/bin:/usr/bin:/bin:.:/usr/bin/X11: IFS= LOGNAME=sae MAIL=/var/spool/mail/sae PWD=/home/ sae/SUDY/SHELL PS1=$(PWD):" " PS2=> SHELL=/bin/bash

Wacha tutoe maoni juu ya maadili ya anuwai. HOME=/root ni jina la saraka ya nyumbani ambapo mtumiaji huishia baada ya kuingia. Hiyo ni, baada ya kuingiza jina na nenosiri kwa usahihi, nitajipata kwenye saraka ya "/ mizizi". PATH=/bin:/usr/bin:.:/usr/local/bin:/usr/bin/X11 - tofauti hii inabainisha mlolongo wa faili ambazo shell hutafuta katika kutafuta amri. Majina ya faili yanatenganishwa hapa na koloni. Mlolongo wa kutazama unalingana na mpangilio wa majina kwenye njia. Lakini mwanzoni utafutaji hutokea kati ya kinachojulikana kama amri zilizojengwa. Amri zilizojumuishwa ni pamoja na amri zinazotumiwa sana, kama vile "echo", "cd", "pwd", "tarehe". Baada ya hayo, mfumo unaangalia kupitia saraka ya "/ bin", ambayo inaweza kuwa na amri "sh", "cp", "mv", "ls", nk. Kisha saraka "/ usr/bin" na amri "paka", "ss", "expr", "nroff", "mtu" na wengine wengi. Ifuatayo, utafutaji unafanyika katika saraka ya sasa ("", au jina lingine "tupu", yaani ""), ambapo amri ulizoandika zinapatikana zaidi. Baada ya kuandika mstari wa amri na kushinikiza "ganda" (baada ya kufanya vibadala vinavyohitajika) hutambua jina linalolingana na amri na hulitafuta katika saraka zilizoorodheshwa katika PATH. Ikiwa amri itawekwa nje ya saraka hizi, haitapatikana. Ikiwa kuna amri kadhaa zilizo na jina moja, moja iliyo kwenye saraka iliyotazamwa kwanza itaitwa. PATH, kama vigeu vingine, inaweza kubadilishwa kwa urahisi kwa kuongeza, kupanga upya, au kufuta saraka. IFS= (Kitenganishi cha Sehemu ya Ndani) huorodhesha herufi zinazotumika kutenganisha maneno (sehemu). Hizi ni "nafasi", "tabo" na "mlisho wa mstari", kwa hiyo hapa hakuna kitu kinachoonekana upande wa kushoto wa mgawo na mistari miwili inachukuliwa. LOGNAME=mzizi - jina la kuingia ("jina la mtumiaji"). MAIL=/var/spool/mail/root - jina la faili ambalo (barua-pepe) hupokelewa. PWD=/mzizi - jina la saraka ya sasa PS1=$(PWD): " " - aina ya saraka. Katika kesi hii, mhamasishaji ataonyesha jina la saraka ya sasa ikifuatiwa na koloni na nafasi. Hiyo ni, kutakuwa na "/root: ". PS2=> - kidokezo hiki (hapa ">") kinatumika kama mwaliko wa kuendelea kuingiza (katika mstari unaofuata) amri ambayo haijakamilika. Kwa mfano, chapa mabano ya ufunguzi "(" na baada ya kushinikiza katika mstari unaofuata utaona kishawishi hiki. Ikiwa hujui cha kufanya baadaye, chapa mabano ya kufunga ")" na itatoweka. SHELL=/bin/sh - Tofauti hii inabainisha ganda ambalo mtumiaji anatumia. Katika kesi hii, hutumiwa ganda la kawaida("sh"). Mazingira ya awali husakinishwa kiotomatiki unapoingia kwa kutumia faili kama "/etc/rc" na "/etc/.profile". Njia moja ya kubadilisha mazingira kwa urahisi (kwa mfano, njia ya utafutaji ya amri, aina ya programu, aina ya ganda, rangi ya skrini, n.k.) ni kwa kuweka maelezo haya kwenye orodha yako ya nyumbani katika faili maalumu ".profile" ($(HOME)/ . wasifu), ikikabidhi maadili yanayohitajika vigezo vya mazingira. Hiyo ni, piga faili hii kwenye kihariri na uandike chochote unachotaka). Kisha, kila wakati unapoingia, faili hii itatekelezwa kiotomatiki na kusakinisha mazingira mapya. Faili hii LAZIMA iwekwe kwenye yako Saraka ya NYUMBANI(saraka za kuingia). Inapaswa kukumbushwa katika akili kwamba majina ya faili yanayoanza na nukta kwa ujumla yana hali maalum. Kwa hivyo, hazionyeshwa kwenye skrini na amri rahisi ya "ls" - lazima uita amri hii na bendera "-a". Kwa njia, haziharibiwi bila ubaguzi na amri ya "rm *". Mkalimani wa ganda yenyewe hupeana maadili kiatomati kwa anuwai zifuatazo (vigezo): ? thamani iliyorejeshwa na amri ya mwisho; Nambari ya mchakato wa $; ! nambari ya mchakato wa nyuma;

  1. idadi ya vigezo vya nafasi vilivyopitishwa kwenye ganda;
  • orodha ya vigezo kama mstari mmoja;

@ orodha ya vigezo, kama seti ya maneno; - bendera zilizopitishwa kwenye ganda. Wakati wa kufikia vigezo hivi (yaani, wakati wa kutumia katika faili ya amri - mpango wa shell), unapaswa kuweka "$" mbele. Jukumu muhimu katika kuunda faili za kipekee linachezwa na tofauti maalum "$$", thamani ambayo inalingana na idadi ya mchakato unaofanya hesabu hii. Kila hesabu mpya inayofanywa na kompyuta huanzisha mchakato mmoja au zaidi ambao hupokea nambari kiotomatiki kwa mpangilio. Kwa hivyo, kwa kutumia nambari ya mchakato kama jina la faili, unaweza kuwa na uhakika kwamba kila faili mpya itakuwa na jina jipya (halitaandikwa badala ya lililopo). Faida pia ni hasara kuu ya njia hii ya kutaja faili. Haijulikani ni majina gani yatapewa faili. Na, ikiwa ndani mchakato huu unaweza kupata faili "bila kuangalia", yaani, kwa kuipata kwa kutumia $$, basi faili hizo zinaweza kupotea kwa urahisi. Hii inaunda matatizo ya ziada wakati wa kurekebisha programu. Kumwita mkalimani Baada ya kusajili mtumiaji katika mfumo (kwa kutumia amri ya kuingia), mkalimani wa lugha ya SHELL anaitwa. Ikiwa saraka ya usajili wa mtumiaji ina faili ya .profile, basi kabla ya angalau amri moja kupokea kutoka kwa terminal, mkalimani anatekeleza faili hii (inadhaniwa kuwa faili ya .profile ina amri). Wakati wa kupiga simu, funguo zifuatazo zinaweza kubainishwa: -c string Amri zinasomwa kutoka kwa kamba iliyotolewa. -s Amri zinasomwa kutoka kwa uingizaji wa kawaida. Ujumbe wa mkalimani huandikwa kwa faili ya kawaida ya uchunguzi. -i Hali ya uendeshaji inayoingiliana. Ikiwa tabia ya kwanza ya parameter "0" ni - ishara, basi amri zinasomwa kutoka kwa faili ya .profile.

MIUNDO YA PROGRAM===

Kama ilivyo katika lugha yoyote ya programu, maandishi ya shell yanaweza kuwa na maoni. Alama ya "#" inatumika kwa hili. Kila kitu kilicho kwenye mstari (kwenye faili ya amri) upande wa kushoto wa mhusika huyu hugunduliwa na mkalimani kama maoni. Kwa mfano,

#Haya ni maoni.

Kama lugha yoyote ya utaratibu wa programu, lugha ya shell ina waendeshaji. Idadi ya waendeshaji hukuruhusu kudhibiti mlolongo wa utekelezaji wa amri. Katika waendeshaji vile, mara nyingi ni muhimu kuangalia hali, ambayo huamua mwelekeo ambao mahesabu yanaendelea.

Mtihani ("") amri

Amri ya jaribio huangalia kuwa hali fulani imefikiwa. Chaguo la lugha ya Shell na taarifa za kitanzi hutolewa kwa kutumia amri hii (iliyojengwa ndani). Fomu mbili za amri zinazowezekana:

Hali ya mtihani

[hali]

tutatumia chaguo la pili, i.e. Badala ya kuandika neno "mtihani" kabla ya hali hiyo, tutafunga hali hiyo kwenye mabano, ambayo ni ya kawaida zaidi kwa watengeneza programu. Kwa kweli, ganda litatambua amri hii kwa mabano ya ufunguzi "[" kama neno linalolingana na amri ya "mtihani". Lazima kuwe na nafasi kati ya mabano na hali iliyomo. Lazima pia kuwe na nafasi kati ya thamani na ishara ya ulinganisho au operesheni. Gamba hutumia hali ya "aina" mbalimbali. MASHARTI YA KUANGALIA FAILI: -f file file "faili" ni faili ya kawaida; -d faili ya faili "faili" - saraka; -с faili ya faili "faili" ni faili maalum; -r faili ina ruhusa ya kusoma faili "faili"; -w faili ina ruhusa ya kuandika faili "faili"; -s faili "faili" sio tupu.

MASHARTI YA NAMBA ZA KUJARIBU: str1 = mifuatano ya str2 "str1" na "str2" inayolingana; str1 != str2 masharti "str1" na "str2" si sawa; -n str1 kamba "str1" ipo (isiyo tupu); -z str1 kamba "str1" haipo (tupu). Mifano.

X="nani ni nani"; kuuza nje x; [ "who is who" = "$x" ]; echo $? 0 x=abc ; kuuza nje x ; [ abc = "$x" ] ; echo $? 0 x=abc ; kuuza nje x ; [ -n "$x" ] ; echo $? 0 x="" ; kuuza nje x ; [ -n "$x" ] ; echo $? 1

Kwa kuongeza, kuna mbili maadili ya kawaida masharti ambayo yanaweza kutumika badala ya hali (hakuna mabano inahitajika kwa hili). MASHARTI YA KULINGANISHA VIUNGANISHI: x -eq y "x" ni sawa na "y", x -ne y "x" si sawa na "y", x -gt y "x" ni kubwa kuliko "y", x - ge y "x" ni kubwa kuliko au sawa na "y", x -lt y "x" chini ya "y", x -le y "x" chini ya au sawa na "y". MASHARTI TATA: Inatekelezwa kwa kutumia utendakazi wa kimantiki wa kawaida: ! (si) hubadilisha thamani ya msimbo wa kutoka. -o (au) inalingana na mantiki "OR". -a (na) inalingana na mantiki "NA".

Taarifa ya masharti "ikiwa"

Kwa ujumla, taarifa ya "ikiwa" ina muundo

Ikiwa hali basi orodhesha

Hapa "elif" toleo fupi la "else if" linaweza kutumika pamoja na kamili, i.e. kuweka nambari kiholela ya taarifa za "ikiwa" (pamoja na taarifa zingine) inaruhusiwa. Bila shaka, "orodha" katika kila kesi lazima iwe na maana na kukubalika katika muktadha uliotolewa. Muundo uliopunguzwa zaidi wa mwendeshaji huyu

Ikiwa hali basi orodhesha fi

ikiwa sharti limetimizwa (kwa kawaida hapa ndipo nambari ya kukamilisha "0" inapokewa), basi "orodha" inatekelezwa, vinginevyo inarukwa. Mifano: Acha "ikiwa-1" iandikwe.

Ikiwa [ $1 -gt $2]

kisha pwd mwingine mwangwi $0: Hujambo!

Kisha kupiga simu if-1 12 11 itazalisha /home/sae/STUDY/SHELL na if-1 12 13 itazalisha if-1: Hello!

Piga simu opereta ("kesi")

Opereta ya uteuzi wa "kesi" ina muundo:

Mfuatano wa kesi ndani

template) orodha ya amri; template) orodha ya amri; ... template) orodha ya amri;;

Hapa "kesi", "katika" na "esac" ni maneno ya utendaji. "Kamba" (hii inaweza kuwa tabia moja) inalinganishwa na "muundo". "Orodha ya amri" ya mstari uliochaguliwa inatekelezwa. ";;" inaonekana isiyo ya kawaida mwishoni mwa mistari ya uteuzi, lakini andika ";" hapa itakuwa ni kosa. Amri nyingi zinaweza kutekelezwa kwa kila mbadala. Ikiwa amri hizi zimeandikwa kwenye mstari mmoja, basi ishara ";" itatumika kama kitenganishi cha amri. Kwa kawaida mstari wa mwisho uteuzi una muundo "*", ambao katika muundo wa "kesi" unamaanisha "thamani yoyote". Mstari huu umechaguliwa ikiwa thamani ya kigezo (hapa $z) hailingani na muundo wowote ulioandikwa hapo awali uliotengwa na mabano ")". Thamani hutazamwa kwa mpangilio ulioandikwa.

Opereta ya kitanzi iliyohesabiwa ("kwa")

Opereta ya "kwa" ina muundo:

Kwa jina

fanya orodha ya amri zilizofanywa ambapo "kwa" ni neno kisaidizi ambalo linafafanua aina ya kitanzi, "fanya" na "fanya" ni maneno saidizi ambayo huangazia mwili wa kitanzi. Acha amri ya "lsort" iwakilishwe na faili ya batch

Kwa mimi katika file_1 file_2 file_3 kufanya proc_sort $i nimefanya

Katika mfano huu, jina "i" hufanya kama parameta ya kitanzi. Jina hili linaweza kuzingatiwa kama kigezo cha ganda ambacho maadili yaliyoorodheshwa yamepewa kwa mpangilio (i=file_1, i=file_2, i=file_3), na amri ya "proc_sort" inatekelezwa kwa kitanzi. Fomu "kwa i katika *" hutumiwa mara nyingi, ikimaanisha "kwa faili zote kwenye saraka ya sasa". Acha "proc_sort" nayo iwakilishwe na faili batch

Paka $1 | aina | tee /dev/lp > $(1)_sorted

hizo. zimepangwa kwa kufuatana faili maalum, matokeo ya upangaji huchapishwa ("/dev/lp") na kutumwa kwa faili_1_iliyopangwa faili_2_iliyopangwa na faili_3_kupangwa

Taarifa ya kitanzi na hali halisi ("wakati")

Muundo wa "wakati", ambao pia hufanya mahesabu, ni bora wakati orodha halisi ya maadili ya parameta haijulikani mapema au orodha hii lazima ipatikane kama matokeo ya mahesabu kwenye kitanzi. Taarifa ya kitanzi "wakati" ina muundo:

Wakati hali

fanya orodha ya amri zilizofanywa ambapo "wakati" ni neno kisaidizi ambalo huamua aina ya kitanzi kilicho na hali halisi. Orodha ya amri kwenye mwili wa kitanzi (kati ya "fanya" na "imefanywa") inarudiwa hadi hali ibaki kuwa kweli (yaani, nambari ya kutoka ya amri ya mwisho kwenye mwili wa kitanzi ni "0") au kitanzi hakijaingiliwa kutoka. ndani timu maalum("kuvunja", "endelea" au "toka"). Unapoingia kwanza kitanzi, hali lazima iwe kweli. Amri ya "break [n]" hukuruhusu kujiondoa kwenye kitanzi. Ikiwa "n" haipo, basi ni sawa na "kuvunja 1". "n" inaonyesha idadi ya vitanzi vilivyowekwa kiota kutoka, kwa mfano, "break 3" - kutoka kwa vitanzi vitatu vilivyowekwa. Tofauti na amri ya "kuvunja", amri ya "endelea [n]" inasimamisha tu utekelezaji wa kitanzi cha sasa na inarudi kwenye MWANZO wa kitanzi. Inaweza pia kuwa na parameter. Kwa mfano, "endelea 2" inamaanisha kutoka hadi mwanzo wa pili (kuhesabu kutoka kwa kina) kitanzi kilichowekwa. Amri ya "toka [n]" inakuwezesha kuondoka kwa utaratibu kabisa na msimbo wa kurudi wa "0" au "n" (ikiwa parameter ya "n" imetajwa). Amri hii inaweza kutumika katika zaidi ya vitanzi tu. Hata katika mlolongo wa amri, inaweza kuwa muhimu katika kurekebisha hitilafu kusimamisha hesabu (ya sasa) katika hatua fulani.

Taarifa ya kitanzi yenye hali ya uwongo ("mpaka")

Opereta ya "mpaka" ina muundo:

Mpaka hali

fanya orodha ya amri zilizofanywa ambapo "mpaka" ni neno kisaidizi ambalo huamua aina ya kitanzi na hali ya uwongo. Orodha ya amri katika mwili wa kitanzi (kati ya "fanya" na "imefanywa") inarudiwa hadi hali ibaki ya uwongo au kitanzi kinaingiliwa kutoka ndani na amri maalum ("kuvunja", "endelea" au "kutoka" ) Mara ya kwanza unapoingia kwenye kitanzi, hali haipaswi kuwa kweli. Tofauti kutoka kwa opereta "wakati" ni kwamba hali ya kitanzi inakaguliwa kwa uwongo (kwa nambari ya kutoka isiyo ya sifuri ya amri ya mwisho ya mwili wa kitanzi) na inaangaliwa BAADA ya kila (pamoja na ya kwanza!) Utekelezaji wa amri kwenye mwili wa kitanzi. Mfano.

Mpaka uwongo ufanye

soma x ikiwa [$x = 5] kisha mwangwi vya kutosha; kuvunja mwingine echo baadhi fi zaidi

Hapa programu inasubiri kwa kitanzi kisicho na mwisho kwa maneno kuingizwa (kurudia maneno "baadhi zaidi" kwenye skrini) hadi "5" iingizwe. Baada ya hayo, "kutosha" hutolewa na amri ya "kuvunja" huacha kutekeleza kitanzi.

Opereta tupu

Taarifa tupu ina umbizo

:

Bila kufanya chochote. Hurejesha thamani "0".

Kazi katika shell

Kazi inakuwezesha kuandaa orodha ya amri za shell kwa utekelezaji unaofuata. Maelezo ya kazi inaonekana kama:

Jina () (orodha ya amri)

baada ya hapo kazi inaitwa kwa jina. Wakati kazi inatekelezwa, hakuna mchakato mpya unaoundwa. Inaendesha katika mazingira ya mchakato unaolingana. Hoja za chaguo za kukokotoa huwa vigezo vyake vya nafasi; jina la kazi ni parameter yake ya sifuri. Unaweza kukatiza utekelezaji wa chaguo za kukokotoa kwa kutumia opereta "return [n]", ambapo (si lazima) "n" ni msimbo wa kurejesha.

Ushughulikiaji wa kukatiza ("mtego")

Inaweza kuwa muhimu kulinda utekelezaji wa programu kutokana na kukatizwa. Mara nyingi hukutana na usumbufu ufuatao unaolingana na ishara: 0 kutoka kwa mkalimani, 1 kata simu (kukatwa kwa mteja wa mbali), kukatizwa 2 kutoka , 9 uharibifu (haujaingiliwa), 15 mwisho wa utekelezaji. Ili kulinda dhidi ya kukatizwa, kuna amri ya "mtego", ambayo ina umbizo:

Mtego "orodha ya amri" ishara

Ikiwa usumbufu unatokea kwenye mfumo, ambao ishara zake zimeorodheshwa zimetenganishwa na nafasi katika "ishara", basi "orodha ya amri" itatekelezwa, baada ya hapo (ikiwa amri ya "kutoka" haikutekelezwa katika orodha ya amri) udhibiti utafanywa. kurudi kwenye hatua ya usumbufu na utekelezaji wa faili ya amri utaendelea. Kwa mfano, ikiwa kabla ya kukatiza utekelezaji wa faili ya amri ni muhimu kufuta faili katika "/tmp", basi hii inaweza kufanyika kwa amri ya "mtego":

Mtego "rm /tmp/* ; toka 1" 1 2 15

ambayo hutangulia amri zingine kwenye faili. Hapa, baada ya kufuta faili, faili ya amri itatoka.

Tuma kazi yako nzuri katika msingi wa maarifa ni rahisi. Tumia fomu iliyo hapa chini

Wanafunzi, wanafunzi waliohitimu, wanasayansi wachanga wanaotumia msingi wa maarifa katika masomo na kazi zao watakushukuru sana.

Iliyotumwa kwenye http://www.allbest.ru/

Shirika la Shirikisho la Usafiri wa Reli

Chuo Kikuu cha Usafiri cha Jimbo la Siberia

Idara" Teknolojia ya Habari usafiri »

Kazi ya maabara No

"AMRI YA LUGHA YA MFUMO WA UENDESHAJI"

katika taaluma "Mifumo ya Uendeshaji"

Lengo la kazi

Lengo la kazi ni kupata ujuzi wa vitendo katika kufanya kazi katika mazingira ya MS WINDOWS katika hali ya amri.

Maendeleo

Imetoka kwa modi ya mstari wa amri (Anza/Programu/Vifaa/Amri ya Amri au Anza/Run/cmd.exe)

Tuliuliza toleo la OS tunalofanya kazi nalo.

(c) 2011 Microsoft Corporation. Haki zote zimehifadhiwa.

C:\Users\Home>ver

Microsoft Windows

C:\Users\Nyumbani>

Imesafisha skrini ya kufuatilia (CLS).

Tulitengeneza gari la flash, kwa kuwa tumehifadhi yaliyomo kwenye saraka tofauti gari ngumu.

C:\Users\Home>umbizo f: /q

Ingiza diski mpya kwenye kiendeshi F:

na ubonyeze ENTER...

Aina ya mfumo wa faili: NTFS.

Umbizo la haraka: 14786 MB

Lebo ya sauti (herufi 32, ENTER - hakuna lebo inayohitajika):

Kuunda muundo wa mfumo wa faili.

Uumbizaji umekamilika.

Jumla ya GB 14.4 kwenye diski.

Inapatikana: GB 14.4.

Weka lebo ya gari la flash.

C:\Users\Home>lebo ya f:Rebrikova

Kutumia amri za kufanya kazi na saraka, tulifanya yafuatayo:

imeunda saraka ya COP kwenye gari la flash;

C:\Users\Home>md f:\COP

kunakili yaliyomo kwenye saraka ndogo ya gari ngumu ndani yake (katika kesi hii, yaliyomo kwenye gari la flash);

C:\Users\Home>xcopy fizikia f:\COP

fizikia\22lab.docx

fizikia\6lab.docx

fizikia\Fizika.docx

fizikia\optics. Fizikia ya Atomiki.pdf

fizikia\ Nyenzo za mada kwenye fizikia.pdf

Faili zilizonakiliwa: 5.

C:\Users\Nyumbani>

ilionyesha saraka ya COP kwenye skrini, ilisoma muundo wa maingizo ya saraka

(yaliyomo kwenye saraka yanaonyeshwa kwa tarehe ya marekebisho, saraka zinaonyeshwa

, saizi yake imeandikwa karibu na faili)

C:\Users\Home>dir f:\COP

Yaliyomo kwenye folda f:\COP

09.10.2014 04:43

.

09.10.2014 04:43

..

Faili 5 baiti 2,627,427

alifahamiana na usaidizi wa amri ya DIR na kupanga yaliyomo kwenye saraka ya COP kwa jina

C:\Users\Home>dir f:\COP /O:N

Kiasi katika kifaa F kina lebo ya Rebrikov

Nambari ya Ufuatiliaji wa Kiasi: 22C0-2266

Yaliyomo kwenye folda f:\COP

09.10.2014 04:43

.

09.10.2014 04:43

..

05/04/2014 12:48 43 213 22laba.docx

04/14/2014 09:29 49 283 6laba.docx

06/24/2014 16:08 583 602 Fizika.docx

04/20/2014 18:34 436 220 Optics. Fizikia ya Atomiki.pdf

04/20/2014 18:32 1 515 109 Nyenzo za mada kwenye fizikia.pdf

Faili 5 baiti 2,627,427

Folda 2 10 695 479 296 byte bila malipo

Na kwa saizi ya faili:

C:\Users\Home>dir f:\COP /O:S

Kiasi katika kifaa F kina lebo ya Rebrikov

Nambari ya Ufuatiliaji wa Kiasi: 22C0-2266

Yaliyomo kwenye folda f:\COP

09.10.2014 04:43

..

09.10.2014 04:43

.

05/04/2014 12:48 43 213 22laba.docx

04/14/2014 09:29 49 283 6laba.docx

04/20/2014 18:34 436 220 Optics. Fizikia ya Atomiki.pdf

06/24/2014 16:08 583 602 Fizika.docx

04/20/2014 18:32 1 515 109 Nyenzo za mada kwenye fizikia.pdf

Faili 5 baiti 2,627,427

Folda 2 10 695 479 296 byte bila malipo

kwa kutumia amri ya uelekezaji wa pato, aliandika saraka ya COP kwenye faili ya DIR.DAT ya saraka ya mizizi ya gari la flash;

onyesha yaliyomo kwenye faili ya DIR.DAT kwenye skrini;

C:\Users\Home>dir f:\COP>f:dir.dat

C:\Users\Home>nakala f:dir.dat con

Kiasi katika kifaa F kina lebo ya Rebrikov

Nambari ya Ufuatiliaji wa Kiasi: 22C0-2266

Yaliyomo kwenye folda f:\COP

09.10.2014 04:43

.

09.10.2014 04:43

..

05/04/2014 12:48 43 213 22laba.docx

04/14/2014 09:29 49 283 6laba.docx

06/24/2014 16:08 583 602 Fizika.docx

04/20/2014 18:34 436 220 Optics. Fizikia ya Atomiki.pdf

04/20/2014 18:32 1 515 109 Nyenzo za mada kwenye fizikia.pdf

Faili 5 baiti 2,627,427

Folda 2 10 695 479 296 byte bila malipo

Faili zilizonakiliwa: 1.

ilifuta faili ya DIR.DAT;

C:\Users\Home>del f:dir.dat

kwa kutumia bomba, majina ya subdirectories ya saraka ya mizizi ya gari C: yalionyeshwa kwenye skrini (DIR | FIND "DIR");

C:\Users\Nyumbani>DIR | TAFUTA "DIR"

09.10.2014 04:37

.

09.10.2014 04:37

..

21.09.2014 11:09

Anwani

24.09.2014 18:29

Kompyuta ya mezani

09.10.2014 04:36

Eneo-kazi

21.09.2014 11:09

Nyaraka

07.10.2014 19:08

Vipakuliwa

21.09.2014 11:09

Vipendwa

21.09.2014 11:09

Viungo

26.09.2014 18:42

Muziki

21.09.2014 11:09

Picha

21.09.2014 11:09

Utafutaji

21.09.2014 11:09

Video

09.10.2014 04:37

fizikia

C:\Users\Nyumbani>

ilifuta saraka ya COP kwenye gari la flash.

C:\Users\Home>del f:\COP

f:\COP\*, Endelea ? Y

C:\Users\Home>rd f:\COP

Tumefaulu kuzindua programu kutoka kwa saraka tofauti:

o kutoka kwa saraka ya sasa;

C:\Users\Home>iTunes64Setup.exe

o kutoka kwa saraka yoyote inayoonyesha njia;

C:\Users\Home>iTunes64Setup.exe

o kwa kutumia amri ya PATH.

C:\Users\Home>njia iTunes64Setup.exe

Kutumia amri za kufanya kazi na faili na diski, tulifanya shughuli zifuatazo:

aliunda saraka ya TEXT kwenye gari la flash na kuunda faili mbili za maandishi ndani yake (1.TXT na 2.TXT);

C:\Users\Home>md f:text

C:\Users\Home>nakala con f:\text\1.txt

Faili zilizonakiliwa: 1.

C:\Users\Home>nakala con f:\text\2.txt

Faili zilizonakiliwa: 1.

ujumuishaji wa vilivyoundwa faili za maandishi, faili iliyosababishwa iliitwa A.TXT;

C:\Users\Home>nakala f:\text\1.txt+f:\text\2.txt a.txt

Faili zilizonakiliwa: 1.

ikilinganishwa na faili A.TXT mstari kwa mstari na faili 1.TXT na kurekodi matokeo ya kulinganisha katika faili A.PRT, kueleza matokeo ya kulinganisha;

C:\Users\Home>FC f:\text\1.txt f:\text\a.txt

"FC" si ya ndani au nje

kunakili faili zinazoweza kutekelezwa za amri za WINDOWS za nje zinazoanza na "DISK" kutoka kwa C:\WINDOWS\SYSTEM32 folda kwenye saraka ya mizizi ya gari la flash;

C:\Users\Home>cd c:\windows\system32

c:\Windows\System32>nakala diski*.* f:

Faili zilizonakiliwa: 7.

o ilifanya ukaguzi wa diski ya flash (CHKDSK au SCANDISK);

C:\Users\Home>chkdsk f:

"chkdsk" sio ya ndani au ya nje

timu, programu inayoweza kutekelezwa au faili ya batch.

C:\Users\Home>scandisk f:

"scandisk" sio ya ndani au ya nje

amri, programu inayoweza kutekelezwa, au faili ya batch.

ilifuta faili ya A.TXT.

c:\Users\Home>del f:\text\a.txt

Ilionyesha thamani za anuwai za eneo la mazingira na kuziingiza kwenye ripoti. Tuliandika tofauti mpya ya TOWN na kuipa thamani "Novosibirsk". uumbizaji saraka ya amri faili

c:\Users\Home>set town=Novosibirsk

c:\Users\Home>echo %town%

Novosibirsk

Tumetambua anwani ya IP ya kadi ya mtandao ya kompyuta yako (IPCONFIG).

c:\Users\Home>IPCONFIG

"IPCONFIG" sio amri ya ndani au nje, programu inayoweza kutekelezwa au faili ya kundi.

Iliyotumwa kwenye Allbest.ru

...

Nyaraka zinazofanana

    Muundo wa programu. Mpango wa uundaji wa awali wa saraka ya faili, kuonyesha saraka ya faili, kufuta faili, kupanga faili kwa jina, tarehe ya uumbaji na ukubwa kwa kutumia njia ya uteuzi wa moja kwa moja. Kusimamia saraka katika mfumo wa faili.

    kazi ya kozi, imeongezwa 01/08/2014

    Tabia za jumla na uwezo wa mfumo wa uendeshaji wa mtandao wa Windows 95. Vitu vya OS, uainishaji wao, aina. Sheria za kufanya kazi na Neno, kuunda na kuhifadhi hati. Uundaji na uingizaji wa data ndani Jedwali la Excel. Uumbizaji wa diski.

    mtihani, umeongezwa 02/25/2009

    Vipengele kama vile muundo wa pembejeo saraka huru ya mfumo wa faili. Kurejesha yaliyomo kwenye saraka na habari ya faili. Maendeleo ya mchoro wa block ya algorithm ya programu. Kusoma programu kutekeleza kazi.

    kazi ya kozi, imeongezwa 07/22/2014

    Kufanya kazi na vitu vya mfumo wa uendeshaji wa Windows: dhana za msingi na funguo za moto. Unda na uhariri faili na folda. Picha za skrini na michoro mhariri wa rangi. Kuhariri hati rahisi za maandishi katika Notepad. Kufanya kazi na calculator.

    kazi ya maabara, imeongezwa 11/30/2010

    Ufungaji wa mfumo wa uendeshaji wa Windows 2000/XP/2003. Vipengele vya Huduma za Ufungaji wa Mbali. Ufungaji otomatiki (usioshughulikiwa) wa OS kutoka katalogi ya jumla kwenye seva. Kusakinisha OS na programu kutoka kwa picha iliyoundwa kwa kutumia programu ya wahusika wengine.

    muhtasari, imeongezwa 04/03/2010

    Utangulizi wa programu ya API. Kutafsiri ujumbe wa kibodi katika misimbo ya ASCII. Maandishi ya programu katika kiunganishi cha 32-bit kwa kutumia vitendaji vya API. Kazi ya kuunda kisanduku cha mazungumzo. Kuamua kiendeshi, saraka na jina la faili la kufungua.

    kazi ya kozi, imeongezwa 05/18/2014

    Usimamizi wa Windows Ala kama zana ya zana Usimamizi wa Windows sifa za jumla na uwezo wake, vipengele vya utendaji. Madarasa, matukio na usalama wa WMI. Kufanya kazi na vitu na makusanyo ya vitu vilivyopatikana kama matokeo ya maswali.

    kazi ya kozi, imeongezwa 04/26/2011

    Vipengele vya kufanya kazi katika mazingira ya shell ya NORTON COMMANDER. Mwingiliano na mfumo wa uendeshaji. Umbizo la kuonyesha jedwali la orodha ya yaliyomo. Tazama habari ya diski kwenye paneli ya mti wa saraka. Hali mtazamo wa haraka mafaili. Kudhibiti maonyesho ya paneli.

    muhtasari, imeongezwa 05/17/2009

    Njia za kurejesha mfumo wa uendeshaji wa Windows, faida na hasara zao. Kurejesha OS kwenye buti kwa kutumia Recovery Console, kwa kutumia Windows XP na diski ya Acronis Picha ya Kweli. Kuangalia uadilifu wa faili za mfumo.

    uwasilishaji, umeongezwa 06/20/2014

    Kuonekana kwa mfumo wa uendeshaji wa Windows 95. Sheria za kutaja faili. Mpangilio ambao faili huhifadhiwa kwenye diski. Hifadhi ya faili na mfumo wa shirika la saraka. Utawala wa ngazi nyingi mfumo wa faili. Jina kamili la faili. Mfumo wa folda ya Windows.

Mfumo wa kudhibiti kompyuta, michakato yake ya uendeshaji, kumbukumbu ya ndani na vitendo vya mtumiaji kwa ujumla. Tunakaribisha msomaji kuangalia kwa karibu OS na kipengele hiki.

Hii ni nini?

Bila shaka, kwanza kabisa, mfumo wa uendeshaji ni mfumo wa udhibiti. Tutatoa zaidi ufafanuzi kamili OS: tata ya udhibiti na usindikaji maombi. Kwa upande mmoja, hufanya kama kiunganishi kati ya vifaa mfumo wa kompyuta Na maombi, programu. Kwa upande mwingine, mfumo wa uendeshaji ni mfumo wa kusimamia vifaa fulani na michakato ya kompyuta. Ni Mfumo wa Uendeshaji ambao unasambaza vyema rasilimali za kompyuta kati ya michakato ya kompyuta na kupanga hesabu katika mfumo kwa uhakika.

Ikiwa tutageuka muundo wa kimantiki mfumo wa kompyuta wa kawaida, basi OS itachukua nafasi ya kati kati ya vifaa ambavyo vina usanifu wao wenyewe, lugha ya mashine, programu dhibiti iliyopachikwa upande mmoja na programu tumizi kwa upande mwingine.

Kwa watengenezaji wa programu, OS inawaruhusu kujiondoa kutoka kwa vipengele vya utendaji na utekelezaji wa vifaa, kutoa kiwango cha chini cha kazi kinachohitajika.

Katika mifumo mingi ya kompyuta, mfumo wa uendeshaji ni mfumo wa kudhibiti. Hii ndiyo kuu, muhimu zaidi (na katika baadhi ya matukio pekee) sehemu ya programu. msaada wa mfumo. Ukigeuka mifano maalum, basi OS maarufu zaidi itakuwa bidhaa ya Microsoft - Windows ("Windows").

Usimamizi wa mifumo ya uendeshaji

Watu wengi wanavutiwa na swali: kuna programu maalum za kusimamia mifumo ya uendeshaji? Ujenzi huu wa sentensi sio sahihi. Baada ya yote, mfumo wa uendeshaji yenyewe ni seti ya programu zinazosimamia rasilimali za kompyuta na kuanzisha mazungumzo kati ya mtumiaji na kifaa.

Ndiyo maana yote ni kuhusu mafuta na siagi: udhibiti wa udhibiti. Kuna tata programu za maombi, ambazo "zinasimamiwa" na mfumo wa uendeshaji.

Vipengele vya msingi vya OS

Mfumo wa uendeshaji - usimamizi wa rasilimali za kompyuta. Hii kazi kuu Mfumo wa Uendeshaji. Seti inapita moja kwa moja kutoka kwake kazi zifuatazo:

  • Utekelezaji maombi mbalimbali programu. Kama vile: pembejeo na matokeo ya habari, kuanza na kusimamisha programu na programu, kufungia, kugawa kumbukumbu, nk.
  • Kutoa ufikiaji sanifu kwa vifaa vya pembeni (kwa mfano, vifaa vya I/O).
  • Kusimamia RAM ya kompyuta: kusambaza kati ya michakato inayofanya kazi, shirika la jumla la kumbukumbu ya kawaida.
  • Kudhibiti ufikiaji wa data iliyo kwenye media isiyo na tete. Kwa mfano, juu ya macho anatoa ngumu Nakadhalika.
  • Kuhifadhi habari kuhusu makosa ya mfumo.
  • Kutoa kiolesura cha mtumiaji.

Lugha za amri - mazungumzo na mtumiaji

Je, data ya mfumo wa uendeshaji inadhibitiwaje? Kama ilivyo katika mifumo mingi inayoingiliana, mtumiaji anaweza kushawishi utendakazi wa OS kwa kutumia lugha maalum za amri.

Hii ni nini? Lugha ya amri ni lugha ambayo mtu huingiliana na mfumo wa mwingiliano. Kwa nini timu? Kila mstari ambao umeingizwa na mtu kwenye terminal na kutumwa kwa mfumo unachukuliwa kuwa amri ya mtumiaji kuhusiana na OS.

Ikiwa tutaangalia niche ya lugha za amri kutoka nje mfumo wa kawaida lugha za mwingiliano wa binadamu na kompyuta, basi zitaainishwa kama kufasiriwa. Wapinzani wao ni lugha za pongezi.

Hebu tuchunguze tofauti kati yao: lugha inaitwa complimentary ikiwa inahitaji kwamba ujenzi wowote juu yake umefungwa ili iweze kutoa uwezekano wa usindikaji wa pekee bila matumizi ya ujenzi wa lugha ya ziada. Vinginevyo, uelewa hauwezi kuhakikishwa. Lugha zilizofasiriwa zinaeleweka hata bila kukidhi hitaji kama hilo.

Usimamizi wa mchakato

Hebu tuangalie usimamizi wa mchakato katika mifumo ya uendeshaji. Mfumo wa uendeshaji hudhibiti shughuli zifuatazo zinazohusiana nazo:

  • Michakato ya kuunda na kufuta.
  • Usawazishaji.
  • Kupanga.
  • Mawasiliano.
  • Kutatua vikwazo.

Ikumbukwe kwamba wakati wa "maisha" mchakato hubadilisha hali yake mara nyingi:

  • Mpya. Mchakato mpya iliyoundwa.
  • Inaweza kutekelezwa. Kwa wakati huu, amri za programu zinatekelezwa katika CPU.
  • Kusubiri. Mchakato unasubiri tukio fulani likamilike. Mara nyingi, operesheni ya mwisho ni operesheni ya I/O.
  • Tayari. Mchakato ambao unasubiri CPU iwe huru.
  • Imekamilika. Mchakato umekamilisha kazi yake kabisa.

Kumbuka kwamba mabadiliko kutoka hali moja hadi nyingine haiwezi kuwa ya kiholela.

Katika mifumo mingi ya uendeshaji, habari kuhusu kila mchakato huhifadhiwa kwenye meza maalum ya mchakato wa uendeshaji. Kila mmoja wao anawakilishwa katika mfumo wa uendeshaji na seti maalum ya data. Hii ni seti ya maadili na vigezo vinavyoonyesha hali ya sasa ya mchakato. Inatumiwa na OS kudhibiti kifungu cha mchakato maalum kupitia kompyuta.

Mchakato wa kuhesabu unaundwaje katika kesi hii? Kuna njia mbili: imeingia moja kwa moja kutoka kwa kibodi kwa amri au kupitia faili ya kundi. Mchakato unahusisha, kwa kiwango cha chini, kupakua programu na kuunda vitalu maalum vya udhibiti.

Kama matokeo ya hii, ubora wa juu mchakato mpya, ambayo baadaye inaingizwa kwenye mchanganyiko wa programu nyingi. Baada ya hayo, OS huanza kuiona. Mchakato wenyewe uko katika hali ya utayari.

Jedwali la mchakato wa OS

Michakato hivyo hufanya kazi na kufanya kazi chini ya udhibiti wa mfumo wa uendeshaji. Hebu fikiria meza fupi Michakato ya OS:

  • Sehemu "Udhibiti wa Mchakato": rejista, vihesabu vya programu, viashiria vya stack, hali ya mchakato, kipaumbele cha mchakato, vigezo vya kuratibu, vitambulisho vya mchakato, michakato ya wazazi, vikundi vya mchakato, muda wa kuanza mchakato, wakati wa processor kutumika.
  • Sehemu "Usimamizi wa Kumbukumbu": viashiria kwa sehemu za maandishi, viashiria kwa sehemu za data, viashiria vya kuweka sehemu.
  • "Usimamizi wa Faili": saraka za kazi, saraka ya mizizi, vitambulisho vya mtumiaji, vishikizo vya faili, vitambulisho vya kikundi.

Usimamizi wa kumbukumbu

Hebu tuangalie mwingine kipengele muhimu: usimamizi wa kumbukumbu katika mifumo ya uendeshaji.

Ikumbukwe kwamba kumbukumbu ni rasilimali muhimu zaidi, ambayo inahitaji usimamizi makini zaidi na mifumo ya uendeshaji ya multiprogram. Inahakikisha nini? jukumu maalum? Kichakataji kinaweza kutekeleza maagizo kutoka kwa programu na programu tu ikiwa ziko kwenye kumbukumbu ya kompyuta.

Katika mifumo ya awali ya uendeshaji, usimamizi wa kumbukumbu ulikuwa rahisi: programu na data yake muhimu ilipakiwa kutoka kwa baadhi hifadhi ya nje data (diski ya macho, mkanda uliopigwa, mkanda wa sumaku, n.k.) kwenye kumbukumbu ya kompyuta. Pamoja na ujio wa multiprogramming, hali imebadilika kwa kiasi kikubwa. Kazi mpya imetokea: kusambaza kumbukumbu ya kompyuta kati ya programu kadhaa zinazoendesha.

Kazi kuu za OS katika usimamizi wa kumbukumbu

Tunaendelea kuzungumza juu ya zana za usimamizi katika mifumo ya uendeshaji. Wacha tuangazie kazi kuu za OS katika kudhibiti kumbukumbu ya kompyuta:

  • Kufuatilia sehemu za kumbukumbu zisizolipishwa na zilizotumika.
  • Kugawa kumbukumbu kwa michakato maalum na kuikomboa inapoisha.
  • Uhamishaji wa nambari zote mbili na usindikaji wa data kutoka kwa RAM hadi diski - kamili au sehemu. Inatumika wakati kiasi cha kumbukumbu kuu haitoshi kushughulikia michakato yote. Wakati OP inatolewa, mfumo wa uendeshaji unarudi taratibu mahali pao.
  • Kuweka anwani za programu na programu kwa maeneo maalum ya kumbukumbu ya kimwili.

Vitendaji vya ziada vya OS kwa usimamizi wa kumbukumbu ya Kompyuta

Hebu tuzingatie kazi za ziada ambayo mfumo hufanya katika kesi hii:

  • Ugawaji wa nguvu wa kumbukumbu ya kifaa. Hii inamaanisha kutimiza maombi ya kutenga kumbukumbu ya ziada kwao kwa muda wa utekelezaji.
  • Uundaji wa habari mpya miundo ya huduma- buffers, thread na maelezo ya mchakato.
  • Ulinzi wa kumbukumbu. Inajumuisha kuzuia mchakato mahususi unaoendesha kutoka kuandika au kusoma data inayohusiana na shughuli nyingine.

Kama tulivyokwisha sema, hakuna RAM ya kutosha kwa michakato yote. Kwa hiyo, OS inaunganisha diski moja ya nje. Hii ni hatua zinazofuata mifumo:

  • Kuweka kurasa. Hapa mchakato umejaa kabisa kwenye kumbukumbu kwa kazi zaidi.
  • Kumbukumbu ya kweli. Katika kesi hii, mchakato hupakiwa kwa sehemu ili kufanya kazi fulani.

Wacha tuangalie tena kwamba michakato mikubwa hutolewa kwa muda tu na OS kwenye HDD. Baada ya RAM kuachiliwa, mfumo huwarudisha mahali pao.

Mfumo wa uendeshaji ni seti nzima ya programu ambayo inasimamia kompyuta. Hiyo ni, kumbukumbu yake, taratibu, rasilimali. Mwingine kazi muhimu OS: jenga mwingiliano wa mfumo wa kompyuta na mtu, mtumiaji. Hii inafanikiwa kwa kutumia zana maalum- lugha za amri.

Kama ilivyo kwa mifumo mingi inayoingiliana, kiolesura cha jadi cha mtumiaji wa UNIX kinatokana na matumizi ya lugha za amri. Ili kuiweka kwa tautologically, tunaweza kusema kwamba lugha ya amri ni lugha ambayo mtumiaji huingiliana na mfumo katika hali ya mwingiliano. Lugha kama hiyo inaitwa lugha ya amri kwa sababu kila mstari unaoingia kutoka kwa terminal na kutumwa kwa mfumo unaweza kuzingatiwa kama amri kutoka kwa mtumiaji hadi kwa mfumo. Moja ya mafanikio ya UNIX OS ni kwamba lugha za amri za mfumo huu wa uendeshaji zimefafanuliwa vizuri na zina vipengele vinavyowaleta karibu na lugha za programu.

Ikiwa tutazingatia aina ya lugha za amri kutoka kwa mtazamo wa mwelekeo wa jumla wa lugha za mwingiliano wa kompyuta na binadamu, basi kwa asili ni mali ya familia ya lugha zilizofasiriwa. Hebu tueleze kwa ufupi tofauti kati ya lugha za kompyuta zilizokusanywa na kufasiriwa. Lugha inasemekana hutungwa ikiwa itahitaji kwamba muundo wowote wa lugha kamili ufungwe hivi kwamba unaweza kuchakatwa peke yake bila kuhitaji miundo ya lugha ya ziada. Vinginevyo, uelewa wa muundo wa lugha hauhakikishiwa.

Faida kuu ya lugha zilizotafsiriwa ni kwamba zinapotumiwa, programu imeandikwa "kwa kuongezeka" (katika hali ya hatua kwa hatua), i.e. mtu hufanya uamuzi kuhusu hatua yake inayofuata kulingana na majibu ya mfumo kwa hatua ya awali. Kimsingi, upendeleo wa lugha zilizokusanywa au kufasiriwa ni suala la ladha ya kibinafsi kwa mtu binafsi.

Upekee wa lugha za amri ni kwamba katika hali nyingi hazitumiwi kwa programu kwa maana ya kawaida ya neno, ingawa programu yoyote inaweza kuandikwa kwa lugha ya amri iliyokuzwa. Mtindo sahihi wa kutumia lugha ya amri ni kuitumia hasa kwa mwingiliano wa moja kwa moja na mfumo, kwa kutumia uwezo wa kutunga faili za amri (hati au hati katika istilahi za UNIX OS) ili kuhifadhi taratibu za kujirudiarudia.

Programu iliyoundwa kushughulikia miundo ya lugha ya amri huitwa wakalimani wa amri. Tofauti na lugha za programu zilizokusanywa (kama vile C au Pascal), kwa kila moja ambayo kuna watunzi wengi tofauti, lugha ya amri kawaida huunganishwa bila usawa na mkalimani anayelingana. Tunapozungumza hapa chini juu ya wawakilishi anuwai wa lugha za amri za UNIX OS za familia ya ganda, basi kila wakati tutamaanisha pia mkalimani anayelingana kwa jina moja.