Bahay Audio Unix / linux shells 101

Unix / linux shells 101

Talaan ng mga Nilalaman:

Anonim

Ang command line sa Unix at Linux system ay napakalakas na, ngunit ang mga shell ay isang mas malakas na tool kaysa nakakatugon sa mata. Maaari mong ipasadya ang mga ito at ilipat ang mga ito sa nilalaman ng iyong puso, hangga't alam mo kung paano.

Ano ang isang shell?

Halos bawat manu-manong Unix at Linux ay may karaniwang diagram ng isang shell wrapping sa paligid ng operating system, na kahawig ng ilang uri ng kendi bar. Ang shell ay talagang walang anuman kundi isang interface sa pagitan ng operating system, kabilang ang kernel, ang file system at ang iba't ibang mga tawag sa system at ang gumagamit. Sa loob ng maraming taon, ito ay ang tanging interactive na interface ng gumagamit bago ang mga graphic na interface ng gumagamit ay naging pangkaraniwan noong 1980s. Ang mga graphic interface ng gumagamit ay maaari ding isaalang-alang ng isang uri ng shell, dahil nagsisilbi sila ng marami sa parehong mga pag-andar: paglulunsad ng mga programa, pag-configure ng system at pamamahala ng mga file.


Ang mga mapagpakumbabang interface na batay sa teksto ay may nakakagulat na dami ng kapangyarihan. Sa isang bagay, kumpleto sila ng mga wika sa programming. Bago ang paglitaw ng kahit na mas malakas na mga wika ng script tulad ng Python, ang mga script ng shell ay perpekto para sa pagsulat ng mga programa na hindi kinakailangang nangangailangan ng kapangyarihan ng C. Sila ay kapaki-pakinabang pa rin para sa mga automating na gawain ng system at para sa mabilis na prototyping.


Mayroon din silang isang bilang ng mga tampok na gawing mas madali ang pakikipagtulungan at paghahanap ng mga file. Ang isa sa mga pinaka-malawak na ginagamit ay "wildcarding" o "globbing." Halos lahat ng mga gumagamit ng Unix at Linux ay pamilyar sa "*" wildcard upang tumugma sa anumang character. Ito ay talagang trabaho ng shell. Ang iba't ibang mga shell ay may mas malakas na mga pagpipilian.


Ang isa sa mga natatanging tampok ng Unix ay ang kakayahang mag-redirect ng input at output ng programa. Ang shell ay nagpapatupad ng pag-andar na ito.


Ang shell ay isa pang programa, kaya posible para sa anumang programista na may tamang kasanayan upang lumikha ng isa. Maraming mga pangunahing mga shell na lumitaw sa mga nakaraang taon.

Kasaysayan at isang Roundup ng Shells

Bagaman mayroong maraming mga shell ng Unix sa mga unang araw ng operating system, ang una upang makakuha ng pangunahing pagkilala sa labas ng Bell Labs ay ang Bourne Shell, na pinangalanang Stephen R. Bourne. Ang pangunahing pagbabago ng shell ay suportado nito ang mga tampok para sa nakabalangkas na pagprograma, na posible sa kauna-unahang pagkakataon na gamitin ang shell bilang isang tunay na wika sa programming. Napakahalagang kailangan na ang lahat ng mga modernong bersyon ng Unix at Linux ay ginagamit pa rin nito, kahit na kadalasan ito ang isa sa mga mas bagong mga shell na ginagaya ang Bourne shell.


Ang susunod na pangunahing pangunahing shell ay ang C Shell, na karaniwang pinaikling bilang "csh." Ang shell na ito ay binuo sa UC Berkeley, na naging isang pangunahing sangkap ng lasa ng BSD ng Unix. Tulad ng iminumungkahi ng pangalan, ang syntax nito ay idinisenyo upang maging katulad ng wika ng C programming, ngunit talagang idinisenyo ito para sa interactive na paggamit.


Nakapaloob dito ang isang mekanismo ng kasaysayan na nagpapahintulot sa mga gumagamit na bumalik at ulitin ang anumang mga utos na inisyu nila nang mas maaga nang hindi na muling mai-type ang isang buong linya at pinahusay ang kontrol sa trabaho, na naging mas madali ang pagpapatakbo. (Tandaan, ito ay isang oras na ang karamihan sa mga tao ay gumagamit pa rin ng mga terminong nakabase sa teksto.)


Ang susunod na pangunahing pangunahing shell ay ang Korn Shell, na lumabas din sa Bell Labs. Ang shell ay pinangalanan sa David Korn, hindi ang banda, sa pamamagitan ng paraan. Ang pangunahing makabagong ideya ng Korn shell ay ang pagpapakilala ng pag-edit ng command-line, na pinalawak pa ang pag-andar ng kasaysayan. Ang mga gumagamit ay maaaring bumalik at i-edit ang mga utos na nai-type nila gamit ang mga utos na katulad ng alinman sa mga vi o Emacs editor.


Sa mga pangunahing shell, ang Bourne Again Shell, o bash, ang pinakapopular mula sa pagpapakilala nito sa huli '80s. Ang shell na ito, na binuo bilang bahagi ng proyekto ng GNU, ay isinasama ang mga makabagong ideya ng mga shell ng C at Korn habang pinapanatili ang pagiging tugma sa shell ng Bourne, samakatuwid ang pangalan. Ito ang "standard" na shell sa karamihan ng mga pamamahagi ng Linux.


Ang Z Shell (zsh), na unang inilabas noong 1990, ay isang pangarap na gumagamit ng command-line. Hindi lamang mayroon ng karamihan sa iba pang mga pangunahing tampok na mayroon ang iba pang mga shell, ito ay insanely napapasadyang may maraming mga makapangyarihang tampok. Ang isa sa pinakamalakas ay ang recursive globbing, na nagpapahintulot sa mga gumagamit na tumugma sa mga filenames sa mga subdirectory kapag naglalabas ng mga utos sa halip na mga file sa kasalukuyang direktoryo ng pagtatrabaho. Ang mga talagang advanced na mga gumagamit ay maaari ring ipasadya ang mga pagpipilian sa pagkumpleto, pagtutugma ng mga file nang hindi kinakailangang i-type ang mga ito nang buo. At para sa mga tipong may dalang taba, maaari din itong iwasto ang iyong pagbaybay. Ang shell na ito ay napakahusay, ang manu-manong pahina nito ay nahati sa maraming mahahabang mga seksyon.

Pag-skrip

Tulad ng naunang nabanggit, ang mga shell ay hindi lamang mga interface ng command line, ngunit malakas na mga wika sa programa. Ang kagandahan ng script ng shell ay maaari mong gamitin ang parehong wika sa parehong regular na interactive na paggamit pati na rin sa mga script, na ginagawang labi ang pag-aaral ng curve. Kasama sa mga modernong shell ang lahat ng karaniwang mga tampok ng wika ng programming, kabilang ang control control, function at variable. Ang ilan sa mga ito ay may mga advanced na mga istruktura ng data tulad ng mga pag-uugnay ng mga kasama.


Sa kabila ng kanilang lakas, ang pagprograma sa mga shell ay may ilang mga pitfalls. Ang pinakamalaking problema ay napakadaling magsulat ng mga script na nakasalalay sa ilang programa na maaaring hindi sa ibang sistema, o nakasalalay sa isang partikular na lasa ng Unix o Linux. Iyon ang dahilan kung bakit ang mga script ng shell ay pinaka-akma para sa mga programa na alam mong tatakbo lamang sa isang system. Kung sinusubukan mong bumuo ng isang bagay na portable at ayaw mong sumulat ng isang C programa, ang iyong pinakamahusay na mapagpipilian ay ang sumulat sa isa pang wika ng script tulad ng Perl o Python.

Isang Peek Sa ilalim ng Hood ng Unix / Linux Command Line

Mayroong higit pang lakas na nakagaganyak sa ibaba ng ibabaw ng iyong linya ng utos ng Unix / Linux. Ang artikulong ito ay maaaring magbigay ng inspirasyon sa iyo na kumuha ng isang silip sa ilalim ng talukap ng iyong paboritong shell upang makita kung ano ang maaari mong talagang gawin. Kung nais mong makapasok sa script ng shell, baka gusto mong suriin ang mga libro na Unix Power Tools at Pag-aralan ang Bash Shell. Ang orihinal na papel ni Stephen R. Bourne sa kanyang shell ay nagsisilbi rin bilang isang mahusay na pagpapakilala sa mundo ng script ng shell, kahit na ito ay luma na.

Unix / linux shells 101