Monadologija naredbenog retka
- autor Nikola Paljetak
- pon 20.2.2006
- 10:51
Sve je isto ko i lani?
Kada prvi put pokrenemo MSH, vjerojatno ćemo poželjeti isprobati kako rade dobro nam poznate naredbe poput dir, cd, ipconfig itd. Naravno, MSH prepoznaje sve te naredbe i one će se uredno izvršiti. No, iskusno oko odmah će uočiti razlike. Na primjer, ispis koji generira naredba dir izgleda ponešto drugačije od ispisa koji bismo dobili da smo istu naredbu otkucali u staroj komadnoj liniji (vidi sliku 1).
Netko će reći: "Pa što onda? Samo su malo promijenili ispis datoteka i direktorija, ali to je u biti jedno te isto!".
Međutim, to nije tako. Iako na prvi pogled sve djeluje vrlo slično, "ispod haube" se kriju velike promjene.
Prva, ali nipošto ne i najveća, razlika je u imenima naredbi. Premda iz nove ljuske možemo izvršavati i sve stare naredbe, one nove (koje su microsoftovci nazvali commandlets, ili kraće, cmdlets) razlikuju se od starih kako po sintaksi tako i po tome što nisu spremljene u izvršnim (.exe) datotekama, već u upravljanim dll-ovima. Svaki commandlet je zapravo klasa naslijeđena iz bazne klase Cmdlet.
Grubo govoreći, kada ljuska MSH treba izvršiti konkretnu naredbu, ona najprije kreira odgovarajući commandlet-objekt i tada poziva neke njegove metode koje zatim obavljaju sve one radnje navedene "u opisu posla" dotične naredbe. Cmdleti ne moraju leksički i sintaksno analizirati svoje ulazne parametre jer to za njih čini MSH. Njihova jedina obaveza je da prikupe vrijednosti parametara i nešto s njima urade te da zatim rezultat svog rada proslijede dalje. Zbog toga je pisanje novih cmdleta pojednostavljeno, što je još jedna prednost u odnosu na situaciju u klasičnim ljuskama kod kojih je svaka pojedinačna naredba odgovorna za sintaksnu analizu svojih ulaznih parametara pa se ponekad događa da pojedine naredbe imaju svoja posebna pravila, različita od ostalih i vode neku svoju "politiku".
Cmdleti imaju posebnu, standardiziranu nomenklaturu: svaka naredba u MSH-u je oblika glagol-imenica. Npr., naredba koja vraća listu svih pokrenutih procesa zove se get-process. Popis svih cmdleta koji nam stoje na raspolaganju možemo dobiti pomoću naredbe get-command (vidi sliku 2). Trenutno MSH ima točno 123 cmdleta, ali vjerojatno će ih biti i više kada izađe finalna verzija proizvoda. Neke češće korištene naredbe imaju i svoje aliase (tj. alternativna, obično kraća imena). Popis svih aliasa možemo dobiti pomoću naredbe get-alias.
Ako pogledamo te aliase, vidjet ćemo da je dir ustvari samo alias za naredbu get-childitem, da je cd alias za mnogo općenitiju naredbu set-location itd.
Pomoću naredbe set-alias moguće je dodavanje novih aliasa.
Naravno, MSH omogućuje pisanje izvršnih skripti, kao i dodavanje novih cmdleta. Ono što će svakako početniku pri korištenju MSH-a najviše koristiti jest naredba get-help pomoću koje možemo saznati što koja naredba radi i koji su njeni ulazni parametri. Ljubitelji UNIX-a doći će na svoje kad shvate da help-zapis kojeg generira get-help sliči ispisu koji bismo na UNIX-u dobili pomoću naredbe man (vidi sliku 3).
izdvojeni tekstovi - ožujak 2006.
Siječanj/Veljača 2006
Malo velikih pon 20.2.2006
Windows "Monad" Shell Beta 2
Monadologija naredbenog retka pon 20.2.2006
IBM Lotus Notes & Domino 7
Inovacija, suradnja, dominacija pon 20.2.2006
Kako prodavati putem Interneta?
Od igle do aviona pon 20.2.2006
LAB2000 SAS743T
Terabajtno skladište pon 20.2.2006
Allied Telesyn AT-8948
Mali veliki preklopnik pon 20.2.2006
Pregled prošle godine u svijetu i HR
Najgora dosad? pon 20.2.2006
Zakon o elektroničkoj ispravi
Digitalizacija na djelu pon 20.2.2006
Miro Rosandić
Prividna idila pon 20.2.2006
Asus MyPal A636 i viaGPS
Pravi drugar na putu uto 14.2.2006
Buffalo TeraStation 1 TB
Neovisna kutijica uto 7.2.2006















