SKYRIUS 4 UNIX Failų Sistema4.1 – Trys (pagrindiniai) Unix failų tipai 4-24.2 – Tekstiniai ir dvejetainiai failai, bitai ir baitai 4-44.3 – Medžio pavidalo failų sistema 4-54.4 – BSD standartiniai katalogai ir jų turinys 4-74.5 – System V Unix’oStandartinių katalogų paskirtis 4-104.6 – Katalogo/dev specialių failų naudojimas: tty 4-144.7 Namų katalogai 4-15
4.1 Trys (pagrindiniai) Unix failų tipaiKas yra failas?Failo supratimas Unix’e yra žymiai platesnis: failas yra bet kuris šaltinis iš kurio duomenys gali būti skaitomi, arba bet kuris “gavėjas”, galintis priimti duomenis. Tokiu būdu, terminas failas nurodo ne tik duomenų saugyklą diskinio failo pavidale, bet kartu reiškia ir bet kurį fizinį įtaisą. Failas yra ir klaviatūra (įvedimo šaltinis), ir displėjus (atvaizdavimo įtaisas), ir kiekvienas spausdintuvas.Unix’e yra trys pagrindiniai failų tipai: paprastieji failai, katalogai ir specialūs failai.PAPRASTIEJI failai yra tai, ką mes suprantame failu siaurąja prasme. Paprastąjį failą sudaro diske (rečiau juostoje) saugomi duomenys. Tai failai, su kuriais dažniausiai tenka dirbti. Pvz., kai jūs teksto redaktoriumi tvarkote dokumentą, tai jūs naudojate du paprastuosius failus: dokumento ir redaktoriaus programos.Kitas failo tipas – KATALOGAS. Katalogas tai failas, kuriame saugoma kitų failų pasiekimui reikalinga informacija. Tik konceptualiai į katalogą įeina kiti failai. Vartotojas nekuria katalogų ir netalpina juose failų. Jis tik naudoja komandas, kurios paveda tuos darbus Unix’ui. Jeigu jūs pažiūrėsite į katalogo ‘vidų’, tai pamatysite ‘miglotą’ informaciją. Geriausias būdas suprasti katalogo sąvoką – įsivaizduoti, kad tai yra rodyklių į kitus failus visuma. Katalogas gali turėti rodykles į kitus katalogus. Tai leidžia organizuoti failus į hierarchinę sistemą. Kaip matysime vėliau, Unix failų sistema yra organizuota kaip didžiulė failų ir katalogų hierarchija.Paskutinis failų tipas – tai SPECIALŪS, arba PRIETAISŲ failai, kurie yra vidinė fizinių prietaisų reprezentacija. Pvz., klaviatūra, displėjus, spausdintuvas, disko tvarkyklė – visi jūsų sistemos prietaisai gali būti pasiekiami kaip failai. Pasiusti duomenis į ekraną, ar į kitą terminalą, galima paprasčiausiai juos rašant į failą, kuris reprezentuoja atitinkamą prietaisą.Pvz.,
Unix’e yra tokie failų tipai:
Tipas ŽymėjimasRegulai (-)Directory (d)Hard Links (-)Soft Links (l)Block special (b)Character special (c)Socket (s)Named pipe (p)Kiekvienas sistemos failas turi taip vadinamą inode bloką, kuriame yra informacija apiefailą. Inode blokas turi tokią struktūrą: —
struct stat {dev_t st_dev; ino_t st_ino; u_short st_mode; short st_nlink; short st_uid; short st_gid; dev_t st_rdev; device */off_t st_size;time_t st_atime;int st_sparel;time_t st_mtime;int st_spare2;time_t st_ctime;int st_spare3;long st_blksize;long st_blocks;long st_spare4;u_long st_gennum;};
/* device inode resides on *//* this inode‘s number *//* protection *//* number or hard links to the file *//* user-id of owner *//* group-id of owner *//* the device type, for inode that is
/* total size of file *//* file last access time */
/* file last modify time */
/* file last status change time */
/* optimal blocksize for file system i/o ops *//* actual number of blocks allocated */
/* file generation number */
Pagrindiniai šios struktūtos laukai st_mode (the permission bits), st_uid – UID, st_gid – GID, ir st_*time (assorted time fields).
Failo laikaiUnix įrašo į inode tris failo laikus, kurie vadinami ctime, mtime, ir atime.ctime rodo paskutinį inode bloko keitimo laiką; mtime rodo paskutinį failo modifikavimo laiką; atime rodo paskutinį kreipimosi į failą laiką.Inod‘o ctime kinta visuomet, kai į failą yra rašoma, arba kinta jo apsaugos ar nuosavybės bitai. Paprastai ctime geriau pažymi failo modifikavimą, negu laukas mtime.Failo laikai yra svarbūs ir įvairiais būdais naudojami sistemos administravimo metu. Pvz., darant diskų kopijas.4.2 Tekstiniai ir dvejetainiai failai, bitai ir baitaiPaprasti failai gali būti labai įvairūs, kadangi labai įvairūs gali būti juose saugomi duomenys. Tačiau, plačiąja prasme, paprastus failus galima skirti į dvi grupes: tekstinius failus ir dvejetainius failus.TEKSTINIAI failai yra paprasti failai, kuriuose saugomi tik ASCII simboliai: duomenys, kuriuos galima surinkti klaviatūros pagalba. Trumpai tariant, skirtingus ASCII simbolius reprezentuoja 128 skirtingi kodai: didžiosios ir mažosios raidės, skaičiai, tarpo simbolis, tabuliacijos simbolis, skyrikliai, o taip pat valdymo simboliai. Praktinė taisyklė: jei paprastame faile saugomi duomenys, kuriuos jūs galite suprasti ir tvarkyti teksto redaktoriaus pagalba, tai tas failas yra tekstinis. Priešingu atveju yra dvejetainis failas.Tekstinio failo kiekvienas ASCII kodas saugomas viename baite. Tokiu būdu failas, turintis 1000 simbolių, yra 1000-ties baitų ilgio. Griežtai kalbant, ASCII kodas naudoja septynis bitus vienam simboliui (baite yra 8 bitai). Kiekvieno baito aštuntas bitas (kairysis) visuomet turi nulinę reikšmę. Apibendrinant galima pasakyti, kad tekstinis failas saugo ASCII simbolius ir naudoja kiekvienam simboliui septynis baito bitus. Dvejetainis failas saugo duomenis, kurių kodams naudojami visi aštuoni kiekvieno baito bitai.Katalogai ir Pakatalogiai Failų organizavimui į hierarchinę sistemą naudojami katalogai. Mes grupuojame failus į grupes ir saugome kiekvieną grupę atskirame kataloge. Kadangi katalogas taip pat yra failas, tai kataloge gali būti saugomi kiti katalogai.
4.3 Medžio pavidalo failų sistemaUnix sistemą sudaro daugybė failų, kurie organizuojami į tam tikrą struktūrą, naudojant katalogus ir pakatalogius. Unix failų sistema pagrįsta vienu pagrindiniu katalogu, vadinamu šakniniu katalogu (ROOT DIRECTORY). Šakninis katalogas yra protėvis visų kitų sistemos katalogų.Pateiktoje schemoje parodytas Unix failų sistemos turinys. Tokius katalogus naudoja Berkeley Unix pagrindu sukurtos sistemos. System V, arba kitu pagrindu sudarytos sistemos gali nežymiai skirtis nuo čia pateiktos. Tai ką jūs matote yra tik nuogas skeletas. Visos Unix sistemos turės ir kitus, sistemų administratorių sukurtus katalogus.
4.3 Medžio pavidalo failų sistemaUnix sistemą sudaro daugybė failų, kurie organizuojami į tam tikrą struktūrą, naudojant katalogus ir pakatalogius. Unix failų sistema remiasi viena pagrindiniu katalogu, vadinamu ROOT DIRECTORY (šakninis katalogas). Šakninis katalogas yra protėvis visų kitų sistemos katalogų.
Pateiktoje schemoje parodytas Unix failų sistemos turinys. Tokius katalogus naudoja Berkeley Unix pagrindu sukurtos sistemos. System V, arba kitu pagrindu sudarytos sistemos gali nežymiai skirtis nuo čia pateiktos. Tai ką jūs matote yra tik nuogas skeletas. Visos Unix sistemos turės ir kitus, sistemų menedžerių sukurtus katalogus.Nesunku pastebėti, kad Unix failų sistema panaši į apverstą medį. Žodis root buvo parinktas tam, kad pabrėžti pagrindinę medžio liemens dalį. Kadangi šakninio katalogo vaidmuo yra labai svarbus, tai šis vardas dažnai turi būti naudojamas komandose. Todėl buvo įvestas žodžio root sutrumpinimas / (slash).Pvz., lskomanda parodys visus specifikuoto katalogo failų vardus. Visus šakninio katalogo failus parodo komandals /Šaknyje esantis failas, arba katalogas nurodomi rašant / prieš atitinkamą vardą. Pav., formalus etc katalogo vardas yra /etc. Katalogas, arba failas, esantis kitame kataloge, nurodomi atskiriant vardus simboliu /. Pav., kataloge /etc yra passwd failas. Formalus šio failo vardas yra /etc/passwd. Panašiai, jeigu /usr kataloge yra kitas katalogas dict, o jame yra failas words, tai formalus šio failo vardas yra /usr/dict/words.Simbolis / turi dvi skirtingas reikšmes. Failo vardo pradžioje jis reiškia šakninį katalogą. Failo vardo viduryje jis atlieka skyriklio vaidmenį.Gerai supratus pateiktą Unix katalogų medį, galima pastebėti, kad, visi katalogai, išskyrus šakninį (/), priklauso kitam katalogui. Tokiu būdu, visi katalogai, išskyrus šakninį, yra pakatalogiai. Paprastumo dėlei mes juos vadiname katalogais.Root kataloge yra trys, etc, tmp, ir usr vardais pavadinti pakatalogiai. Tokie vardai buvo parinkti todėl, kad jie yra trumpi ir lengvai surenkami klaviatūroje. Tačiau jie sunkiai ištariami. Todėl susitarta etc vadinti etcetera, tmp – temp, o usr – user. Pav., failo / et c/pas swd vardas tariamas slash etcetera slash password.
Root katalogasTai visos sistemos pagrindas. Paprastai jame talpinami tik kiti katalogai. Tačiau šaknyje būna vienas svarbus failas: programa, kuri vadinama Unix branduoliu (kernel). Berkeley Unix sistemose ši programa vadinama vmunix (virtual memory Unix). Unix sistemos menedžeris prisijungia prie sistemos root vardu. Dabar yra aiški šito vardo kilmė: root katalogas yra aukščiausiame failų sistemos lygyje.4.4 BSD standartiniai katalogai ir jų turinys
Kelias Turinys
//bin arba /sbin/dev/etc/lib/tmp/sys/proc/stand/usr/bin/usr/games/usr/include/usr/5bin/usr/etc/usr/sbin/usr/lib/usr/man/var/adm/var/spool/var/tmp/usr/usb/usr/local/usr/local/adm/usr/local/bin/usr/local/etc/usr/local/lib/usr/local/sbin/usr/local/src/kernel ‘root’ katalogasminimaliam sistemos funkcionavimui reikalingos komandosterminalus, diskus, modemus, etc. reprezentuojantys įtaisų failaisistemos startavimo ir konfigūracijos failaiC kompiliatoriaus bibliotekoslaikini failai, kurie išnyksta perkrovus sistemąbranduolio generavimo darbinė sritis, konfigūracijos failai (BSD)visų vykdomų procesų atvaizdai (naujesnėse sistemose)Stand-alone utilitos, diskų formatavimo priemonės, etc.vykdomieji failaižaidimai ir kt. (daugelis jų nelabai įdomūs)C programų h-failaiSystem V komandų analogai skirti BSD sistemomssistemos palaikymo komandospapildomos sistemos palaikymo komandosstandartinių UNIX programų palaikymo failaicOn-line manual’ puslapiaiapskaitos failai, resusų naudojimo įrašaiprinterių ‘spooling’ katalogai, UUCP, mail, etc.laikina sritis (filai neišnyksta po sistemos perkrovimo)Berkeley utilitos ir programoslokali programinė įranga (jūsų instaliuoti paketai)lokalūs apskaitos ir šabloniniai failailokalūs vykdomieji failailokalūs sistemos konfiguravimo failai ir komandoslokalūs pagalbiniai failailokalios sistemos palaikymo komandos/usr/local/* išeities kodasfailai, kurie reikalingi branduolio užkrovimui (Solaris)
/bin kataloge saugomos bazinės programos, iš kurių susideda pati Unix sistema. Čia galima rasti daugelį Unix komandų, t.y. failų, kurie vykdomi pagal atitinkamą komandą. Vardas bin gali būti traktuojamas dvejopai: daugelis failų yra dvejetainiai (binary); tai programų saugykla;/dev kataloge yra specialūs failai, kurie reprezentuoja fizinius įtaisus. Paprastai vartotojai nenaudoja šių failų tiesiogiai. Tačiau norint taip daryti – Unix sistema yra atvira (vėliau bus pateiktas pavyzdys)./etc katalogas skirtas sistemos administratoriui. Čia saugomi failai ir programos, reikalingi sistemos valdymui. Plačiausiai žinomas yra sistemos slaptažodžių failas passwd. Kitas žinomas failas yra temcap (kitose sistemose tenninfo), t.y. visų terminalų, kuriuos gali naudoti Unix, techninių apršymų duomenų bazė./lib kataloge yra programuotojų naudojamų programų biblioteka./lost+found katalogą naudoja speciali programa, kuri tikrina Unix failų sistemą. Kai ši programa randa failą, kuris nepriklauso jokiam katalogui (avarinis atvejis), tas failas talpinamas į llost+found katalogą. Tokiu būdu sistemos administratorius gali priimti tolimesnius sprendimus./sys kataloge yra taip vadinami sistemos išeities failai. Jie gali dominti sistemos administratorių ir programuotojus./tmp katalogas – tai laikina saugykla.Kiekvienas gali laikinai talpinti čia savo failus, tačiau laikas-nuo-laiko visi failai šalinami automatiškai. Paprastai čia talpinami laikini failai, kurie reikalingi programos vykdymui. Pav., naudojant vi redaktorių, redaguojamo failo kopija laikoma l tmp kataloge./usr kataloge yra visa eilė svarbių pakatalogių. Tai vienas iš svarbiausių šaknies pakatalogių. Jis pats suskirstytas į visą eilę pakatalogių./usr/bin katalogas, kaip ir jo bendravardis šaknyje, skirta vykdomųjų failų laikymui. /usr/dict – tai Unix žodyno naudojami failai. Faktiškai – tai žodžių sąrašas. /usr/games – tai žaidimų ir kitų atrakcijų katalogas./usr/include katalogas saugo taip vadinamus C programavimo kalbos ‘include’ (arba £h’) failus, kuriuos naudoja programuotojai įvairiose programose kompiliavimo metu./usr/lib – tai analogiška /lib’ui biblioteka, svarbi tik programuotojams.
/usr/local – tai sistemos administratoriaus patogumui skirtas katalogas, kuriame gali būti saugomos vietinės reikšmės programos ir dokumentacija./usr/man katalogas turi visą eilę pakatalogių ir failų, kuriuos naudoja “Unix on-line manual”, t.y. operatyvi chelp’ tipo dokumentacijos sistema./usr/spool – pakelės stotelės vaidmenį atliekantis katalogas. Čia laikomi duomenys, kurie buvo kur nors pasiusti. Pav., kai jūs spausdinate failą, tai tas failas, kartu su sistemine informacija laikomas šiame kataloge. Failas laikomas čia iki tol, kol galės būti atspausdintas. Lygiai taip pat čia patenka ir pasiusti elektroniniu paštu laiškai, kol jie iš tikrųjų ‘palieka’ kompiuterį.
/usr/src kataloge saugomas jūsų Unix sistemos išeities kodas. Jeigu jūsų Unix yra licenzijuotas (galima pirkti pačią Unix sistemą,arba jos licenziją), tai čia saugomas išeities kodas, leidžiantis “žvilgterėti j sistemos vidų”, daryti pakeitimus ir perkompiliuoti sistemą./usr/ucb – čia laikomos programos, kurios buvo sukurtos Kompiuterių mokslo departamente, University of California at Berkeley.4.5 System V Unix’o Standartinių katalogų paskirtis/devThe device directory contains all files that represent peripheral devices. Subdirectories of /dev hold the special files for the access modes of a given type of device./dev/dskThe disk directory holds the device files for disks./dev/mtThis directory contains the device files for tapė drives./dev/termThis directory holds the device files for terminais./dev/ptsThis directory contains the device files for pseudo-terminals. A pseudo-terminal mimics a a terminai although rather than being connected to an actual terminai it iš connected to a process. Pseudo-terminals are used by networking programs such aš rlogin./dev/ŠAThis directory iš now obselete./etcThe etc directory holds system configuration files aš well aš some administrative files./etc/bkupThis directory iš used to store dump dates./etc/defaultThe default directory holds files containing the default values for various commands./etc/init.dThis directory holds shell scripts that are used to transition between run levels in thesystem. These scripts are run when the system iš booted and brought into multi-usermode./etc/rc.dThis directory contains all the files and commands associated with all the run levels for the system. rcO.d, rcl.d, rc2.d, and rcS.d all link back to this file for information.
/etc/rcO.dFiles in this directory are associated with run level O, which iš actually a powered downstatė./etc/rcl.dThis directory holds files that are executed to bring the system to run level l, or single-user mode. This run level iš also referred to aš “s” or “S”./etc/rc2.dThis directory contains files used to transition the system to run level 2. Level 2 iš alsoknown aš muliuser mode and iš the normai mode for the system./etc/rc3.dThis directory contains files used to movė the system to run level 3./etc/skelThis directory contains Standard initialization files for the system./sbinThe sbin directory contains system administration files that are needed during the boot process./homeUsers home directories are typically subdirectories of the /home directory./mntMount directory. An empty directory conventionally designed for temporarily mounting disk partitions./tmpTemporary directory, available to all users aš a scratch directory. The system administrator should see that all the files in this directory are deleted occasionally. Normally, one of the UNIX startup scripts will clear /tmp.
/usrThis directory typically contains files that are used by the system, aš well aš subdirectories containing files that need to be shared likę man pages and user commands./usr/binTypically holds Standard Unix utility programs. Under BSD this directory iš called /bin./usr/sbinLikę /sbin this directory contains Utilities for system administration. The Utilities foundin /usr/sbin are usually needed after the system iš up rather than at boot time./usr/gamesThis directory contains the Standard UNIX games collection. Some sites choose to remove this directory./usr/includeInclude files. This directory contains C-language header files which define the C programmer’s interface to Standard system features and program libraries. For example, it contains the file stdio.h, which defines the user’s interface to the C Standard I/O library. The directory /usr/include/sys contains operating system include files./usr/libLibrary directory, for public library files. Among other things, this directory contains the Standard C libraries for mathematics and I/O. This directory may also contain certain configuration files for UNIX services such aš mail. Finally, subdirectories of /usr/lib contain command and configuration files for various Standard UNIX facilities likę uucp and lex and optional softvvare products./usr/shareThe share directory contains files that are meant to be shared between systems./usr/share/manManual pages directory. This directory contains the online version of the UNIX reference manuals. It iš divided into subdirectories for each section of the manual. Under BSD and some System V implementations, /usr/man contains several man subdirectories holding the raw source for the manual pages in that section and the cat subdirectories storing the processed versions. The latter can be cleared to save space; they will be filled only aš manual pages are actually accessed. If present, the file /usr/man/whatis contains a database used by the whatis and apropos (man -k) commands.
/usr/ucbA directory that contains Standard UNIX commands originally developed at the University of California, Berkeley. This directory sometimes includes subdirectories for seperate file types (bin for binaries, lib for libraries, and so on)./varThis directory holds spooling directories that are kept in /usr/spool under BSD./var/admAdministrative directory (home directory of the special adm user). This directory contains the UNIX accounting files and various system logging files./var/cronThis directory contains files relevant to the cron daemon.
4.6 Katalogo /dev specialių failų naudojimas: ttyVisi specialūs failai saugomi /dev kataloge. Pamatyti šių failų vardus leidžia komandaIš /devŠiuos failus naudoja sisteminės programos, tačiau apie keletą jų verta žinoti plačiau.Visi failai, kurie prasideda “tty”, reprezentuoja terminalus. Pav., terminalą ttyOl reprezentuoja spec. failas /dev/ttyOl. Jeigu jūs rašysite informaciją į šį failą, ta informacija bus perduota į atitinkamo terminalo ekraną.Užduotis. Komanda who leidžia sužinoti, kokį terminalą naudoja jūsų kolega. Jusgalite naudoti cp (copy) komandą, kuri kopijuoja vieną failą į kitą. Jeigu failescary yra pranešimas kolegai, tai tą pranešimą galite perduoti į kolegos terminaloekraną komanda cp scary /dev/ttyOl. Be to jūs galite sužinoti jūsų terminaląreprezentuojančio spec. failo vardą komanda tty. Rezultatas: ?
Visuomet galima naudoti /dev/tty failą, kaip jūsų terminalo sinonimą. Jei programa rašo duomenis į failą, tai vietoje failo vardo nurodžius /dev/tty, duomenys bus išvedami į jūsų ekraną.Naudingiausias /dev katalogo failas yra nuli. Sis failas reprezentuoja neegzistuojantį įtaisą. Skaitant iš /dev/null įtaiso, ‘nieko’ nenuskaitoma; rašant į /dev/null, rašymas ‘atšaukiamas’. Pav., jeigu programa updatef iles atnaujina duomenis tam tikruose failuose ir darbo protokolą išduoda į ekraną, tai pagal komandą updatef iles > /dev/null ši programa atliks savo ‘darbą’, tačiau protokolo išdavimas bus ignoruotas.4.7 Namų katalogaiUnix sistemos sprendimas – skirti kiekvienam vartotojui H ome Directory. Tai su vartotojo userid asocijuotas ir vartotojo globojamas katalogas. Sistemos administratorius, registruodamas vartotoją, sukuria jam namų katalogą. Šio katalogo vardas saugomas sistemos slaptažodžių faile. Vartotojui prisijungus, jis automatiškai ‘nuleidžiamas’ į savo namų katalogą. Čia vartotojas turi teisę elgtis savo nuožiūra.Tradiciškai namų katalogas kuriamos šakoje /usr, tačiau tai nėra taisyklė. Paprastai šio katalogo vardas sutampa su ‘userid’. Dažnai administratoriai vartotojus skirsto į grupes, pav., undergrad, grad, guests, staff ir pan. ir home katalogus kuria atitinkamose šakose. Vartotojui prisijungus, jo aplinkos kintamasis $HOME įgyja namų katalogo vardą. Be to, C-shell’as leidžia naudoti namų katalogo trumpinį ~ (tildė).Užduotis. Koks jūsų namų katalogo vardas vardas? _Pažiūrėkite $HOME kintamojo reikšmę (komanda echo $HOME), arba pažiūrėkite trumpinio ~ reikšmę (komanda echo ~).
SKYRIUS 5 Failų prieinamumas
5.1 – Failų charakteristikos. Komanda l s 5-25.2 – Realūs bei efektyvūs vartotojų bei grupiųidentifikatoriai 5-65.3 – Failo prieinamumo nustatymas 5-85.4 – chmod komanda 5-95.5 – umask komanda 5-115.6 – chgrp, chown komanda 5-12
5.1 Failų charakteristikos. Komanda ls
Šiame skyriuje jūs susipažinsite su UNIX komandomis, skirtomis failų bei katalogų charakteristikų peržiūrai, išmoksite keisti bei nustatyti įvairias failų prieinamumo galimybes.Su kiekvienu failu yra surišta eilė charakteristikų, kurias galime sužinoti naudodami l s komandą. Jos išvedamų į ekraną charakteristikų kiekį nusako komandos opcijos. Pavyzdžiui, įvykdžius komandą:Iš -lgsF failo-vardas matysime tokias charakteristikas:
-rwxrw-rw-
petringa
cust
512
Jan 30 00:14
1.
2.
3.
4.
5.
6.
1. Failo užimamų blokų skaičius2. Failo prieinamumas – kas ir ką gali daryti su failu/katalogu3. Failo ryšių kiekis4. Failo savininko vardas5. Failo savininko grupės vardas6. Failo dydis baitais7. Failo paskutinio modifikavimo data8. Failo vardasAntras laukas nusako failo tipą bei prieinamumą. Trečiame lauke yra nurodytas ryšių kiekis. Jis rodo, kiek vardų katalogų medyje yra surišta su tuo pačiu fiziniu failu. UNIX yra galimybė kreiptis į tą patį failą iš skirtingų vietų skirtingais vardais. Šie ryšiai yra sukuriami naudojant In komandą. Ketvirtas laukas rodo failo savininką. Kiekvienas UNIX failas turi savininką, juo yra vartotojas, sukūręs šį failą. Penktas laukas rodo grupę, kuriai priklauso failo savininkas. Septintame lauke yra nurodomas failo.5-2Failų prieinamumas
paskutinės modifikacijos laikas. Šį laiką naudoja koordinatorius make, f ind komanda ir kt. Failo vardas, kuris nurodomas aštuntame lauke, gali turėti iki 14 simbolių (iki 255 BSD UNIX ). UNIX nereikalauja, kad failo vardas būtinai turėtų išplėtimą, tačiau kai kurios programos, pavyzdžiui C kalbos kompiliatorius reikalauja, kad failų vardai turėtų plėtinį ” . c”. UNIX draudžia suteikti failui vardą “.” arba “..”, nes šie vardai atitinka einamąjį arba tėvo katalogą.Failo tipą nusako antro lauko pirmas simbolis, tai yra:
Simbolis Prasmė– paprastas( regular ) failasd katalogasb blok-oriėntuotas specialus failasc simbolinio tipo specialus failas1 simbolinis ryšysp Vamzdis (?) (pipe)s šakutė (socket)Užduotis:a)Įvykdykite komandąIš -al ..Kokius matote katalogus, kas jų savininkai, kokiai vartotojų grupei jie priklauso?b)Įvykdykite komandąls -al /devKokio tipo failai yra šiame kataloge?c) Įvykdykite komandąls -al /binKokio tipo ir dydžio failus matote?
Sekantys devyni simboliai charakterizuoja failo prieinamumą. Sistemos administratorius turi visas prieinamumo galimybes peržiūrėti vartotojų failus bei katalogus, nežiūrint į tai, kokios jos yra užduotos.Lentelėje pateiktame pavyzdyje nurodytos tokios failo prieinamumo reikšmės: rwxrw-rw-Šie prieinamumo simboliai yra skirstomi į tris grupes po tris simbolius ir nusako priėjimo prie failo galimybes: pirmi trys simboliai galimybes vartotojui – failo savininkui, antri trys – vartotojams, kurie priklauso tai pačiai grupei kaip ir failo savininkas, paskutiniai trys -likusiems vartotojams. Čia r raidė žymi galimybę failą skaityti, w – failo rašymo galimybę, x – vykdymo galimybę. Brūkšnelis rodo, kad atitinkamos galimybės nėra.Pavyzdžiui:rwxrw-r– prieinamumo reikšmės žymi, kad failo savininkas turi teisę rašyti skaityti irvykdyti šį failą, grupės vartotojai gali skaityti ir rašyti, o visi kiti -tik skaityti.Visos šios galimybės yra kiek skirtingai traktuojamos priklausomai nuo failo tipo.•Paprastam failui skaitymo galimybė reiškia, kad procesas gali failą skaityti, rašymo galimybė, – kad procesas gali keisti failo turinį, vykdymo galimybė, – kad procesas gali šį failą vykdyti.•Katalogui skaitymo galimybė reiškia, kad procesas gali skaityti katalogą( tai yra perskaityti sąrašą failų, esančių tame kataloge). Rašymo galimybė reiškia, kad procesas gali išmesti failus iš katalogo arba juos įkelti į katalogą. Vykdymo galimybė reiškia, kad procesas gali prieiti prie failų esančių kataloge arba jo pakatologiuose.•Specialiam failui skaitymo galimybė reiškia, kad procesas gali skaityti iš failo, naudodamas kreipinį read(). Analogiškai rašymo galimybė reiškia, kad procesas gali rašyti į failą, naudodamas kreipinį write(). Vykdymo galimybė neturi prasmės.
Užduotis:l s komanda išvedė tokius rezultatus:drwxrw-r— 2 tomas userl 512 Jan 30 05:14 kat1drwxr—r— 2 petras user2 512 Jan 30 08:14 kat2 Vartotojas Domas priklauso grupei userl, o vartotojas Elijus grupei user3. Kokius veiksmus gali atlikti šie vartotojai kataloguose kati bei kat2?Užduotis:f ile komanda atlieka failų identifikavimą. Duokite komandąfile *Paskaitykite komandos file Manual puslapį.
5.2 Realus bei efektyvus identifikatoriaiSu kiekvienu vykdomu procesu yra surišami keturi identifikatoriai: realus vartotojo identifikatorius efektyvus vartotojo identifikatorius realus grupės identifikatorius efektyvus grupės identifikatorius
Su šiais identifikatoriais irgi yra surištos tam tikros prieinamumo galimybės. Vartotojui prisijungiant prie sistemos startuoja shelPo procesas, kuris turi nustatytus vartotojo realų ir efektyvų identifikatorius, sutampančius su vartotojo identifikatoriumi, realų ir efektyvų grupės identifikatorius, sutampančius su vartotojo grupės identifikatoriumi. Kadangi failo prieinamumo reikšmės gali būti skirtingos vartotojui, grupei bei kitiems vartotojams, tai juos taikant yra atliekamas tikrinimas:– jei proceso efektyvus vartotojo identifikatorius yra toks pats kaip failo savininkoidentifikatorius, tai yra pritaikomos vartotojui nustatytos prieinamumo galimybės,-jei proceso efektyvus vartotojo identifikatorius skiriasi nuo failo savininko identifikatoriaus, bet efektyvus grupės identifikatorius sutampa su failo grupės identifikatoriumi, tai pritaikomos grupės prieinamumo galimybės,– likusiais atvejais taikomos kitiems vartotojams skirtos failo prieinamumogalimybės.Visos šios prieinamumo galimybės leidžia apsaugoti failus nuo nesankcionuoto priėjimo bei naudotis bendrais failais, jei vartotojai priklauso tai pačiai vartotojų grupei.Vykdomiesiems failams UNIX sistemoje gali būti nustatytas specialus bitas, s (the sėt user/group id bit), liepiantis nustatyti vartotojo identifikatorių arba grupės identifikatorių. Jis atžymimas s raide vartotojo arba grupės laukuose vietoje simbolio x. Jei failui yra nustatytas šis bitas, tai failo vykdymo metu efektyvus vartotojo identifikatorius arba efektyvus grupės identifikatorius yra keičiamas į vykdomo failo savininko identifikatorių arba jo grupės identifikatorių, o tai suteikia vartotojui šio failo vykdymo metu tokias pačias teises kaip ir failo savininkui. Tai įgalina vartotoją keisti įrašą slaptažodžių faile, nors šio failo savininkas yra root.Šie bitai kaip ir failo prieinamumo galimybės failams gali būti nustatomi naudojant chmod komandą.Dar sykį prisiminkite failų prieinamumo nurodymus ir jų prasmę:Permission File Directoryr read read a file list files in …w write write a file create file in …rename file in …delete file …x execute execute a read a file in … shell script write to a file in … execute a file in … execute a shell script in …
5.3 Failo prieinamumo nustatymasNaujai kuriamiems failams prieinamumo galimybės nustatomos pagal nutylėjimą, tačiau vartotojas gali jas užduoti ir pats. Failams prieinamumo galimybės gali būti nustatomos ir keičiamos šiomis komandomis:
Komanda Paskirtischmod Keičia failo prieinamumo galimybesumask Nustato prieinamumo galimybes naujai kuriamam failuichgrp Keičia grupę, kuriai priklauso failaschown Keičia failo savininką
5.4 Komanda chmodFailo prieinamumo galimybes galima keisti komandachmod -Rpakeitimas {failo-vardas}R raktas rodo, kad nustatymas galios rekursyviai, t.y. visuose katalogo pakatalogiuose. Lauke {failo vardas} gali būti nurodomi failai bei katalogai, o “pakeitimu” yra nurodoma kokiems vartotojams ir kas yra nustatoma. Vartotojas žymimas vienu simboliu:
u savininkasg grupeo kitia visiŠis simbolis skelbia, kokiems vartotojams yra nustatomas failo ar katalogo prieinamumas. Pats prieinamumas nusakomas raide:
r skaitytiw rašytiX vykdytis nustatyti vartotoj o ar grupės identifikatorių Prieinamumas gali būti nurodomi tiek aukščiau išvardytomis raidėmis, tiek ir skaičiais: jei atitinkama galimybė leidžiama yra l, o jei ne – 0. Vienetuku-nuliukų seka vėliau gali būti užrašoma kaip aštuntainis skaičius. Pavyzdžiui:Simbolių keitimas skaičiaisrwx r– r-x simbolinis111 100 101 7 4 5 745 skaitmeninis
5.6 Komandos chown bei chgrpNaujų vartotojų grupių sukūrimą UNIX sistemoje vykdo sistemos administratorius. Sukūrus naują grupę, vartotojai gali būti paskelbiami šios grupės nariais. Vartotojas gali priklausyti kelioms grupėms.Norint sužinoti, kokių grupių nariu yra vartotojas, jis gali panaudoti komandą groups [ vartotojo-identifikatorius ]Nenurodžius vartotojo-identifikatoriaus yra išvedamas grupių sąrašas vartotojui, įvykdžiusiam šią komandą.Vartotojas gali pakeisti grupę, kuriai priklauso failas, įvykdydamas komandą chgrp -R grupės-identifikatorius {failo-vardas}vartotojui leidžiama pakeisti grupę tik tiems failams, kurių savininku yra jis pats, o sistemos administratoriui leidžiama keisti bet kurio failo grupę. Komandoje gali būti nurodytas failų sąrašas.-R raktas liepia keisti grupę rekursyviai visiems katalogo failams. Failo savininką gali keisti sistemos administratorius, naudodamas komandąchown -R naujas-vartotojas {failo-vardas}.Vietoje failo gali būti nurodomas ir katalogas. Kurdamas namų katalogą naujam vartotojui, sistemos administratorius visuomet privalo keisti šio katalogo savininką bei grupę, nes, administratoriui sukūrus naują katalogą, jis pradžioje ir priklausys administratoriui bei turės administratoriaus grupės identifikatorių. Tas pats bus ir su failais, kuriuos administratorius turi įkelti į vartotojo katalogą: . cshrc . login .logout. Taigi, administratorius privalo vykdyti chown bei chgrp komandas su
opcijomis -R, kad vartotojas butų paskelbtas katalogo bei failų savininku, o grupė nustatyta tokia, kokia yra vartotojo grupė.Jei vartotojas priklauso kelioms grupėms, tai jis gali pakeisti grupę, vykdydamas komandąnewgrp grupės-identifikatoriusŠiuo atveju bus sukuriamas naujas shell’o procesas, kuris turės naują grupės identifikatorių, o pradinis shelPo procesas lauks šio naujo proceso pabaigos.
SKYRIUS 6 Failų sistemos komandos6.1 – UNIX katalogų ir kelių klasifikacija 6-26.2 – Absoliutus kelias iki einamojo katalogo 6-36.3 – Naujų katalogų sukūrimas 6-36.4 – Katalogo turinio peržiūrėjimas naudojant įvairiasopcijas 6-46.5 – Perėjimas į kitą katalogą 6-46.6 – Failų perkėlimas į kitą katalogą 6-56.7 – cat komandos teikiamos galimybės 6-66.8 • Informacinių srautų perskirstymas 6-66.9 – Failo turinio peržiūrėjimo komandos 6-8
6.10 – Failų kopijavimas 6-96.11 – Failų ir katalogų naikinimas 6-106.12 – Failo spausdinimas 6-10– wc komanda 6-11
6.1 UNIX katalogų ir kelių klasifikacijaKatalogai (Directories): UNIX katalogai apjungti į medžio tipo struktūrą. Kataloguosesaugomi žemesnio lygio katalogai ir failai.Šakninis(Root) katalogas:yra medžio viršuje ir žymimas / simboliu.Namų(Home) katalogas: jis dar vadinamas login katalogu. Sukuriamas kiekvienamsistemos vartotojui ir į jį patenkama automatiškai, prisijungus prie sistemos.
Einamasis (Current):Keliai (pathnames):
katalogas, kuriame jus esate einamuoju momentu. Jis dar vadinamas darbiniu katalogu.absoliutūs (absolute), jei jie nurodyti šakninio katalogo atžvilgiu ir prasideda / simboliu. Pavyzdžiui, /home/saule/staff. Skirkite dvi / simbolio reikšmes – jis žymi šaknį ir kartu yra skyriklis.
santykiniai (relative), jie nurodomi einamojo katalogo atžvilgiu. Pavyzdžiui., jeigu einamasis katalogas yra saule, tai jo atžvilgiu gali būti nurodytas kelias stud/os/fuksas.
6.2 Absoliutus kelias iki einamojo katalogopwd (print working directory)pwd komanda parodo pilną kelią nuo šaknies iki einamojo katalogo. Pasitikrinkite koks jūsų einamasis katalogas. Tai viena iš nedaugelio komandų, neturinti raktų (opcijų). Be to ši komanda (ji yra vidinė shell‘o komanda) galioja visuose plačiai naudojamuose shelPuose csh, tcsh, sh, ksh ir pan.Kokiu atveju ši komanda neveiks?6.3 Naujų katalogų sukūrimasKomanda:mkdir katalogo_yardasŠi komanda einamajame kataloge sukuria katalogą. Užduotys:Namų kataloge sukurkite katalogus: Iab2, Iab3, Iab4 , Iab5.Koks sukurtų katalogų prieinamumas, kas jų savininkas, kokia grupė? p.s. pagal nutylėjimą (sitemos nustatytas) prieinamumas katalogams yra 777, o failams 666. Iš šių reikšmių yra minusuojama umask reikšmė ir tokiu būdu gaunama naujai sukurtų objektų prieinamumo reikšmė.Uždrauskite sukurtų katalogų Iab2, Iab3, Iab4 , Iab5 prieinamumąkitiems vartotojams, išskyrus jūsų grupę.
6.4 Katalogo turinio peržiūrėjimas naudojant įvairias opcijasl s katalogasŠi komanda leidžia, naudojant įvairius raktus (opcijas) gauti platesnę arba siauresnę informaciją apie failus bei katalogus, esančius nurodytame kataloge.Užduotis:Naudodami man susipažinkite su Iš komanda ir jos pateikiamais rezultatais. Iškomanda peržiūrėkite einamojo katalogo turinį. Panaudokite įvairias opcijas.Susipažinkite su komanda dir.Žiūrėti failų tipus ir i-node numerius [Iš -Fi]Žiūrėti kiekvieną pakatalogį ir jų turinius rekursiškai [Iš -R /kernai]6.5 Perėjimas į kitą katalogącd katalogascd komanda naudojama perėjimui į kitą katalogą. Pavyzdžiui įvykdžiuscd labi labi taps einamuoju katalogu,cd . . perkels medžiu aukštyn,cd . . / . . perkels medžiu aukštyn per du lygius,cd grąžins jus į home katalogą,cd / perkels į šakninį katalogą.
Šioje komandoje esantys du taškai žymi perėjimą katalogų medžiu vienu lygiu aukštyn, vienas taškas naudojamas einamojo katalogo nurodymui, ~ ženklas ir po jo sekantis vartotojo login vardas leidžia pereiti į nurodyto vartotojo namų katalogą. Užduotis:Pereikite į katalogą Iab2Įvykdykite komandaspwdls -adirs Kokia tai komanda, vidinė ar išorinė?dirs -l6.6 Failų perkėlimas į kitą katalogąmv komanda naudojama perkeliant failą arba pakeičiant katalogo(failo) vardą. Perkeliant failą iš einamojo katalogo į pakatalogį vykdoma komanda:mv failas pakatologis/Šiuo atveju failas bus perkeltas tuo pačiu vardu.Perkeliant galima keisti failo vardą: mv failasl pakatologis/ failas2Katalogas, į kurį vykdomas failo perkėlimas gali būti nurodomas nurodant absoliutų kelio vardą.Užduotis:Perkelkite failus iš savo namų katalogo į katalogą Iab2
6.7 cat komandos teikiamos galimybėsSistemoje UNIX naują failą galima sukurti įvairias būdais, vienas paprastesnių yra jo įvedimas iš klaviatūros prieš tai surinkus cat komandą:cat > naujo-failo-vardas Po to yra įvedami failo įrašai. Įvedimo pabaiga nurodoma ^ D klavišais.Užduotis:Pereikite į katalogą Iab3.Komanda cat sukurkite naują failą vardu pavyzdi, kuriame talpinsime 3 eilutesžemiau pateikiamo teksto:cat > pavyzditai pirma eilutetai antra eiluteir trečia eilute^Dcat komanda dažnai naudojama tekstinių failų peržiurai. Tai atliekama surinkus komandącat failo-vardasBe to, naudojant cat komandą galima apjungti failus ir jų turinys parodomas ekrane. Failų apjungimas yra tikroji šios komandos paskirtis.
Užduotis:Sukurkite failą pavyzd2, [ kurį įrašykite sekantį tekstą:O tai ketvirtoji eilutė.^DAtlikite failų apjungimą, naudodami komandą:cat pavyzd1 pavyzd26.8 Informacinių srautų perskirstymasUNIX sistemoje komandos pagal nutylėjimą duomenis ima iš klaviatūros (standartinis įvedimo failas), o komandų įvykdymo rezultatai yra nukreipiami į ekraną (standartinis išvedimo failas). Komandų vykdymo rezultatai gali būti nukreipiami į failą, panaudojant simbolį >. Tokią konstrukciją jau panaudojome kurdami failus pavyzdi pavyzd2. Dabar nukreipkime failų pavyzdi ir pavyzd2 apjungimo rezultatą į failą catout:cat pavyzdi pavyzd2 > catoutPastaruoju atveju komandos įvykdymo rezultatų ekrane nematysim, bus sukurtas naujas failas catout. Jį galima peržiūrėti komanda:cat catout
Pastaba: Jei nukreipiate standartinį išvedimą į failąkomanda > failo-vardastai:• komandos įvykdymo rezultatų ekrane nebus, jie bus f aile/a*70-vardas;•jei tokio failo failo-vardas dar nebuvo, jis bus sukurtas;•jei failas failo-vardas jau buvo, jo turinys bus išgadintas.Simbolis > nukreipia standartinį išvedimą (terminalo ekranas) į nurodytą failą.Atitinkamai norint įvesti duomenis ne iš klaviatūros, o imti iš failo, yra naudojamassimbolis <. Todėl komandakomanda < failasl > failas2 žymės tai, kad duomenys bus imami iš failo failasl, o rezultatai talpinami faile failas2.
6.9 Failo turinio peržiūrėjimo komandosTai: more, head ir tail komandos.more komanda, taip pat kaip ir cat komanda, parodo failo turinį ekrane. Ji naudotina ilgų failų peržiūrai, kadangi more komanda išveda informaciją į ekraną puslapiais:more failo-vardasvPereiti prie kito puslapio galima spaudžiant tarpo klavišą. Šią komandą galima naudoti kitų komandų išvedamų rezultatų peržiūrai. Pavyzdžiui:ls -al | more
Panaudojus komandą head galima pamatyti pirmas 10 failo eilučių: head failo-vardasPanaudojus komandą tail galima pamatyti paskutines 10 failo eilučių: tail failo-vardasUžduotis:Peržiūrėkite turinį su komanda cat ir more.Panaudokite komandas head ir tail katalogo /bin turinio peržiūrėjimui.
6.10 Failų kopijavimasFailo kopijavimui naudojama komanda cp. Įvykdžius komandą: cp failasl failas2bus gauta failo failasl kopija. Aplamai reikėtų prisiminti bendrą katalogų kopijavimo komandos formącp -r katalogasl katalogas2Komanda kopijuoja katalogasl ir visa kas j ame yra į katalogą katalogas2. Pastarasis katalogas sukuriamas, jeigu jo nėra. Jeigu katalogas2 yra, tai jame bus sukurtas pakatalogis katalogasl.Vietoje kopijavimo komandų dažnai naudojama failų ir katalogų surišimo komanda In.
6.11 Failų ir katalogų naikinimasrmdir komanda pašalina tuščius katalogus iš einamojo katalogo, rm -opcijos failasir jos opcijos leidžia naikinti failus. Reikia atsiminti, kad atstatyti išmestus katalogus arba failus galima tik tuo atveju, jei sistemos administratorius yra atlikęs atminties išsaugojimą.Ši komanda naikina failą ir jo turinį. Įvykdykite komandą:6.12 Failo spausdinimas
Norint failą spausdinti popieriuje, naudojama komanda lpr (lp) : lpr failo-vardasSpausdinimas galimas tik esant pajungtam spausdintuvui.lpq komanda naudojama printerio eilės peržiūrėjimui: lpqKomanda Iprm naudojama norint išmesti tam tikrą užduotį iš spausdinimo eilės. Užduoties numerį galima sužinoti komanda lpq, o po to naudoti komandą lprm uzduoties-nr6.13 wc komandaŠios komandos pagalba galima suskaičiuoti eilučių, žodžių ir simbolių kiekį viename arba keliuose failuose:wc failas l failas2 … Kontroliniai klausimai.• Kaip galima sužinoti, kokie katalogai yra einamajame kataloge?• Kaip sužinoti, ar failas yra vykdomasis?• Kaip atžymimi specialūs failai, ryšiai (link)?• Kaip peržiūrėti kito katalogo turinį, nekeičiant einamojo katalogo?• Kaip perkelti visus failus į kitą katalogą?• Kaip perskirstyti įvedimo/išvedimo duomenis?• Kaip įrašyti paskutines failo eilutes į naują failą?Kaip išnaikinti katalogą su visu jo turiniu?
SKYRIUS 7 vi redaktorius7.1 – Trumpai apie vi 7-27.2 • Redaktoriaus darbo režimai 7-37.3 – vi komandos:kursoriaus valdymas (komandinis režimas) 7-67.4 – Papildomos kursoriaus valdymo komandos: 7-77.5 – vi komandos: teksto išmetimas 7-87.6 – vi komandos: koregavimas 7-97.7 – vi komandos: veiksmo atstatymas 7-107.8 – vi komandos: eilučių sujungimas 7-117.9 – Redagavimo pabaiga 7-12
7.10 – Eilučių numeriai 7-147.11 – vi komandos: markeriai 7-157.12 – vi komandos: kiti įvedimo režimai 7-167.13 – vi komandos:išpiovimas, kopijavimas, perkėlimas 7-177.14 – vi komandos: kontekstinė paieška 7-19
7.1 Trumpai apie vivi (Visual Interactive) – tai vienas iš populiariausių UNIX tekstų redaktorių. Visų pirma jį rasime visose UNIX sistemose. Juo galima pasinaudoti tais momentais kai kiti tekstų redaktoriai yra neprieinami (pavyzdžiui perinstaliuojant sistemą). Antra puiki šio redaktoriaus savybė yra ta, kad jis naudoja mažai atminties, o tai yra svarbu esant perkrautam tinklui. Trečia – vi komandos yra nusakomos raidėmis-skaičiais, todėl jį galima naudoti bet kokiame terminale ar darbo stotyje. Istoriškai vi redaktorius yra UNIX redaktoriaus ex modifikacija. Vi redaktoriaus komandos yra jautrios registrui (reikia atidžiai naudoti mažąsias ir didžiąsias raides).Redaktorius iškviečiamas taip: vi failo-vardasČia failo-vardas – tai vardas failo, kurį norime redaguoti. Ekrane pasirodys nurodyto failo eilutės, arba ekranas liks tuščias, jei kuriamas naujas failas. Failo vardo nenurodžius, vi redaktorius užklaus jo jums baigus redagavimą.Užduotis:Pradedame kurti failą vardu sample. Įveskite komandą: vi sample Ekranas išvalomas, nes kuriamas naujas failas. Vi redaktorius naudoja ~ simbolį tuščių eilučių pažymėjimui bei kursorium atžymi tą teksto vietą, kuri bus veikiama tolimesnių komandų ar įvedamo teksto. Lango apačioje yra pranešimų eilutė, kurioje nurodomas failo vardas bei būvis.
7.2 Redaktoriaus darbo režimai:Redaktorius turi du darbo režimus: komandinį bei teksto įvedimo.• komandinis. Naujai iškvietus redaktorių, jis visuomet būna komandiniame režime, oiš teksto įvedimo režimo į komandinį režimą yra pereinama nuspaudus Esc klavišą.Komandiniame režime redaktorius priima, interpretuoja ir vykdo iš klaviatūrospateikiamas komandas, keičia kursoriaus padėtį, išpiauna arba kopijuoja tekstą,vykdo teksto paiešką.• teksto įvedimo. Šiame režime įvedamas tekstas. Iš komandinio režimo į tekstoįvedimo režimą pereinama nuspaudus vieną iš lentelėje nurodytų klavišų:
klavišas Veiksmasa įterpti tekstą į dešinę nuo kursoriaus,A įterpti tekstą eilutės gale,i įterpti tekstą į kairę nuo kursoriaus,I įterpti tekstą eilutės pradžioje,o įterpti eilutę žemiau einamosios eilutės,O įterpti eilutę prieš einamąją,R rašoma ant teksto.Vi redaktorius niekaip neindikuoja, kokiame režime jis randasi. Paspaudus vieną iš lentelėje nurodytų klavišų jokio pokyčio ekrane nesimato, redaktorius persijungęs į teksto įvedimo režimą ir laukia jūsų įvedamo teksto. Teksto įvedimo metu galima naudoti backspace klavišą paskutinio įvesto simbolio taisymui, tačiau negalima judėti ekrane naudojant kursorių valdančius klavišus, nes juos spaudžiant juos atitinkantis kodas įterpiamas į tekstą.
Be backspace klavišo, įvesto teksto taisymui galima naudoti ir šių klavišų kombinacijas:
CTRL-W Ištrina prieš tai einantį žodį.CTRL-U Trina einamąją eilute.GR Pereina į n auj ą eilute.Baigus teksto įvedimą į komandinį režimą grįžtama nuspaudus klavišą Esc. Jei jus nesate tikri, kad esate sugrįžę į komandinį režimą, galite pakartotinai nuspausti Esc klavišą ir jei jūs jau ir taip buvote komandiniame režime, tai vi redaktorius garsiniu signalu informuos jus apie tai.Užduotis:Klaviatūroje surinkite::set showmode Ekrane jokio pokyčio nesimato, nes būnant komandiniame režime indikatoriaus nesimato, bet būvio indikatorius atsiras perėjus į įvedimo režimą. Kai komandiniame režime jūs spaudžiate “:” klavišą, tai leidžia jums susirišti su ex redaktoriaus komandomis ir jas efektyviai panaudoti vi redaktoriaus aplinkoje.
Užduotis:Klaviatūroje surinkite: iApatiniam dešinam kampe vi indikuos, kad jūs randatės įvedimo režime. Įveskite sekantį tekstą, nepamiršdami spausti kiekvienos eilutės gale.Pradedame tekstu :Vienas, vienas, vienas, o gal trys?Du ir trys – tarsi penki…1997 metai sausio pabaigaLaikas bėga labai greitai …Surinkite šį tekstą ir paspauskite Esc klavišą – taip jūs vėl grįšite į komandinįrežimą.eilutės režimas (Line mode).Komandiniame režime nuspaudus vieną kurį nors klavišą : arba / arba ?, kursorius nušoka į paskutinę ekrano eilutę, išveda į ekraną įvestą simbolį, ir po šio simbolio gali būti duodama komanda, po kurios įvykdymo redaktorius lieka komandiniame režime. Eilutės režimą galima naudoti vykdant paieškos, keitimo ar failo išsaugojimo komandas.
7.3 vi komandos:kursoriaus valdymas (komandinis režimas)Jums dažnai gali tekti keisti kursoriaus padėtį faile. Ji keičiama būnant komandiniame režime šiomis keturiomis komandomis:
Klavišas Veiksmasj arba Perkelti kursorių viena eilute žemyn.k arba Perkelti kursorių viena eilute aukštyn.h arba Perkelti kursorių vienu simboliu į kairę.1 arba Perkelti kursorių vienu simboliu i dešinę.Vi redaktorius naudoja savus sakinio, paragrafo apibrėžimus:
Sakiniu vadinama simbolių seka tarp dviejų sakinio skyrybos ženklų: taško(.),klaustuko(?) arba šauktuko (!).Tuščia eilutė taip pat baigia sakinį.Eilute vadinama simbolių seka tarp dviejų paspaudimų.Paragrafu laikoma seka eilučių tarp kurių nėra tuščių eilučių.7.4 Papildomos kursoriaus valdymo komandos:
b ‘kelti kursorių atgal per Meną žodįw Perkelti kursorių tolyn per vieną žodį,e Einamojo/sekančio žodžio pabaiga,0 (nulis) arba^ eilutės pradžia,$ eilutės pabaiga.( Einamojo arba prieš tai buvusio sakinio pradžia.) Sekančio šakinio pradžia.{ Einamojo paragrafo pradžia.} Einamojo paragrafo pabaiga.M Ekrano vidurinė eilutė.H Perkelti kursorių į ekrano viršų.L Perkelti kursorių į paskutinę ekrano eilutę.Kai kurios redagavimo komandos gali būti taikomos eilučių sekai. Galima naudoti vieną iš šių lentelėje nurodytų būdų.
seka Išrenkama1,$ visos failo eilutės1,. nuo pirmos iki einamosios eilutės (ją įskaitant),.$ nuo einamosios eilutės (ją įskaitant) iki failo galo.-3 viena eilutė, kuri yra prieš tris eilutes nuo einamosios
7.5 vi komandos: teksto išmetimasKartais redagavimo metu jums gali tekti išmesti dalį teksto. Kursorius turi rastis ties pirmu jūsų išmetamos grupės simboliu ir tada galima naudoti vieną iš komandų:
išmetamas dydis Komandasimbolis Kursorius turi būti ties simboliu ir spaudžiamas klavišas xeilutė Kursorius turi būti bet kur toje eilutėje ir naudojama komanda ddžodis Kursorius turi būti žodžio pradžioje ir naudojama komanda dwiki eilutės galo Kursorius turi būti bet kur toj e eilutėj e ir naudojama komanda Deilučių seka :dPastaba: šiose komandose galimi kartotinumai. Pvz., komanda 2dd pašalina dvi eilutes. Antroji komandos raidė nusako teksto dalį, kuriai taikoma komanda, pavyzdžiui d$ veiks taip pat kaip komanda D – tai yra išmes iki eilutės galo.Užduotis:kursorių valdančiais klavišais ateikite ties “o” raide antroje eilutėje ir naudodami komandą x ištrinkite raidę o.Atveskite kursorių ties žodžio “tekstu” pradžia. Komanda dw ištrinkite šį žodį. Ištrinkite visą pirmąją eilutę naudodami komandą dd.
7.6 vi komandos: koregavimasDažnai tenka keisti tekste raides, žodžius ar visas eilutes. Atliekant šio tipo pakeitimus kursorių reikia atvesti ties keičiamo teksto pradžia, surinkti vieną iš keitimo komandų, o po to tekstą, kuriuo keičiamas teksto fragmentas, ir keitimą baigti paspaudus Esc klavišą (išskyrus komandą r).
komanda Veiksmascw Keicmmas žodis, $ženklu vi pažymi keičiamos porcijos pabaigą.C Eilutė perrašoma iki pabaigos.r Vienas simbolis keičiamas kitu. Esc spausti nereikia, nes pasilieka komandiniame režime.R Perrašomi simboliai pradedant nuo einamosios kursoriaus pozicijos.s Vienas simbolis keičiamas vienu arba kėliais simboliaisS Einamoji eilutė keičiama nauja eilute.Šiose komandose irgi galima naudoti antrąją raidę, kuria galima nusakyti keičiamo teksto porciją. (c$).Užduotis:a)Atveskite kursorių ties žodžio “tarsi” raide V ir pasinaudodami komanda rpakeiskite raidę “r” į raidę ” i”. Redaktorius išliks komandiniame režime.b)Išmeskite raides “si”, likusias šiame žodyje ( komanda x).c)Pakeiskite žodį “sausio” į žodį “vasario” – Tam atveskite kursorių ties žodžiosausio pradžia, surinkite komandą cw, po to žodį “vasario” ir paspauskite Esc,tuogrįždami į komandinį režimą.d)Pakeiskite tekstą “labai greitai” tekstu “kaip vanduo” – tam atveskite kursoriųties raide “P, paspauskite C ir rinkite tekstą “kaip vanduo”.e) Baigę – nuspauskite Esc klavišą. Vėl grįšite į komandinį režimą.
7.7 vi komandos: veiksmų atstatymasKartais jus atsitiktinai galite įvykdyti ne tą komandą arba išmesti tekstą, kurį nereikėjo išmesti. Vi redaktorius leidžia atstatyti paskutinį veiksmą su undo komanda, kuri atliekama, paspaudus u klavišą. Tačiau vi redaktorius gali atstatyti tik paskutinį veiksmą.Užduotis:Atveskite kursorių ties eilute 1997 metai… ir surinkite komandą :dd.Eilutė dings. Atstatykite ją :uEilutė vėl pasirodys ekrane. Paspauskite u kelis kartus. Kiekvieną kartą eilutė dingsarba pasirodys, nes kiekvienas u paspaudimas atstato prieš tai vykdytos komandosveiksmus. Baikite šį režimą palikdami ekrane eilutę 1997….
7.8 vi komandos: eilučių sujungimasKartais jums gali prireikti sujungti kelias eilutes į vieną. Naudojama komanda:JJi .sujungia einamąją eilutę su sekančia eilute.Užduotis:Prieš eilutę “Du ir trys..” įterpsime dvi naujas eilutes. Atveskite kursorių ties eilute“Du ir trys..”, ties raide D ir įvykdykite komandą :ORedaktorius pereis į įterpimo režimą ir lauks iš jūsų įvedamo teksto. Įveskite:Tai dar viena eilutėo taip patPrimename, kad eilutės gale reikia spausti , o įvedimą reikia baigtinuspaudžiant Esc klavišą.Ateikime ties raide “T” ir įveskite komandą :JĮvestos eilutės bus sujungtos į vieną.
7.9 Redagavimo pabaigaBaigti redagavimą galima įvykdant komandą ZZ (komandiniame režime). Tada redaguojamame faile bus išsaugoti visi pakeitimai. Galima baigti darbą ir kitaip, eilutės režime (:) surinkus vieną iš komandų:
klavišas Veiksmasw Išsaugoti pakeitimus ir tęsti redagavimąq! išeiti, neišsaugant pakeitimųwq Įrašyti ; failą ir išeiti iš viw Išsaugoti failą nauju vardu vardasIšsaugant pakeitimus ir išeinant iš redaktoriaus, yra pranešama į kokį failą buvo įrašyta bei kiek eilučių/simbolių yra įrašyta.Užduotis:Išeikite iš redaktoriaus išsaugodami visą suvestą tekstą. Tai atlikite surinkdami: :wq
PakartojimasUžduotis:Iškvieskite vi redaktorių tolimesniam failo sample tvarkymui:vi sampleVėl įjunkime režimo rodymą::set showmodeKursorius rasis teksto pradžioje, o ekrane matysit surinktą tekstą:Vienas, vienas, vienas, o gal trys?Tai dar viena eilute o taip patDu ir trys – tai penki…1997 metai vasario pabaiga •Laikas bėga kaip vanduo…Įveskite komandą žodžio naikinimui:dwAtstatykite išmestą tekstą:uAtveskite kursorių ties skaičiais 1997, už skaičiaus 7 ir surinkite:5iBRAVO ! EscPrieš Esc palikite tarpą. Žodis BRAVO bus įdėtas 5 kartus.
7.10 Eilučių numeriaiDaugelis vi komandų naudoja eilučių numerius. Galima tekstą iškirpti, kopijuoti naudojant eilučių numerius. Galima taip pat nušokti į tam tikrą vietą tekste. Eilučių numeriai naudingi ir ieškant klaidų programos tekste, nes dažnai transliacijos eigoje yra pranešama, kad rasta klaida tam tikroje eilutėje.Užduotis:Įjungsime eilučių numerių rodymą: :set numberVi redaktorius kairiam krašte parodys eilučių numerius.G komanda leidžia jums nušokti į norimą eilutę jūsų faile. Pradžioje yra rašomas eilutės numeris, o už jo raidė G. Jei eilutės numeris nenurodomas, tai vi redaktorius nušoks i failo pabaigą. l G leis jums nušokti į pirmą failo eilutę.Užduotis:Būdami komandiniame režime pereikite nuo vienos eilutės prie kitos:2G1GG
atsidurti pradžioje eilutės, turinčios tą markerį, vykdoma komanda ‘raidė.Užduotis:Atveskite kursorių ties žodžio “vanduo” pradžia. Čia įdėsim markeri v:mvAtveskite kursorių ties žodžiu “1997”. Čia įdėsim markerį k:mkPeršokime tekstu, naudodami markerį:‘v
7.12 vi komandos: kiti įvedimo režimaiPakartosime kitus teksto įvedimo režimus, vykdomus komandomis a A o Oa – liepia įterpti įvedamą tekstą po einamojo simbolio,A – liepia įterpti įvedamą tekstą eilutės gale,o -, liepia įterpti įvedamą tekstą naujoje eilutėje po einamosios,O – liepia įterpti įvedamą tekstą naujoje eilutėje prieš einamąją.Užduotis:Atveskite kursorių po pirmo žodžio pirmoje eilutėje. Naudodami komanda aįterpsime simbolius +**** +Grįžkite į komandinį režimą.Naudodami komandą O prieš antrą eilutę įterpsime tokią eilutę:Sutems tamsi …Grįžkime į komandinį režimą.Ketvirtos eilutės gale, naudodami komandą A prirašykime simboliųGrįžkime į komandinį režimą.
7.13 vi komandos: išplovimas, kopijavimas, perkėlimasRedaguojant tekstus dažnai tenka išplauti, kopijuoti tekstą, perkeliant jį į kitą vietą. Pradžioje tekstas yra įkeliamas į laikiną atmintį, o po to perkeliamas iš jos į naują vietą dokumente. Vi redaktorius naudoja devynis numeruotus buferius bei “undo” buferį, kuris saugo paskutinius išmetimus. Atliekant sekantį išmetimą “undo” buferio turinys keliaus į pirmą buferį, pirmo – į antrą, o devinto – bus prarastas. Vi redaktorius taip pat turi dvidešimt šešis raidėmis a-z įvardintus buferius. Buferiai yra naudingi saugant informacijos blokus, kai informacija yra iškerpama arba kopijuojama. Buferių turiniai nekinta, kol į juos nėra įrašoma nauja informacija. Bet, kaip ir markerių atveju, atsijungus nuo redaktoriaus, buferių turiniai bus prarasti.Kopijavimo komandose galima panaudoti eilučių numerius. Komanda m perkelia tekstą jį iškirpdama, o komanda t – atlieka teksto kopijavimą: :nr1mnumŠi komanda perkels eilutės nrl turinį po eilute su numeriu num. :nrl,nr2mnumŠi komanda perkels eilučių nrl – nr2 turinį po eilute su numeriu num. :nrltnumŠi komanda kopijuos eilutės nrl turinį po eilute su numeriu num. :nrl,nr2tnum Ši komanda kopijuos eilučių nrl – nr2 turinį po eilute su numeriu num.
Užduotis:Nukopijuokite pirmą eilutę po paskutine teksto eilute. Perkelkite antros eilutės turinį po trečia eilute.Vi redaktorius vykdydamas bet kurią iš išmetimo komandų automatiškai keičia buferių turinius. Jei yra vykdoma komanda “yank”(įkėlimas į buferius) ir buferis nėra nurodamas, tai redaktorius naudos automatinius buferius. Tokiu atveju kursorius yra nuvedamas į norimo teksto pabaigą, nurodomas buferis ( raide, skaičiumi arba nutylint), nurodomas kartotinumas pagal reikalą, pavyzdžiui 5 žodžiai ar eilutės, raidė d (iškirpimui) arba raidė y (įkėlimui) ir viena iš raidžių, naudojamų nusakant kursoriaus judesį (b e w …).Paskutinės raidės nusakys teksto bloką, o jei jų nėra , tai bus imama eilutė.Norint iš buferio tekstą įkelti į dokumentą, reikia pradžioje atvesti kursorių į tą poziciją, į kurią bus keliamas tekstas. Imant tekstą iš įvardinto buferio, jis yra nurodomas taip: “raidė. Neįvardinus bus imamas automatinio buferio turinys. Pats įkėlimo veiksmas atliekamas naudojant komandas p arba P.Komandos p atveju tekstas iš buferio bus įkeliamas už einamojo simbolio, o komandos P atveju – prieš einamąjį simbolį. Pavyzdžiui:“ed’x Čia eilutėje iki markerio x esantis tekstas bus išplautas ir įdėtas į buferį e.“ep Bus į dokumentą įkeliamas buferio e turinys.Užduotis:Pasinaudodami buferiais atlikite išpiovimo bei perkėlimo į kitą eilutę veiksmus suįvairiais teksto fragmentais.Išbandykite y bei p arba P komandas su įvairiais teksto fragmentais.
7.14 vi komandos: kontekstinė paieškaKomandiniame režime nuspausti / arba ?, o po jų nurodyti ieškomą kontekstą: /kontekstas – ieškos nurodytos simbolių sekos faile (pirmyn), ^kontekstas – ieškos nurodytos simbolių sekos faile (atgal), n – surasti ankstesnę simbolių seką ankstesne kryptimi, N – surasti ankstesnę simbolių seką, pakeitus paieškos kryptį.Panaudojus paiešką galima pakliūti į tą teksto eilutę, kuri sutaps su ieškomu šablonu.Vi redaktorius taip pat leidžia atlikti ne tik paiešką, bet suradus sutapimą ir pakeistivieną simbolių seką kita seka. Keitimą žymi komanda s: :numl,num2s/sena_seka/nauja_sekaČia numl, num2 – tai eilučių numeriai. Jie užduoda teksto dalį paieškos/keitimokomandai. Jei numeriai nenurodyti paieška/keitimas lies tik einamąją eilutę. Keitimaslies tik pirmą sutiktą sutapimą. Norint pakartoti tai einamojoje eilutėje reikia naudotikomandą &, o kitoje eilutėje::numeris&Kitoje eilučių grupėje::numl,num2&Užduotis:Išbandykite paieškos, paieškos/keitimo komandas savo faile. Išeikite iš redaktoriaus vi išsaugodami sukurtą failą.