>> [Semina - Unix Shells, Mazingira]
[Douglas Kline - Chuo Kikuu cha Harvard]
[Hii ni CS50. - CS50.TV]
>> Mada ya leo ni shell Unix.
Mimi nina Douglas Kline, mtaalam, au angalau sababu uwezo user, ya shell.
shell ni interface kwa mtumiaji wa kompyuta mfumo wa uendeshaji.
jina ni kupotosha kama, tofauti na shell ya wanyama,
ambayo ni vigumu na kinga, shell kompyuta inaruhusu kwa ajili ya mawasiliano.
Hivyo membrane porous pengine ingekuwa Fumbo bora.
>> Shell awali kwa ajili ya Unix ni shell Bourne.
Bourne ni yameandikwa B-O-U-R-N-E.
Bourne alikuwa mmoja wa waandishi wa awali wa Unix,
na hivyo shell ni jina lake baada yake.
jina la shell kama amri ni tu tu sh.
Hiyo ni amri unaweza nitafanya.
shell kuanza saa kuingia.
Wakati kuingia kwenye kompyuta, shell tu kuanza mbio kwa ajili yenu,
na kwamba ni nini inachukua amri yako.
Inaweza kuanza wakati mwingine pia.
Kama wewe kuleta up dirisha na hakuna dalili nyingine, itakuwa kuanza shell kwa ajili yenu.
Hiyo ni jinsi gani ni kwamba unaweza kwenda dirisha na kuanza kuandika amri
na kadhalika huko ingawa hakuwa kuingia kwenye dirisha hilo.
Aidha, kama wewe kufanya kuingia kijijini,
kisha itakuwa kuanza shell kwenye kompyuta mbali.
Na inawezekana kukimbia amri bila shell mwingiliano.
Hiyo inaweza kuwa na maana ndani ya kazi yako sasa,
na inaweza pia kuwa na maana operesheni kijijini.
Unaweza kutuma amri ya kompyuta mwingine,
ambayo ni pamoja na kuanzisha shell huko.
Kwa kweli, ina ni pamoja na kuanzisha shell kuna
hata kama si madhumuni yako ya mwisho.
Wakati kitu kuanza juu kama hii, haina lazima kuanza shell mpya.
Kama wewe kuleta up dirisha mpya, inawezekana kuwaambia ni kuleta mhariri
au baadhi ya amri nyingine.
Katika kesi hiyo, mhariri wa kuanza kutoka mwanzo.
Wakati mhariri mwisho, dirisha mwisho.
Hii ni kidogo kawaida lakini inaweza kufanyika.
Katika kesi hizo, itakuwa si shell.
Hivyo si lazima kesi hiyo dirisha au baadhi ya maombi hayo kuleta up shell.
>> Shell parses amri.
Parsing maana kutambua mambo mbalimbali na kuainisha yao.
Ndani ya amri, kamba kamili kwamba aina,
kutakuwa na 1 au zaidi single amri wauawe.
Mambo mengine inaweza kuwa hoja.
Kuna pia inaweza herufi maalum ambayo kuathiri utekelezaji wa amri.
Wanaweza kutuma pato mahali fulani kingine chochote zaidi ya screen
kama amri kwa kawaida kutuma kwa screen.
Inaweza kuelekeza pembejeo, inaweza kufanya mambo mengine pia.
Kuna alama nyingine mbalimbali, wahusika, na kadhalika.
Parsing inahusisha kuchunguza na kutafsiri mambo hayo.
>> Sasa kama kuna maswali hakuna zaidi, ambayo ni badala uwezekano kuwa kuna watu tena,
tutakwenda kwenye ukurasa yangu ijayo hapa.
>> Nilivyosema awali kwamba Bourne shell ni shell ya awali.
Kuna wengine.
Moja ni C-shell. amri ni CSH.
jina C-shell ni mchezo wa maneno.
Shell hii ilianzishwa kwa Berkeley Unix katikati ya miaka ya 1970.
Berkeley Unix ni tukio semina katika maendeleo ya Unix.
Ilikuwa ni mapinduzi makubwa na ni pamoja na kuanzishwa kwa shell hii.
Sababu ya kuwa mchezo wa maneno, C-shell,
ni kwamba C-shell ina baadhi ya sifa ndani yake ambayo inafanana na C lugha,
ambayo Bourne shell hana -
au hakuwa na wakati huo.
Kuna pia Mama-shell.
Hii ni superset ya C-shell.
Ni ina sifa ya ziada, wengi ambao ni muhimu kwa ajili ya matumizi shirikishi,
kama vile kukumbuka amri katika utaratibu historia,
ambayo mimi itabidi kuelezea kwa kiasi fulani baadaye -
kwa njia rahisi, inatokana baada ya mhariri.
Pia ina bindings ambayo itawawezesha kumfunga short muhimu kamba amri tena.
Sisi siyo kwenda kwa kuingia katika kwamba leo.
Ina baadhi ya sifa ya kuwa ni muhimu kwa ajili ya programu.
Hata hivyo, C-shell si mara nyingi hutumika kwa ajili ya programu shell.
Mipango ya Shell, kama wewe hakuwa tayari kujua,
ni mipango ya wajumbe wa sifa shell.
Unaweza kukimbia haya kama mipango.
Kuandika kundi la amri shell katika faili na kutekeleza file.
Huna haja ya kukusanya yake. Hii ni lugha ya interpretive.
maneno C-shell ni sasa utata tangu inaweza kutaja tu ya awali C-shell, CSH,
au kwa wote C-shells, ikiwa ni pamoja na tcsh. Ni kidogo utata.
>> Shell baadaye ni Korn shell, ksh, jina lake baada ya programu, Korn.
Shell Hii alijaribu kuingiza katika 1 shell
faida ya C-shell kwa ajili ya matumizi shirikishi
na Bourne shell kwa programu.
Imekuwa kutumika kama shell interactive na baadhi ya watu - wachache.
Baadaye hata hivyo, kuna ilikuwa ni kuanzishwa kwa mwingine, shell Bash, bash,
tena mchezo wa maneno, Bourne mara ya pili shell.
Ni upanuzi wa shell Bourne. Korn shell ni pia. Wote wawili ni.
Ina malengo sawa ya Korn ganda la amalgamating C-shell ya
na faida Bourne shell katika 1 shell.
Wengi wa nyongeza ya shell Korn pia ni pamoja na katika Bash.
Bash, hata hivyo, ina zaidi na kwa hiyo ni vyema.
Bourne mara ya pili shell na shell Korn walioitwa shells Bourne aina ya
kwa sababu wao ni pamoja na sifa Bourne shell ya,
ambayo ni kinyume katika mambo fulani na C-shells.
Kuna shells nyingine zaidi ya hizo, baadhi lengo kwa ajili ya matumizi ya vikwazo,
labda mdogo kwa baadhi ya amri, labda madhumuni maalumu, si mara nyingi kutumika.
>> Sawa. Ijayo bidhaa hapa.
Bash shell imekuwa kuhusishwa na aina mbalimbali ya Linux.
Mimi nina uhakika kama ni kweli ya kila aina.
Kuna aina nyingi huko nje na mimi si kutumika yao wote,
lakini kwa wale kwamba mimi kutumika imekuwa yanayohusiana na hayo.
Hadi sasa kama mimi kujua, kuna chochote kuhusu Bash
ambayo inafanya yoyote zaidi sambamba na Linux
kuliko mchanganyiko nyingine yoyote ya ganda na mfumo wa uendeshaji.
Nadhani hii pengine tu huonyesha mwelekeo wa programmers.
Hiyo ina kuwa kuhusishwa na Linux ni sababu nyingine kupendelea Bash kwa shilingi
tangu mambo ni uwezekano wa kuwa na yaliyoandikwa humo na ni uwezekano wa kuenea.
Mimi nitakupa sababu nyingine kwa ajili kwamba baadaye.
Scripts Bourne shell lazima kukimbia chini ya shell Korn au Bash.
Kama wewe kuandika kitu kwa ajili ya shell Bourne,
pengine unaweza nitafanya hivyo chini ya ksh au bash.
Korn scripts shell pengine kukimbia chini ya Bash, lakini siwezi kuthibitisha kwamba.
Baadaye hapa, scripts C-shell lazima kukimbia chini ya Mama-shell.
C-shell kwa kweli kamwe sana kutumika kwa ajili scripting
tangu Bourne shell na baadaye shells Bourne aina walikuwa vyema kwa ajili hiyo.
Ili kweli si wote muhimu kwamba.
Kuna kabisa mengi ya scripts shell Bourne yaliyoandikwa muda mrefu uliopita,
kabla ya shell Korn au Bourne mara ya pili shell walikuwa vishawishi.
Wale ambao bado ni katika matumizi, sehemu ya mifumo ya uendeshaji,
na hivyo utapata yao kama ukiangalia katika mfumo wa uendeshaji
au baadhi ya fedha za programu ya zamani.
>> Bash ni kwa kiasi fulani kuwa aina ya lingua franca kwa mifumo ya uendeshaji.
Ni tayari kupanuliwa kwa Windows na VMS.
VMS, katika kesi hamjui, ni wamiliki mfumo wa uendeshaji
ya Digital Vifaa Corporation ambayo ni bado katika matumizi, kwa kiasi kikubwa nyuma ya pazia.
Na kama ni kwenda kuwa mbio juu ya mifumo kadhaa ya uendeshaji tofauti,
uwezekano watu huwa na kuhama kwa ajili yake.
Lakini maendeleo hii ni ya hivi karibuni.
Ni mwanzo tu, hivyo siwezi kutabiri kama hii kurejea nje kwa kweli kuwa aina ya mawasiliano mapana.
Pia, kwa sababu pathnames file na maktaba tofauti
kati ya hizi mifumo mbalimbali ya uendeshaji,
unaweza kuwa na uwezo wa kuandika Bash script juu ya mfumo mmoja wa uendeshaji
na kisha kuendesha juu ya mtu mwingine.
Unapaswa kuwa na uwezo wa hoja hiyo kati ya mbalimbali Unix, Linux
Mifumo ya uendeshaji Mac OS lakini si lazima Windows au VMS.
Unaweza kuwa na mabadiliko ya maelezo file pathname,
na baadhi maktaba inaweza kuwa tofauti,
ambayo inaweza kuathiri njia ya kwamba baadhi ya amri kazi
au jinsi mchakato wa hoja na kama.
Mbali na kwamba, tahadhari mwingine hapa ni kwamba hakuna dhamana
kwamba shells mbalimbali nimekuwa zilizotajwa - Bourne shell, C-shell,
Mama-shell, Korn shell, Bourne mara ya pili shell - itakuwa inapatikana chini ya yoyote Unix
au Linux au Mac OS kompyuta.
Wao tu wanaweza kuwa huko.
Hiyo ni moja ya cautions hapa.
Ni kiwango cha juu bahati mbaya hapa tangu Ningependa mambo ya kazi kila mahali,
lakini kwa bahati mbaya, huwezi kutegemea juu ya hilo.
>> Sawa. Ijayo moja hapa.
Hebu kusema kwamba unataka kuandika script shell,
mpango yenye amri shell.
Kuandika amri yako, kuziweka katika faili, na nitafanya file.
Nini kama unataka pamoja mabishano?
Katika kesi ya shughuli za ganda, hoja walioitwa vigezo au vigezo nafasi hii
na wao itabidi kuitwa kwa ishara ya dola na numeral, $ 1, $ 2.
Hivyo kama script ina jina hii, hoja yangu ya kwanza inaweza kuwa hoja 1
na pili langu liwe hoja 2,
na ndani ya script yangu kama nataka kutaja mambo haya -
hebu kufuta hii tangu mimi si kweli kwenda kuendesha -
ndani ya script wangu nipate kuwa $ 1 hadi rejea arg1,
$ 2, ambayo atakuja nje kwa njia hiyo, arg2.
Hivyo ishara hizo zinapatikana kwa kutaja hoja,
na wale kuomba yote ya shells.
Aidha, kuna wahusika wengine.
$ * Inahusu hoja nzima orodha, kila mmoja wao.
$ # Inahusu idadi ya hoja.
Tena, hii inatumika kwa shells wote.
Wale alama, * na #, inaweza kutumika kwa maana wale katika maeneo mengine pia.
Sisi si kupata katika hiyo.
>> Shell Specifier line. Nini kwamba kwa?
Hebu sema umefanya imeandikwa script na ni kwa ajili ya shell fulani na unataka kukimbia.
Jinsi gani unajua nini shell mfumo wa uendeshaji wako kutumia kuendesha script yako?
Katika hatua moja unaweza kudhani kuwa itakuwa kukimbia katika shell Bourne
kama wewe hakusema vinginevyo,
lakini watu si kuandika scripts katika Bourne shell kwamba tena sana
na unaweza hata kutegemea kwamba tena.
Kwa hiyo hapa tuna shell Specifier line haki hapa.
Kwamba unasema Bash.
Kumbuka kwamba bayana katika pathname, / bin / bash.
Kama kompyuta ina ganda Bash lakini si katika bin directory, / bin, hii si kazi.
Hiyo ni kufuzu mwingine, tahadhari mwingine hapa.
ishara pound ni maoni line tabia.
Ambayo inatumika kwa shells wote.
kesi fulani hapa, #! mwanzoni mwa script, ni kesi maalum.
Kwamba unasema shell ambayo kuendesha script.
Kama nilivyosema, huenda ikawa si sawa mahali / bin.
Aidha, kuna kitu kingine hapa.
Kama wewe tu kutumia chupa ishara na hakuna uhakika mshangao na pathname,
kwamba lazima zinaonyesha C-shell.
Hata hivyo, mimi si kupendekeza kufanya hivyo kwa sababu mimi nina uwezo wa kuhakikisha
kwamba siku zote kufanya kazi.
Kama unataka C-shell, itakuwa bora ya kusema hivyo.
Kisha kuna kitu badala utata hapa.
Kama matumizi ya shell Specifier line kama vile / bin / bash
na kwamba shell ni si inapatikana huko,
hakuna kitu kama vile / bin / bash kwenye kompyuta hiyo hasa ni,
ama kwa sababu haina Bash au kwa sababu katika eneo tofauti,
utasikia kupata kosa kuwaambia kwamba script mbio haipo.
Na bila shaka script yako ipo, ili ujumbe wa makosa ni utata.
sababu kwamba mfumo wa uendeshaji anatoa makosa ambayo
au kwa usahihi zaidi, kwamba shell yako interactive ambayo wewe ni mbio hii inatoa makosa ambayo,
ni kwamba ripoti amri unaweza kutumika, ambayo ni jina la script.
Amri hiyo kwa ufanisi aitwaye shell kwa jina la script.
Hiyo ambapo unaweza kupata kwamba utata ujumbe wa kosa.
Njia nyingine ya kuwaita shell script
ni kwa inayobainisha shell juu ya mstari amri, kama hapa.
Hii ni amri. Hii inasema kukimbia Bash na kisha kukimbia script yangu katika Bash.
Hiyo fuatilia juu ya Specifier line,
na hii ina kipengele cha kuruhusu wewe kutoa kwa ajili ya pathnames tofauti.
Kama wewe tu kutoa amri, mfumo wa uendeshaji kuangalia kwa amri kwamba
katika maeneo mbalimbali.
Kama inapatikana, ni lazima kupata hiyo.
kompyuta utapata Bash popote ziko na kukimbia,
hivyo huna haja kisha kuwa na wasiwasi kuhusu ambapo anaona ni.
Kuna wasiwasi uwezekano wa nyingine hapa,
kama kuna zaidi ya 1 toleo la Bash, ambayo inawezekana ingawa uwezekano.
Hivyo kwamba ni njia nyingine ya kukabiliana na mambo haya.
Mistari Specifier wanaweza kupiga shell yoyote.
Wanaweza pia kupiga simu vitu vingine zaidi ya shells.
Mifano nina hapa ni sed, ambayo ni mhariri mkondo;
awk, ambayo ni lugha usindikaji mfano;
na Perl, sana sana maendeleo ya scripting lugha.
Kama kuweka Specifier line kuonyesha moja ya mipango ya wale mwanzoni,
itakuwa kwenda moja kwa moja katika mpango kwamba badala ya kuanzia shell.
Programu hizo na mipaka ya uwezo wao.
Perl ni uwezo sana. Sed ni mhariri. Ni wanaweza kufanya mambo zaidi ya uhariri tu.
Lakini inaweza kuwa vigumu kwa mpango huo.
Aidha, kupita hoja na mambo ya script ni ama haiwezekani au utata.
Hivyo katika kesi hizo, na awk au sed, ni, angalau katika uzoefu wangu,
vyema kuandika shell script na wito awk au sed kutoka script shell
badala ya wito awk au sed kama script Specifier line.
Perl ni lugha yenye mseto, kama nilivyosema.
Huwezi kukimbia amri interactive katika Perl,
ambayo ina maana kwamba huwezi mtihani sehemu ya maandiko kwamba wewe ni kuendeleza
na mbio yao interactively.
Hata hivyo, ni lugha uwezo sana
na ina maendeleo katika chombo sana sana kutumika.
Hiyo ni kidogo tu ya remark parenthetical juu ya mistari Specifier.
>> Katika yote au aina nyingi za Linux - tena, siwezi kuwa na uhakika kwamba wote -
na katika Mac OS, kama aina CSH kupata tcsh,
na kama aina sh kupata bash.
Walikuwa wakijaribu huko kukupa matoleo ya juu zaidi ya makombora hayo,
lakini hii inaweza kuwa na utata.
Kama wewe kuandika script kutumia tcsh au Bash makala wakati wito CSH au sh
na kisha kujaribu kukimbia kwenye kompyuta ambayo haina tcsh au Bash,
unaweza kupata baadhi ya makosa kama kuna amri huko
ambayo shells wale hawatambui.
Aidha, unaweza kuwa aitwaye hadi shell yako kwenye kompyuta lako
kuiita kama sh au CSH na kisha kupata shells ya juu zaidi.
Unaweza hata kufikiria ukweli kwamba unatumia shell ya juu zaidi.
Hivyo hii ni shimo uwezo.
Jinsi ni imara kwamba kama aina sh kupata Bash,
kama aina CSH kupata tsch?
Kuna mambo katika kompyuta haya kuitwa viungo
ambayo inaweza kuunganishwa na faili majina kwa kutaja kitu kimoja.
Ni yanaweza ama kuwa majina 2 kwa ajili ya faili moja au faili ambao lengo ni rejea faili mwingine.
Wao ni kuitwa viungo ngumu na mfano. Hatutakuwa na kwenda katika hiyo tena leo.
Kuna pia kuwa tofauti files - 1 file sh, 1 file Bash -
lakini wao wote kukimbia Bash.
Kisha kuna kufuzu mwingine hapa.
Kama wewe ni wito wa shells haya kwa jina moja,
unaweza kufikiri wewe Ningependa kupata utendaji sawa na kuiita kwa jina lingine.
Naam, kwamba kwa kweli si lazima kweli.
Amri hizi wanaweza kuchunguza jina ambalo waliitwa
na wanaweza, kwa misingi ya jina hilo, tabia tofauti.
Kunaweza kuwa na masuala ya kujaribu kuendana na kiwango cha.
Baadhi ya unaweza kuwa na habari ya kiwango POSIX au nyingine,
labda sifa nyingine.
Hii inaweza kuwa kuchaguliwa wakati mwingine kwa hoja mstari amri
au kwa kuweka vigezo shell.
Kuiita kama sh au bash inaweza kweli kusababisha utekelezaji mbalimbali
hata kama ni faili moja kuwa wewe ni utekelezaji ni.
Jambo jingine la kuzingatia ni kwamba hata kama kompyuta nyingine ina tcsh au Bash,
kama si wanaohusishwa kama wao ni kwenye kompyuta yako ndani
kama una Linux au Mac OS kompyuta ya karibu,
kisha tena utapata shell kwamba simu sh au CSH, si moja kwamba unaweza kupendelea.
sasa Bourne shell ina nyongeza mdogo kuliko wale katika Bash
lakini wale zamani katika awali Bourne shell.
Kama matokeo ya kwamba, hata sasa Bourne shell, sh,
hata wakati si Bash, inafanana na C lugha zaidi ya C-shell gani.
Hiyo ilikuwa si kweli wakati C-shell kwa mara ya kwanza kuundwa, lakini ina maendeleo kwa njia hiyo.
Unaweza taarifa hapa kwamba majina haya yote shell ila kwa shell Bourne
kuwa na kitu cha zinaonyesha ambayo shell wao ni - CSH, bash -
lakini Bourne shell ni sh.
Kwa nini? Hiyo ilikuwa ni shell awali.
Ilikuwa ni shell basi, si shell,
na kwa kuwa ilikuwa shell, kulikuwa hakuna sababu ya kutofautisha ni kutoka shell mwingine.
Hivyo ndiyo sababu ina jina kuwa na bado anafanya.
>> Juu Hii hapa ni mstari kutoka database password kwa ajili ya akaunti mimi kuwa kuna
kwenye kompyuta nyingine.
Mimi nina kwenda kujaribu kupata jina kwamba hivyo unaweza kuona sehemu kwamba mwishoni, shell.
database password ana sifa kuingia kwa watumiaji wote.
Mwanzoni ni jina la mtumiaji, ambayo unaweza kuona barua ya mwisho 2 wa mgodi sasa.
mashamba ya hapa ni kutengwa kwa colons.
shamba mwisho, kama unaweza kuona, ni bin / tcsh, shell.
Hiyo ni Specifier shell.
Kuna jambo la kuvutia hapa.
Wakati Unix kwa mara ya kwanza maendeleo, kulikuwa na tu 1 shell,
hivyo kulikuwa hakuna uchaguzi huko.
Hivyo kwa nini wao kuruhusu shamba katika orodha ya password kutaja shell?
Sijui, lakini ni bahati kwamba walivyofanya.
Ni badala vigumu kufanya mabadiliko katika muundo password database
kwa sababu programu nyingi kutaja muundo wake
na bila kuwa kuandikwa upya.
Ni felicitous au kwa bahati mbaya kwamba maendeleo wao ni pamoja na shamba hilo.
Kwamba aina ya password file line hutumiwa kwenye kompyuta zote Unix na Linux hivyo mbali kama mimi kujua.
Mac ina mfumo wake mwenyewe.
Ni kweli ina password file na mistari katika format kwamba,
lakini hiyo siyo ambapo sifa user ni defined.
Mwingine remark parenthetical huko.
>> Kama wewe ni wito shell, unaweza kuiita kama ndogo-shell ya makombora yako zilizopo.
Basi, ikiwa mimi kwenda hapa, hebu kujikwamua wa mambo hayo.
Mimi hapa katika C-shell.
Hiyo variable, ambayo kwa usahihi kubainisha shell yangu,
kweli daima si njia ya kuaminika ya kuamua nini shell wewe ni mbio,
lakini katika kesi hii ni.
Nini kama mimi tu aina -
Sasa mimi nina katika Bash.
Baadhi ya mambo ni kwenda kuwa sawa. ls anasema mimi amri zangu.
Kama mimi kusimamisha nyuma yangu C-shell, ls, sawa. Haki?
fg, foreground, nyuma Bash yangu shell.
Walemavu, directory sasa, nyuma ya C-shell.
Walemavu, tofauti directory - kweli si directory mbalimbali katika kesi hii.
Ni directory hiyo.
Hebu sema mimi wanataka kuwaita amri hapa: ambapo ls.
Je, hiyo nini?
Ni anasema mimi ambapo ls amri,
moja kwamba anatoa mimi orodha directory, iko katika ls.
Hebu kwenda nyuma ya Bash shell. Hebu jaribu kitu kimoja.
Hmm, kuvutia huko, ambapo: Amri haikupatikana.
Kwa nini ni kwamba?
ambapo amri ni kujengwa katika C-shell.
Hii si amri ambayo ina kusomwa katika kumbukumbu kutoka mahali pengine na kuuawa.
C-shell anaendesha hiyo kwa kuhamisha utekelezaji kwa sehemu ya maadili ya yake mwenyewe
na si katika Bash shell.
Hivyo Bash, si kuwa na kujengwa katika maagizo hayo, inaonekana kwa ajili yake, asipate,
na sisi kupata kosa.
Hivyo kuna tuna Bash shell mbio chini ya C-shell, na sisi wito kwamba ndogo-shell.
Na tu katika kesi wewe ni curious, Bash shell ina njia yake ya kuuweka amri.
heshi ina maana ya ukweli kwamba inaweza kuwa kunyongwa kwa kasi zaidi,
kupatikana kwa haraka zaidi.
Hiyo ni moja ya nyongeza kujengwa katika baadhi ya makombora hayo.
>> Shells Bourne aina ni mkuu kuliko kwa ajili ya programu.
Wao na miundo ya udhibiti kama tanzi, kauli masharti,
aina ya amri hiyo unaweza kutumia katika lugha ya programu kama C
au lugha yoyote. Labda wewe ni programu katika Java au chochote.
Shells na wale pia.
Shells Bourne-aina, hasa Bash, na zaidi
na wao ni iliyoundwa na mabadiliko makubwa.
Bash shell ina arrays. awali Bourne shell hana.
Hivyo kwamba wanaweza kuwa mno faida kwa programu.
C-shell kweli haina na arrays lakini hana mengi ya makala hizi nyingine.
Shells Bourne aina nitafanya kasi
kama hawana sifa lengo kwa ajili ya matumizi ya mwingiliano.
Mzigo mambo chini kwa lengo moja, hii mizigo yao chini kwa lengo jingine.
Kuna kwamba biashara-off huko.
Wale makala ambayo ni lengo kwa ajili ya matumizi shirikishi
kweli ni ya matumizi kidogo au hakuna kwa scripting.
Ni inawezekana kutumia interactive ndogo-shell tu kama moja Nilianza huko
mtihani nje amri ambayo unakusudia kutumia katika script.
Hiyo ni nini unaweza kufanya na Perl. Unaweza kufanya hivyo kwa shells.
Hata miundo kama kwa loops na kadhalika inaweza kuwa na kukimbia interactively.
Wao ni mara kwa mara na manufaa kwa kukimbia interactively,
lakini zaidi uwezekano unatumia yao kuendeleza script.
>> Majina bandia.
Hii ni kwenda kuwa juu ya C-shell.
Historia utaratibu ambapo unaweza kupata nyuma kwa amri ya awali
au sehemu ya yao kwamba umefanya tayari kukimbia.
Tena, juu ya C-ganda, Bourne shell na Korn shell na mambo haya,
lakini mimi si kwenda kupata ndani yao.
Hivyo hapa ni baadhi Majina bandia muhimu kwamba mimi.
Badala ya kuandika ls - ni amri ya kawaida -
aina tu l na kujiokoa 1 tabia.
ls na chaguzi mbalimbali, wale kazi yote.
Kumbuka kwamba ufafanuzi wale na quotes karibu nao.
Katika kesi hizi, quotes si muhimu.
Kama unaweza kufafanua Majina bandia wale bila quotes, ingekuwa bado kazi.
Wao ni ilipendekeza.
Kuna hali ambayo huwezi kutumia quote
kwa sababu unataka kitu kutokea ambayo quote ingeweza kuzuia.
Wakati mwingine unaweza kunukuu sehemu ya ufafanuzi lakini si yote.
Ni pia kwa ujumla ilipendekeza kwa kutumia quotes moja badala ya quotes mbili.
Double quotes kuathiri ufafanuzi variable,
hasa kusababisha athari yao kwa tathmini badala ya kutokomeza ugonjwa huo.
Kwa nini tunataka kuacha tathmini hiyo?
Na jinsi gani quotes kufanya hivyo kwa ajili yetu?
>> Hapa ni amri ambayo unaweza kupata kuvutia.
'Ls g *'
g *, kama pengine kujua, ni kujieleza wildcard
kwa majina yote file mwanzo na g.
Kama mimi tu kuandika katika amri ls g *, mimi itabidi kupata orodha ya majina ya wale wote katika orodha yangu ya sasa.
Kama mimi kufafanua kwamba alias kama ni hapa kwa quotes,
itakuwa kukimbia amri hiyo katika orodha yako ya sasa ambapo wewe ni mbio.
Lakini kama wewe kukimbia alias ufafanuzi bila quotes,
itakuwa kutathmini wildcard g * wakati anaendesha amri hii kufafanua.
Hivyo ufafanuzi wa alias itakuwa ls ikifuatiwa na orodha ya files katika orodha
ambayo amri alias ni kunyongwa,
bila kujali ambapo kwa kweli nia ya kukimbia amri.
Hii ni si wa kutumia kiasi, na quotes moja kuzuia tathmini ya kinyota.
Hivyo tu kupata ufafanuzi kuwa ls g *.
Kisha wakati wewe kukimbia pak, LGS, basi unaweka kwamba nje.
Sasa hakuna quotes, na itakuwa kutathmini kinyota wakati kukimbia amri pak.
Hivyo kwamba ni jambo moja.
Double quotes ingekuwa na athari hiyo hapa,
lakini kuna kesi nyingine ambayo quotes mbili bila kazi vizuri.
>> Hapa ni mtu mwingine.
Unaweza kujua amri Grep.
amri Grep inaweza kutumika kwa Scan faili kwa ajili ya mistari ambayo masharti fulani.
Basi hebu kwenda juu ya hapa na mimi itabidi exit kutoka yangu Bourne shell.
Sawa. Hapa ni file.
Hebu kusema ni Grep abc masharti. Kuna ni.
Kama mimi kufanya Grep zddd, mimi kupata chochote. Sawa.
Hivyo hupata kamba, ni ripoti, haina kupata, haina taarifa.
Ni matokeo line yoyote ambayo ina kamba kwamba juu yake.
Kuna kila aina ya chaguzi hapa ambayo unaweza kupata katika nyaraka.
Hapa ni njia moja ya kufanya hivyo.
Nini kuhusu hii moja, pak grabc 'Grep abc?
Hiyo inaenda pamoja na hoja 1 wakati alias inaelezwa.
Basi, ikiwa mimi kufanya hivyo hapa, sasa kama mimi kufanya grabc,
sasa alias pamoja na zaidi ya amri rahisi. Pia ina hoja.
Hadi sasa kwamba kazi.
Mimi na amri nyingine hapa, hii moja, hivyo wale ni masharti mbalimbali huko
na kuonyesha kwamba hii haina kupata kitu huko tangu haina mechi.
>> Nini kama nataka ni pamoja na katika alias ufafanuzi faili kwamba mimi nina kwenda kutafuta
na mimi nataka kutoa kama hoja ya alias kamba kwamba mimi nina kuangalia kwa?
Mimi kutaka kusema abc kama hoja ya alias yangu,
lakini alias tayari kuamua file.
Na hapo ndipo msemo huu anakuja in
Taarifa hapa tuna Grep tu kama ilivyokuwa kabla.
Tuna file hapa, masharti.
\! ^, Aina ya kujieleza isiyo ya kawaida, nadhani, kama si hii kuona mbele.
Moderators kumweka ni sehemu ya C-shell historia utaratibu.
Ni tunakumbuka amri mapema, tunakumbuka hoja ya amri hizo na kadhalika.
utaratibu historia kutumika kama sehemu ya aliasing.
Kama wewe taja line baada ya mshangao uhakika, rejea kwamba line katika orodha historia,
ambayo sisi si kuingia katika sasa tangu ni mzima mada nyingine.
Inawezekana bayana sehemu ya mstari.
Hivyo! 3:02 itakuwa Hoja ya pili ya amri namba 3.
kareti hapa katika kujieleza hii anasimama kwa hoja ya kwanza.
Kama huna kuwapa dalili ya ambayo amri wewe ni akimaanisha,
lina maana ya amri mara moja uliopita,
na kareti ni ishara ya hoja ya kwanza.
Kwa sababu ni kareti na si idadi, huna haja ya kutumia matumbo,
hivyo! ^ maana hoja ya kwanza kwa amri ya awali.
kidogo mchanganyiko hapa.
Katika kesi hiyo, wakati matumizi ya hii kama alias ufafanuzi,
historia kumbukumbu yanatokana na amri ambayo alias ni kutumika.
Hivyo hii ni kurejea 1 amri kama operesheni historia,
lakini kama operesheni alias inahusu amri katika ambayo ungependa aina,
kusema, grstrings_file.
Tuna quotes hapa ndani yake. Nini backslash kwa?
Katika kesi hiyo, kama mahali pengine, hatutaki kutekeleza utaratibu historia
wakati kufafanua pak.
Kama hatukuwa na backslash huko, shell bila kuvuta katika hoja ya kwanza
amri ya haki kabla ya mbio hii amri alias, ambayo hatutaki.
Tunataka hali hii kujengwa katika amri alias kuwaita katika hoja baadaye.
Single quotes si kutoroka Moderators kumweka, historia ya kumbukumbu.
Labda unajua kutoroka kujieleza maana ya kubadili maana ya kitu fulani.
Katika kesi hiyo, maana ya kuacha kitu kutoka kuwa na maana maalum.
Moderators kumweka ya maana ya pekee ni historia.
Kutoroka na haina maana kwamba.
Quotes kufanya hivyo; backslash gani.
Hivyo sisi ni kweli kwa kutumia ngazi ya 2 ya kukimbia hapa.
Mimi nina kwenda kwa hoja amri hii katika dirisha nyingine bila kuandika ni
kwa kutumia shughuli hizo editing, ambayo unaweza kupata manufaa.
Kitu kingine hapa mimi nitakuonyesha.
Kama wewe tu aina alias na hakuna hoja, anakwambia hoja yako yote.
Hii ni kundi la Majina bandia Mimi tayari alikuwa na hapa
zaidi ya hao nimekuwa kutumia hapa leo.
Lakini kama mimi tu aina kwa jina la bandia, ni anasema mimi nini maana yake.
Taarifa kwamba quotes ni gone na backslash ni gone.
Kamba hii hapa ni matokeo ya kuwa alias ufafanuzi,
na sasa ina tu! ^ ndani yake.
Hii ni kwenda kuangalia katika masharti faili kwa ajili ya kitu chochote.
Basi, ikiwa mimi kufanya masharti grstrings_file, sikuweza kutoa kitu chochote kuangalia kwa huko,
lakini ni kuangalia katika masharti.
Ni hawakuona masharti neno katika masharti ya faili, lakini haina abc kupata.
Na haina kupata hiyo.
Hivyo hapa sisi ni kutoa hoja kwamba hits katika ufafanuzi wa pak,
kwamba ni kuingizwa ndani yake.
Ni wapi msemo huu linatokana.
Unaweza kutumia zaidi ya 1.
kareti ni ishara ya hoja ya kwanza.
Kama alitaka kutumia hoja ya pili, ungekuwa kisha kusema: 2.
Hakuna ishara maalum kwa ajili ya Hoja ya pili.
Na kwa sababu unatumia numeral, ingekuwa kutumia koloni.
Kuna, hata hivyo, uchaguzi mwingine hapa.
ishara ya dola anasimama kwa hoja mwisho.
Na kwa sababu hii ni ishara, unaweza omit koloni.
Hivyo itakuwa hoja mwisho katika orodha.
Na pia kuna kuwa moja.
Kinyota maana wote, hivyo hii ni kamili hoja orodha,
na tena, unaweza omit ya matumbo kwa sababu si numeral.
Natumaini wewe ni wote kufanya maadhimisho haya yote.
>> Utaratibu historia unaweza kwenda nyuma ya mistari mapema katika orodha historia.
Unaweza kufanya hivyo katika alias ufafanuzi.
Sijawahi kuona hii kufanyika.
Itakuwa na athari za kuunganisha nje amri mapema kutokana na orodha historia
wakati nitafanya alias, ambayo inaweza kuwa amri mbalimbali
kulingana na wakati na mahali ambapo nitafanya hivyo.
Conceivably unaweza kutaka kujiondoa kumbukumbu hiyo
tu kujua nini amri mapema mara.
Sijawahi kuona hili kutokea.
Nadhani mtu kutaka, lakini hii ni uwezekano sana.
Kuna kitu kingine hapa.
Kama unaweza kutumia historia ya aina ya kumbukumbu,
kisha tu hoja ambayo kuna kumbukumbu hiyo ni kutumika.
Kama una alias ufafanuzi ambayo haina kutumia historia ya aina ya kumbukumbu,
kama tu inakuwa mwanzo wa amri
na una hoja zaidi, kisha kitu chochote aina baada ya
kuongezwa kwa amri.
Katika kesi hiyo, mfano mimi tu alitoa huko, sisi kutumika hoja ya kwanza;
sisi haikutumia wengine wowote.
Kama hoja nyingine alikuwa amepewa juu ya mstari amri, wao bila kutumika.
Hivyo kama wewe kutumia historia kumbukumbu wakati wote, basi lazima kuitumia kupata hoja yoyote.
>> Kuna kitu kingine hapa nataka tu kutaja, sehemu parenthetically ni,
yaani hii utaratibu historia na Moderators kumweka
huenda nyuma ya awali C-shell.
tcsh ilianzisha shughuli historia
ambayo matumizi aina ya amri na masharti kutoka kwa wahariri,
ama Emacs au vi.
Maoni yangu binafsi ni Emacs ni rahisi kutumia kwa lengo hili
hata kama wewe kutumia vi kwa editing yako ya kawaida.
Kuna amri mbalimbali Emacs ambayo sasa wanaishi kwa historia.
Kudhibiti P anapata line uliopita katika orodha historia.
Mwingine Kudhibiti P kupata wewe moja kabla ya hapo.
mshale juu haina kitu kimoja.
Kudhibiti N anapata amri ijayo kama umefanya tayari scrolled nyuma baadhi ya njia.
Chini arrow gani kwamba pia.
Unaweza hoja kushoto na kulia kwa mishale na mambo mengine mbalimbali.
Hii inaweza kufanya matumizi ya mfumo wa historia
rahisi zaidi kuliko kutumia hatua syntax mshangao,
lakini bila kutumia katika alias ufafanuzi.
Tutaweza kwenda juu kwamba baadhi ya wakati mwingine.
>> Vigezo.
Unajua nini vigezo ni katika lugha ya programu.
shells na wao pia.
C-shell anatumia amri kuweka hawawajui vigezo,
ili seti variable a na thamani ya b -
kama nilivyosema, ufafanuzi maana lakini mfano wa jinsi hii ni kutumika.
seti amri kujenga variable ikiwa haina tayari zipo.
vigezo nafasi hii kwa scripts shell inaweza kuchukuliwa vigezo,
lakini matumizi yao na sheria kwa ajili yao ni tofauti.
Huwezi kuwapa thamani $ 1 katika mwendo wa script.
Ingekuwa kufafanua variable mpya kwa ajili hiyo kama baadhi ya alitaka.
Aina kuweka na hakuna hoja na kupata orodha ya vigezo vyote sasa defined.
Na hebu kupata juu ya shell yangu nyingine hapa na kuona nini sisi kupata kama sisi kufanya hivyo.
Orodha kabisa kwa muda mrefu huko, sawa?
Kitabu juu kidogo. Kuangalia yote hayo.
Baadhi ya mambo haya yanatokana moja kwa moja na shell.
shell inajenga kutofautiana na anatoa ni thamani.
Baadhi yao yanatokana na shell lakini kisha upya kwa mtumiaji
kulingana na matakwa yake.
Na baadhi yao ni kuundwa kwa user kulingana na anachokifanya siku hiyo.
Hiyo ni kuweka na hakuna hoja.
Kuna isiyo ya kawaida kipengele hapa ya jambo hili ni.
Kuna kuwa ama hakuna nafasi kati ya usawa saini na jina variable
na thamani au nafasi kwa pande zote mbili wa usawa ishara,
kama katika hili.
Hii si kazi, na hii kwa kweli ni amri halali
lakini si kufanya nini nia.
Amri ambayo kazi kwa sababu kama wewe tu kusema kuweka na jina variable
na hakuna usawa ishara au kuweka na jina variable na usawa saini na hakuna thamani,
itakuwa kuweka kutofautiana kwa null thamani.
Hivyo kuweka = ni amri halali.
seti amri unaweza kufafanua zaidi ya 1 kutofautiana juu ya mstari huo.
Hivyo amri hii hapa ina athari ya kufafanua wote a na b kwa null maadili.
Pengine si unataka nini.
Hii ni moja ya hapa, hapo awali, itasababisha makosa
kwa sababu = b ni si kujieleza halali.
jina variable haiwezi kuanza kwa usawa ishara.
Na kuna mambo haya kwa undani zaidi hapa.
colons zilitumika kuchagua hoja kutokana na historia ya mistari,
na inaweza kutumika - na mimi hakwenda kabla ya - kurekebisha mambo hayo.
Wao pia inaweza kutumika kurekebisha vigezo shell.
Hii ni moja ya hapa, $, ina thamani ya.
: R kuchukua mbali ugani.
ugani kuwa kitu chochote zifuatazo dot,
dot na kitu chochote zifuatazo mwishoni mwa file,
tu mwishoni mwa orodha baada ya kufyeka mwisho.
Hivyo nina hapa.
a ni kwamba. Ni mapenzi tone. O.
Kama hakuna ugani, tu pathnames baada ya kufyeka mwisho, itakuwa na hakuna athari.
a: h kwamba maelezo kutofautiana, kuchukua mbali ya mwisho ya orodha directory,
tena, tu baada ya kufyeka mwisho.
Hivyo / a / b / c inakuwa / a / b,
lakini hii moja ni iliyopita kwa sababu hiki baada ya orodha ni null.
Hapa kuna kitu ambacho pia nataka kusisitiza.
Kufuzu haya si kutafuta kuwepo kwa files haya.
Wao tu kuangalia kwa masharti.
Hizi ni nia ya kuendesha faili majina, pathnames,
lakini inaweza kutumika juu ya kamba yoyote hata kama si jina la faili.
Na hawana kuangalia kwa kuwepo,
hivyo kama hakuna file hiyo, / / ​​b / c, hii bado kazi.
Kama ni ya matumizi yoyote ni swali jingine, lakini bado kazi.
Vigezo ni tofauti katika shells Bourne. Tutaweza kupata baadaye.
Dollar ishara inaweza alitoroka tu kama Moderators kumweka na kinyota.
Dollar ishara inaweza alitoroka na backslash au quotes moja.
Double quotes kuwa na athari isiyo ya kawaida katika shells wote
ya kulazimisha tathmini ya dola ishara kujieleza kutofautiana.
Hivyo kama ni kuwa alitoroka kwa njia moja, quotes mbili unaweza kuwa na athari
ya kusababisha kuwa ni tathmini anyway.
Hii ni utata kidogo.
Kama kuna ngazi mbalimbali ya kukimbia, kama vile moja quotes ndani ya quotes mbili
au quotes mbili ndani ya quotes moja, unapaswa mtihani kwa kuona nini kitatokea
kwa kutofautiana kama wewe ni kutumia moja.
Wale 2 hali - ndani ya mara mbili ya moja, moja ndani ya mara mbili -
si lazima kukupa matokeo hayo.
Mazingira vigezo, amefungwa vigezo C-shell.
Mazingira vigezo pia ni vigezo katika C-shell,
na wao pia ni vigezo katika shells mengine pia.
Katika C-shell, wao ni seti tofauti.
mambo mimi alikuwa akisema kabla ya ni kuhusu vigezo shell.
Mazingira vigezo ni kuweka tofauti ya vigezo
na ubaguzi wa vigezo kadhaa ambayo sisi kuwaita amefungwa vigezo,
ambayo ni muhimu sana na tutaweza kupata katika wale baadaye.
Mazingira vigezo ni moja kwa moja kupita juu ya
kwa shells au amri kwamba ni kukimbia kutoka shell yako.
mambo mengine ni si. vigezo shell, Majina bandia si. Mazingira vigezo ni.
Hiyo ni kwa nini sisi kuwaita vigezo mazingira,
wazo kuwa kuwa mazingira hadi siku za nyuma tu shell yako ya sasa.
Inaweza kutumika kwa kufafanua mambo kwa amri.
Hapa ni mfano. PRINTER, LPDEST.
Wote wa vigezo wale unaweza kufafanua printer kwamba amri kutumia magazeti mambo.
Kama una Printers nyingi duniani, unaweza kutaka kuweka moja wewe kama.
sababu tuna 2 vigezo ni kwamba seti tofauti ya amri ziliandikwa
kwa kutumia vigezo tofauti hizi.
Unaweza kuwapa maadili tofauti.
Uwezekano mkubwa wewe utakuwa kuwapa wote thamani sawa.
Mambo hayo kazi kwa sababu amri hiyo kufanya uchapishaji
walikuwa iliyowekwa kuchunguza maadili ya vigezo hivi.
Kama mpango Haikuandikwa kwa njia hiyo, ikiwa ni kwa njia ya maandishi kitu kingine,
variable itakuwa lisilo na maana.
Hivyo mfumo wa uendeshaji si kuangalia kwa vigezo hivi
kila wakati rejea printer.
amri kwamba hana uchapishaji ni kutafuta vigezo hivi kama ni iliyowekwa kwa njia hiyo.
Vigezo hivi ni mara nyingi hufafanuliwa katika mafaili yako initialization
lakini siyo lazima.
Unaweza kufafanua yao juu ya mstari amri.
Wanaweza kuelezwa katika amri.
amri kwamba anaendesha kitu wanaweza kuwa uteuzi wake wa vigezo -
vigezo kuwa ni ya kipekee na hasa programu ya mfuko, kwa mfano.
Wao kuelezwa wakati wewe kukimbia ya mfuko huo.
Ni jinsi gani vigezo hivi kupita ndogo ya shell?
Wakati ndogo-shell imeandikwa, haina kuandika katika eneo hilo.
eneo la ndogo-shell kuwa ni kujitoa kwa mazingira vigezo
si iliyoandikwa na ndogo-shell; imeandikwa na kuiga.
Wakati kukimbia amri ya kawaida, kama vile amri hizi na magazeti au chochote,
wao kuanza mbali na kujenga shell mpya.
shell inajenga shell na kisha overwrites sehemu yake
na amri kwamba wewe ni mbio, ambayo ni utata kidogo,
lakini hiyo ni jinsi amri hizi kupata mazingira vigezo
kwamba wao kisha rejea baadaye.
amri hapa kwa ajili ya zoezi setenv kutofautiana.
Hiyo ni jinsi gani unaweza kufafanua yake. Ni 3 vipengele: setenv, kutofautiana, thamani.
Kama wewe tu setenv na hakuna hoja, je, kupata?
orodha ya yote ya vigezo hizo.
Tena, ni nzuri kwa muda mrefu orodha na katika kesi hii, kama kwa wengine,
vigezo hivi yanatokana kwa kiasi kikubwa na operesheni yangu kuingia na shell yenyewe
badala ya kitu chochote mimi.
Kuna amri nyingine hapa, printenv.
Hiyo pia Prints nje ya mazingira.
Taarifa jambo hili mwisho hapa, EDITOR = vi.
Kwamba anasema kwamba kama mimi nina kutumia kitu ambacho wito mhariri
na mimi si bayana mhariri na inaruhusu me uchaguzi, inaweza kutoa me vi.
Nini kama mimi kufanya printenv mhariri? Ni anasema mimi ni nini.
Haki kabla ya hapo, kulikuwa na kutofautiana, chini.
Hizi ni defaults yako chaguzi wakati mimi kukimbia amri chini,
ambayo inaonyesha files.
Basi, ikiwa mimi kufanya hivyo, printenv wanaweza kuchukua 1 hoja au 0 hoja,
si zaidi ya 1.
Kuna amri nyingine pia, lakini sisi siyo kwenda kupata katika leo kwamba wote.
Kumbuka kulikuwa na modifiers kwa vigezo shell kama: h,
ambayo zitashuka ya mwisho ya pathname,
au: r, ambayo itakuwa tone ugani.
Sasa wale kuomba kwa mazingira vigezo pia. Hawakuwa kutumika.
Ni kutumika kuwa hawakuweza kuwa iliyopita. Sasa wanaweza kuwa.
Ni moja ya maendeleo na maendeleo ya shells zaidi ya miaka.
Mimi alikuwa akisema kwamba shells kama sehemu ya mazingira
na vigezo shell katika C-shell ni, isipokuwa kwa baadhi, seti tofauti.
Unaweza kuanzisha variable mazingira na kutofautiana shell kwa jina moja.
Watakuwa vigezo mbalimbali; wao wanaweza kuwa na maadili mbalimbali.
Kubadilisha thamani ya moja si mabadiliko thamani ya nyingine.
Vigezo Haya yote ni tathmini na ishara ya dola - $, $ chochote.
Basi nini kama una hii? Je unajua moja kupata?
Katika vipimo yangu I got variable shell,
lakini hii si kumbukumbu na huwezi kutegemea juu ya hilo.
Basi, mimi kuuliza wewe, ni kujenga shell na mazingira vigezo
kwa majina moja wazo zuri? Hakuna Sawa.
Ni wale isipokuwa kuu ambayo mazingira na shell vigezo gani
ni wanaohusishwa na kila mmoja?
Kuna hizi 4.
Capital barua mazingira MREFU variable,
shell variable mrefu katika barua ndogo, aina ya terminal wivu.
Mimi tu kwenda juu hapa na mimi nina kwenda kufanya echo, amri muhimu hapa,
$ $ MREFU mrefu. Na pale.
xterm ni aina terminal kwa madirisha kuonyeshwa katika x Window System.
xterm-rangi ni tofauti ya kwamba inaruhusu rangi tofauti.
Kwa nini sisi kufafanua haya? Hii ni nini nzuri kwa ajili ya?
Amri hiyo upya screen kama mhariri
kutuma Utaratibu fulani, aitwaye Utaratibu wa kutoroka,
kwa terminal au dirisha upya yake na kadhalika.
Utaratibu wa wale ni tofauti kwa aina tofauti ya vituo.
Hii inaonyesha ni ambayo ndio kutumia.
Wakati mwingine kuna masuala huko.
Unaweza kutaka mabadiliko hayo.
Kama mambo si kazi, wakati mwingine aina terminal ni kuweka sahihi,
unaweza kuwa na uwezo wa kurekebisha na upya mrefu kutofautiana.
Katika kesi hizi, kubadilisha variable moja, kutofautiana mazingira au kutofautiana shell,
wanapaswa kubadilika mtu mwingine.
Nimekuwa aligundua njia ya uzoefu kwamba mabadiliko ya MREFU katika mji mkuu wa barua
haina daima mabadiliko shell variable mrefu katika barua ndogo.
Hii ni mdudu.
Sijui kama kwamba ni kweli daima. Zaidi ya muda si kweli, lakini inaweza kuwa.
Hivyo kama wewe kufanya mabadiliko, kuangalia tu kuwa nje.
Ni mara nyingi kwamba unahitaji kubadilisha thamani hiyo, lakini mara moja katika wakati wewe kufanya.
Mazingira variable USER.
Tena, mazingira variable katika mji mkuu wa barua, shell variable katika barua ndogo.
Hii ni jina lako.
Ni tu chini ya hali ya kipekee sana
kuwa wewe unataka kubadili hali hiyo.
Kama jina lako ni mtu mwingine, inaweza kutupa kila aina ya mambo mbali.
Nyumbani directory, mtumiaji nyumbani directory.
Tena, wewe si unataka kubadili hali hiyo.
Taarifa katika matukio haya yote na moja kwamba sisi ni juu ya bima, njia variable,
variable mazingira ni katika mji mkuu wa barua na amefungwa shell variable ni katika barua ndogo.
Kama mabadiliko ya moja, unapaswa kubadili nyingine.
Aina hii ya kisheria haiwezi kuwa imara kama huwezi kumfunga 2 vigezo,
kingine chochote zaidi ya hizi 4, na kisheria katika vigezo hivi hauwezi kutenguliwa,
huwezi kutenganisha yao.
Basi hao jozi 4 ya vigezo ni amefungwa.
Wao daima itakuwa. Hakuna wengine itakuwa.
Aidha, itakuwa inawezekana kujenga vigezo na majina sawa
ya aina tofauti.
Unaweza kufanya shell variable mrefu katika barua ndogo
au mazingira variable MREFU katika herufi kubwa.
Wale vigezo itakuwa huru wa mambo haya vilivyooanishwa
na wangeweza kuwa na uhuru wa kila mmoja.
Siwezi kufikiria nini ungependa kufanya hivyo kama unataka kuwachanganya watu.
Hii ni moja ya hapa, njia variable, hii ni moja muhimu.
Jambo jingine hapa ni kwamba kuna inaweza kuwa kesi
ya vigezo na majina sawa paired ambayo si amefungwa kwa kila mmoja.
Kuna inaweza kuwa vigezo, SHELL na shell, katika mji mkuu na ndogo barua.
Kulingana na jina kwamba, sijui kama kwamba kutofautiana ni variable shell
au kutofautiana mazingira, na siyo wajibu wa kila mmoja.
Ili aina ya majina vilivyooanishwa haimaanishi amefungwa vigezo.
variable njia, ambayo nilikuwa kuonyesha kabla,
ni orodha ya pathnames ambayo shell inaonekana kwa amri.
Hebu kupata juu ya dirisha hili hapa na tutaweza kufanya $ echo PATH, barua mji mkuu -
variable mazingira - echo $ njia, barua ndogo - shell kutofautiana.
Taarifa kwamba orodha ya directories ni sawa. Hizi ni amefungwa.
Mabadiliko ya moja, mabadiliko ya nyingine.
Katika kutofautiana mazingira mambo ni kutengwa na colons. Taarifa hiyo.
vigezo shell ni kutengwa na nafasi.
Variable hii mazingira ni kamba moja.
variable shell ni safu.
Bourne shell hawakuwa na arrays.
Bash gani, lakini tayari hii ni sehemu ya kudumu ya shell.
Hii ni kamba moja na si safu.
C-shell daima alikuwa arrays.
arrays ni rahisi sana kufanya kazi pamoja.
Unaweza kutaja sehemu hizo.
Hivyo echo $ njia [1] na mimi kupata / usr / bin, hiki kwanza.
Tena, kumbuka dola ishara anasimama kwa kipengele cha mwisho cha orodha historia.
Nini kinatokea huko? Ni walijaribu kutafuta ishara ya dola kama ishara ya kutofautiana.
Mimi kutoroka. Oops. Itakuwa si kuchukua aidha.
Baadhi ya mambo haya si kazi vizuri.
Labda tutaweza kuondoka tu kwamba nje.
Kinyota inahusu jambo zima, lakini hiyo ni nini kupata kama huna bayana hiki.
Njia nyingine ya kuwa safu vigezo inaweza kuwa manipulated,
idadi ya vipengele huko, 7 vipengele.
Hapa sisi kuweka chupa ishara kabla ya jina kutofautiana.
Hapa ni mtu mwingine. Kuweka alama swali huko.
Hiyo ni thamani ya akili. Hiyo inaonyesha kwamba variable lipo.
Ni njia nyingine ya kufanya kazi na vigezo.
Kwamba, kwa njia, hana kuwa safu kutofautiana.
Hiyo inaweza kuwa kutofautiana yoyote.
Na kama mimi, hakuna kutofautiana kama na mimi kupata 0.
Jambo jingine kidogo hapo kuhusu tathmini kutofautiana.
Nyuma na hii hapa, kama kwa sababu baadhi alitaka kufanya kazi na hii
badala ya kufanya kazi na safu, variable shell,
kuna amri ambayo inaweza tofauti mambo haya ya msingi juu ya koloni.
Kwa kweli, kama wewe ni kwenda kwa kuwa kufanya hivyo katika Bash shell pengine,
baadhi ya aina ya script, ambayo itakuwa pengine jinsi gani kufanya hivyo.
Lakini katika C-shell ni rahisi kutumia safu.
Katika Bourne shell, vigezo ni kupewa na kujieleza moja kama hii,
kama njia unaweza hawawajui variable katika lugha ya programu,
na hapa lazima kuna kuwa hakuna nafasi.
Ni muhimu kwamba kuwa string 1 tu.
Katika shells Bourne-aina, vigezo vyote ni vigezo shell.
Mazingira vigezo ni subset ya vigezo shell.
Wao wanajulikana kutoka mashirika yasiyo ya mazingira vigezo na nje ya nchi.
amri ya kufanya hivyo ni kuuza nje, kama mauzo ya nje PRINTER.
Kama tulikuwa na kufafanua kama variable,
kama sisi alitaka amri kuchapa kupata hiyo, ingekuwa kuwa tofauti mazingira,
na kwamba ni jinsi gani sisi kufanya hivyo ni moja.
Hapa kuna kitu aina ya utata.
Msemo huu, nje ya mazingira, hupata kutoka Bourne shell dhana hii,
na bado kwamba kujieleza ni kutumika katika maelezo ya C-shell,
ambapo hakuna amri kama vile nje ya nchi.
Kama wewe tu kusema kuuza nje kwa wenyewe, unaweza kupata orodha ya kuuza nje -
Basi, ikiwa mimi tu kufanya mauzo ya nje hapa, hakuna kitu kama hicho.
Sawa, kuna sisi kwenda.
Mambo haya, kwa njia, pia inavyoelezwa na shell.
Mimi haikufafanua yoyote ya hizi kwa mwenyewe.
shell gani kila aina ya mambo kwa yenyewe.
Ni lazima kufanya mambo moja kwa moja.
Katika Bash au Korn shell, unaweza kukimbia amri kama hii,
ambayo wote kutoa variable thamani na kuuza nje katika 1 amri.
Katika shell Bourne wao kuwa amri tofauti kama mauzo ya nje a.
Hapa ni lingine kwamba utata.
seti amri katika C-shell amefafanua vigezo
na hakuna hoja atakwambia nini maadili vigezo 'ni.
Katika Bash shell, kuweka amri na hakuna hoja haina kitu kimoja,
lakini kwa hoja yake haina kitu tofauti kabisa.
Basi hizi ni hoja mbalimbali hapa.
Baadhi ya hizi ni vigezo mazingira, baadhi yao ni vigezo shell.
Wote ni vigezo shell kweli. Baadhi ya watu ni vigezo mazingira.
kuweka amri kwa hoja inaweza kutumika kwa kazi
juu ya vigezo nafasi hii kwa script,
ambayo ni njia ya kupata yao yote kwa mara moja.
Hatuwezi kweli kwenda katika kwamba leo.
Ni pia inaweza kutumika na mabadiliko ya tabia shell.
Hasa katika Bash kuna vigezo ambayo itaonyesha jinsi gani shell kutenda.
Kisha pia tu hii amri moja kwamba unaweza kuona, amri hii.
Kutayarisha chapa na kufuatiwa na vigezo na aina variable ni kutumika katika Korn na Bash shells.
Siyo lazima lakini inaweza kutumika kuzuia maadili ya vigezo,
ambayo inaweza kuwa na manufaa kwa kuzuia makosa, na ni haki ya kawaida.
Hivyo mimi nina kutaja tu kwamba katika kesi unaweza kuona ni mahali fulani.
ambapo amri.
Kumbuka nilivyosema hapo awali ambapo amri katika C-shell,
ambayo inaweza kuwaambia eneo la amri pathname.
Hapa ni amri badala.
Unapaswa kupata juu ya keyboard yako mahali tabia ambayo inaonekana kama hii.
eneo juu ya keyboard ni kwenda kutofautiana.
Tumekuwa kuitwa kuwa ni backquote. Ni juu ya ukubwa wa kunukuu.
Unaendelea kutoka upande wa kushoto juu ya kupunguza haki.
Hapa juu ya Mac keyboard wangu ni katika sehemu ya juu upande wa kushoto kona.
Tabia ya ambayo inaweza kutumika kutekeleza amri ndani ya amri.
Kama una kujieleza ndani ya backquotes,
kwamba kujieleza ni amri, ni kukimbia.
pato la amri hiyo
basi ni badala ya zima backquote kujieleza
ndani ya amri tena ambayo kisha anaendesha kwa pato kwamba
kama sehemu ya kamba yake ya hoja na kadhalika.
Hapa ni amri ambayo inatumia hiyo.
Hebu kuonyesha kazi hapa.
Hebu kwenda juu hapa, kuchukua backquotes.
Kudhibiti A anapata mimi kwa mwanzo wa mstari kwa Emacs editing syntax.
Hadi sasa pathnames ni nini wapi,
lakini wakati mimi kufanya hivyo kama hii, basi plugs katika orodha ya pathnames
katika nafasi ya backquote hii yote kujieleza na anaendesha ls-l juu yao.
Aina ya urahisi, huh?
Ili jambo moja nadhifu. Hiyo ni jinsi backquotes kazi.
Sasa hebu kwenda chini kidogo zaidi.
Hizi ni Majina bandia. Mimi kwa kweli kutumia haya.
Nitajaribu kupata katika huu na 1 editing kazi.
Sawa.
Sasa hebu angalia jinsi ufafanuzi wale akatoka.
alias lwh akiniambia jinsi gani huo.
Taarifa ni huu tu, lakini quotes nje zimechukuliwa mbali
na Moderators kumweka ni kuchukuliwa mbali.
! *, Orodha kamili ya hoja zote.
Katika alias ufafanuzi itakuwa kuomba nyuma ambapo mimi kutumia hii.
lwh ksh bash. Sawa.
Kuona jinsi kazi? Ni anaokoa mimi baadhi ya kuandika.
Hebu kwenda juu kidogo tu kutaja kitu kingine hapa.
Taarifa hapa shells hizi tofauti. Mimi lazima zilizotajwa hii kabla ya.
CSH ina 2 juu ya hapa na hivyo haina / bin / tcsh.
Tunaweza kuanzisha kwa njia nyingine kwamba wale ni kweli faili moja.
Kumbuka mimi alikuwa akisema kama aina sh kupata bash.
Aina hii na wewe kupata hii.
Lakini wale si zinazoungwa. Wale na ndio moja huko.
Na hii si aina ya faili ambayo wanaweza kupiga mtu mwingine.
Basi hizo files tofauti, wale C-shell ni faili moja.
Nyuma hapa chini, mtu mwingine hapa, pak hii,
kumbuka kuwa mbio amri hii, file.
Alias ​​kwamba anaendesha hiyo. Picha atakwambia aina ya faili.
Hivyo fwh ksh bash. Sawa.
Hiyo ni matokeo ya amri file.
Sijui kama unajua nini maana ya hii hapa,
Mach-O wote binary na 2 architectures.
Kuna 2 iwezekanavyo aina processor katika Mac,
na baadhi ya mipango ya yaliandikwa kuwa na uwezo wa kukimbia na wote wawili,
na amri faili inaweza kuamua kwamba, hivyo kwamba ni nini maana ya hii.
Wote files hayo yalikuwa yameandikwa kwa njia hiyo.
Hivyo tunaona jinsi alias kazi, tunaona jinsi backquote kazi,
tunaona jinsi ls halisi file au faili kazi.
Hii inaweza si kazi. Jaribu "ambapo ambapo" na "lwh ambapo". Okay, hebu jaribu hiyo.
ambapo ambapo.
ambapo ni shell kujengwa katika.
Kumbuka mapema sisi ilionyesha kuwa Bash hawakuwa na wapi.
Kama aina ambapo katika Bash shell, unaweza kupata ujumbe wa kosa.
Ni sehemu tu ya shell badala ya kuwa amri tofauti.
Nini kinatokea kama mimi aina lwh kuangalia kwa wapi? Kuona nini kinatokea huko.
Mbio ambapo ambapo, got pato huu, na kisha alijaribu kukimbia ls
kama l juu ya mahali ambapo ni shell kujengwa katika.
ambapo ni pale, lakini wale wengine hazipo.
Hakuna hizi zipo, kwa kweli.
Ili haifanyi kazi, na pia unaeleza jinsi gani baadhi ya mambo
si kufanya kabisa nini unaweza kuwa na mawazo.
Hebu kwenda chini kidogo zaidi hapa.
Hii hapa ni katika Bash. Hiyo pia ni amri badala kama backquote.
Lakini tofauti na backquote, inatumia mtindo huu kutofautiana.
Kuna idadi ya maneno ambayo kuanza kwa ishara ya dola,
na wakati haya ni si vigezo, wakataka matumizi ya ishara ya dola
zinaonyesha usemi wa aina fulani.
Ambayo inaweza kuwa na kuzungukwa na mabano au mabano au mabano mara mbili,
ambayo ina lengo tofauti.
Mabano Single hapa ni amri badala tu kama backquotes.
Double mabano ni kweli kazi hesabu.
Kuna syntaxes mengine, shughuli nyingine.
Backquote syntax inapatikana katika Bash.
Hata hivyo, hii moja ni vyema. Ni rahisi kusoma na inaruhusu nesting.
Unaweza kuwa na ndani ya (amri) $ amri nyingine,
kitu kama -
Mimi kupata orodha huko.
Hiyo kazi kama nilikuwa backquote pia.
Nini kama mimi wanataka kufanya kitu kama -
Pengine itakuwa si kweli kutumia amri hii,
lakini hii ndani amri badala iliyopewa kichwa majina ya mafaili yote ya mwanzo na,
basi hii moja anaendesha ls-l juu ya files hizo,
na kisha hii moja tu iliyopewa kichwa pato.
Wewe pengine bila kufanya hivyo; utaweza tu kufanya echo au ls,
lakini hii inaonyesha jinsi nesting ya amri kazi.
Hivyo tu mwingine kipengele hapa.
Nilivyoeleza hili mapema, kwamba wakati una ambapo katika C-shell,
aina ya kazi katika shells Bourne aina kwa kuuweka amri.
Kujengwa katika amri, kile tu alikuwa akisema huko.
Amri ni sehemu ya shell, kama wapi.
Wakati shell executes amri kama ls, ni locates hivyo kwa njia ya njia,
anaona ni katika baadhi directory mahali fulani,
inasema kwamba katika kumbukumbu, inajenga shell mpya,
wasomaji ls amri au chochote ndani ya ganda
ambapo mazingira vigezo tayari iko,
na kisha uhamisho utekelezaji yake.
Kujengwa katika amri kanuni kwa ajili ya amri hiyo, ni ndani ya ganda,
hivyo shell tu kuanza utekelezaji wa sehemu ya maadili ya yake mwenyewe.
ambapo ni amri hizo. Ni kweli anapata kasi.
Haina kusoma chochote katika kumbukumbu; ni tayari katika kumbukumbu.
Kujengwa katika amri daima kuchukua precedence juu ya amri kwa jina moja.
Amri hiyo ni katika directories katika njia inaweza kuwa na jina moja,
amri katika directories mbalimbali, faili katika directories mbalimbali.
moja kwamba hutokea mapema katika njia ni moja utapata.
Kama kuna kujengwa katika amri, daima kupata.
Hakuna njia ya kuwapa precedence chini ya amri katika njia.
Kama unataka kupata kwamba amri njia, unaweza aina pathname full.
Kama kulikuwa na amri ambapo katika njia mahali fulani,
unaweza aina / bin / ambapo na wewe Ningependa kupata hiyo.
Kama hawataki aina pathname zima, unaweza kufafanua pak.
Kwa kweli, kama wewe alitoa alias jina moja kama kujengwa katika amri, ingekuwa kazi
kwa sababu alias ufafanuzi ni tathmini
kabla ya shell inaonyesha kuwa ni kujengwa katika amri ambayo inapaswa kutekelezwa.
Kisha hii anapata ngumu zaidi kidogo kwa baadhi ya amri hapa.
kesi ya baadhi ya amri ni kweli kujengwa katika amri na katika njia.
Mmoja wao ni echo, amri mimi tu kutumika kwa muda kidogo iliyopita katika mifano hiyo.
Echo ni amri katika njia na ni katika kila shell.
Hawana lazima wote kuishi kwa njia hiyo.
Ni awali ilikuwa amri tu katika njia.
Ilikuwa kujengwa katika shells baadaye.
Kwa sababu kuna njia ambayo wanategemea mazingira ya
na amri line chaguzi, kujengwa katika amri
ziliandikwa kwa kazi hiyo kama amri kwamba alikuwa katika njia,
ni uwezekano wangeweza imeandikwa kwa njia hiyo
kama amri alikuwa tayari kuandikwa kwa njia.
Hivyo hii ina madhara. Historia yake ina athari hapa.
Kuna chaguzi huko.
Kuna pia ni chaguo inavyoelezwa na kutofautiana katika tcsh aitwaye echo_style.
Hiyo ni moja ya vigezo hivi kwamba anaweza kubadilisha njia ambayo echo kazi.
Kuna kesi nyingine ambayo unaweza kuwapa variable
kuwa mabadiliko njia kwamba operesheni shell, ikiwa ni pamoja na kujengwa katika amri, kazi.
Ni bila kuathiri kitu kingine chochote
tangu amri nyingine hawana kwa vigezo shell,
tu mazingira vigezo.
Lakini shughuli shell unaweza kusoma vigezo shell.
Hiyo si kazi kwa CSH. Hiyo ni tcsh tu. Hiyo ni moja ya nyongeza.
Parsing ina Utaratibu wakati kutathmini metacharacters,
wakati kutathmini vigezo, Majina bandia, kumbukumbu historia.
Kuna mlolongo maalum kwa ajili ya mambo haya.
Kama ni hivyo mambo katika mlolongo hasa
na anapata kitu ambacho ni usemi wa aina
ambayo tayari tathmini, itakuwa si kutathmini tena.
Kama anapata yake, basi itakuwa kupita tu juu ya wahusika.
Hivyo kama tathmini ya baadhi maneno kama amri badala
au kutofautiana au chochote inatoa kupanda kwa kujieleza
ambayo ungependa wanataka kuwa tathmini,
ambayo kazi tu iwapo tathmini ya kwamba hutokea baadaye katika mlolongo.
Natumaini mimi nina kuwa wazi kuwa hakuna.
Hiyo parsing mlolongo, operesheni katika C-shell,
si sawa kwa kujengwa katika amri kama ni kwa ajili ya mashirika yasiyo ya kujengwa katika amri.
Mimi nina uhakika juu ya Bash huko.
Kwa mfano, kama variable shell zinazozalishwa historia ya kumbukumbu,
pengine hakutaka kurudi katika historia.
Itakuwa tu kupata mshangao uhakika.
Kwa kweli, tunaweza tu kujaribu kuwa nje hivi sasa.
kuweka = na sisi itabidi kuweka hii huko.
Oh, kusubiri. Sorry. Nilifanya hivyo katika Bash. Nilitaka kufanya hivyo hapa.
Angalia, hivyo hakuwa na kutathmini historia kumbukumbu
kwa sababu ilikuwa tayari siku za nyuma hatua ya kutathmini historia ya maneno
wakati tathmini kutofautiana.
Hivyo kwamba ni 1 athari za parsing.
Na tena, kujengwa katika amri si kufanyika kwa njia hiyo.
Sawa. Hebu kwenda moja ijayo hapa.
Hii ni nia ya kuwa na 1 line, lakini ni kuifanya rahisi kusoma.
Je, hiyo nini?
Unaweza kukumbuka kwamba tunaweza kutathmini Stars kama jina la faili wildcards,
na kuna wildcards nyingine jina la faili kama alama ya swali na bracket maneno.
Kwamba aina ya tathmini inaitwa globbing.
kuweka noglob mwanzoni mwa amri hii anasema si kufanya hivyo.
unset noglob anasema kwenda nyuma ya kufanya hivyo.
Kumbuka kwamba kuweka glob bila kuwa na athari hiyo.
Kwa lugha ya kawaida, kuweka glob au unset noglob inaweza kuonekana kuwa sawa,
lakini hapa si. Ni unset noglob.
Sasa tset. tset kusimama kwa ajili ya terminal kuweka.
Ni si kutumika kwamba mara nyingi sasa, lakini kabla ya mifumo ya windowing akawa inapatikana
na alikuwa terminal moja, unaweza kuwa na kuamua aina.
Na kama kitu alikuwa anakuja juu ya Ethernet au kutoka mtandao,
unaweza kutaka kusema ni vt100.
VT100 ni aina ya kiwango katika biashara ya wastaafu. Ni linatokana na terminal Desemba.
Kama wewe tu kufanya dialup - taarifa kwamba? Hii inakwenda nyuma njia, huh?
Hivyo kama sisi tu wala tset zaidi ya hapa,
kama mimi tu kufanya tset, ni upya terminal yangu, lakini hakuwa na kuona chochote.
Haikuwa mabadiliko ya kweli kitu chochote.
-S
Sawa.
setenv MREFU xterm-rangi.
Sisi tunajua kwamba neno ilianzishwa kwa njia hiyo, hivyo kwamba hakuwa na kubadilika.
Hiyo ndiyo njia tunatarajia wanataka kufanya hivyo.
Lakini taarifa kwamba hii amri, tset-s, pato tu hizi amri. Haikuwa kukimbia nao.
Haikuwa kukimbia amri hizi, ni pato yao.
Hivyo hii ni lengo la kuzalisha amri ambayo kisha kukimbia.
Unakumbuka amri katika faili kwamba mimi ilionyesha tu alikuwa Q ndani yake.
Basi hebu kufanya hivyo.
Q suppresses baadhi ya pato, lakini hiyo haina jambo hapa, kama unaweza kuona.
Mimi nina kufanya tu kwamba kuonyesha kwamba hakuwa na jambo hilo.
Hii ni katika backquote syntax.
Kumbuka backquote hapa, backquote hapa.
Mimi nina omitting mambo haya hapa.
Hizi ni matukio ya kuwaambia ni nini cha kufanya
katika kesi ya aina fulani ya vituo -
Ethernet, mtandao, dialup, una nini.
Haijalishi hapa kwa sababu sisi siyo kweli kufanya yoyote ya mambo haya.
Mimi nina kuonyesha tu amri.
Kama mimi kufanya hivyo kwa backquote, je, Mimi naenda kupata?
Pia taarifa hapa kwamba hii ni pamoja na kuweka noglob na noglob unset,
hivyo wale sasa ni kutokuwa katika ufafanuzi.
Hiyo ilikuwa si kweli daima, lakini sasa wao ni pamoja na katika amri hii.
Lakini hebu angalia nini kinatokea kama mimi kufanya hivyo
na kwenda mwanzo wa mstari na Kudhibiti A na mimi kufanya hivyo.
Sawa, kuweka: amri haikupatikana. Hiyo aina ya isiyo ya kawaida, si hivyo?
kuweka ni amri maalumu. Ni sehemu ya shell.
kuweka: amri si kupatikana? Kwa nini ni kwamba?
Hmm. Naam, hebu fikiria kuhusu hili.
Ni mbio backquote amri badala,
na kwamba hutokea katika sehemu fulani ya mlolongo wa parsing amri.
kuweka ni kujengwa katika amri.
Hivyo kwa muda gani kwamba amri badala,
ni tayari wamezipata zamani hatua ya kutambua kujengwa katika amri.
Hivyo inayotibu kuweka kama ni amri katika njia.
Bila kusema, haina kupata hiyo na kupata makosa.
Vizuri. Kuna mfano wa parsing mlolongo.
Na tunafanya nini kuhusu hilo?
Taarifa amri hii ya kuvutia sana hapa, UFUNDISHAJI.
Mimi ajabu nini kwamba hana.
Kama ukiangalia mwongozo - na hebu tu kufanya hivyo
kuonyesha jinsi utata miongozo hii ni -
mtu tcsh, kuchanganyikiwa mwongozo, kutafuta mambo hapa ni si rahisi aidha.
Hapa sisi kwenda, UFUNDISHAJI ARG, ili tuweze 1 au zaidi hoja
na kuna orodha ya mambo huko.
Chipsi hoja kama pembejeo kwa shell
na executes amri kusababisha mazingira ya shell sasa.
Hii ni kawaida kutumika kutekeleza amri yanayotokana kama matokeo ya amri
au kutofautiana badala kwa sababu parsing hutokea kabla ya mabadilisho haya.
Nzuri sana.
Na hapa hata kutaja amri tset kwa ajili ya matumizi ya sampuli
kama moja mimi tu ilionyesha wewe.
Sasa mimi kupata dirisha nyuma nafasi ya muhimu.
Hebu kupata juu ya hapa na tutaweza kuona kwamba UFUNDISHAJI hutumiwa tu kabla ya hapo.
Basi hebu angalia kile kinachotokea kama sisi kuweka - hapa Tunakwenda kwa mishale ya amri hiyo
na Kudhibiti A mwanzo, UFUNDISHAJI.
Sawa, hivyo ni kazi.
Wakati wa kufanya UFUNDISHAJI, inachukua kile unakuja baada yake na inafanya amri.
Hii itawezesha wewe kimsingi Hazrat ni mara mbili.
sehemu hapa anaendesha amri hii ndani ya backquotes,
anapata pato.
Pato zinatakiwa kuwa na kukimbia kama amri hizo hapa kama hizi
hii moja na hii moja.
Hivyo amri hizo ni sasa hapa katika mlolongo huu,
lakini haya ni kujengwa katika amri na haiwezi kupata haki yao mbali.
Kwa hiyo sisi kwenda UFUNDISHAJI, UFUNDISHAJI tar kuwa juu, kuanza jambo zima tena, na kazi.
mfano wote backquoting, UFUNDISHAJI, parsing, matokeo ya parsing,
na amri ambayo pengine ni ya matumizi kidogo sana na wewe siku hizi.
Sawa. Haki ya wote, umask.
Hebu tuangalie amri hii hapa, umask 022. Mimi ajabu nini kwamba hana.
Hebu tu aina umask na kitu baada ya yake. 22. Sawa.
022 na kufanya hivyo tena.
Kama unaweza kuwa guessed, umask na hakuna hoja atakwambia mask sasa;
umask kwa hoja inafanya, lakini kwamba alikuwa mmoja mimi tayari.
Gani 022 maana yake nini?
Hizi ni hapa ulinzi kwa ajili ya faili.
Wao kuamua nani anaruhusiwa kusoma na kuandika au kutekeleza file.
Ulinzi pia kuitwa ruhusa.
r anasimama kwa ajili ya kusoma, w kwa kuandika,
na x, ambayo si sasa kuna, anasimama kwa kutekeleza.
Kuna makundi 3 huko.
3 mambo mwisho ni katika jamii ya mtumiaji. Wale kuomba kwangu, user.
Hizi 3 hapa kuomba kikundi.
file ni mali ya 1 kundi, mtumiaji anaweza ni wa makundi kadhaa,
lakini kama mtumiaji ni katika kundi ambalo faili hili ni,
kisha ulinzi haya kuomba kwake kama yeye si user.
Na hii ni moja ya mtu mwingine.
Makundi hayo ni pande kipekee.
ulinzi user kuomba kwake,
kundi ulinzi kuomba kwa wajumbe wa kikundi chochote zaidi user,
na ulinzi nyingine kuomba tu kwa watu wengine kuliko wanachama wa kikundi user na.
Kama kuna r au aw au x, maana yake ni kwamba ulinzi ni nafasi.
Kama kuna hyphen, ina maana siyo.
Kuna kweli ni mambo mengine ambayo yanaweza kuwekwa katika hapa zaidi ya hizo,
ambayo mimi si kupata ndani ya sasa.
umask amefafanua default kwa files kwamba kujenga.
Na kama mask, kimsingi ni anasema bits kwamba huna kuweka.
Ni jinsi gani hii kuwa bits?
Kama unafikiri ya kila moja ya haya kama idadi octal,
hii ni 1s kidogo, hii ni 2S, hii ni 4s.
Hivyo 0 kupitia 7
kuelezea kile mchanganyiko wa r ya, w, na x ya kuwa kwa hizi 3
na kisha idadi sawa kwa ajili ya haya na kisha kwa ajili ya haya.
Hivyo 022 ina maana 0 kwa ajili ya wengine, 2 kwa kikundi, 2 kwa mtumiaji.
Lakini hii ni mask. mask ni nini hawana.
Mimi nina sorry. I just akakupeni ili sahihi.
Ni mara ya kwanza 3. Hizi 3 ni user, hizi 3 ni kundi, hizi 3 ni nyingine.
Sorry Mimi niliwapeni hizi ili sahihi.
0, ambayo ni ya kwanza ya hizo, haina kuonyesha thamani,
lakini kama idadi ni si huko, ni 0.
Hiyo ina maana wote 3 ya hizi itakuwa kuruhusiwa.
Taarifa kwamba katika moja fulani x hairuhusiwi.
Sababu ni kwamba shell ni uwezo wa kuamua
kama file lazima ifanyike au la.
Tangu hii si faili la kutekelezwa, haikuwa kuweka x.
2 ina maana kwamba kuandika ruhusa, jamii ya pili hapa,
moja katika katikati, inapokataliwa.
Hivyo tena, haya ni mambo ambayo alikanusha.
Naam, x anaruhusiwa lakini siyo hapa kwa sababu si kutekelezwa
na vile vile kwa watu wengine.
Hivyo kwamba ni umask kawaida.
Mtu mwingine kawaida ni 700 - kutoa mwenyewe kila kitu na hakuna mtu mwingine kitu chochote.
Na kuna uwezekano mwingine.
Nitakwenda nyuma na kwamba. Kwa kutumia historia ya mimi unaweza kutafuta nyuma kwa kuwa, lwh na pale.
Sawa. Hivyo hapa, hizi ni shells.
Bash, mmiliki ambaye ni akaunti mfumo, anaweza kufanya kila kitu.
Group na mtu mwingine anaweza kufanya kusoma au kutekeleza lakini si kuandika.
Moja hii haina hata kuruhusu mmiliki wa kuandika yake.
Kama mmiliki alitaka kuandika kwa hiyo, akaunti mfumo,
angeweza kuwa na mabadiliko ya ulinzi ya kwanza.
Lakini tena, umask seti default na Masking yake,
kwa kuonyesha bits kuwa ya kuweka.
Hii ni kawaida katika moja ya mafaili yako initialization, ambayo ni. Cshrc kwa C-ganda
au. profile kwa shells Bourne-aina.
Inaweza kuwa mahali pengine pia kama kuna faili nyingine initialization juu ya mfumo.
Hata hivyo, hiyo ni umask.
Kuna kitu aina ya isiyo ya kawaida hapa,
na kwamba ni, ni kwa nini kuna amri moja kwa hili?
Kama ningekuwa kuandika hii, napenda kufanya hivyo kutofautiana, umask = baadhi ya thamani.
Kwa nini kuna amri lote tu kwa ajili hiyo?
Sababu ni hii huenda tu nyuma kwenye asili ya Unix.
Unix mara baadhi tu ya mradi programu katika Bell Labs katika miaka ya 1970.
Watu tu got pamoja kwa mpango.
Wao kamwe lengo ni kuwa mfumo wa uendeshaji duniani kote.
Watu mbalimbali aliandika sehemu mbalimbali bila kufikiri sana
ya jinsi watakavyo kutumika - badala sketchy.
Na alikuja pamoja kama hayo, na bado ni kama kwamba katika baadhi ya mambo.
Ili huonyesha historia, na bado kuna kutokwenda haya na mambo isiyo ya kawaida yake.
Sawa. Ijayo moja hapa.
Kama nilivyoandika hapo awali, C-shell si kweli kutumika sana kwa ajili ya programu,
ingawa inaweza kuwa.
Executes polepole zaidi, tena biashara-off kati ya matumizi ya maingiliano,
ambayo ina usindikaji zaidi kushiriki zaidi kuliko kasi,
ambayo inaweza kufanya bila usindikaji.
sifa ya ziada aliongeza kwa shell Bourne na Korn na Bourne mara ya pili shells
hawaonekani kwa polepole yao chini, na mimi sijui ni kwa nini kwamba ni.
Inaweza tu kuwa programu bora, lakini nina si katika nafasi ya kujua.
Kasi hapa kwa kweli si mpango huo kubwa, ingawa ni tajwa.
Sababu ni kwamba scripts shell kweli kupata haki haraka.
Kama kuna mengi ya amri kama katika mpango calculational,
pengine bila kufanya hivyo katika script shell.
shughuli kuna haki rahisi na moja kwa moja.
wale ambao nimepata uzoefu kwamba ni polepole mno
kuhusisha maombi mara kwa mara ya amri polepole.
Mapema nilivyoeleza mhariri mkondo sed. Amri hiyo ni polepole.
Kama nitafanya sed mara nyingi, utapata script polepole, lakini siyo shell kwamba taratibu.
Mbio katika Bourne shell haitakuwa kwa kasi zaidi kuliko mbio katika C-shell,
ingawa kuna labda baadhi ya faida huko.
uwezo ziada programu, kwa upande mwingine,
ni sababu kubwa kwa nini ungependa kutumia shells Bourne-aina.
C-shell ina sifa isiyo ya kawaida yake -
ukweli kwamba sijui kama variable ni variable shell au kutofautiana mazingira.
Inaweza kuwa na utata sana.
Ni hivyo si rahisi kuandika
tu kwa kuzingatia uzoefu wako wa programu katika lugha nyingine.
Nadhani unaweza kupata shells Bourne aina zaidi sambamba na uzoefu wako.
Baadhi ya maandiko, ingawa, unaweza kuwa maelfu ya mistari katika urefu.
Wale ambao nimeona ni kutumika kwa ajili ya patching mifumo ya uendeshaji.
Wale unaweza nitafanya polepole sana, lakini si kukimbia wale mara nyingi sana.
Ni wakati tu unafanya patching,
na ni tu mfumo wa meneja ambaye anafanya mambo hayo,
hivyo si kweli mengi ya suala hilo.
Wale ambao ni mamia ya mistari ya muda mrefu kweli nitafanya haki haraka.
Kutaja hili hapa, ni nyongeza hizo?
Nimekuwa tayari kutajwa wachache wao - arrays, mahesabu,
() Kujieleza kwa mahesabu katika Bash shell $,
aina nyingine ya amri badala.
Kuna aina mbalimbali ya amri kupima
ambayo unaweza kufanya majaribio masharti juu ya kuwepo kwa faili au mambo mengine.
Mwisho hapa, amri hii hapa.
Je, hii kufanya, na kwa nini mtu yeyote kuitumia?
printenv variablename.
Sisi kujua nini printenv gani. Inatuambia thamani ya kutofautiana.
Na printenv variablename si kutuambia sana kwa sababu hakuna kutofautiana hayo.
Tupu.
Lakini hebu kuwapa kitu ya maana.
Hiyo si huko aidha. Sawa. Mimi nadhani kamwe hufafanuliwa kwamba.
Hebu kuangalia tu mazingira yangu.
Hii ni amri ya mwingine na ambayo unaweza kukagua mazingira yako.
Kuna umri nzuri EDITOR, moja tuliona kabla ya.
Je, hiyo nini?
Hapa tuna backquote kujieleza.
Kumbuka hii ni C-shell.
Hivyo printenv EDITOR kutupa thamani ya Mhariri. Ni vi.
Na kisha kuweka thamani kwamba variable a, seti amri.
Hivyo sasa kama mimi kufanya echo $ a, mimi kupata vi.
Kwamba haionekani sana muhimu.
Hata hivyo, kwa kweli anafanya na kusudi.
Tangu sisi sijui kama variable ni variable shell au kutofautiana mazingira
kwa kutumia ishara ya dola tathmini syntax, tunaweza kutumia printenv
kuhakikisha kwamba ni kutofautiana mazingira.
Hivyo kama kulikuwa na shell variable mhariri, hii itakuwa si waliopata yake.
Hii kazi tu na kutofautiana mazingira.
Kama kulikuwa na kutofautiana shell na nilitaka thamani yake,
Ningependa kuwa na kutafuta baadhi ya njia nyingine ya kufanya hivyo.
Moja ya njia ya kufanya hivyo itakuwa kwa kufanya kuweka na kusambaza.
Hii ni moja ya metacharacters, wahusika maalum.
Inapeleka pato la kuweka kitu kingine.
Hebu kuona nini sisi ili kupata huko.
Chochote. Sawa. Hebu tu kuona nini huko wote pamoja.
Ilikuwa ni echo_style, moja nilivyoeleza hapo awali. Sawa, hebu kufanya hivyo.
Kumbuka nilivyoeleza hapo awali, echo_style
huamua njia amri echo kukimbia.
BSD anasimama kwa Berkeley la usambazaji.
Hii ni Berkeley Unix miaka ya 1970.
Hiyo ni moja ya njia ambazo echo wanaweza kukimbia.
Kuweka echo_style kwa thamani kwamba katika TC-shell kusababisha echo ya kuishi kwa njia hiyo.
Hivyo kuweka gani kwamba, lakini kuweka anapata tu vigezo shell.
Itakuwa si kupata EDITOR, ambayo si variable shell.
Chochote.
Hivyo kwamba ni njia mojawapo ya kubainisha yao.
Lakini ukweli kwamba una kwenda njia ya ile amri ya baadhi ya ajabu kama kwamba
kutofautisha kati ya vigezo shell au mazingira vigezo
inaonyesha aina ya kuwekwa katika vitendo asili ya C-shell kwa baadhi ya madhumuni ya.
Na sasa, mwisho na labda uchache, hii ni kurasa mtu.
Wale wa wewe ambao wanaweza Unajua, mwanaume ni amri short kwa mwongozo.
mtu kurasa kwa ajili ya shells ni vigumu kusoma. Wao ni muda mrefu sana.
Wao ni kupangwa katika njia ambayo inaweza kufanya ni vigumu kupata nini wewe kutafuta.
Hivyo kama wewe ni kutafuta kitu kwa kusudi,
huwezi kujua kama lengo kwamba ni variable shell au kitu kingine,
hivyo unaweza kujua wapi kuangalia kwa ajili yake.
Unaweza kuangalia kwa masharti mbalimbali, lakini masharti ni mara nyingi mara kwa mara.
Hivyo ni kwa ujumla vigumu kusoma.
Sisi tu inaonekana katika TC-shell mtu ukurasa kidogo kabla ya kupata amri UFUNDISHAJI.
Baadhi ya mambo kwenda kwa kasi zaidi.
Njia moja ni kutafuta kamba.
Unaweza kutumia pager.
Pager ana slash kuangalia kwa amri au kamba ndani ya operesheni pager.
Mtu na default kutumia pagers, ama kuwa zaidi au chini.
Mimi sijui kama wewe ni ukoo na hayo, lakini wale wanaweza kuonyesha files kidogo kidogo.
Nimekuwa kutumia chini ya kuonyesha haya files hasa sisi tumepewa hapa.
Unaweza kutafuta huko ndani.
Unaweza kujaribu kutumia masharti mbalimbali search.
Pia kurasa mtu katika mifumo mbalimbali ya uendeshaji inaweza kuwa sawa.
Wanaweza kuwa kurasa tofauti kwa ajili ya CSH na tcsh.
Wao ni si juu ya Mac, lakini wapate kuwa kama wale ni amri tofauti.
Kama sh haina kweli wito Bash, kuna pengine itakuwa tofauti mtu ukurasa.
Baadhi ya mifumo ya kurasa tofauti mtu tu kwa ajili ya C-shell kujengwa katika amri.
Wakati mwingine kama unataka kusoma maelezo ya kujengwa katika amri
hilo pia ni katika njia, kama echo, unahitaji kusoma ukurasa mtu kwamba amri juu ya echo
kuamua jinsi gani itakuwa kazi kama kujengwa katika amri
hata kama wewe si wito kujengwa katika amri.
Hiyo ni drawback ya mfumo wa uendeshaji kwa ujumla, si tu kwa shells,
ingawa kwa shells hasa kurasa mtu ni muda mrefu sana,
sehemu kwa sababu wameweza aliongeza makala muhimu kwao, ambayo inaweza kuwa chanya.
Sawa. Je, kuna maswali yoyote? Mada yoyote unataka kuleta up?
Kitu chochote husika hapa?
Naam, imekuwa ni nzuri sana kuzungumza na wewe wote.
Natumaini got kitu nje ya semina hii
ambayo itakuwa na manufaa kwa ajili yenu katika juhudi yako ya baadaye.
[CS50.TV]