1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės...

37
Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai programų komplektas, valdantis aparatinės įrangos (kompiuterių technikos fizinių priemonių visumos; angl. hardware) darbą ir su- darantis kompiuterio sąsają su naudotoju. Operacinė sistema yra terpė, kurioje gali veikti į ją įdiegtos taikomosios programos. Modernios operacinės sistemos suteikia galimybę dirbti daugeliui vartotojų vienu metu įvairialypėje aplinkoje (angl. multimedia), užtikrina failų saugumą, turi daugybę kitų naudingų funkcijų. Kiekvieną operacinę sistemą sudaro trys komponentai: Branduolys. Tai pagrindinė operacinės sistemos dalis, pilnai kontroliuojanti viską, kas joje įvyksta ir tiesiogiai sąveikaujanti su aparatine įranga. Įvairios sisteminės pagalbinės programos. Tai nedidelės programos, skirtos operacinės sistemos ir aparatinės įrangos valdymui. Naudotojo sąsaja(-os). Operacinės sistemos naudotojo sąsaja gali būti tekstinė arba grafinė. Tekstinę sąsają sukuria programos, vadinamos apvalkalais (angl. shell), kurios interpretuoja naudotojo įvestas tekstines valdymo komandas. Daugelis šiuolaikinių operacinių sistemų turi intuityvias ir patrauklias naudotojams grafines sąsajas (angl. graphical user interface, GUI), kuriose naudojami langai, meniu, piktogramos ir kt. elementai, kuriais galima manipuliuoti naudojant pelę ar klaviatūrą. Nepriklausomai nuo to, kokio tipo sąsaja naudojama, ryšiai tarp atskirų taikomųjų programų ir operacinės sistemos realizuojami laikantis operacinės sistemos API sąsajoje (angl. application program interface) apibrėžtų susitarimų ir procedūrų. Operacinių sistemų API sąsajas programuotojai naudoja bendrųjų funkcijų (duomenų įvedimui/išvedimui, failų tvarkymui ir pan.) realizavimui. Yra sukurta daugybė operacinių sistemų, tačiau plačiai naudojamos tik kelios. Populiarių operacinių sistemų pavyzdžiai yra įvairios Microsoft Windows (Windows 95, Windows 98, Windows ME, Windows 2000, Windows NT, Windows XP, Windows 7) ar Unix šeimos (Linux, Mac OS X, Solaris ir kt.) operacinės sistemos. Microsoft Windows šeimos operacinės sistemos vis dar yra populiariausios, tačiau, ekspertų nuomone, stabilumo, našumo, lankstumo ir ilgaamžiškumo požiūriu geriausios ir sėkmingiausios iš iki šiol sukurtų operacinių sistemų yra Unix ir iš jos išsivysčiusios operacinės sistemos (Linux, Mac OS X ir kt.). 1.2. Trumpa Unix ir Linux istorija 1.2.1. Unix Norėdami geriau suprasti Linux populiarumo priežastis, turėtume grįžti maždaug 40 metų atgal, kada kompiuteriai buvo labai brangūs ir užimdavo ištisus kambarius... Tačiau tada problemų kėlė ne vien kompiuterių kaina ar dydis, bet ir tai, kad visi kompiuteriais naudojo skirtingas operacines sis- temas. Visa programinė įranga taip buvo pritaikoma konkrečiai sistemai ir kitose sistemose ji ne- veikdavo. Žmogus, mokėjęs dirbti su kokia nors sistema, nebūtinai mokėdavo dirbti ir su kita. 1969 m. Bell Labs kompanijoje Ken Thompson sukūrė operacinę sistemą, kuri galėjo išspręsti 5

Transcript of 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės...

Page 1: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

1. Operacinė sistema Linux

1.1. Operacinės sistemos sąvokaOperacinė sistema (angl. operating system, sutrump. OS) – tai programų komplektas, valdantis aparatinės įrangos (kompiuterių technikos fizinių priemonių visumos; angl. hardware) darbą ir su­darantis kompiuterio sąsają su naudotoju. Operacinė sistema yra terpė, kurioje gali veikti į ją įdiegtos taikomosios programos. Modernios operacinės sistemos suteikia galimybę dirbti daugeliui vartotojų vienu metu įvairialypėje aplinkoje (angl. multimedia), užtikrina failų saugumą, turi daugybę kitų naudingų funkcijų.

Kiekvieną operacinę sistemą sudaro trys komponentai:

• Branduolys. Tai pagrindinė operacinės sistemos dalis, pilnai kontroliuojanti viską, kas joje įvyksta ir tiesiogiai sąveikaujanti su aparatine įranga.

• Įvairios sisteminės pagalbinės programos. Tai nedidelės programos, skirtos operacinės sistemos ir aparatinės įrangos valdymui.

• Naudotojo sąsaja(-os). Operacinės sistemos naudotojo sąsaja gali būti tekstinė arba grafinė. Tekstinę sąsają sukuria programos, vadinamos apvalkalais (angl. shell), kurios interpretuoja naudotojo įvestas tekstines valdymo komandas. Daugelis šiuolaikinių operacinių sistemų turi intuityvias ir patrauklias naudotojams grafines sąsajas (angl. graphical user interface, GUI), kuriose naudojami langai, meniu, piktogramos ir kt. elementai, kuriais galima manipuliuoti naudojant pelę ar klaviatūrą.

Nepriklausomai nuo to, kokio tipo sąsaja naudojama, ryšiai tarp atskirų taikomųjų programų ir operacinės sistemos realizuojami laikantis operacinės sistemos API sąsajoje (angl. application program interface) apibrėžtų susitarimų ir procedūrų. Operacinių sistemų API sąsajas programuotojai naudoja bendrųjų funkcijų (duomenų įvedimui/išvedimui, failų tvarkymui ir pan.) realizavimui.

Yra sukurta daugybė operacinių sistemų, tačiau plačiai naudojamos tik kelios. Populiarių operacinių sistemų pavyzdžiai yra įvairios Microsoft Windows (Windows 95, Windows 98, Windows ME, Windows 2000, Windows NT, Windows XP, Windows 7) ar Unix šeimos (Linux, Mac OS X, Solaris ir kt.) operacinės sistemos. Microsoft Windows šeimos operacinės sistemos vis dar yra populiariausios, tačiau, ekspertų nuomone, stabilumo, našumo, lankstumo ir ilgaamžiškumo požiūriu geriausios ir sėkmingiausios iš iki šiol sukurtų operacinių sistemų yra Unix ir iš jos išsivysčiusios operacinės sistemos (Linux, Mac OS X ir kt.).

1.2. Trumpa Unix ir Linux istorija

1.2.1. UnixNorėdami geriau suprasti Linux populiarumo priežastis, turėtume grįžti maždaug 40 metų atgal, kada kompiuteriai buvo labai brangūs ir užimdavo ištisus kambarius... Tačiau tada problemų kėlė ne vien kompiuterių kaina ar dydis, bet ir tai, kad visi kompiuteriais naudojo skirtingas operacines sis­temas. Visa programinė įranga taip buvo pritaikoma konkrečiai sistemai ir kitose sistemose ji ne­veikdavo. Žmogus, mokėjęs dirbti su kokia nors sistema, nebūtinai mokėdavo dirbti ir su kita.

1969 m. Bell Labs kompanijoje Ken Thompson sukūrė operacinę sistemą, kuri galėjo išspręsti

5

Page 2: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

anksčiau minėtas suderinamumo problemas. Sistema buvo pavadinta Unix. Ši paprasta ir elegantiška operacinė sistema buvo parašyta aukšto lygio C, o ne asemblerio kalba, jos kodas galėjo būti „perdirbamas“ (angl. recycle). 1970–1980 m. ši sistema buvo iš esmės tobulinama dar ir Kalifornijos universitete.

Tam tikra nedidelė Unix operacinės sistemos kodo dalis, vadinama branduoliu (angl. kernel), yra pagrindas pačiai operacinei sistemai ir visoms funkcijoms. Branduolį galima žymiai lengviau adaptuoti kiekvienai sistemai, o tai leidžia lengviau sukurti operacinę sistemą, veikiančią skirtingose aparatinės įrangos terpėse.

Unix vystėsi ir atsirado įvairių šios operacinės sistemos variantų (dabar visos tokios sistemos vadinamos Unix tipo (angl. unix-like) operacinėmis sistemomis). Vis daugiau aparatinės ir programinės įrangos gamintojų stengėsi pritaikyti savo produktus Unix operacinei sistemai. Tačiau iš pradžių Unix operacinė sistema buvo naudojama tik dideliuose kompiuteriuose – Unix naudotojai buvo tik vyriausybinių įstaigų, universitetų, didelių finansų kompanijų ir pan. darbuotojai.

9-ajame praėjusio amžiaus dešimtmetyje kompiuteriai pradėjo atsirasti namuose ir netrukus pasi­rodė kelios Unix versijos, pritaikytos asmeniniams kompiuteriams. Tačiau visos Unix operacinės sistemos versijos buvo mokamos ir labai lėtos. Todėl daugelis žmonių naudojo MS DOS ar Windows 3.1 operacines sistemas.

1.2.2. LinuxPraėjusio amžiaus 10-ojo dešimtmečio pradžioje namų kompiuteriai tapo pakankamai galingi Unix operacinei sistemai. Jaunam Helsinkio universiteto kompiuterių mokslo studentui Linus Torvalds, nepatenkintam jo naujame kompiuteryje veikusia MS DOS operacine sistema ir dėl didelių licencijų kainų negalėjusiam įsigyti nė vienos iš tuo metu egzistavusių komercinių Unix tipo operacinių sistemų versijų, kilo idėja sukurti nemokamą Unix versiją (Unix operacine sistema L. Torvalds iki tol naudojosi universiteto kompiuteriuose).

L. Torvalds nusprendė kurti operacinių sistemų Unix ir MINIX kloną (angl. clone). MINIX yra nedidelė, atviroji operacinė sistema, išleista 1987 m. sausio mėn. Kaip ir Linux, MINIX yra Unix operacinės sistemos klonas (tai reiškia, kad funkcionalumu ši sistema yra labai panaši į Unix, tačiau ją kuriant pirminiai Unix operacinės sistemos tekstai nebuvo naudojami). Operacinę sistemą MINIX edukaciniais tikslais Vrije universitete, Amsterdame, sukūrė profesorius Andrew. S. Tanenbaum. Dabar ši sistema labiausiai žinoma kaip inspiravusi L. Torvalds kuriant Linux operacinę sistemą.

1991 m. rugpjūčio 25 d. L. Torvalds MINIX naujienų grupėje paskelbė šį laišką:Message-ID: [email protected]: [email protected] (Linus Benedict Torvalds) To: Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system

Hello everybody out there using minix-

I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386 (486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-sytem due to practical reasons)among other things.

I've currently ported bash (1.08) an gcc (1.40), and things seem to work.

6

Page 3: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

This implies that i'll get something practical within a few months, and I'd like to know what features most people want.

Any suggestions are welcome, but I won't promise I'll implement them :-)

Linus Torvalds [email protected]

Tų pačių metų rugsėjo 17 d. buvo baigta pradinė Linux versija (0.01), o spalio 5 d. L. Torvalds pranešė apie oficialiąją versiją (0.02). Operacinėje sistemoje veikė bash apvalkalas (žr. 1.6.3 skyrelį), GCC kompiliatorius, pora paslaugų programų.

Linux pritraukė daugybės programuotojų dėmesį. 1992 m. Linux branduolys buvo pradėtas platinti GNU GPL (angl. GNU General Public License) licencijos sąlygomis.

Operacinių sistemų kūrimas yra sudėtingas ir daug laiko sąnaudų reikalaujantis procesas, ypač jei norima sukurti operacinę sistemą, turinčią kokių nors novatoriškų galimybių. Nepaisant to, kad Linux buvo egzistuojančių operacinių sistemų klonas, pradinei šios sistemos versijai sukurti L. Torvalds prireikė daugiau nei metų. Žymiai daugiau laiko reikėjo tam, kad sistema taptų iš tikrųjų tinkama naudoti.

1.3. Atviroji programinė įrangaPrograminė įranga nebuvo saistoma jokiais nuosavybės ryšiais nuo kompiuterių atsiradimo iki XX a. 8 dešimtmečio, nes programinės įrangos savikaina būdavo nedidelė palyginus su kompiuterių kainomis, programos dažniausiai buvo skirtos konkretiems skaičiavimams, o jų naudotojų buvo nedaug (dažniausiai – patys programų autoriai, kurie dalijosi savo sukurtomis programomis su kitais). 8 dešimtmetyje atsiradus asmeniniams kompiuteriams programinės įrangos paklausa ir sudėtingumas padidėjo ir ji tapo intelektualinės nuosavybės objektu.

Praeito amžiaus 7 dešimtmečio pabaigoje, kai 1968 m. buvo įkurtas ARPAnet tinklas (interneto pirmtakas), prasidėjo ir atvirosios programinės įrangos (angl. open source software) judėjimas.

1.3.1. LicencijosVisų rūšių programinės įrangos naudojimas yra reguliuojamas licencijomis, kuriose nurodoma kokiomis sąlygomis galima naudotis produktu, jį platinti ir pan. Atvirosios programinės įrangos licencijos negali riboti produktų, kurie komponentiškai įeina į kokį nors paketą, pardavimo ir platinimo, neturi būti reikalaujama honoraro ar atlyginimo už tokį platinimą. Atvirosios programinės įrangos pradiniai tekstai turi laisvai prieinami, t.y. turi būti platinamas ne tik sukompiliuotas kodas, bet ir pradiniai tekstai. Pradiniai tekstai gali būti platinami kartu su produktu arba pateikiama nuorodą į interneto puslapį, iš kur juos galima laisvai atsisiųsti.

Šiuo metu egzistuoja daugiau kaip 30 atvirosios programinės įrangos licencijų tipų; jų sąrašą ir tekstus galima rasti internete: http://www.opensource.org/licenses/.

GPL licencija. Populiariausias atvirosios programinės įrangos licencijos tipas yra pagrindinė viešoji licencija (angl. GPL, General Public Licence), komerciniu požiūriu turinti nemažai draudimų. Programinę įrangą, platinamą su GPL licencija, galima laisvai modifikuoti, tačiau modifikuotos versijos platinimą taip pat turi reguliuoti GPL licencija (t.y. modifikuotos versijos pradiniai tekstai taip pat turi būti platinama nemokamai ir su pradiniais tekstais). Linux operacinė sistema platinama pagal šią licenciją.

BSD licencija. Pagal BSD (angl. Berkeley Software Design) licenciją buvo platinama UNIX versija,

7

Page 4: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

sukurta Kalifornijos universitete, Berklyje. Ši licencija nedraudžia praktiškai nieko: programinę įrangą galima modifikuoti, o vėliau ją platinti imant mokestį ir nieko nemokant originalios programos autoriui. Pagal šią licenciją platinama FreeBSD operacinė sistema.

1.3.2. Atvirosios programinės įrangos privalumai ir trūkumaiAtvirosios programinės įrangos privalumai:

• Programinės įrangos įsigijimo kaina. Atviroji programinė įranga platinama laisvai ir nemokamai, todėl niekada nekyla klausimų dėl jos legalumo. Organizacijoms atviroji programinė įranga naudinga tuo, kad jos tampa visiškai nepriklausomos nuo programinės įrangos gamintojų ir platintojų.

• Kokybė ir stabilumas. Pakankamai seniai sukurti ir plėtojami atvirosios programinės įrangos produktai paprastai būna gerai patikrinti ir nenusileidžia analogiškiems komerciniams produktams.

• Saugumas. Populiariausios atvirosios programos saugumo aspektu nenusileidžia komerciniams produktams, nes kiekvienas naudotojas turi gali rasti saugumo spragas ir jas ištaisyti. Profesionalams spragų paieška dažnai yra tarsi hobis, todėl spragos randamos greitai.

Atvirosios programinės įrangos trūkumai:

• Priežiūros kaina. Atvirosios programinės įrangos priežiūra dažnai kainuoja daugiau nei atitinkamų komercinių produktų.

• Nepakankamas visuomenės dėmesys. Inicijavus atvirosios programinės įrangos projektą, sudaroma pagrindinė darbų vykdymo grupė. Siekiant pritraukti profesionalų ir entuziastų dėmesį, kad jie prisidėtų prie projekto vystymo bent jau pradinių tekstų peržiūra, testavimu ar patarimais, visa informaciją apie projektą ir darbų vykdymo eigą skelbiama internete. Sėkmingų projektų kūrimo procesai yra dinamiški, o patys produktai būna aukštos kokybės. Tačiau taip būna ne visada – ne visi projektai sulaukia pakankamo visuomenės dėmesio.

1.3.3. GNU projektasGNU (rekursinė santrumpa angl. GNU Not Unix; http://www.gnu.org/) projektas Richard Stallman iniciatyva 1983 m. buvo pradėtas Masačusetso technologijų institute (MIT). Pradinis projekto tikslas – sukurti stabilią Unix tipo atvirąją (laisvąją) operacinę sistemą. „Laisvė“ buvo suprantama kaip:

• laisvė naudoti programą bet kuriam tikslui;

• laisvė keisti programą pritaikant ją savo reikmėms;

• laisvė platinti programos kopijas (be atlygio ar už atlygį);

• laisvė platinti pakeistas programos kopijas.

Vykdant projektą buvo sukurtas branduolys GNU Hurd ir dauguma būtinų programų. Pats GNU projektas yra ne vien techninė, bet ir socialinė, etinė bei politinė iniciatyva. Šiuo metu yra virš trijų šimtų oficialių GNU dukterinių projektų, o oficialiame projekto atvirosios programinės įrangos kataloge (http://directory.fsf.org/) yra apie 5.5 tūkstančio programų.

8

Page 5: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

1.4. Linux platinimasPaprastai Linux platinama paketais (šie paketai dažnaiausiai vadinami platinamaisiais paketais, angl. distribution), kuriuos sudaro Linux branduolys ir visa būtina programinė įranga (paslaugų programos, bibliotekos, grafinės vartotojo sąsajos branduolys X Window System, darbalaukio aplinka ar pan., įvairios taikomosios programos). Populiariausi platinamieji paketai: Ubuntu Linux, OpenSuse Linux, Linux Mint, Fedora/Redhat, Debian GNU/Linux, Mandriva Linux, PCLinuxOS.

Debian Linux yra vienas seniausių Linux platinamųjų paketų. Šis operacinė sistema yra pritaikyta įvairių architektūrų kompiuteriams, ir yra naudojama tiek serveriuose, tiek asmeniniuose kompiuteriuose. Naudotojai gali rinktis iš kelių grafinių aplinkų (pagrindinės yra GNOME, KDE, Xfce). Debian Linux pagrindu dažnai kuriami kiti platinamieji paketai (Baltix, Ubuntu, Kanotix, Knoppix, Libranet, linEx, Linspire, MEPIS, Morphix, OPEN COLINUX, Parsix, Goobuntu, Kubuntu, Edubuntu, Xubuntu, Xandros ir kt.).

1.5. Pagrindinės Linux savybės

1.5.1. Teigiamos savybėsPagrindinės teigiamos savybės:

• Nemokama.

• Daugiaplatformė (angl. cross-platform). Terminas platforma (angl. platform) kompiuterijoje gali būti vartojamas kalbant apie kelis aspektus ar jų kombinacijas: (1) operacinę sistemą, (2) procesoriaus tipą, (3) sistemą, kurioje veikia aparatinė įranga (centrinis kompiuteris, angl. mainframe, darbo stotis, angl. workstation, stalinis kompiuteris, angl. desktop computer, ir pan.). Anglų kalboje kalbant apie operacines sistemas, taikomąsias programas, programavimo kalbas, aparatinę įrangą, dokumentų formatus ir pan. vartojami terminai platform independence ir cross-platform, kurių reikšmės skiriasi. Pirmuoju atveju reiškia, kad produktu, apie kurį kalbama, tokiu pačiu funkcionalumu galima naudotis bet kurioje platformoje, o antruoju – jog produktas veikia bent dviejose skirtingose platformose. Daugiau ar mažiau ryškias daugiaplatformiškumo savybes turi Linux operacinė sistema, C programavimo kalba, vaizduokliai (angl. monitor), PDF formatas. Nuo platformų griežtai priklauso Microsoft Windows šeimos operacinės sistemos, Visual Basic programavimo kalba, Internet Explorer naršyklė ir t.t.

• Daugelio naudotojų (angl. multiuser). Tuo pačiu metu gali dirbti daugelis naudotojų,. Kiekvienam iš jų sukuriama iliuzija, kad jis yra vienintelis sistemos naudotojas.

• Daugiaprocesė (angl. multitasking). Kiekvienos programos vykdomų veiksmų seka sudaro procesą (angl. process), dažnai dar vadinamą užduotimi (angl. task). Programa jos vykdymo metu iš tikrųjų yra procesas. Kiekviena procesą sudaro: (1) jam paskirti sistemos ištekliai, (2) atminties sekcija, (3) saugumo požymiai (proceso savininkas, prieigos teisės ir t.t.) ir (4) procesoriaus būsena (registrų, t.y. labai sparčios procesoriaus atmintinės adresuojamų komponentų, turinys; fizinės atminties adresai). Teikdamas paslaugas daugeliui procesų, procesorius laiką kvantuoja (angl. time slicing), t.y. skirsto laiką į trumpus (milisekundžių eilės) laiko tarpus, vadinamus laiko kvantais (angl. time quantum, time slice). Vienas laiko kvantas skiriamas vienam procesui. Laikui pasibaigus, procesorius tikrina, ar yra laukiančių procesų ir, jei reikia, naują laiko kvantą skirią kitam eilėje laukiančiam procesui. Kadangi laiko kvantai yra labai trumpi, susidaro įspūdis, kad procesorius visus procesus vykdo iš

9

Page 6: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

karto. Daugelis šiuolaikinių operacinių sistemų yra daugiaprocesės.

• Lanksti (angl. flexible). Turi lanksčias konfigūravimo galimybes.

• Saugi (angl. secure). Atspari virusams ir kt. žalingai programinei įrangai (angl. malware).

• Patvari (angl. robust). Linux, kaip ir kitos Unix tipo operacinės sistemos, gali veikti be strigčių (angl. crash, hang) ir būtinybės paleisti jas iš naujo net ir daugelį metų. Net jei ir įvyksta kokios nors taikomosios programos strigtis, dažniausiai tai neturi jokios įtakos kitoms programų ar pačios operacinės sistemos veikimui.

1.5.2. Neigiamos savybėsPagrindinės neigiamos savybės:

• Platinamųjų paketų gausa. Ši savybė gali pasirodyti neigiama tik nepatyrusiam vartotojui, kurį gausybė platinamųjų paketų tiesiog išgąsdina. Tačiau daugybė egzistuojančių platinamųjų paketų suteikia galimybę kiekvienam naudotojui rasti jo poreikius labiausiai atitinkantį paketą.

• Pradedantiems naudotojams nepakankamai patogi (angl. user friendly) ir sudėtingai valdoma. Dėl didėjančio Linux populiarumo, dedama daug pastangų, kad šios sistemos būtų kuo patrauklesnės ir patogesnės naujiems vartotojams.

1.6. Pagrindiniai Linux komponentai

1.6.1. PaleidyklėPrograma, pagal naudotojo pasirinkimą paleidžianti kurią nors iš kompiuteryje įdiegtų operacinių sistemų, vadinama paleidykle (angl. boot loader). Paleidyklė įdiegiama į pirminį diską ir sukonfigūruojama taip, kad būtų automatiškai paleidžiama iš to disko paleidimo sektoriaus (angl. boot sector) vos kompiuterį įjungus. Jeigu įdiegta tik viena operacinė sistema, paleidyklė paprasčiausiai įkelia jos branduolį. Jeigu įdiegtos kelios operacinės sistemos, arba, pavyzdžiui, skirtingos Linux branduolio versijos, paleidyklė leidžia pasirinkti, kurią operacinę sistemą ar jos versiją įkelti.

Dažniausiai vartotojui nereikia rūpintis paleidykle, nes ji įdiegiama ir sukonfigūruojama automatiškai. Populiariausios Linux paleidyklės yra GRUB (angl. GRand Unified Bootloader) ir LILO (angl. LInux LOader).

1.6.2. BranduolysBranduolys (angl. kernel) yra pagrindinė operacinės sistemos dalis (programa), kuri tiesiogiai komunikuoja su aparatine ir programine įranga bei pilnai kontroliuoja viską, kas operacinėje sistemoje įvyksta. Iš tikrųjų pavadinimas Linux pirmiausiai skirtas branduoliui, tačiau dabar šis pavadinimas dažniausiai vartojamas kalbant apie operacines sistemas, naudojančias Linux branduolį.

Branduolys tiesiogiai nesąveikauja su sistemos naudotoju, bet sąveikauja su apvalkalu (žr. 1.6.3 skyrelį) ir kita programine bei aparatine įranga. Operacinės sistemos paleidimo (angl. boot) metu į pagrindinę atmintinę pirmiausiai įkeliamas būtent branduolys ir jis laikomas ten visos operacinės sistemos darbo sesijos metu, nes jo paslaugų kitoms operacinės sistemos dalims ir taikomosioms

10

Page 7: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

programoms reikia nuolat. Todėl branduolys turi būti kaip įmanoma mažesnis. Branduolys atlieka savo užduotis, tokias kaip procesų vykdymas, pertraukčių (kompiuterių įtaisų ar programų procesoriui siunčiamų signalų su reikalaviais laikinai stabdyti tuo metu vykdomą užduotį ir pradėti vykdyti signalo siuntėjo užduotį, angl. interupt) valdymas ir t.t., specialioje branduolio srityje (angl. kernel space). Visoms naudotojo užduotims skirta atskira naudotojo sritis (angl. user space). Toks atskyrimas atliekamas tam, kad būtų išvengta nepageidaujamos branduolio ir naudotojo duomenų sąveikos, kuri galėtų sumažinti našumą arba įtakotų sistemos nestabilumą ar net strigtį.

Branduolys teikia atminties, procesų, failų ir įvedinių/išvedinių valdymo ir pan. paslaugas visoms kitoms operacinės sistemos dalims. Paslaugų pareikalavimus branduolys gauna iš kitų operacinės sistemos dalių arba taikomųjų programų per vadinamuosius sistemos kreipinius (angl. system call).

Naudotojo požiūriu svarbiausia branduolio funkcija yra procesų valdymas. Branduolys užtikrina, kad kiekvienas procesas atsidurtų procesų vykdymo eilėje ir atskiriems procesams paskirtos atminties sritys nesusikirstų.

Branduolio sandara priklauso nuo konkrečios operacinės sistemos, bet paprastai branduolius sudaro šios dalys: (1) planuoklė (angl. scheduler), kuri nustato kaip ir kokia eilės tvarka procesai vykdomi; (2) supervizorius (angl. supervisor), kuris užtikrina proceso vykdymą kompiuteryje kai jis yra suplanuotas; (3) pertraukties procedūra (doroklė) (angl. interrupt handler), kuri valdo pranešimus, gaunamus iš įvairių aparatinės įrangos įtaisų, konkuruojančių dėl branduolio paslaugų; (4) atminties tvarkytuvė (angl. memory manager), kuri branduolio paslaugų naudotojams paskirsto adresų sritis atmintyje.

Kasdieniniame naudojime nereikia rūpintis branduoliu, tačiau kartais programinė arba aparatinė įranga veikia tik (arba veikia geriau) operacinėse sistemose su tam tikromis branduolio versijomis.

1.6.3. ApvalkalasApvalkalu (kevalu, angl. shell) vadinsime programą, kuri suteikia tekstinę sąsają, leidžiančią naudotojui paleisti programas ir valdyti visą sistemą klaviatūra įvedant komandas. Apvalkalo (kevalo) terminas kilęs iš to, kad tai yra savotiškas operacinės sistemos išorinis sluoksnis. Apvalkalas yra pagrindinė bei galingiausia naudotojo ir kompiuterio (vidinių operacinės sistemos dalių) sąveikos priemonė, paslepianti nuo naudotojo nereikalingą informaciją apie operacinės sistemos darbo detales. Be apvalkalo (ar, pavyzdžiui, jį pakeičiančios darbalaukio aplinkos) būtų sunku privesti sistemą atlikti kokią nors užduotį. Kadangi apvalkalui pateikiamų atskirų komandų arba jų rinkinių failuose (scenarijų) struktūra yra paprasta, apvalkalas jas interpretuoja, t. y. vykdo iš karto, pažingsniui, be išankstinės analizės ir kompiliavimo.

Apvalkalas naudojamas programų vykdymui, kintamųjų ir failų vardų pakeitimui, įvediniams/išvediniams, peradresavimams, naudotojo aplinkos valdymui (apvalkalo ar jo raginimo pakeitimui ir pan.) ir t.t., tarnauja kaip programavimo kalba.

Operacinėse sistemose su grafine sąsają naudotojui nebūtina naudotis apvalkalu tiesiogiai, tačiau grafinės sąsajos iš tikrųjų konstruojamos apvalkalo pagrindu (t. y. grafinės sąsajos naudoja apvalkalo komandas). Apvalkalai turi daugiau galimybių ir galingesnių valdymo priemonių nei grafinės sąsajos, todėl daugelis nors kiek patyrusių Unix tipo operacinių sistemų naudotojų juos renkasi savo užduotims atlikti.

Kaip ir kiekviena Unix tipo operacinė sistema, Linux turi mažiausiai vieną apvalkalą (daugelis sistemų jų turi po kelis, pavyzdžiui, bash, sh, csh, ksh). Funkcionalumo atžvilgiu daugelis apvalkalų

11

Page 8: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

yra panašūs (skiriasi tik detalėmis (komandos, funkcijos, jų sintaksė), kurios daugiau yra svarbios patyrusiems naudotojams). Daugelyje sistemų paprastai naudojamas bash (angl. Bourne Again SHell) apvalkalas. Apžvelgsime populiariausius Unix tipo operacinių sistemų apvalkalus.

sh (Bourne Shell). Tai yra originalus Unix operacines sistemos apvalkalas, sukurtas Stephen Bourne, Bell Labs, 1974 metais, ir gan plačiai naudojamas iki šiol. Tai paprastas, nedidelis apvalkalas, turintis ko gero mažiausiai galimybių iš visų Unix tipo operacinėse sistemose naudojamų apvalkalų.

bash (Bourne-again Shell). Tai yra numatytasis (angl. default) Linux apvalkalas, kuris buvo sukurtas GNU projektui. Jis veikia beveik visose Unix tipo ir kitose (pavyzdžiui, Microsoft Windows) operacinės sistemose. Palyginus su sh apvalkalu, bash turi žymiai daugiau komandų, bet vistiek yra pakankamai intuityvus ir lankstus. Todėl iš visų apvalkalų bash yra ko gero labiausiai tinkamas pradedantiesiems naudotojams. Vartojant matematinę terminologiją galima pasakyti, kad sh yra griežtasis bash apvalkalo poaibis (viso sh apvalkalo komandos veikia ir bash apvalkale, bet nebūtinai atvirkščiai).

csh (C Shell). Šio apvalkalo, Bill Joy sukurto Kalifornijos universitete 1978 metais, komandų sintaksė labai panaši į C programavimo kalbos sintaksę, todėl jis mėgstamas programuotojų.

ksh (Korn Shell). Apvalkalą 1983 metais sukūrė David Korn (Bell Labs). Jis padengia sh apvalkalą, turi daugelį ch galimybių, taip pat komandų istoriją, vidinį mechanizmą aritmetiniams skaičiavimams atlikti, patobulintas scenarijų rašymo galimybes, kurias turi galingos scenarijų kalbos tokios kaip tokios kaip awk, perl ir sed.

ash (Almquist Shell). Tai yra sh klonas, sukurtas Kenneth Almquist 1989 metais. Iš visų apvalkalų šis yra labiausiai panašus į sh ir neturi jokių papildomų galimybių, kurias siūlo tokie apvalkalai kaip bash ar tcsh. Palyginus su kitais į sh panašiai apvalkalais, šis apvalkalas reikalauja mažiau atminties, todėl yra tinkamas, pavyzdžiui, įtaisytosioms (angl. embedded) sistemoms. Šis apvalkalas yra daugelyje komercinių Unix tipo operacinių sistemų.

tcsh (TENEX C Shell). Šis apvalkalas remiasi csh, bet turi kai kurių papildomų funkcijų (komandų istorijos mechanizmas, komandų eilutės redagavimas ir kt.). tsch pakeitė csh apvalkalą kai kuriose BSD operacinėse sistemose (pavyzdžiui, FreeBSD, Darwin).

zsh (Z Shell). Panašus į ksh apvalkalas, tik turi perėmęs kai kurias csh galimybes (t.y. turi geras programavimo galimybes kaip ir ksh, ir daugybę naudingų funkcijų, perimtų iš csh). Sukurtas Paul Falstad apie 1990 metus.

Skirtingai nuo Microsoft Windows operacinių sistemų šeimos komandinės eilutės, Linux apvalkalai palaiko daugiaprogramį apdorojimą (vienu metu kompiuteris gali vykdyti kelias programas/užduotis, angl. multitasking).

1.6.4. X Window SystemKliento ir serverio modelis. Kliento ir serverio modeliu (angl. client-server model) pagrįstose sistemose užduotys yra padalijamos tarp klientų ir serverių, veikiančių tame pačiame ar tinkle esančiuose skirtinguose kompiuteriuose. Serveris (angl. server) yra tinklo mazgas (kompiuteris) arba jame veikianti programa (procesas), kuri teikia paslaugas klientams (angl. client). Pagrindinė serverių savybė yra ta, kad tuo pačiu metu jie gali teikti paslaugas daugeliui klientų. Bendruoju atveju klientas taip pat yra kompiuteris arba programa (procesas). Kliento programa dažniausiai veikia lokaliame kompiuteryje (t.y. kompiuteryje, kuriuo tiesiogiai naudojasi naudotojas), pagal naudotojo pageidavimus siunčia paslaugų užklausas serveriui ir, gavus rezultatus, pateikia juos

12

Page 9: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

naudotojui jam suprantamu būdu. Vienos iš dažniausiai naudojamų kliento programų yra naršyklės, kurios siunčia užklausas žiniatinklio serveriams ir paverčia iš serverių gautus HTML ar kt. kalbomis aprašytus dokumentus vartotojui lengvai suprantamais (su tekstu, paveikslais ir t.t.).

Langų sistemos ir grafikos moduliai. Langų sistema (angl. window system, windowing system) yra programinės įrangos, atsakingos už bazinių grafinės sąsajos elementų (langų ir t.t.) pateikimą kompiuterio ekrane, rinkinys. Kokybiškai veikiančių langų sistemų yra palyginti nedaug, nes šių sistemų struktūra ir vystymas yra sudėtingi. Terminas „grafikos modulis“ (angl. graphical engine) kartais yra vartojamas kaip sinonimas terminui „langų sistema“, tačiau grafikos modulis yra tam tikras programinės įrangos sluoksnis, veikiantis ant pagrindinės langų sistemos „viršaus“. Vietoje pagrindinės langų sistemos grafikos modulius naudoja atskiros taikomosios programos ar jų grupės. Kompiuterijoje terminai „modulis“ ar „variklis“ (angl. engine) vartojami kalbant apie programinę įrangą, teikiančią įvairias paslaugas kitoms programoms.

X Window System (dažnai vadinama tiesiog X arba X11) yra daugiaplatformė ir laisvai platinama programinės įrangos sistema, skirta grafinių naudotojo sąsajų valdymui atskiruose kompiuteriuose arba jų tinkluose. X Window System buvo sukurta Masačusetso technologijų institute (MIT) 1984 metais, o pirmoji dabartinės versijos (X11) laida pasirodė 1987 m. rugsėjį. Tai didelė ir sudėtinga sistema (ją galima palyginti su pačia operacine sistema), veikianti pagal kliento ir serverio modelį. De facto tai yra standartinis grafikos modulis Linux ir kitose Unix tipo operacinėse sistemose. Skirtingai nuo Microsoft Windows šeimos ir kai kurių kitų operacinių sistemų, kuriose grafikos modulis yra integruota sistemos dalis, Unix tipo operacinėse sistemose X yra nepriklausoma nuo operacinės sistemos. Tai reiškia, kad, jei grafinė sąsaja naudotojui yra nereikalinga, įdiegti X sistema nėra būtina.

X sistema pačios naudotojo sąsajos neapibrėžia, taip pat nespecifikuoja ir taikomųjų programų veiklos ar langų tvarkytuvių (žr. 1.6.5 skyrelį) funkcijų. X Window System yra atsakinga už operacinės sistemos grafiką ir įvesties duomenų, gaunamų iš klaviatūros, pelės, jutiklinio ekrano ar kt. įrenginių, apdorojimą. X Window System suteikia bazines priemones tokių grafinės sąsajos operacijų kaip langų piešimas ir perkėlimas, sąveika su pele, klaviatūra ar kt. įrenginiais, realizacijai, tačiau už patį grafinės sąsajos stilių atsako kitos priemonės. Todėl X Windows System besiremiančių aplinkų išvaizda būna labai skirtinga.

Naudotojas tiesiogiai nesąveikauja su X sistema, nes ši sistema paprasčiausiai yra tarpinis programinės įrangos sluoksnis, teikiantis bazines grafikos galimybes langų tvarkytuvėms ir darbalaukio aplinkoms. Taigi, langai ir kitos patrauklios grafinės sąsajos priemonės yra ne X, o langų tvarkytuvių ir darbalaukio aplinkų „nuopelnas“.

X Window System naudoja kliento ir serverio modelį: X Window System (serveris), teikia įvairiais vaizdavimo ir su įvestimi/išvestimi susijusias paslaugas taikomosioms programoms (klientams).

X serveris (angl. X server) yra X sistemos programa, kuri veikia lokaliuose kompiuteriuose ir valdo priėjimą prie tų kompiuterių grafikos plokščių, ekranų, įvedimo įrenginių (klaviatūrų, pelių ir pan.). Faktiškai ji atlieka visas vaizdavimo operacijas. Pagrindinės X serverio teikiamos paslaugos yra šios:

• Įvedinių apdorojimas (angl. input handling). Ši paslauga apima įvedinių iš klaviatūros ir pelės persiuntimą įvykių pavidalu klientams per langų tvarkytuvę, kuri X sistemai yra dar vienas klientas.

• Langų paslaugos (angl. window services). Tai paslaugos informacijai apie langus gauti, jų

13

Page 10: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

sukūrimui ar sunaikinimui ir pan., kurias užklausomis serveriui siunčia X klientai.

• Grafika. Tai linijų ir figūrų piešimas bei pagal klientų užklausas vykdomos operacijos su taškine grafika (angl. bitmap).

• Tekstas ir šriftai. Šios paslaugos yra atsakai į kliento užklausas pavaizduoti tekstą konkrečioje vietoje ir konkrečiu šriftu, taip pat pateikti informaciją apie prieinamus šriftus.

• Išteklių valdymas. Klientams parūpinama asociatyvioji (angl. content-addresable) duomenų bazė.

X klientas (angl. X client) yra bet kuri taikomoji programa. Iš esmės X klientai yra nepriklausomi nuo serverio. Langų tvarkytuvės ar darbalaukio aplinkos taip pat yra X klientai, užklausas dėl tam tikrų operacijų siunčiantys serveriui, kuris jiems grąžina duomenis ir leidžia pavaizduoti ekrane atitinkamą grafinį vaizdą.

Taigi, kliento ir serverio architektūra X sistemoje naudojama netradiciškai: kiekvienas lokalus kompiuteris, kuriame veikia X serverio programinė įranga, gali pasiekti nutolusius kompiuterius, kuriuose veikia X kliento programos.

Komunikacija tarp X serverio ir X klientų vyksta pagal X protokolą (angl. X protocol). X protokolas yra standartinis paketinio duomenų siuntimo (persiunčiami duomenys yra išskaidomi į duomenų paketus – nedalomas duomenų porcijas, angl. packet) protokolas. X klientams langų paslaugos suteikiamos per Xlib biblioteką (standartinių X sistemos užduočių rinkinį, angl. Xlib library). Užduotys yra perduodamos serveriams pagal X protokolo taisykles. Naudojamos šios komunikacijos priemonės: (1) informacijos ar veiksmo užklausos, kurias siunčia klientai, (2) serverio atsakai, (3) įvykių (įvedinių, gaunamų iš pelės ar klaviatūros, pavyzdžiui lango padėties ar dydžio keitimas) siuntimas klientams iš serverio (4) klaidų paketų siuntimas iš serverio, tais atvejais, kai naudotojo užklausos yra klaidingos.

Kliento ir serverio architektūra leidžia X Window System veikti atskirai tiek nuo klientų, tiek nuo pačios operacinės sistemos. Toks sprendimas yra patikimas ir saugus. Serveris sąveikauja su operacine sistema ir jos įrenginiais, o taikomajai programai informacijos apie technines detales nereikia . Kliento ir serverio architektūra veikia ne tik tinkluose, bet ir atskiruose kompiuteriuose. Nors iš pirmo žvilgsnio tai gali pasirodyti keista, tačiau toks sprendimas pasiteisina dėl (1) lokalių ir tinklinių operacijų suderinamumo, (2) gerų taip suprojektuotos sistemos stabilumo savybių (X serverio strigties atveju pats kompiuteris dažniausiai neužstringa, o komandinės sąsajos pagalba X veikimas gali būti atstatytas išvengiant kompiuterio perkrovimo).

Taigi, X Window System pirmiausiai yra grafinės sąsajos bazinių elementų apibrėžimas ir protokolas, o mygtukų, meniu, langų antraščių juostų ir kt. grafinės sąsajos elementų stiliai čia sąmoningai nėra specifikuojami. Šiomis išvaizdos detalėmis pasirūpinama langų tvarkytuvėse, grafinės sąsajos valdiklių priemonių komplektuose ir darbalaukių aplinkose.

1.6.5. Langų tvarkytuvėLangų tvarkytuvė (angl. windows manager) yra programa, komunikuojanti su X sistema ir kontroliuojanti grafinės sąsajos elementų išvaizdą (lango, jo antraštės, rėmelių, slinkties juostų, valdymo mygtukų ir meniu išdėstymas, apipavidalinimas ir spalvos) bei funkcionalumą (langų mažinimas/didinimas, perkėlimas, kontekstiniai meniu). Langų tvarkytuvės būna įvairaus sudėtingumo ir galimybių. Pagal langų funkcionalumą, langų tvarkytuves galima suskirstyti į tris klases:

14

Page 11: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

• Komponuojančios langų tvarkytuvės (angl. compositing windows manager). Šiose tvarkytuvėse visi langai sukuriami ir pavaizduojami atskirai ir vėliau sujungiami įvairiose dvimatėse ir trimatėse aplinkose. Tokio tipo tvarkytuvė pirmą kartą panaudota Mac OS X operacinėje sistemoje.

• Užklojančios langų tvarkytuvės (angl. stacking windows manager). Visos langų tvarkytuvės, kurios turi langų užklojimą ir nėra komponuojančios, vadinamos užklojančiomis langų tvarkytuvėmis. Tačiau ne visos užklojančios langų tvarkytuvės naudoja lygiai tokias pačias langų vaizdavimo metodologijas. Šios langų tvarkytuvės leidžia langams uždengti vienas kitą (fone esantys langai piešiami pirmiausiai). Kokie nors langų išdėstymo pokyčiai dažnai reikalauja visų langų perpiešimo.

• Išdėstančios langų tvarkytuvės (angl. tilling windows manager). Šios langų tvarkytuvės langus piešia išdėstydamos juos vieną šalia kito taip, kad nė vienas langas neuždengia kito.

• Dinaminės langų tvarkytuvės (angl. dynamic windows manager). Langų išdėstymas gali būti keičiamas dinamiškai.

Operacinėse sistemose, naudojančiose X Window System, langų tvarkytuvių ir langų sistemos darbas yra griežtai atskirtas. Naudotojai turi galimybę rinktis iš daugybės skirtingų langų tvarkytuvių. Kai kuriose langų tvarkytuvėse gali būti naudojami komponentai iš kitų langų tvarkytuvių.

Compiz. Tai yra viena iš pirmųjų komponuojančių langų tvarkytuvių X sistemai, kuri naudodama trimatės grafikos aparatinę įrangą sukurią įvairius komponuojamo darbalaukio efektus. Tokie efektai kaip lango suskleidimo (angl. minimize) efektas ar kubo pavidalo darbo aplinka realizuojami įkeliamų papildinių (angl. loadable plug-in) pagalba.

Enlightenment. Ši užklojanti langų tvarkytuvė (dar vadinama tiesiog E) gali būti naudojama atskirai arba kartu su kokia nors darbalaukio aplinka. Dažnai naudojama kaip darbalaukio aplinkos pakaitalas.

Fluxbox. Fluxbox yra dar viena užklojanti langų tvarkytuvė. Pagrindinės jos sąveikos priemonės yra įrankių juosta, išskleidžiamasis meniu, kuris aktyvuojamas dešiniojo pelės klavišo spragtelėjimu darbalaukio srityje, nedidelis grafinių piktogramų palaikymas. Konfigūruojama (įskaitant meniu konstravimą) redaguojant tekstinius failus. Gali būti specifikuojamos spalvos, gradientai, rėmeliai ir kiti išvaizdos požymiai.

IceWM. Ši užklojanti langų tvarkytuvė yra ekonomiška atminties ir centrinio procesoriaus resursų naudojimo atžvilgiu. Su ja platinami apipavidalinimai (angl. theme), imituojantys įvairių operacinių sistemų grafines sąsajas. IceWM tvarkytuvė gali būti konfigūruojama redaguojant tekstinius failus, esančius naudotojo namų kataloge, bet yra ir tam skirtų programų, turinčių grafinę sąsają. Ši tvarkytuvė turi įtaisytą (angl. built-in) užduočių juostą, kurioje yra tinklo ir centrinio procesoriaus matuokliai, priemonės elektroninio pašto tvarkymui, konfigūruojamas laikrodis ir kt.

1.6.6. Darbalaukio aplinkaDarbalaukio aplinkos (angl. desktop environment) yra programinės įrangos, skirtos palengvinti kasdieninių vartotojo užduočių atlikimą, rinkiniai. Būtent „darbalaukio aplinkas“ daugelis vartotojų turi mintyje kalbėdami apie „operacines sistemas“. Darbalaukio aplinkos suteikia naudotojui grafinę sąsają, besiremiančią darbo stalo metafora. Darbalaukio aplinkose paprastai naudojamos piktogramos, langai, mygtukų juostos, katalogai, nuorodos ir darbalaukio valdikliai. Darbalaukio aplinkose veikia nuvilkimo (angl. drag and drop) ir pan. technologijos, darančios šias aplinkas dar

15

Page 12: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

labiau patogesnėmis. Kad kompiuterio valdymas darbalaukio aplinkose būtų kuo intuityvesnis, naudojamos sąvokos, kurias naudotojas pažįstama iš fizinio pasaulio (langai, mygtukai, šiukšlių dėžė).

Operacinių sistemų, kurios naudoja X Window System, darbalaukių aplinkos yra ypač lanksčios. Paprastai tokių sistemų darbalaukio aplinkas sudaro kokios nors langų ir failų tvarkytuvės, apipavidalinimų (angl. theme) rinkinys bei programos ir bibliotekos darbalaukio valdymui. Visi šie komponentai gali būti keičiami ir konfigūruojami sukuriant unikalias kombinacijas, tačiau numatytosios konfigūracijos paprastai yra patogiausios.

Darbalaukio aplinkos ir langų tvarkytuvės yra ne tas pats, nes darbalaukio aplinkos turi visą reikiamą programinę įrangą dažniausioms naudotojo užduotims atlikti, įskaitant ir langų tvarkytuvę, o langų tvarkytuvės tiesiog valdo langus (į jas neįtraukta jokia papildoma programinė įranga). Kai kurios langų tvarkytuvės (IceWM, Fluxbox, Window Maker) turi šiek tiek darbalaukių aplinkos požymių. Populiariausio Linux operacinių sistemų darbalaukio aplinkos yra GNOME, KDE ir Xfce.

KDE. KDE (http://www.kde.org/, angl. K Desktop Environment) yra atviroji (platinama pagal GPL licenciją) darbalaukio aplinka ir programavimo platforma, sukurta grafinių valdiklių bibliotekos Qt pagrindu ir veikianti daugelyje Unix tipo operacinių sistemų. Taip pat yra sukurtos šios aplinkos versijos, skirtos Microsoft Windows ir Mac OS X operacinėms sistemoms. KDE turi gausybę daugiau ar mažiau į šią darbalaukio aplinką integruotų programų (kai kurios iš jų leidžiamos su pačia aplinka, kitos – atskirai). Verta paminėti kartu su KDE projektu vystomą raštinės programų paketą KOffice, kurį sudaro tekstų rengyklė KWord, skaičuoklė KSpread, pateikčių rengyklė KPresenter, taškinės grafikos rengyklė Krita, vektorinės grafikos rengyklė Karbon 14 ir duomenų bazių valdymo sistema Kexi. Pagrindinis KDE trūkumas yra tas, kad ši aplinka remiasi Qt biblioteka, kuri nėra laisvoji.

GNOME. Atvirosios darbalaukio aplinkos GNOME (http://www.gnome.org/, angl. GNU Object Model Environment) kūrimą 1997 m. rugpjūčio mėn. inicijavo GNU. Pagrindinis tikslas – pakeisti tuo metu jau egzistavusią aplinką KDE, kuri naudoja Qt biblioteką. GNOME buvo kuriama naudojant GTK biblioteką. Kadangi GNOME platinama pagal LGPL licenciją, jos funkcionalumu galima naudotis programinėje įrangoje, kuri nėra atviroji. GNOME aplinka yra orientuota į naudotoją – siekiama, kad ji būtų jam patogi, stengiamasi palengvinti regėjimo ar judėjimo sutrikimų turinčių naudotojų darbą. GNOME aplinka lokalizuota daugeliui kalbų (taip pat ir lietuvių kalbai).

Xfce. Xfce (http://www.xfce.org/, angl. Xforms Common Environment) aplinka taip pat yra atviroji (LGPL licencija). Ji pradėta kurti 1996 metais. Pagrindinės šios aplinkos savybės – greita ir nereikalaujanti daug resursų, tačiau tuo pačiu vizualiai patraukli ir paprastai naudojama. Dabartinės versijos veikia GTK + 2 bibliotekos pagrindu ir naudoja Xfwm langų tvarkytuvę. Ši darbalaukio aplinka gali būti konfigūruojama pele (konfigūraciniai failai yra paslėpti nuo nerūpestingų naudotojų). Ją sudaro atskiri komponentai, kurie gali būti pasirenkami naudotojo nuožiūra – tai leidžia susikurti individualią darbalaukio aplinką. Naudotojams Xfce suteikia galimybę naudotis modernia darbalaukio aplinka turint kuklią aparatinę įrangą.

1.7. Failų ir katalogų sistema

1.7.1. Failų išdėstymo sistemaFailų išdėstymo sistema (trumpiau – failų sistema, angl. file allocation system, file system) yra taisyklių, kurios nustato disko atmintinės paskirstymo katalogams ir failams ypatumus, rinkinys.

16

Page 13: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

Visa disko atmintinė yra suskaidoma į vienodo dydžio blokinius (angl. allocation unit, cluster), kurių kiekvienam skiriamas fiksuotas sveikasis disko sektorių (angl. sector) skaičius. Kiekvienam failui skiriamas sveikasis blokinių skaičius. Vieno failo blokiniai gali būti išdėstomi įvairiose disko vietose. Vieno blokinio dydis priklauso nuo naudojamos failų išdėstymo sistemos, o nuo šio dydžio – disko atmintinės naudojimo ekonomiškumas. Tarkime, kad naudojamoje failų išdėstymo schemoje vieno blokinio dydis yra 4096 baitai. Tuomet net ir tiems failams, kurių dydis neviršija 4096 baitų, disko atmintinėje skiriamas vienas blokinys (t.y. 4096 baitai). O, pavyzdžiui, failui, kurio dydis yra 4097 baitai, diske skiriami 2 blokiniai (t.y. net 8192 baitai – žymiai daugiau nei reikia iš tikrųjų).

Linux operacinėse sistemose viskas (t.y. tiek tekstiniai failai, grafika, vykdomosios programos ir t.t., tiek katalogai, diskų skaidiniai, įvairūs aparatinės įrangos įtaisai ir pan.) laikoma failais. Dėl to, jeigu tai nekels dviprasmiškumo, failo terminą vartosime kalbėdami ne viena apie failus įprasta prasme, bet ir apie katalogus, įvairius įtaisus ir pan.

Visa informaciją apie failą, išskyrus jo pavadinimą ir pačius duomenis, saugoma specialiose duomenų struktūrose, kurias vadinsime informaciniais mazgais (angl. inode; kokia šio termino kilmė tiksliai jau nebežinoma, tačiau manoma, kad i raidė kilusi nuo žodžio index arba information). Visi informaciniai mazgai įrašomi į informacinių mazgų lentelę (angl. inode table, inode list). Kiekviename informaciniame mazge saugoma ši informacija: (1) unikalus informacinio mazgo identifikacinis numeris – identifikatorius (sveikasis skaičius), (2) informacija apie failo savininką ir su failu susietą naudotojų grupę, (3) failo tipas (įprastas failas, katalogas ar pan.), (4) failo prieigos teisių sąrašas, (5) failo sukūrimo, paskutinės kreipties į jį ir paskutinio modifikavimo datos, (6) failo dydis, (7) failo adresas disko atmintinėje. Kai failas sukuriamas, jam iš karto priskiriamas failo vardas ir unikalus informacinio mazgo identifikatorius. Kaip minėta anksčiau, visi katalogai Unix tipo operacinėse sistemose taip pat yra failai. Šie specialaus tipo failai susieja failų vardus su jų informacinių mazgų identifikatoriais. Visi failų vardai ir juos atitinkantys informacinių mazgų identifikatoriai įrašomi į katalogą (t.y. failą). Kai naudotojas arba taikomoji programa kreipiasi į failą naudodami jo vardą, operacinė sistemą pagal šį vardą (tiksliau – failo informacinio mazgo identifikatorių) surandą failo informacinį mazgą, kuriame saugoma visa informaciją, reikalinga norint atlikti su failu kokias nors operacijas. Taigi, skirtingai nei Microsoft Windows šeimos operacinės sistemose, Unix tipo operacinėse sistemose failų vardai tiesiogiai su pačiais failais nesiejami. Todėl vienas failas gali turėti daugiau nei vieną vardą.

Nuolatinės nuorodos. Bet kuriam failui galima sukurti bet kiek nuolatinių nuorodų (angl. hard link). Nuolatinės nuorodos taip pat gali būti kuriamos kitoms nuolatinėms nuorodoms, tačiau jos negali būti kuriamos katalogams ir negali peržengti failų sistemos ar disko skaidinio ribų. Operacinė sistema neskiria failo vardo, suteikto jam sukūrimo metu, nuo vėliau sukurtų nuolatinių nuorodų, nes originalusis vardas ir nuolatinės nuorodos atvaizduojamos į ta patį informacinį mazgą. Viename disko skaidinyje (angl. disk partition) gali būti naudojama tik viena failų sistema, tačiau jei diskas suskaidytas į kelis skaidinius, visuose skaidiniuose gali būti naudojamos skirtingos failų sistemos. Kadangi informacinių mazgų identifikaciniai numeriai yra unikalūs tik toje pačioje failų sistemoje, nuolatinės nuorodos ir failai negali būti sukurti skirtingose failų sistemose ar skirtinguose disko skaidiniuose. Tarp nuolatinių nuorodų ir jų paskirties failų nėra jokių akivaizdžių skirtumų. Grafinėse naudotojo sąsajose nuolatinių nuorodų piktogramos yra tokios pačios kaip ir jų paskirties failų. Svarbu tai, kad pašalinus nuolatinę nuorodą, pats paskirties failas nėra pašalinamas, jeigu yra dar bent viena su juo susieta nuolatinė nuoroda.

Simbolinės nuorodos. Simbolinės nuorodos (angl. symbolic links) yra naudojamos dažniau nei nuolatinės nuorodos, nes jas galima kurti ir katalogams, taip pat failams iš kitos failų sistemos ar

17

Page 14: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

kito disko skaidinio. Grafinėse naudotojo sąsajose simbolinių nuorodų piktogramos skiriasi nuo paprastų failų piktogramų. Simbolinių nuorodų šalinimas negali būti paties paskirties failo pašalinimo priežastimi. Pašalinus paskirties failą, simbolinės nuorodos nebeveikia.

Asociatyvieji vardai. Asociatyvieji vardai (angl. alias) iš pirmo žvilgsnio yra panašūs į nuolatines nuorodas, nes tai yra dar vienas būdas suteikti vienam failui kelis vardus. Kaip ir simbolinės nuorodos, alternatyvieji vardai gali būti taikomi katalogams ir naudojami skirtingose failų išdėstymo sistemose ir disko skaidiniuose. Alternatyvieji vardai gali būti naudojami kaip bet kokio sudėtingumo apvalkalo komandų ar jų rinkinių trumpi vardai. Alternatyvieji vardai atpažįstami tik tam apvalkale, kuriame jie yra sukurti ir galioja tik juos sukūrusiems naudotojams (šakninis naudotojas (žr. 1.7.4 skyrelį) gali sukurti asociatyviuosius vardus, kurie galiotų ir kitiems naudotojams).

Taigi, failų sistemą sudaro: (1) valdymo blokas (angl. control block), kuriame saugoma informacija apie pačia failų sistemą, (2) informacinių mazgų blokai, kuriuose saugoma informacija apie failus, ir (3) duomenų blokai, skirti failų duomenims saugoti. Disko atmintinės vieta, skirta informaciniams mazgams turi būti išskiriama operacinės sistemos diegimo ar naujos failų kūrimo metu. Failų sistemos kūrimo metu nustatomas didžiausias informacinių mazgų skaičius (taigi ir didžiausias galimas failų skaičius). Sprendimas apie tai, kokiam informacinių mazgų kiekiui reikia išskirti vietos disko atmintinėje, priimamas specialaus algoritmo, kuris įvertina disko skaidinio dydį ir vidutinį failo dydį, pagalba. Pagal numatytuosius nustatymus vienas informacinis mazgas sukuriamas 2 kilobaitams (1 KB = 210 B = 8192 bitai) disko atmintinės, skirtos failams, tačiau failų sistemos kūrimo metu šis nustatymas gali būti pakeistas. Failų sistema gali viršyti jai paskirtos atmintinės talpą tais atvejais, kai (1) išnaudojama visa duomenims saugoti skirta atmintinės talpa, arba (2) viršijamas maksimalus informacinių mazgų skaičius. Sistema gali nustoti veikusi tiek dėl pirmosios, tiek ir dėl antrosios priežasties, nes išsekus resursams, skirtiems informaciniams mazgams, neįmanoma sukurti jokių naujų failų, net jei disko atmintinėje vietos yra pakankamai. Maksimalus informacinių mazgų skaičius gali būti pasiektas, kai sistemoje yra daug labai mažos apimties failų. Tačiau dažniausiai susiduriama su failams skirtos vietos viršijimu, nes vidutiniškai failas užima daugiau nei 2 kilobaitus.

Savosios Linux failų išdėstymo sistemos. Savosiomis (angl. native) Linux failų sistemomis laikomos tos sistemos, kurios buvo sukurtos specialiai Linux operacinėms sistemoms, arba iš pradžių sukurtos kitoms operacinėms sistemoms ir vėliau adaptuotos. Šiuo metu plačiai naudojamos kelios savosios operacinių sistemų Linux failų sistemos: ext2, ext3, ReiserFS, JFS, XFS. Papildomai vystoma ir daugiau sistemų. Palyginus šias sistemas su MS DOS ar Microsoft Windows šeimos operacinėse sistemose naudojamomis failų sistemomis, galima išskirti šiuos skirtumus: (1) svarbūs sistemos katalogai gali būti išskaidomi ir saugomi skirtinguose disko skaidiniuose ar skirtinguose diskuose, (2) saugoma papildoma informacija apie failus (savininkas, prieigos teisės ir pan.), (3) svarbiems operacinės sistemos komponentams saugoti naudojami standartiniai katalogai.

Pirmoji Linux failų sistema buvo „pasiskolinta“ iš operacinės sistemos Minix. Nors veikė efektyviai, tačiau turėjo tam tikrų trūkumų (didžiausia leistina disko skaidinio talpa tik 64 MB, leidžiama naudoti tik trumpus failų vardus ir t.t.). 1992 m. balandžio mėn. buvo pristatyta išplestinė failų sistema (angl. extended file system) ext. Didžiausia disko skaidinio talpa ext sistemoje yra 2GB, o leistinas failų vardų ilgis – iki 255 simbolių.

1993 m. sausį buvo išleista antroji išplėstinės failų sistemos versija ext2. Kuriant ext2 sistemą buvo atlikti šie patobulinimai: (1) įdiegti algoritmai, dėl kurių padidėjo sparta, (2) suteikta galimybė naudoti papildomas laiko žymas (paskutiniųjų kreipčių į failą ir jo informacinį mazgą, ir paskutiniųjų jų modifikavimų datos bei laikai), (3) atsirado galimybė sekti failų sistemos būseną.

18

Page 15: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

Maksimalus failo dydis ext2 sistemoje yra 4TB (1TB = 1024GB). Pagrindinis ext2 failų sistemos trūkumas yra tai, kad tai nėra žurnalinė failų sistema. Žurnalinėmis failų sistemomis (angl. journaling file system) yra vadinamos sistemos, palaikančios specialius žurnalais (angl. journal) vadinamus failus, kurie naudojami įvairių failų sistemos duomenų nesuderinamumų, atsirandančių, pavyzdžiui, dėl netinkamo kompiuterio išjungimo, pašalinimui.

Į 2.4.16 versijos Linux branduolį buvo integruota žurnalinė failų sistema ext3. Ši sistema yra tokia pati patikima kaip ir ext2, bet spartesnė, nes optimizuojamas disko galvutės judėjimas. Be didelių sunkumų gali būti atliktas konvertavimas iš ext2 į ext3 sistemą ir atvirkščiai. Nepaisant to, kad buvo vystomos ir kitos žurnalinės failų sistemos (populiariausia iš jų yra ReiserFS), ext3 sistema tapo numatytąja failų sistema Red Hat ir kai kuriuose kituose Linux platinamuosiuose paketuose.

Artėjant terabaitų (1TB = 1024GB) talpos diskų „erai“, 2006 m. spalio mėnesį buvo pristatyta ir į 2.6.19 Linux branduolio versiją įtraukta naujos kartos žurnalinė failų sistema sistema ext4. Ši sistema palaiko atmintines, kurių talpa siekia 1024 petabaitus (1PB = 1024 TB).

1.7.2. Failų požymiai ir prieigos teisėsMicrosoft Windows operacinėse sistemose naudojami tokie failų požymiai (angl. file attribute):

• archyvuotinasis (a) – nurodo, kad failas bus įtraukas į atsarginę kompiuteryje esančių duomenų kopiją, kai tokia kopija bus daroma;

• nekeičiamasis (r) – nurodo, kad neleidžiama keisti failo turinio, jo šalinti ar pakeisti kitu;

• sisteminis (s) – failai su šiuo požymiu skirti veiksmams su operacine sistema ar jos komponentais, negalima keisti šių failų turinio, jų šalinti ar perkelti;

• slepiamasis (h) – failų su šiuo požymiu nerodo failų tvarkytuvės – taip jie yra apsaugomi nuo atsitiktinio modifikavimo ar pašalinimo; tačiau pamatyti slepiamąjį failą, jį modifikuoti ar net pašalinti yra įmanoma, nes failų tvarkytuvės paprastai turi slepiamųjų failų rodymo veikseną.

Kiekvienas failas gali turėti kelis požymius arba neturėti nė vieno. Failų požymius galima pa­matyti failų tvarkytuvės pagalba. Jie nustatomi automatiškai, tačiau juos galima keisti rankiniu būdu.

Linux sistemoje failai ir katalogai (trumpiau sakant – objektai) gali turėti daugiau požymių. Šie požymiai aprašo prieigos prie objektų teises skirtingiems vartotojams ar jų grupėms. Pagal prieigos paskirtį teisės skirstomos taip: (1) skaitymo, (2) rašymo (modifikavimo) ir (3) vykdymo. Pagal teisių savininką jos skirstomos taip: (1) failo arba katalogo savininko (angl. owner), (2) naudotojų grupės ir (3) visų kitų naudotojų teisės. Objekto savininku iš karto tampa jį sukūręs naudotojas, tačiau savininką galima pakeisti.

Yra du būdai prieigos teisėms nurodyti: skaitmenų arba simbolių rinkiniais. Pirmuoju atveju teisės nurodomi trijų skaitmenų rinkiniais (triženkliais sveikaisiais skaičiais). Pirmasis skaitmuo žymi savininko teises, antrasis – grupės, o trečiasis – visų kitų naudotojų teises. Kiekvienas skaitmuo gaunamas susumavus visas suteikiamas teises žyminčius skaitmenis:

4 žymi teisę skaityti,

2 žymi teisę rašyti (t.y. modifikuoti),

1 žymi teisę vykdyti.

19

Page 16: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

Pavyzdžiui, teisių rinkinys, žymimas triženkliu skaičiumi 761 reiškia, kad savininkas turi teisę failą skaityti, vykdyti ir jį modifikuoti (4+2+1), grupė gali failą skaityti ir modifikuoti (4+2), o visi kiti vartotojai gali tik vykdyti (1). Jei kuriai nors naudotojų grupei ar pačiam savininkui nesuteikiama jokių teisių, atitinkamoje vietoje rašomas 0.

Teisių rinkiniai taip pat gali būti išreiškiami dešimties simbolių eilutėmis. Pirmasis simbolis nurodo failo tipą (raidė d katalogams ir brūkšnelis (–) paprastiems failams). Kitus devynis simbolius galima suskirstyti į tris grupes, kurių kiekviena apibrėžia failo savininko, grupės ir kitų naudotojų teises. Kiekvienoje grupėje yra po tris simbolius, nurodančius skaitymo, rašymo ir modifikavimo teisių turėjimą arba neturėjimą:

r žymi teisę skaityti,

w žymi teisę rašyti (t.y. modifikuoti),

x žymi teisė vykdyti.

Jei kuri nors teisė nesiteikta, atitinkamoje vietoje žymimas brūkšnelis (-). Pavyzdžiui, eilutė -rwxrw---x nusako ankstesniame pavyzdyje nagrinėtą objekto (šiuo atveju paprasto failo) prieigos teisių rinkinį. Jei objektas būtų katalogas, tos pačios teisės būtų aprašomos eilutė drwxrw---x.

1.7.3. Failų tvarkytuvėsFailai paprastai tvarkomi specialiomis programomis, vadinamomis failų tvarkytuvėmis (angl. file manager). Failų tvarkytuvės turi galimybes kopijuoti, perkelti, šalinti failus ir katalogus, lyginti jų turinius ir t.t. Šiomis programomis taip pat galima peržiūrėti arba rankiniu būdu keisti failų požy­mius.

Microsoft Windows operacinių vartotojams gerai žinomos failų tvarkytuvės Windows Explorer, Total Commander, FAR manager ir pan. Failų tvarkytuvės gali turėti tiek tekstinę, tiek grafinę naudotojo sąsają.

Failų tvarkytuvė Midnight Commander (http://www.midnight-commander.org/). Ši daugiaplatformė failų tvarkytuvė savo išvaizda ir funkcionalumu labai panaši į tvarkytuvę Norton Commander, žinomą Microsoft Windows operacinių sistemų naudotojams, t.y. Midnight Commander yra Norton Commander klonas. Ji platinama pagal GNU GPL licenciją.

Midnight Commander failų tvarkytuvė iškviečiama terminalo emuliatoriaus lange surinkus komandą mc (apie terminalo emuliatorius skaitykite 1.8.1 skyrelyje). Pagrindinėje tvarkytuvės lango dalyje yra du skydeliai, skirti katalogų struktūros (katalogų medžio, angl. directory tree) ir katalogų turinio peržiūrai. Rodyklių klavišais ir įterpimo (Insert) klavišu galima valdyti failų atranką (angl. selection). Funkciniais klavišais gali būti atliekamos šios operacijos:

F1 – iškviesti žinyną (pagalba);F2 – iškviesti papildomą meniu;F3 – atidaryti failą peržiūrai; F4 – atidaryti failą redagavimui (iškviečiamas redaktorius mcedit)F5 – kopijuoti failą ar katalogą;F6 – perkelti failą ar katalogą;F7 – sukurti naują katalogą;F8 – šalinti failą ar katalogąF9 – iškviesti papildomą meniu;

20

Page 17: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

F10 – išeiti.

Midnight Commander leidžia peržiūrėti RPM paketų turinį, su standartinių formatų archyvais dirbti kaip su paprastais katalogais, teikia FTP (angl. file transfer protocol) ar FISH kliento programos paslaugas. Šioje tvarkytuvėje taip pat integruotas teksto redaktorius mcedit, kuris gali būti iškviečiamas kaip savarankiška programa arba funkciniu klavišu F4. Pagrindinės mcedit galimybės: palaikomas sintaksės paryškinimas (angl. syntax highlight) daugeliui kalbų, makrokomandos, integracija su išoriniais įrankiais, galimybė dirbti tiek tekstinėje (angl. ASCII mode, American Standart Code for Information Interchange), tiek ir šešioliktainėje (angl. hex mode) veiksenose. Darbui su dideliais kiekiais failų patogu naudoti automatines pervardijimo galimybes.

1.7.4. Standartinė katalogų sistemaKiekvienu momentu naudotojas dirba tam tikrame kataloge, kuris vadinamas veikiamuoju katalogu (angl. work directory, current directory).

Visi Unix tipo operacinių sistemų failų sistemos katalogai ir failai įeina į šakninį katalogą (angl. root directory). Šakninis katalogas yra žymimas dešininiu brūkšniu (/, angl. forward slash) ir neįeina į jokį kitą katalogą – nuo jo prasideda keliai į pakatalogius ir failus. Vieno į kitą įdėtų katalogų vardų seka nuo kurio nors vieno katalogo iki kito katalogo ar failo yra vadinama keliu (angl. path). Šakninio katalogo nereikia painioti su šakninio naudotojo (ang. root user) namų katalogu /root, kuris yra šakninio katalogo pakatalogis. Šakninis naudotojas yra labiausiai privilegijuotas iš visų operacinės sistemos naudotojų: turi pilną prieigą prie visų failų ir komandų, gali reguliuoti kitų naudotojų prieigos teises ir t.t. Linux operacinių sistemų katalogų struktūra ir jų turinys deklaruojami failų sistemos hierarchijos standarte (angl. Filesystem Hierarchy Standard, FHS).

Pateiksime šakniniame kataloge esančių pakatalogių pavyzdžių:

/bin – vykdomosios programos, kuriomis naudojasi pati operacinė sistema, sistemos administratorius ir visi kiti naudotojai;

/boot – paleidyklės failai;

/dev – nuorodos į visus išorinius įtaisus (angl. peripheral device), kurie operacinėje sistemoje laikomi failais su tam tikromis savybėmis;

/home – visų vartotojų namų katalogai;

/root – šakninio naudotojo namų katalogas;

/sbin – kataloge saugomos įvairios vykdomosios programos, daugiausiai skirtos sistemos administravimo tikslams ir prieinamos šakniniam naudotojui (angl. system binaries)

Unix tipo operacinėse sistemose nurodant kelius katalogų vardai skiriami dešininiais brūkšniais (/) (Microsoft Windows šeimos operacinėse sistemose katalogų vardai skiriami kairiniais brūkšniais (\)). Jei kelias nurodomas šakninio katalogo atžvilgiu, jis vadinamas absoliučiuoju (angl. absolute pathname, full path). Kelias gali būti nurodomas ir veikiamojo katalogo atžvilgiu – toks kelias vadinamas santykiniu (angl. relative pathname).

21

Page 18: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

1.8. Linux valdymas komandomis

1.8.1. Tekstinės naudotojo sąsajos priemonėsTerminalai ir terminalų emuliatoriai. Ankstyvieji kompiuteriai buvo valdomi klaviatūromis ir monitoriais, kuriuose būdavo pateikiama tik tekstinė informacija. Tokie prietaisai, kurių pagrindiniai komponentai yra monitorius ir klaviatūra, o paskirtis – keistis informacija tarp naudotojo ir kompiuterio ar kompiuterių tinklo, vadinami terminalais (angl. terminal) arba pultais (angl. console). Terminalas teikia tekstinę sąsaja naudotojui priimdamas iš jo komandas ir ekrane reikiamą informaciją pateikdamas monitoriuje.

Panašių valdymo priemonių yra net ir šiuolaikiniuose kompiuteriuose, kuriuose įdiegtos operacinės sistemos su grafine naudotojo sąsaja. Tekstiniai langai, kurie imituoja terminalus (pultus), vadinami terminalo langais (angl. terminal window) arba terminalo emuliatoriais (angl. terminal emulator). Terminalų emuliatoriai yra ypač patogios tekstinės naudotojo sąsajos priemonės ir turi ryškių privalumų lyginant su tikrais terminalais. Vienas iš privalumų yra tas, kad terminalų emuliatoriai leidžia naudotis tekstine naudotojo sąsaja tiesiog grafinės sąsajos aplinkoje – naudojantis terminalo emuliatoriais nereikia iš jos išeiti, taip pat gali veikti kitos programos su grafine naudotojo sąsaja ar kiti terminalų emuliatoriai. Terminalų emuliatoriai paleidžiami ir užveriami kaip ir kitos programos (spragtelėjant piktogramą, pasirenkant atitinkamą meniu elementą ar įvykdant tam skirtą komandą kito terminalo emuliatoriaus lange). Be to, pelės pagalba naudotojas gali nesunkiai keisti terminalo emuliatoriaus lango dydį, naudodamasis išskleidžiamaisiais meniu pasirinkti teksto šriftą ir jo dydį, šrifto ir fono spalvas. Dar vienas privalumas yra tai, kad, priklausomai nuo terminalo emuliatoriaus ir jo versijos, komandoms redaguoti (pavyzdžiui, kopijuoti, įterpti ir pan.) gali būti naudojama pelė ar meniu, įvairios klaviatūros klavišų kombinacijos. Daugelis terminalų emuliatorių programų suteikia galimybę nepriklausomai naudotis keliais terminalo langais vienu metu. Pagrindiniai terminalų emuliatorių trūkumai yra tai, kad jais galima naudotis tik tada, kada prieinama grafinė naudotojo sąsaja. Terminalų emuliatoriai taip pat neveikia ir tada, kai operacinė sistema yra atstatoma (angl. repair) ar tegali teikti tik minimalias paslaugas.

Unix tipo operacinėms sistemoms yra sukurta įvairių terminalo emuliatorių, pavyzdžiui:

• gnome-terminal (naudojamas GNOME darbalaukio aplinkoje);

• konsole (naudojamas KDE darbalaukio aplinkoje);

• xterm (emuliuoja jau nebenaudojamus DEC VT102 ir Tektronix 4015 terminalus);

• Eterm (spalvotas xterm pakaitalas);

• rxvt (dar vienas xterm pakaitalas);

• Multi Gnome Terminal (išplėstas gnome-terminal variantas).

Daugelyje platinamųjų Linux paketų yra po kelis terminalų emuliatorius.

Kai kuriose darbalaukio aplinkose gali būti sudėtinga paleisti norimą terminalo emuliatorių naudojantis meniu ar pan. grafinės sąsajos priemonėmis. Tokiais atvejais patartina paleisti bet kurį terminalo emuliatorių ir jo lange surinkus norimo emuliatoriaus pavadinimą paspausti įvedimo klavišą (angl. enter key).

Komandos. Komanda (angl. command) yra vartotojo nurodymas kompiuteriui ką nors atlikti (paleisti programą, atverti failą, sukurti naują katalogą ar pan.). Paprasčiausios komandos

22

Page 19: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

kompiuteriui gali būti pateikiamos klaviatūra parašant jas terminalo lange esančioje komandos eilutėje (angl. command line) ir paspaudus įvedimo klavišą (angl. enter key) nusiunčiant apvalkalui. Komandos rašomos po simbolinio apvalkalo raginimo (angl. shell prompt), kuris praneša, kad apvalkalas yra pasiruošęs priimti komandas. Apvalkalo raginimas yra tam tikra simbolių eilutė, kuri dažniausiai baigiasi simboliais >, $, # ar kt.

Komandos būna įtaisytosios (angl. built-in) arba išorinės (angl. external). Įtaisytosios komandos yra apvalkalo dalis, o išorines komandas sudaro kuria nors programavimo kalba parašytos ir sukompiliuotos vykdomosios programos (angl. executable program) bei apvalkalo scenarijai (angl. shell script). Apvalkalo scenarijai yra komandų, skirtų interpretavimui, rinkiniai. Naudojant apvalkalo scenarijų, galima viena komanda įvykdyti daugelį komandų su įvairiomis parinktimis (angl. option), argumentais ar peradresavimais (angl. redirection). Apvalkalo scenarijai puikiai tinka užduočių automatizavimui, filtrų kūrimui ir pan.

Komandų parinktys ir argumentai. Komandos parinktis (angl. option, switch, flag) paprastai yra nurodoma viena raide arba vienu ar keliais žodžiais ir kokiu nors būdu pakeičia komandos elgesį. Kai kelioms komandos parinktims nurodyti yra naudojamos kelios raidės, jos negali būti atskiriamos tarpais, tačiau gali būti išdėstytos bet kuria tvarka. Komandos argumentai paprastai yra failų vardai ar kiti duomenys, kuriuos komanda naudoja kaip įvedinius (angl. input).Komandų struktūra. Kiekvieną komandą sudaro komandos vardas ir, dažnai, po jo sekančios viena arba kelios tarpais atskirtos simbolių eilutės, kuriomis aprašomos komandos parinktys ir argumentai. Bendras komandos pavidalas yra toks:komandos_vardas [parinktys] [argumentai]Laužtiniai skliaustai reiškia, kad tarp jų rašomi komandos elementai nėra privalomi. Daugelis komandų turi mažiausiais kelias parinktis ir joms galima (arba būtina) perduoti argumentus. Tačiau yra ir tokių komandų, kurios neturi parinkčių ir/ar nepriima argumentų. Pavyzdžiui, komanda clear neturi nei parinkčių nei argumentų, o komandos pwd, dmesg, ps turi parinktis, bet joms negalima perduoti argumentų.

Svarbu! Linux komandose, kaip ir failų bei katalogų pavadinimuose, didžiosios ir mažosios raidės skiriasi (angl. case sensitivity).

Reguliarieji reiškiniai ir pakaitos simboliai. Bendruoju atveju, reguliariaisiais reiškiniais (angl. regular expression, regex) yra vadinamos teksto eilutės, apibrėžiančios tam tikrą eilučių aibę. Taigi, paprastos teksto eilutės taip pat yra reguliarieji reiškiniai, apibrėžiantys tik vieną eilutę – pačią save. Didesnės eilučių aibės gali būti generuojamos naudojant vadinamuosius pakaitos simbolius (angl. wildcard), kurie eilutėje žymi vietas, į kurias galima įterpti vieną ar kelis ženklus. Reguliarieji reiškiniai su pakaitos simboliais Unix tipo operacinėse sistemose naudojami apvalkalui skirtoms komandoms formuluoti. Dažniausiai naudojami trijų rūšių pakaitos simboliai.

• Žvaigždutės pakaitos simbolis (*, angl. asterisk). Jis yra skirtas bet kokio ilgio eilutei (taip pat ir tuščiai) žymėti.

• Klaustuko pakaitos simbolis (?, angl. question mark). Šis pakaitos simbolis yra naudojamas vienam ženklui žymėti.

• Laužtiniai skliaustai ([ ], angl. square brackets). Vietoje šio pakaitos simbolio (tiksliau – reiškinio) gali būti įterpiamas bet kuris iš skliaustuose pateikiamų ženklų. Skliaustuose gali būti pateikiama ženklų aibė (pavyzdžiui, [abc] reiškia vieną iš raidžių „a“, „b“, „c“), intervalas (pavyzdžiui, [a-c], [0-5] atitinkamai reiškia vieną iš raidžių „a“, „b“, „c“ ir

23

Page 20: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

vieną iš skaitmenų nuo 0 iki 5), arba įvairios ženklų aibių ir intervalų kombinacijos (pavyzdžiui, [a-c0-5xyz] reiškia vieną iš raidžių „a“, „b“, „c“, arba vieną iš skaitmenų nuo 0 iki 5, arba vieną iš raidžių „x“, „y“, „z“).

Viename reguliariajame reiškinyje galima naudoti įvairias pakaitos simbolių kombinacijas. Pavyzdžiui, reguliarusis reiškinys ?A[xyz]*[0-9][0-9][0-9]??[a-c0-5] aprašo aibę teksto eilučių, kurių pirmasis simbolis yra bet koks (vienas) ženklas, antrasis simbolis yra raidė „A“, trečiasis simbolis – viena iš raidžių „x“, „y“, „z“, toliau seka bet kokia simbolių eilutė (gali būti ir tuščia), trys bet kokie skaitmenys, du bet kokie simboliai, ir viena iš raidžių „a“, „b“, „c“ arba vienas iš skaitmenų nuo 0 iki 5.Tokių tekstinių eilučių pavyzdžiai yra aAx009VUc, ?Azmif510+F3 ir t.t.

1.8.2. Standartinių duomenų srautų peradresavimasStandartiniai duomenų srautai. Unix tipo operacinėse sistemose kiekvienai komandai ir kiekvienam procesui automatiškai priskiriami trys duomenų srautai: vienas standartinis įvedinių srautas (angl. standart input, sutrumpintai stdin) bei du standartiniai išvedinių srautai rezultatams ir pranešimams apie klaidas (angl. standart output, standart error, sutrumpintai stdout, stderr). Duomenų srautai turi unikalius identifikatorius, vadinamus failų deskriptoriais (angl. file descriptor):

standartinis įvedinių srautas (stdin) – 0;

standartinis išvedinių srautas (stdout) – 1;

standartinis klaidų pranešimų srautas (stderr) – 2.

Standartinį įvedinių srautą sudaro duomenys, perduodami komandai ar procesui. Paprastai šie duomenys yra įvedami klaviatūra, tačiau standartinio įvedinių srauto šaltiniu gali būti ir koks nors failas, kita komanda ar programa. Standartiniai išvedinių srautai yra skirti komandos rezultatams ir/ar klaidų pranešimams išvesti. Pagal nutylėjimą, šių srautų paskirties vieta yra ekranas, tačiau jie gali būti nukreipiami į kurį nors failą, spausdintuvą ar programą. Visus duomenų srautus sudaro grynasis tekstas (t.y. tekstas sudarytas vien iš rašmenų, tarp kurių gali būti eilučių skirtukų ir tabuliavimo ženklųangl. plain text). Standartinio duomenų srauto šaltinio arba jo paskirties (angl destination) pakeitimas vadinamas peradresavimu (angl. redirection). Standartinių duomenų srautų peradresavimui gali būti naudojami argumentai ir peradresavimo operatoriai (angl. redirection operators). Peradresavimo operatorių naudojimas teikia žymiai lankstesnes peradresavimo galimybes. Dažniausiai peradresavimo operatorių formulavimui naudojami šie simboliai: <, >, |. Kartais naudojamas skaitmuo 2 ir ampersendo ženklas (&, angl. ampersend).

Standartinio įvedinių srauto peradresavimas. Standartinių įvedinių srautas gali būti peradresuojamas argumentais, kurie perduodami komandai – vietoje tiesioginio duomenų pateikimo įvedus ir pradėjus vykdyti komandą, duomenys perduodami ta pačia eilute kartu su komanda dar prieš pradedant ją vykdyti arba yra nurodomas duomenų failo vardas.

Paprasčiausiu atveju standartinio įvedinių srauto peradresavimo operatorius formuluojamas taip:komanda < failasTokiu atveju komanda pasiima duomenis iš nurodyto failo. Šis operatorius naudojamas retai, nes dažniausiai duomenų failą komandai galima perduoti argumento pavidalu:komanda failas

24

Page 21: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

Standartinio išvedinių srauto peradresavimas. Standartinis išvedinių srautas gali būti peradresuojamas taip:komanda > failasTokiu atveju komandos vykdymo rezultatas įrašomas į failą, o ekrane jokių pranešimų nepateikiama. Jei failas, į kurį reikia rašyti rezultatus, jau egzistuoja, tuomet tas failas pakeičiamas (angl. overwrite); jei tokio failo nėra – sukuriamas naujas failas. Norint, kad komandos vykdymo rezultatais būtų papildomas (angl. append) galbūt jau egzistuojantis failas, reikia naudoti tokio pavidalo peradresavimo operatorius:komanda >> failasStandartinio klaidų pranešimų srauto peradresavimas. Standartinis klaidų pranešimų srautas peradresuojamas operatoriaus formuluotėje panaudojant skaitmenį 2 (prisiminkite, kad standartinio klaidų pranešimų srauto identifikatorius yra 2):komanda 2> failaskomanda 2>> failas

Komandos eilutės gale (už komandos pavadinimo ir parinkčių bei argumentų) ampersendo ženklas (&) gali būti rašomas dar ir tam, kad komanda būtų vykdoma „fone“, t.y. proceso, kurį inicijuoja komanda, baigiama ampersendo ženklu, vykdymas tęsiamas net ir tada, kai įvedamos ir pradedamos vykdyti kitos komandos.

Komandų grandinės. Komandų grandinėmis (angl. pipeline, pipe) vadinamos komandų eilės, kurių kiekvienoje komandoje (išskyrus pirmąją) naudojamas ankstesnės komandos rezultatas, o rezultatas (išskyrus paskutiniosios komandos) naudojamas tolesnėje komandoje. Taigi, komandų grandinė yra priemonė, skirta vienos komandos (programos) išvedinių peradresavimui kitai komandai (programai), kuri juos apdoroja toliau. Unix tipo operacinėse sistemose komandų grandinės užrašomos išvardijant komandas ir atskiriant jas vertikaliaisiais brūkšneliais (|):komanda_1 | komanda_2 [| komanda_3 ...]Komandų grandinę gali sudaryti bet koks skaičius komandų.

Komandų grandinės suteikia laikinas tiesiogines jungtis tarp dviejų ar daugiau komandų. Tai suteikia galimybes įvykdyti labai specializuotas užduotis, kurių negali atlikti nė viena iš grandinę sudarančių komandų veikdama atskirai. Tiesioginiai duomenų mainai tarp skirtingų grandinės komandų leidžia išvengti jų pateikimo ekrane, perrašinėjimo į laikinus tekstinius failus ir t.t.

Toliau trumpai panagrinėsime kai kurias dažniausiai naudojamas Linux komandas. Pristatysime bendrąją kiekvienos komandos struktūrą, svarbiausias (bet ne visas!) parinktis, pateiksime kai kurių komandų taikymo pavyzdžius. Detalesnę informaciją galite rasti žinynuose.

1.8.3. Pagalbinės paslaugosKalendorius. Pamatyti konkretaus mėnesio ar visų metų kalendorių galima įvykdžius komanda cal:cal [[mėnesis] metai]Pavyzdys. Išspausdinsime 2010 metų rugsėjo mėnesio kalendorių:linux1:~> cal september 2010 rugsėjo 2010

25

Page 22: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

Pr An Tr Kt Pn Št Sk 1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16 17 18 1920 21 22 23 24 25 2627 28 29 30Data/laikas. Norėdami sužinoti datą ir/ar laiką, galime pasinaudoti komandos date galimybėmis. Galima keisti rezultato formatą:date [+“datos_formatas“]Parinktys: %m – mėnuo (01–12);

%d – mėnesio diena (1–31);

%Y – metai (keturi skaitmenys);

%y – paskutiniai du metų skaitmenys;

%H, %M, %S – valandos, minutės ir sekundės, atitinkamai;

%D – data (formatas mm/dd/yy).

Šios parinktys nurodant pageidaujamą datos ir laiko formatą.

Pavyzdys. Išspausdinsime datą ir laiką:linux1:~> date +"%Y-%m-%d, %H:%M:%S"2010-08-25, 15:54:30Pranešimų spausdinimas. Paprastus ar formatuotus tekstinius pranešimus į terminalo langą galime išvesti komandomis echo ir printf:echo "<pranešimas>"printf "<formatuotas_pranešimas>"Pavyzdys. Išspausdinsime nesudėtingus tekstinius pranešimus:linux1:~> echo "Labas, pasauli!"Labas, pasauli!linux1:~> printf "Suma lygi %d\n", 100Suma lygi 100Komandos printf sintaksė yra panaši į atitinkamos C kalbos funkcijos sintaksę.

Skaičiuokliai. Tekstinės ir grafinės sąsajos skaičiuokliai atitinkamai iškviečiami komandomis bc ir xcalc. Tekstinės sąsajos skaičiuokliui perduodamas reiškinys, kurio reikšmę norima apskaičiuoti.

Pavyzdys. Apskaičiuosime nesudėtingo aritmetinio reiškinio reikšmę:linux1:~> bcbc 1.06.94Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.This is free software with ABSOLUTELY NO WARRANTY.For details type `warranty'.2*20+2-9+6/3+2^2

26

Page 23: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

39Darbas su skaičiuokliu baigiamas klavišų kombinacija Ctrl+D.

Scenarijai (skriptai). Scenarijai/skriptai (angl. script) yra interpretavimui skirtų komandų rinkiniai. Komanda script yra skirta automatiniam scenarijaus rašymui į failą:script [failo_vardas]Pavyzdys. Sudarysime scenarijų, kuriame saugosime viename iš ankstesnių pavyzdžių naudotas pranešimų spausdinimo komandas:linux1:~> script scenarijus.txtScript started, file is scenarijus.txtlinux1:~> echo "Labas, pasauli!"Labas, pasauli!linux1:~> printf “Suma lygi %d\n“, 100Suma lygi 100linux1:~> exitScript done, file is scenarijus.txtScenarijaus rašymas baigiamas Ctrl+D klavišų kombinacija (tai atitinka komandą exit, kuri matoma pavyzdyje). Jeigu scenarijaus failo vardas neperduodamas argumentu, pagal nutylėjimą scenarijus išsaugomas faile typescript.

Slaptažodžio keitimas. Savo slaptažodį pasikeisti galima su komanda passwd.

Pavyzdys. Keičiant slaptažodį, pirmiausiai reikia įvesti dabartinį slaptažodį, o po to du kartus įvesti naująjį slaptažodį:linux1:~> passwdCurrent Kerberos password:Enter new Kerberos password:Retype new Kerberos password:Renkant slaptažodžius, jokie simboliai eilutėse nėra rodomi.

Informacija apie naudotojus. Šiuo metu prisijungusių vartotojų sąrašą galima gauti komanda who.

Pavyzdys.linux1:~> whosvajunas pts/1 2010-08-25 15:53 (matrix.mif)rona1043 :20 2010-08-25 13:38rona1043 pts/0 2010-08-25 13:38 (:20.0)rona1043 console 2010-08-25 13:38 (:20)Informacija apie komandas. Daugiau informacijos apie konkrečią komandą galima gauti pasinaudojus žinynu:man <komandos_vardas>Pavyzdys. Norėdami gauti daugiau informacijos apie komandą date, turime įvykdyti šią komandą:linux1:~> man dateTerminalo emuliatoriaus lange pamatysime komandos dokumentciją.

27

Page 24: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

1.8.4. Failų ir katalogų valdymasVeikiamojo katalogo pakeitimas. Pilną kelią iki veikiamojo katalogo galima sužinoti komanda pwd (angl. print work directory):pwd [parinktys]Parinktys: --help – pateikia pagrindinę informaciją iš komandos dokumentacijos;

--version – nurodoma, kuri komandos versija naudojama.

Pavyzdys. Pasitikriname veikiamąjį katalogą:linux1:~> pwd/net/192.168.42.151/users3/svajunas

Komanda pwd gali būti naudinga tada, kai naudotojas nori pasitikrinti, ar teisingai įvykdė veikiamojo katalogo pakeitimo komandą cd (angl. current directory):cd [parinktys] [katalogas]Parinktys: -P – nurodo komandai naudoti fizinę katalogų struktūrą, o ne simbolines nuorodas;

-L – nurodo komandai naudoti simbolines nuorodas.

Kai ši komanda naudojama nenurodant jokio katalogo ar kelio iki katalogo (neperduodant argumento), veikiamasis katalogas pakeičiamas į prieš tai buvusį veikiamąjį katalogą:cdVeikiamuoju katalogu tampa šakninis katalogas, kai komandai perduodamas argumentas yra dešininis brūkšnys (šakninio katalogo simbolis):cd /Veikiamasis katalogas pakeičiamas į dabartinio veikiamojo katalogo virškatalogį arba naudotojo namų katalogą atitinkamai įvykdžius šias komandascd ..arbacd ~

Keičiant veikiamąjį katalogą gali būti nurodomas tiek absoliutusis, tiek santykinis naujojo veikiamojo katalogo vardas.

Pavyzdys. Laikinai pakeiskime veikiamąjį katalogą į šakninio katalogo pakatalogį bin, o paskui vėl į savo namų katalogą:linux1:~> pwd/net/192.168.42.151/users3/svajunaslinux1:~> cd /binlinux1:/bin> pwd/binlinux1:/bin> cdlinux1:~> pwd/net/192.168.42.151/users3/svajunasInformacija apie failus ir katalogus. Informaciją apie objektus (failus arba katalogus) galima

28

Page 25: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

sužinoti pasinaudojus komanda ls (angl. list):ls [parinktys] [objektų_vardai]Parinktys: -l – pateikiama išsami informacija (prieigos teisės, savininkai, dydžiai, datos,

pavadinimai ir kt.; angl. long);

-a – rodomi visi (taip pat ir slepiamieji) failai (angl. all);

-r – rekursyviai pateikia informaciją apie pakatalogių turinį;

-i –rodomi informacinių mazgų identifikaciniai numeriai.

Jei komandai neperduodami jokių objektų vardai, bus pateikiama informacija apie veikiamojo katalogo turinį. Su šios komandos taikymo pavyzdžiais susipažinsime nagrinėdami kitas komandas.

Naujų (tuščių) failų kūrimas ir laiko žymų keitimas. Kurti naujus tuščius failus galima panaudojant komandą touch:touch [parinktys] failų_vardaiNaudojant šią komandą be parinkčių, bus sukuriami nauji tušti failai. Jei tarp komandos argumentų bus jau egzistuojančio failo vardas, tai tas egzistuojantis failas nebus perrašomas (angl. overwrite), o tiesiog šio failo laiko žymos (failo sukūrimo, paskutinės kreipties į jį ir paskutiniojo modifikavimo datos ir laikai) bus pakeičiamos į datą ir laiką, kurie bus komandos vykdymo metu. Taigi, ši komanda taip pat yra skirta failų ir katalogų laiko žymų keitimui. Kadangi laiko žymų keitimo operacijos atliekamos retai, čia išsamiai jų nebenagrinėsime (daugiau informacijos: man touch).

Pavyzdys. Namų kataloge sukuriame tuščius failus f1.txt, f2.txt ir f3.txt:linux1:~> touch f1.txt f2.txt f3.txtlinux1:~> ls -l f*.txt-rw-r--r--+ 1 svajunas svajunas 0 2010-08-25 15:55 f1.txt-rw-r--r--+ 1 svajunas svajunas 0 2010-08-25 15:55 f2.txt-rw-r--r--+ 1 svajunas svajunas 0 2010-08-25 15:55 f3.txtFailų ir katalogų prieigos teisių keitimas. Prieigos teisių nustatymui ir keitimui naudojama komanda chmod (angl. change mode):chmod [parinktys] Teisės_1[,Teisės_2 ...] failų_vardaichmod [parinktys] Teisės failų_vardaiPrieigos teisės gali būti nurodomos simboliais (komanda pirmoje eilutėje) arba skaitmenimis (komanda antroje eilutėje). Simboliais prieigos teisių rinkiniai užrašomi tokio pavidalo reiškiniais:[ugoa][[+-=][rwxXstugo]

• Raidėmis ugoa nurodoma, kurių naudotojų prieigos teisės vykdant komandą bus nustatomos: u – failo savininko, g – grupės, kuriai priklauso failas, naudotojų, o – kitų naudotojų, a – visų naudotojų (a=ugo). Jei šioje vietoje nenurodoma nieko, laikoma, kad teisės nustatomos visiems naudotojams (a).

• Ženklas + reiškia, kad prie jau egzistuojančių prieigos teisių bus pridedamos papildomos teisės, ženklas - reiškia, kad kai kurios teisės bus pašalinamos, ženklas = naudojamas pilnai pakeičiant jau egzistuojančias prieigos teises.

29

Page 26: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

• Pačios teisės nurodomos raidėmis rwxXstugo. Dažniausiai naudojamos šios raidės:

◦ r – skaityti,

◦ w – rašyti,

◦ x – vykdyti (katalogo atveju – tiesiog atidaryti),

◦ X – suteikiama vykdymo teisė tik tuo atveju, kai failas yra katalogas arba kuris nors naudotojas jau turi šio failo vykdymo teisę,

◦ u – failo savininko prieigos teisės,

◦ g – grupės prieigos teisės,

◦ o – visų kitų naudotojų prieigos teisės.

Paprasčiau prieigos teises nurodyti triženkliais sveikaisiais skaičiais. Apie tai rašyta 1.7.2 skyrelyje.

Parinktys: -R – rekursyviai pakeisti failų ir katalogų prieigos teises (angl. recursively);

-v – pateikti informaciją apie tai, kokie pakeitimai daromi (angl. verbose);

--help – pateikia pagrindinę informaciją iš komandos dokumentacijos;

--version – nurodoma, kuri komandos versija naudojama.

Pavyzdys. Failų ar katalogų prieigos teises galima sužinoti pasinaudojus komanda ls su parinktimi -l:linux1:~> ls -l f?.txt-rw-r--r--+ 2 svajunas svajunas 46 2010-08-25 15:55 f1.txt-rw-r--r--+ 1 svajunas svajunas 46 2010-08-25 15:55 f2.txt-rw-r--r--+ 1 svajunas svajunas 92 2010-08-25 15:55 f3.txtPrieigos teisės matomos eilučių pradžioje. Brūkšnelis reiškia, kad objektas yra failas (katalogo atveju ten būna raidė d). Likusius simbolius iki ženklo + reikia suskirstyti į tris grupes: pirmoji grupė reiškia savininko teises (šiuo atveju savininkas turi teisę skaityti ir modifikuoti), antroji naudotojų grupės, o trečioji – visų kitų naudotojų (šios dvi naudotojų grupės šiuo atveju turi tik skaitymo teises). Naudotojų grupei ir visiems kitiems naudotojams suteikime rašymo ir panaikinkime skaitymo teises:linux1:~> chmod go+w-r f?.txtlinux1:~> ls -l f?.txt-rw--w--w-+ 2 svajunas svajunas 46 2010-08-25 15:55 f1.txt-rw--w--w-+ 1 svajunas svajunas 46 2010-08-25 15:55 f2.txt-rw--w--w-+ 1 svajunas svajunas 92 2010-08-25 15:55 f3.txtVisiems naudotojams nustatome rašymo ir skaitymo teises:linux1:~> chmod a=rw f?.txtlinux1:~> ls -l f?.txt-rw-rw-rw-+ 2 svajunas svajunas 46 2010-08-25 15:55 f1.txt-rw-rw-rw-+ 1 svajunas svajunas 46 2010-08-25 15:55 f2.txt-rw-rw-rw-+ 1 svajunas svajunas 92 2010-08-25 15:55 f3.txtNustatykime pradines failų prieigos teises:

30

Page 27: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

linux1:~> chmod 644 f?.txtlinux1:~> ls -l f?.txt-rw-r--r--+ 2 svajunas svajunas 46 2010-08-25 15:55 f1.txt-rw-r--r--+ 1 svajunas svajunas 46 2010-08-25 15:55 f2.txt-rw-r--r--+ 1 svajunas svajunas 92 2010-08-25 15:55 f3.txtNaujų katalogų kūrimas. Naujiems katalogams kurti naudojama komanda mkdir (angl. make directory):mkdir [parinktys] katalogų_vardaiŠitaip veikiamajame kataloge galima sukurti bet kiek naujų katalogų. Bandant sukurti katalogą tokiu pačiu vardu kaip jau egzistuojantis katalogas ar failas, to padaryti nepavyks (bus pateikiamas atitinkamas pranešimas). Tačiau visi kiti toje pačioje komandoje išvardyti katalogai (kurių vardai nesutampa su jau egzistuojančių objektų vardais) bus sėkmingai sukurti. Norėdamas sukurti naują katalogą, t.y. pakatalogį kokiame nors kataloge (virškatalogyje), naudotojas tame virškatalogyje turi turėti rašymo (modifikavimo) teisę. Sukūrus naują katalogą, jame automatiškai sukuriami du slepiamieji (angl. hidden) katalogai: (1) katalogas, reprezentuojantis naujai sukurtą katalogą (žymimas vienu tašku – .) ir (2) katalogas, reprezentuojantis virškatalogį (žymimas dviem taškais – ..). Informaciją apie paslėptuosius katalogus galima gauti pasinaudojus komanda ls -a. Sukuriant naują katalogą, jei nenurodoma kitaip, jam suteikiamos numatytosios prieigos teisės: visos teisės suteikiamos savininkui (naudotojui, sukūrusiam katalogą) ir grupei, o visiems kitiems vartotojui suteikiamos skaitymo ir vykdymo teisės. Prieigos teises galima specifikuoti sukuriant katalogą – tam naudojama speciali komandos mkdir parinktis.

Parinktys: -m – parinktis prieigos teisių specifikavimui;

-p – sukurti kelių katalogų struktūrą (jei tokių katalogų dar nėra);

-v – informacijai apie kiekvieno naujo katalogo sukūrimą (angl. verbose);

--help – pateikia pagrindinę informaciją iš komandos dokumentacijos;

--version – nurodoma, kuri komandos versija naudojama.

Pavyzdys. Namų kataloge sukuriame naują vienas į kitą įdėtų katalogų struktūrą katalogas1/katalogas2/katalogas3, jų savininkui suteikdami visas prieigos teises, grupės naudotojams – skaitymo ir rašymo, o visiems kitiems naudotojams – tik skaitymo teises:linux1:~> mkdir -pm 764 katalogas1/katalogas2/katalogas3linux1:~> ls -la katalogas1total 17drwxr-xr-x+ 3 svajunas svajunas 3 2010-08-25 15:55 .drwxr-x--x+ 22 svajunas svajunas 38 2010-08-25 15:55 ..drwxr-xr-x+ 3 svajunas svajunas 3 2010-08-25 15:55 katalogas2linux1:~> ls -la katalogas1/katalogas2total 2drwxr-xr-x+ 3 svajunas svajunas 3 2010-08-25 15:55 .drwxr-xr-x+ 3 svajunas svajunas 3 2010-08-25 15:55 ..drwxrw-r--+ 2 svajunas svajunas 2 2010-08-25 15:55 katalogas3Failų ir katalogų šalinimas. Komanda rm (angl. remove):rm [parinktys] [-r katalogai] failų_vardai

31

Page 28: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

Kai failas, kurį naudotojas nori pašalinti, neegzistuoja, arba naudotojas neturi teisės jo šalinti, tai naudotojui pateikiamas klaidos pranešimas. Jei šalinamas failas turi rašymo apsaugą (angl. write protection), prieš pašalinamą reikalaujama papildomo naudotojo patvirtinimo. Failai, esantys kataloge, kuris yra apsaugotas nuo rašymo, negali būti ištrinti net ir tuo atveju, kai patys failai tokios apsaugos neturi.

Parinktys: -f – visų (net ir apsaugotų nuo rašymo) failų šalinimui neįspėjant vartotojo (angl. force);

-i – reikalaujama naudotojo patvirtinimo prieš šalinant bet kokį failą ar katalogą (angl. interactive);

-r (-R) – rekursiniam katalogų ir jų turinio šalinimui (angl. recursively);

-v – papildomai informacijai (angl. verbose);

--help – pateikia pagrindinę informaciją iš komandos dokumentacijos;

--version – nurodoma, kuri komandos versija naudojama.

Jei trinamas failas yra nuoroda į kitą failą, tai failas, į kurį tą nuorodą rodo, nėra ištrinamas. Pagal nutylėjimą komanda rm katalogų nešalina, todėl tam turi būti naudojama parinktis -r. Komanda rm taip pat palaiko parametrą -- (du brūkšneliai), kuris yra skirtas atskirti komandos parinktis nuo argumentų ir gali būti naudojamas tada, kai failo ar katalogo vardas prasideda brūkšneliu.

Pavyzdys. Pašaliname anksčiau sukurtą katalogą katalogas1 su visais pakatalogiais:linux1:~> rm -r katalogas1linux1:~> ls katalogas1ls: cannot access katalogas1: No such file or directoryTuščių katalogų šalinimas. Tuštiems katalogams šalinti naudojama komanda rmdir:rmdir [parinktys] katalogų_vardaiParinktys: -p – kelių katalogų struktūros šalinimui (angl. parents);

-v – papildomai informacijai (angl. verbose);

--help – pateikia pagrindinę informaciją iš komandos dokumentacijos;

--version – nurodoma, kuri komandos versija naudojama.

Standartinė komanda rmdir nepalaiko parinkties, panašios į komandos rm parinktį –r, todėl norint pašalinti katalogus su turiniu reikia naudoti komandą rm su atitinkama parinktimi.

Pavyzdys. Katalogus katalogas1/katalogas2/katalogas3 galėjome pašalinti ir taip:linux1:~> mkdir -pm 764 katalogas1/katalogas2/katalogas3linux1:~> rmdir -p katalogas1rmdir: failed to remove `katalogas1': Directory not emptylinux1:~> rmdir -p katalogas1/katalogas2/katalogas3linux1:~> ls katalogas1ls: cannot access katalogas1: No such file or directoryFailų ir katalogų kopijavimas. Failų ir katalogų kopijavimui skirta komanda cp (angl. copy):cp [parinktys] vardas naujas_vardas

32

Page 29: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

cp [parinktys] vardas_1 [vardas_2 ...] katalogasPirmuoju atveju nukopijuojamas failas (galima nurodyti ne tik paprastus vardus, bet ir kelius iki šaltinio ir paskirties failo). Antruoju – nurodyti failai nukopijuojami į nurodytą katalogą. Pagal nutylėjimą komanda cp kopijuoja failus, o ne katalogus (katalogų kopijavimui turi būti naudojama parinktis -r).

Parinktys: -i – tais atvejais, kai kopijos vardas sutampa su jau egzistuojančio failo vardu, prieš kopijuojant failą reikalaujama naudotojo patvirtinimo (angl. interactive);

-r (-R) – rekursiniam katalogų ir jų turinio kopijavimui (angl. recursively);

-a – kopijoje išsaugoma originalaus katalogo struktūra ir požymiai;

-b – padaromos visų paskirties failų atsarginės kopijos (angl. backup);

-f – paskirties failai, kurių neįmanoma atidaryti, yra pašalinami (angl. force);

-s – vietoje kopijų padaromos simbolinės nuorodos;

-u – kopijuojama tik tada, kai šaltinio failas yra naujesnis nei paskirties failas arba paskirties failas neegzistuoja (angl. update);

-v – papildomai informacijai apie tai, kokie veiksmai atliekami (angl. verbose);

-x – kopijuojama toje pačioje failų sistemoje.

Visiems kataloge esantiems failams perkopijuoti į kitą katalogą naudojamas žvaigždutės (*) pakaitos simbolis, pavyzdžiui:cp katalogas1/* katalogas2Žvaigždutės pakaitos simbolis taip pat naudojamas tada, kai norima padaryti kopijas tik tų failų ar katalogų, kurių vardai pasižymi tam tikrais požymiais. Pavyzdžiui, komandacp *.mp3 katalogasį katalogą nukopijuojami visi veikiamajame kataloge esantys failai, kurių prievardžiai yra mp3.

Pavyzdys. Sukurkime naują katalogą kat ir į jį nukopijuokime failus f1.txt, f2.txt ir f3.txt:linux1:~> mkdir katlinux1:~> cp f?.txt katlinux1:~> ls katf1.txt f2.txt f3.txtlinux1:~> ls f?.txtf1.txt f2.txt f3.txtČia pasinaudojome tuo, kad be mūsų minėtų trijų failų, namų kataloge nebuvo daugiau failų, kurių vardus generuotų reguliarusis reiškinys f?.txt. Jei tokių failų būtų buvę daugiau, jie visi būtų nukopijuoti į katalogą kat.

Failų ir katalogų perkėlimas bei jų pervardijimas. Šiems veiksmams naudojama komanda mv (angl. move):mv [parinktys] šaltinis paskirtisJei šaltinis ir paskirtis yra tiesiog failų vardai, tai šia komanda yra pakeičiamas šaltinio failo vardas.

33

Page 30: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

Kai šaltinis ir paskirtis yra skirtinguose kataloguose, tuomet šaltinio failas perkeliamas į paskirties vietą tuo pačiu ar, jei nurodoma, kitu vardu.

Parinktys: -i – tais atvejais, kai perkeliamo objekto vardas sutampa su jau egzistuojančio objekto vardu, prieš perkeliant reikalaujama naudotojo patvirtinimo (angl. interactive);

-b – padaromos visų paskirties failų atsarginės kopijos (angl. backup);

-v – papildomai informacijai apie tai, kokie veiksmai atliekami (angl. verbose);

--help – pateikia pagrindinę informaciją iš komandos dokumentacijos;

--version – nurodoma, kuri komandos versija naudojama.

Kaip ir kopijuojant, perkeliant ar pervardijant failus ir katalogus dažnai patogu pasinaudoti pakaitos simboliais.

Pavyzdys. Pakeiskime katalogo kat pavadinimą į dir ir perkelkime jį į naujai sukurto katalogo dir1 pakatalogį dir2:linux1:~> mv kat dirlinux1:~> mkdir -p dir1/dir2linux1:~> mv dir dir1/dir2linux1:~> ls dir1/dir2dirlinux1:~> ls dirls: cannot access dir: No such file or directoryFailų peržiūra, užpildymas turiniu, kelių failų sujungimas. Failų peržiūrai, užpildymui turiniu, kelių failų sujungimui ir pan. gali būti naudojamos komandos cat ir tac (angl. concatenate):cat [parinktys] [failų_vardai] [-] [failų_vardai]tac [parinktys] [failų_vardai] [-] [failų_vardai]Parinktys: -T – tabuliavimo ženklai vaizduojami taip: ^I;

--help – pateikia pagrindinę informaciją iš komandos dokumentacijos;

--version – nurodoma, kuri komandos versija naudojama.

Komanda cat gali būti naudojama, pavyzdžiui:

• ekrane peržiūrėti failų turinį: cat failas1 [failas2 ...];

• sujungti kelių failų turinį į kitą failą: cat failas1 [failas2 ...] > failas, cat failas1 [failas2 ...] >> failas;

• užpildyti tuščią (papildyti) failą klaviatūra įvedamu tekstu: cat > failas1, cat >> failas2 (įvedus tekstą reikia spausti įvedimo klavišą ir klavišų kombinaciją Ctrl+D);

• kurti failams, kai dalis teksto įvedama klaviatūra, o kita dalis perrašoma iš kito failo ar failų: cat [f1 f2 ...] - [g1 g2 ...] > failas (brūkšnelis žymi klaviatūra įvesto teksto įterpimo vietą; galima taikyti įvairius peradresavimo operatorius arba jų iš viso netaikyti);

Panašiai gali būti naudojama ir komanda tac. Tačiau naudojant tac komandą failų eilutės

34

Page 31: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

skaitomos nuo failo pabaigos (pradedant paskutiniąja eilute).

Pavyzdys. Failą f1.txt užpildykime tekstu, įvedamu klaviatūra. Į failą f2.txt perrašykime failo f1.txt turinį atvirkščia tvarka. Failus f1.txt ir f2.txt sujunkime į vieną f3.txt:linux1:~> cat > f1.txtPirmoji eilutėAntroji eilutėTrečioji eilutė

linux1:~> cat f1.txtPirmoji eilutėAntroji eilutėTrečioji eilutėlinux1:~> tac f1.txt > f2.txtlinux1:~> cat f2.txtTrečioji eilutėAntroji eilutėPirmoji eilutėlinux1:~> cat f1.txt f2.txt > f3.txtlinux1:~> cat f3.txtPirmoji eilutėAntroji eilutėTrečioji eilutėTrečioji eilutėAntroji eilutėPirmoji eilutėTekstinio failo statistika. Teksto eilučių, žodžių ir simbolių skaičiavimui naudojama komanda wc (angl. word count):wc [parinktys] [failų_vardai]Žodžiais čia laikomos greta išdėstytų simbolių sekos, viena nuo kitos atskiriamos tarpais, tabuliavimo ar naujos eilutės ženklais. Skaičiuojant ženklus įskaitomi ne tik matomi simboliai, bet ir tarpo, tabuliavimo, naujos eilutės ar pan. ženklai. Eilutės yra simbolių sekos, besibaigiančios naujos eilutės ženklais.

Jei komanda wc vykdoma neperduodant jokių argumentų (failų pavadinimų), tai bus pateikiama klaviatūra įvesto teksto statistika. Tokiu atveju komandų eilutėje surinkus wc ir nuspaudus įvedimo klavišą turi būti surenkamas tekstas (gali būti daugiau nei viena eilutė), paskui vėl spaudžiamas įvedimo klavišas ir klavišų kombinacija Ctrl+D. Nurodžius vieno arba failų pavadinimus, atskirtus tarpais, galima gauti vieno arba kelių tekstinių failų statistiką.

Parinktys: -l – skaičiuoti tik eilutes (angl. line);

-w – skaičiuoti tik žodžius (angl. word);

-m – skaičiuoti tik simbolius;

-c – suskaičiuoti, kiek baitų užima faile saugomi duomenys.

Pavyzdys. Pasižiūrėkime anksčiau sukurto ir užpildyto failo f1.txt, bei visų failų f1.txt, f2.txt ir f2.txt statistiką.

35

Page 32: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

linux1:~> wc f1.txt 3 6 46 f1.txtlinux1:~> wc -c f1.txt46 f1.txtlinux1:~> wc f?.txt 3 6 46 f1.txt 3 6 46 f2.txt 6 12 92 f3.txt 12 24 184 totalNuorodų kūrimas. Nuolatinės ir simbolinės nuorodos (angl. hard link, symbolic link) kuriamos naudojant komandą ln (angl. link):ln [parinktys] failo_vardas nuorodos_vardasParinktys: -s – kurti ne nuolatinę, o simbolinę nuorodą,

-v – informacijai apie kiekvieną kuriamą nuorodą (angl. verbose);

--help – pateikia pagrindinę informaciją iš komandos dokumentacijos;

--version – nurodoma, kuri komandos versija naudojama.

Pavyzdys. Sukurkime nuolatinę nuorodą failui f1.txt:linux1:~> ln f1.txt f1linux1:~> ls -i f1.txt f1741930 f1 741930 f1.txtlinux1:~> cat f1Pirmoji eilutėAntroji eilutėTrečioji eilutė

Duomenų glaudinimas. Duomenys glaudinami (and. compression, compaction) tam, kad užimtų mažiau vietos atmintinėje, juos būtų galima sparčiau persiųsti ir pan. Duomenims reikalingos atmintinės sutaupoma juos analizuojant ir ieškant informacijos pertekliaus (vienodų ar panašių fragmentų ir pan.) bei jį sumažinant kokiu nors ekonomišku būdu duomenis perkoduojant. Neglaudintų ir suglaudintų duomenų užimamos vietos santykis (glaudinimo laipsnis, angl. compression ratio) priklauso nuo informacijos pertekliaus ir naudojamo glaudinimo metodo.

Unix tipo operacinėse sistemose duomenų glaudinimui dažniausiai naudojamos komandos tar, gzip ir gunzip. Paprastai komanda tar (angl. tape archive) atlieka duomenų pakavimą (duomenų, esančių skirtingose failuose ir kataloguose, sudėjimą į vieną failą, vadinamą paku; angl. packing, archiving), o ne glaudinimą. Glaudinimui naudojamos papildomos pagalbinės programos arba specialios komandos tar parinktys. Komandai tar būtina perduoti bent vieną parinktį:tar parinktys archyvo_vardas [failų_vardai]Galima pakuoti tiek atskirus failus, tiek ir katalogus.

Parinktys: -c – kurti paką (priklausomai nuo kitų parinkčių – glaudintą arba neglaudintą),

-j – suglaudinti paką naudojant programa bzip2;

-z – suglaudinti paką naudojant programa gzip;

36

Page 33: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

-Z – suglaudinti paką naudojant programa compress;

-x – išskleisti paką (naudojama vietoje parinkties -c kartu su vieną iš parinkčių -j, -z ar -Z, jei tokia parinktis buvo naudojama kuriant paką (atskiriama pagal pako vardą);

-f – ši parinktis rašoma prieš kuriamo pako vardą, t.y. ji turi būti paskutinė toje parinkčių eilutėje, po kurios nurodomas pako vardas;

-r – pridėti papildomą failą į paką;

--delete – iš pako pašalinti failą;

-t – parodyti pako turinį;

-v – ekrane pateikiamas į paką įtraukiamų failų sąrašas (angl. verbose);

--help – pateikia pagrindinę informaciją iš komandos dokumentacijos;

--version – nurodoma, kuri komandos versija naudojama.

Sukūrus paprastą (neglaudintą) TAR paką, jo glaudinimui galima panaudoti komandą gzip:gzip [parinktys] glaudinamo_pako_vardasŠitaip suglaudinamam pako failui automatiškai pridedamas plėtinys *.gz. Suglaudintą paką galima išskleisti komandagunzip [parinktys] suglaudinto_pako_vardas.gzToliau TAR pako išskleidimui dar reikia panaudoti komandą tar su parinktimi -x.

Pavyzdys. Su anksčiau sukurtais failais ir katalogais įvairiais būdais atlikime įvairias glaudinimo užduotis. Pirmiausiai perkelkime failus f1.txt, f2.txt ir f2.txt į katalogą dir1/dir2/dir:linux1:~> cp f?.txt dir1/dir2/dirlinux1:~> tar -cvf dir1.tar dir1linux1:~> ls -la | grep *.tar-rw-r--r--+ 1 svajunas svajunas 10240 2010-08-25 16:08 dir1.tarlinux1:~> ls dir1dir2linux1:~> tar -tf dir1.tardir1/dir1/dir2/dir1/dir2/dir/dir1/dir2/dir/f3.txtdir1/dir2/dir/f2.txtdir1/dir2/dir/f1.txtlinux1:~> tar -rf dir1.tar f?linux1:~> tar -tf dir1.tardir1/dir1/dir2/dir1/dir2/dir/dir1/dir2/dir/f3.txtdir1/dir2/dir/f2.txt

37

Page 34: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

dir1/dir2/dir/f1.txtf1linux1:~> tar -f dir1.tar --delete f1linux1:~> tar -tf dir1.tardir1/dir1/dir2/dir1/dir2/dir/dir1/dir2/dir/f3.txtdir1/dir2/dir/f2.txtdir1/dir2/dir/f1.txtlinux1:~> gzip dir1.tarlinux1:~> ls -la | grep *.gz-rw-r--r--+ 1 svajunas svajunas 268 2010-08-25 16:08 dir1.tar.gzlinux1:~> gunzip dir1.tar.gzlinux1:~> ls | grep *.tardir1.tarlinux1:~> tar -xf dir1.tarlinux1:~> tar -czf dir1.tar.gz dir1linux1:~> ls -la | grep *.gz-rw-r--r--+ 1 svajunas svajunas 259 2010-08-25 16:08 dir1.tar.gzlinux1:~> ls dir1dir2linux1:~> tar -xzf dir1.tar.gzlinux1:~> tar -cjf dir1.tar.bz2 dir1linux1:~> ls -la | grep *.bz2-rw-r--r--+ 1 svajunas svajunas 280 2010-08-25 16:17 dir1.tar.bz2linux1:~> ls dir1dir2linux1:~> tar -xjf dir1.tar.bz2Komanda grep, kurią naudojome šiame pavyzdyje, bus aptarta 1.8.5 skyrelyje.

1.8.5. FiltraiFiltrais (angl. filter) vadinamos komandos, kurios iš joms pateiktų duomenų pagal naudotojo suformuluotus kriterijus atrenka tam tikrą jų dalį. Filtrai dažnai naudojami sudarant komandų grandines. Susipažinsime su keliomis dažnai naudojamomis filtravimo komandomis. Komandas išbandysime naudodami išgalvotų duomenų failą studentai.dat, kuriame saugosime studentų pažymėjimų numerius, jų vardus pavardes, studijų programų identifikatorius ir pažymių vidurkius:102978 Jonas Antanaitis EKO 8.50109819 Petras Onaitis EKO 9.35101734 Ona Gražulytė FDM 9.75105291 Antanas Jonaitis STA 9.22103919 Gražina Onaitytė STA 9.84104787 Jonas Jonaitis FDM 9.90109384 Jonas Petraitis MMT 7.25

38

Page 35: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

103796 Pranas Gražulis EKO 8.00105198 Janina Jonaitytė MIM 9.55107894 Jonas Onaitis FDM 9.80109715 Petras Jonaitis MIM 9.15107294 Jonas Gražulis FDM 7.75101284 Pranas Jonaitis MIM 9.70109158 Ona Antanaitytė MIM 9.00104525 Petras Petraitis MMT 8.15107998 Ona Onaitytė STA 9.25102484 Antanas Onaitis MIM 7.00103289 Pranas Onaitis STA 8.15108498 Jonas Pranaitis FDM 7.15106187 Ona Jonaitytė EKO 8.25

Didelės apimties failų peržiūra puslapiais. Nepatogu, kai peržiūrai ekrane pateikiamas visas didelės apimties failas iš karto. Žymiai patogiau tokius failus peržiūrėti atskiromis dalimis, panašiomis į puslapius. Tam skirtos komandos more ir less:more [parinktys] [failų_vardai]less [parinktys] [failų_vardai]Šių komandų parinktys skirtos įvairiems failų peržiūros nustatymams keisti (plačiau sužinosite pasinaudoję komandomis man more ir man less). Paprasčiausiu būdu peržiūrėti failą galima surinkus vieną ir šių komandų pavadinimų ir po tarpo parašius failo vardą. Surinkus vieną iš tokių komandų ekrane pasirodo dalis faile esančio turinio (arba visas turinys, jei failas yra pakankamai mažas). Naudojant komandą more teksto puslapiai vartomi raidės B ir tarpo (angl. space) klavišais. Naudojant komandą less teksto peržiūrai dar galima naudoti ir rodyklių kalvišus. Peržiūra baigiama paspaudus Q klavišą. Naudojant komandą less ekrane rodyto teksto paprastai nebelieka, o naudojant komandą more ekrane lieka visas naudotojo peržiūrėtas tekstas. Komanda less turi daugiau galimybių nei komanda more.

Failų peržiūra nuo pradžios arba pabaigos. Komandos head ir tail atitinkamai yra skirtos pirmųjų ir paskutiniųjų įvedinių srauto (pavyzdžiui, failo) eilučių peržiūrai ekrane:head [parinktys] [failų_vardai]tail [parinktys] [failų_vardai]Parinktys: -n – rodomų eilučių skaičiui nurodyti;

-c – rodomų teksto kiekiui baitais nurodyti; galima naudoti daugiklius: b=512, k=1024, m=1048576.

Jei parinktimi nenurodoma kitaip, komanda head parodo 10 pirmųjų, o komanda tail – 10 paskutiniųjų failo eilučių.

Pavyzdys. Peržiūrime failą studentai.dat:linux1:~> head -n 3 studentai.dat102978 Jonas Antanaitis EKO 8.50109819 Petras Onaitis EKO 9.35101734 Ona Gražulytė FDM 9.75

39

Page 36: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

linux1:~> tail -5 studentai.dat107998 Ona Onaitytė STA 9.25102484 Antanas Onaitis MIM 7.00103289 Pranas Onaitis STA 8.15108498 Jonas Pranaitis FDM 7.15106187 Ona Jonaitytė EKO 8.25linux1:~> head -c5b studentai.datlinux1:~> tail -c10k studentai.datŠablonų paieška tekste. Vartotojo apibrėžtų šablonų (angl. pattern) paieškai tekste naudojama komanda grep:grep [parinktys] šablonas [failų_vardai]Komanda grep šablonų gali ieškoti keliuose failuose iš karto.

Parinktys: -r – rekursyviai paieškai pakatalogiuose (angl. recursively);

-i – didžiųjų ir mažųjų raidžių skirtumo nepaisymui;

-c – bus pranešama, kiek kartų šablonas aptiktas kiekviename faile, ekrane nepateikiant kiekvienos eilutės, kurioje šablonas rastas;

-n – kiekviena išvedinių eilutė pateikiama nurodant jos numerį tekstiniame faile;

-v – invertuota paieška, t.y. ieškoma tokių eilučių, kuriose nėra nurodyto šablono;

-w – nurodoma rezultatuose pateikti tik tas eilutes, kuriose ieškomas šablonas yra atskiras (pilnas) žodis ar frazė;

-x – naudojama išrinkti tik tas eilutes, kurios sutampa su nurodytu šablonu;

-l – nurodo išvesti tik failų, kuriose buvo rastas šablonas, vardus, o ne pačias teksto eilutes;

-L – nurodo išvesti vardus tik tų failų, kuriose nebuvo rastas šablonas.

Komandoje grep gali būti naudojami reguliarieji reiškiniai. Tiesiogiai naudojant komandą grep negalima ieškoti šablonų failų varduose, tačiau tai galima daryti sujungiant komandą ls su komanda grep į komandų grandinę (tokių pavyzdžių turėjome nagrinėdami duomenų glaudinimą).

Pavyzdys. Atlikime įvairių šablonų paiešką faile studentai.dat:linux1:~> grep -i 'petras Petraitis' studentai.dat104525 Petras Petraitis MMT 8.15linux1:~> grep 'Jonait*' studentai.dat105291 Antanas Jonaitis STA 9.22104787 Jonas Jonaitis FDM 9.90105198 Janina Jonaitytė MIM 9.55109715 Petras Jonaitis MIM 9.15101284 Pranas Jonaitis MIM 9.70106187 Ona Jonaitytė EKO 8.25linux1:~> grep -c Jonas studentai.dat6linux1:~> grep -v FDM studentai.dat102978 Jonas Antanaitis EKO 8.50

40

Page 37: 1. Operacinė sistema Linuxpijus/ITP/pi_paskaitu... · 1. Operacinė sistema Linux 1.1. Operacinės sistemos sąvoka Operacinė sistema (angl. operating system, sutrump. OS) – tai

Svajūnas Sajavičius, VU PRAKTINĖ INFORMATIKA Paskaitų konspektai

109819 Petras Onaitis EKO 9.35105291 Antanas Jonaitis STA 9.22103919 Gražina Onaitytė STA 9.84109384 Jonas Petraitis MMT 7.25103796 Pranas Gražulis EKO 8.00105198 Janina Jonaitytė MIM 9.55109715 Petras Jonaitis MIM 9.15101284 Pranas Jonaitis MIM 9.70109158 Ona Antanaitytė MIM 9.00104525 Petras Petraitis MMT 8.15107998 Ona Onaitytė STA 9.25102484 Antanas Onaitis MIM 7.00103289 Pranas Onaitis STA 8.15106187 Ona Jonaitytė EKO 8.25

41