Csonka Gabor es Varga Ferenc

UNIX felhasználói ismeretek

A UNIX

A UNIX felépítése

Bejelentkezés, bejelentkezési nevek és kulcsszavak

Folyamatkezelés, előtér- háttérfolyamatok, démonok és jobok

A fájlrendszer, fájlok és katalógusok

Fájlok létrehozása

A UNIX shell

A UNIX parancsok leirasa (man)


A UNIX

A UNIX felépítése

A UNIX réteges felépítésű. A legbelső része a kernel, az operációs rendszer magja, amely a rendszer erőforrásainak szétosztását, és a futó folyamatok ütemezését végzi. A Kerneleket a fejlesztés során sorszámozzák, egy unix verzió nagyon fontos adata, hogy milyen verziójú kernellel dolgozik.

A kernel köré épülnek a UNIX különböző programjai. Ezek közé tartoznak a különböző segédprogramok (pld. ls, cat, mv) és a felhasználó számára a legfontosabb az úgynevezett parancsértelmező (shell, "héj", "burok"). Ez az a program , amely egy felhasználó belépésekor elindul, kiírja a promptot, beolvassa és értelmezi a felhasználó által begépelt parancsokat, meghívja az elindítható programokat és még egy igen rugalmas programozási nyelvet is ad a felhasználó számára.

Bejelentkezés, bejelentkezési nevek és kulcsszavak

A többfelhasználós működés alapja, hogy a gép bekapcsolásának és a felhasználó belépésének a folyamata szétválik. Mivel az egyes felhasználókat egy UNIX-os gépen meg kell különböztetni, minden egyes felhasználónak úgynevezett bejelentkezési neve (login identifer, login id) van. Ez általában 8 karakternél nem hosszabb. A belépési név után a rendszer egy jelszót kér tőlünk. Ennek célja az egyes felhasználók adatainak védelme. A felhasználóknak a rendszergazda (superuser) adja meg a belépési nevet és a jelszót is ő állítja be. A felhasználónak azonban a passwd parancs használatával módja van a jelszó megváltoztatására. A rendszergazda kifejezés kapcsán szót kell ejteni egy rendszeren belül a normál és privilégizált felhasználók közti különbségről.

A UNIX gépeken mint általában minden nagyobb gépen igaz, hogy a felhasználók közül egyesek speciális előjogokkal rendelkeznek más normál felhasználókkal szemben. Ők a privilégizált felhasználók. Feladatuk lehet például a rendszer kikapcsolása, új felhasználók adminisztrációja, programcsomagok installálása stb. A privilegizált felhasználók között is kiemelt szerepe van a rendszergazdának, ő az, aki mindent megtehet, mert mindenre van jogosultsága. Minden UNIX rendszeren kell hogy legyen egy rendszergazda, aki a fent említett feladatokat elvégzi.

A rendszergazda bejelentkezési neve hagyományosan root.

Folyamatkezelés, előtér- háttérfolyamatok, démonok és jobok

A UNIX rendszernél a végzett több-felhasználós munka során két igen fontos nem azonos fogalmat kell megemlíteni a program és a folyamat fogalmát. A program egy bináris (gépi kódot tartalmazó) futtatható fájl, míg a folyamat (process) a felhasználó által elindított programból keletkezik. Egyetlen  program többszöri indítása során  több egymástól különböző folyamat (process) indul el. A folyamatokat a unix sorszámozza. Ennek a sorszámnak az ismerete fontos, ha a folyamatokat befolyásolni akarjuk.

A munka során a kiadott parancsok szekvenciálisan kerülnek végrehajtásra. Mód van úgynevezett háttérfolyamatok elindítására is, ekkor a parancs kiadása után a promptot azonnal visszakapjuk és az előzőleg kiadott parancs végrehajtása a háttérben folyik tovább. Ehhez hasonló lehetőséget nyújt PC-n a WINDOWS úgynevezett protected (védett) üzemmódban történő alkalmazása is.

A háttérfolyamat egy speciális fajtája démon. Ezt a rendszer automatikusan indítja el és valamilyen felügyeleti szerepet lát el. Például gondoskodik a terminálvonalak figyeléséről, a nyomtatási kérelmek besorolásáról és végrehajtásáról.

A démonoknak végrehajtásra átadott nyomtatási és egyéb kérelmeket job-oknak nevezik, ezeket a démon sürgősségi és egyéb szempontok alapján sorba rendezi és egyenként hajtja végre.

A fájlrendszer, fájlok és katalógusok

A UNIX legfontosabb alapfogalma a fájl, ami ebben az esetben egyszerűen csak bájtok (karakterek) sorozata. Nem csak programokat és adatokat tárolunk a fájlokban, de a parancsok is futtatható fájlok, sőt még a terminálokra is ugyanúgy írunk, mint egy közönséges adatfájlba. (Röviden: a UNIX-ban minden fájl, azaz a UNIX minden adatobjektumot azonos módon, azonos parancsokkal próbál meg kezelni.)

A szabályos fájl nevek

A fájlnevek maximális hossza általában 255 karakter lehet, és szinte bármilyen karakterből állhatnak. Néhány karakternek azonban különleges szerepe van, ezért célszerű a névadáshoz csak az angol abc betűit, a számokat, a pontot, valamint a mínusz és az aláhúzás jelet használni. A kis és nagybetűk a fájlnevekben különbözőnek számítanak, csakúgy mint a parancsokban. Lehetőleg ne használjunk a nevekben csillagot (*) és első karakterként pontot. Kereséskor, hivatkozáskor használhatunk joker karaktereket. Pl. a *c valamennyi c betűre végződő fájlt jelenti, míg a c* valamennyi c betűvel kezdődő fájlt jelenti. Ha egyetlen karaktert akarunk helyettesíteni a fájl névben akkor a ? jelet használhatjuk. Ha egy fájl neve a . (pont)  karakterrel kezdődik akkor az rejtett lesz (lásd később).

Katalógusok (Könyvtárak)

A UNIX hierarchikus felépítésű, ami azt jelenti, hogy a fájlokat könyvtárakban tárolja. Egy könyvtárból alkönyvtárak nyílhatnak, amelyek ugyancsak tartalmazhatnak további fájlokat és alkönyvtárakat, és így tovább. A gyökér könyvtárnak nincs neve és szülő könyvtára. A / jel jelenti a gyökeret (root), alkönyvtárai pedig az usr, home, stb. A /usr, /home, /stb. hivatkozással érhetők el. Ezt a hivatkozást elérési útvonalnak (path name) hívják. Ez független attól az alkönyvtártól, amelyikben éppen tartózkodunk. A /usr alkönyvtárnak további alkönyvtárai vannak, például bin, etc, stb. Ezek elérési útvonala /usr/bin, /usr/etc és így tovább.

Melyik könyvtárban mi van?

Állománykonvekciók.

A UNIX-ban igencsak szerteágazó és kiterjedt könyvtárszerkezetet találunk. Van néhány könyvtár, amelyet hagyományosan ugyanúgy hívnak minden UNIX változatban, és a bennük található programok és adatfájlok is ugyanahhoz a témához kapcsolódnak. Például:

A fájlrendszer kitüntetett pontjai

A UNIX fájlrendszerében három kitüntetett pont létezik az egyes felhasználók számára.

  1. A gyökérkatalógus (root directory) a fájlrendszer kezdőpontja, ahonnan az egész állományrendszer felépül.
  2. A bejelentkezési vagy alapkatalógus (home directory) az egyes felhasználókhoz tartozó kiindulási pont, ahonnan kezdve a felhasználó elhelyezheti saját állományait.
  3. Az aktuális vagy munkakatalógus (working directory) az a pont ahol a felhasználó éppen tartózkodik az állományrendszeren belül.

Rejtett fájlok

A UNIX-ban vannak olyan fájlok melyek neve pont karakterrel kezdődik és ezeket a rendszer másképp kezeli mint a többi fájlt. Ezek az úgynevezett rejtett fájlok. A listázási parancs hatására ezeknek a fájloknak a neve nem jelenik meg. Főleg konfigurációs információkat tartalmaznak, melyek egy-egy felhasználó home könyvtárában kell, hogy elhelyezkedjenek.

Mi van még a fájlrendszerben?

A UNIX fontos tulajdonsága, hogy többfelhasználós (multi user), tehát biztosítania kell, hogy a felhasználók egymás fájljaihoz ne nyúlhassanak hozzá. Ennek elérése érdekében találták ki a UNIX alkotói a fájlelérési jogokat (file permissions). Ennek az a lényege, hogy a tulajdonos (user vagy owner) kontrollálja azt, hogy ki férhet hozzá az általa a gépen elhelyezett fájlokhoz, könyvtárakhoz.

A UNIX lehetőséget biztosít arra is, hogy a felhasználói csoportok tagjai fájlokat megosszanak egymás között, és a közös fájlok lehetnek a csoport (és nem egyetlen felhasználó) tulajdonában.

Három féle jog létezik: olvasási (read), írási (write) és futtatási (execute).

Ezeket a jogokat három osztályba osztva adhatjuk meg: magunkra (user, owner), a csoportunkra (group) és mindenki másra (world, others) nézve.

Az olvasási jog lehetőve teszi, hogy a felhasználó a fájl tartalmát megnézhesse, könyvtárak esetén pedig, hogy azt kilistázhassa (ls parancs).

Az írási jog a felhasználó számára engedélyezi a fájlok írását, módosítását, könyvtárak esetében pedig új fájlok létrehozását és a régiek törlését.

Végül a futtatási jog lehetővé teszi a programok, burokprogramok (shell script-ek - amennyiben a fájl egy program) - futtatását; könyvtárak esetén az oda való belépést (cd parancs).

A hozzáférési jogosultságokat az
ls -l
parancsal tudjuk megnézni.

-rw-r--r-- 1 fvarga student 6242 Aug 28 1992 file1

A legelső mező mutatja a fájlelérési jogokat. (Mezőkön egymástól szóközökkel elválasztott karaktersorozatokat értünk.) A harmadik a fájl tulajdonosát, a negyedik pedig azt, hogy a felhasználó milyen csoportba tartozik. Az utolsó mező pedig a fájlnév.

Tehát a fájl tulajdonosa egy fvarga nevű felhasználó, aki a student csoportba tartozik, a "-rw-r--r--" pedig a jogokat jelenti a tulajdonos, a csoport, végül pedig mindenki más számára.

Az első karakter ("-") a fájl tipusát jelöli. A "-" azt jelenti, hogy ez egy "sima" fájl (pl. könyvtár esetén ez "d", míg szimbólikus link ez "l" betű lenne.). A következő három karakter "rw-" jelentése, hogy a tulajdonos olvashatja és írhatja a fájlt, de nem futtathatja.

A következő három karakter, "r--", a csoportra vonatkozó jogokat definiálja. E szerint a student csoportba tartozó felhasználók olvashatják a fájlt, amint ezt a kis "r" betű mutatja.

Az utolsó három karakter "r--" jelentése pedig az, hogy az előbbiekben felsoroltakon (owner, group) kívül esők is olvashatják a fájlt.

Fontos itt megjegyezni, hogy az egyes fájlelérési jogok függnek annak a könyvtárnak az elérési jogátol is, amelyben megtalálhatóak. Például, még ha egy fájl elérési joga -rwxrwxrwx (tehát mindenki mindent csinálhat vele), mások nem férhetnek hozzá, ha a könyvtár amiben van, tiltja az olvasási és futtatási jogokat.


Az elérési jogok megváltoztatása

Az elérési jogok megváltoztatása a chmod paranccsal lehetséges a tulajdonos számára. Szintaxisa pedig:

chmod [ugoa][+-][rwx] fájlnév...

chmod a+r file1 - olvasási jog mindenki számára

chmod +r file1 - ugyanaz, mivel az alapértelmezés az "all"

chmod go-rwx file1 - a tulajdonoson kívül senkinek semmi

A chmod parancs használható oktális formában is, ahol az egyes tulajdonosi kategóriákhoz tartozó elérési jogokat szám formájában adhatjuk meg, mely az egyes elérési jogok számainak az összege. Az olvasási jog értéke 4, az írásé 2, a futtatásé pedig 1. A három tulajdonosi kategóriához három oktális szám tartozik. pld

chmod 644 file1

Ennek a parancsnak a hatására az file1 nevű fájl elérési joga "-rw-r--r--"-ra változik.

Az elérési jogokon kívül módunkban áll a fájl tulajdonosának és csoportjának megváltoztatása is. Az előbbire a chown az utóbbira a chgrp parancs szolgál. pld

-rw-r--r-- 1 fvarga student 6242 Aug 28 1992 file1

chown kovacs file1

-rw-r--r-- 1 kovacs student 6242 Aug 28 1992 file1

chgrp guest file1

-rw-r--r-- 1 kovacs guest 6242 Aug 28 1992 file1


A fájlrendszer kezelésére szolgáló parancsok

A pwd (print working directory) parancs

Az ls (list) parancs

Kapcsolók:

A kapcsolókból egyszerre több is használható.

A cd (change directory) parancs

A katalógus rendszerben való mozgást teszi lehetővé. Paraméterként a megcélzott katalógus nevét kell megadni, vagy abszolút, vagy relatív elérési útvonal használatával. Az abszolút elérési útvonal megadásánál a keresett katalógus teljes elérési útvonalát kell megadni. Ebben az esetben a cd parancs paramétere a / karakterrel kell hogy kezdődjön, a cd parancs erről ismeri fel, hogy abszolút elérési útvonalról van szó. pl.

cd /users/demo (Így a demo nevű alkönyvtárba jutunk.)

Relatív címzés esetén azt mondjuk csak meg, hogy az aktuális katalógushoz képest hol helyezkedik el a megcélzott katalógus. pl.

pwd

/users/demo

cd..

pwd

/users

cd demo

pwd

/users/demo

Ha a cd parancsot argumentum nélkül hívjuk meg, akkor a bejelentkezési (home) könyvtárunkba jutunk vissza. (Erre jó a $ HOME jel, vagy C shell-t használó UNIX gép esetén a ~ jel is.)

Az mkdir (make directory) parancs

Új katalógus létrehozására szolgáló parancs. Ellentétben a DOS-ban alkalmazott paranccsal itt lehetőség van megfelelő kapcsoló alkalmazásával több alkönyvtár egyidejű létrehozására.

Kapcsolók:

-p Létrehozza a kívánt katalógus eléréséig az össze szükséges katalógust.

-mmode Megadhatjuk az új katalógus hozzáférési jogát oktálisan a mode értékének beállításával.

Az rmdir (remove directory) parancs

Könyvtárak törlésére szolgáló parancs. Az rmdir parancs csak üres könyvtárat vagy könyvtárakat töröl.

Kapcsolók:

-p A katalógus törlése után, a szülő katalógust is törli, ha üres, rekurzíven. A standard outputra küld üzenetet, arról, hogy mi maradt a path-ból.

-s A -p kapcsoló üzenetének az elnyomása.

Az mv (move) parancs

A fájlok állományrendszeren belüli mozgatására szolgáló parancs. Az első paraméterként megadott file nevet átkereszteli a második paraméterben megadott file névre. Ha az utolsó paraméter katalógus név, akkor az előtte lévő fájlokat áthelyezi oda név változtatás nélkül. pl.

mv file1 file2 (Ha a file2 már létezik, akkor azt felülírja rendszerint figyelmeztetés nélkül.)

mv file1 file2 demo

A cp (copy) parancs

Fájlok másolására szolgáló parancs. Az előző parancshoz hasonlóan működik. Ebben az esetben is két paramétert kell megadni, elsőként a másolni kívánt fájl nevét, majd második paraméterként a célfájlt, vagy célkatalógus nevét. Ha egy fájlt az aktuális könyvtárból egy másik könyvtárba akarunk másolni vagy mozgatni, meg kell adnunk a cél könyvtár nevét is. Ha a művelet tárgyát képző fájl nincs az aktuális alkönyvtárban, akkor azt is meg kell adni, hogy melyik könyvtárban tálaljuk meg. Az alábbi parancs az aktuális könyvtárban levő level1 fájlt átmásolja az (aktuális könyvtárból nyíló) mail könyvtárba:

cp level1 mail

A következő példa feltételezi, hogy éppen nem tudjuk, melyik könyvtárban vagyunk, és a gyökérből nyíló public/news alkönyvtárból szeretnénk "hazamásolni" (a "home directory"-nkba) a last-news nevű fájlt. Ime:

cp /public/news/last-news $HOME

A $HOME jel a bejelentkezési (home) könyvtárunk rövid neve, így nem kell kiírnunk az általában tekintélyes hosszúságú (/public/users/dept/staff/.......) home könyvtár nevet. A C shell-t használó UNIX gépeken a $HOME jelnek van egy még rövidebb neve is: a ~ jel.

Az aktuális könyvtárnak is van egy rövidített neve, mégpedig a pont (.). A következő parancs a /usr/news/legujabb nevű fájlt másolja át oda, ahol éppen tartózkodunk - vagyis az aktuális alkönyvtárba.

cp /usr/news/legujabb .

Kapcsolók:

-i Interaktív működési mód. Megkérdezi, hogy valóban szeretnénk-e a fájlt felülírni.

-p Megőrzi és örökíti az eredeti fájl hozzáférési jogait.

-r A megadott másolandó katalógust a benne lévő alkatalógusokkal együtt másolja.

-f Ha írásvédett a fájl vagy katalógus nem jelez hibát.

Az rm (remove) parancs

Fájlok törlésére szolgáló parancs. Ennél a parancsnál szintén megadhatunk több fájlnevet a paraméterlistán. pl.

rm file1 file2 file3

Ez a parancs letörli a file1, file2 és file3 nevű fájlokat az aktuális alkönyvtárból.

Kapcsolók:

-f Visszakérdezés nélkül törli az állományt, akkor is ha az írásvédett.

-r Az argumentumlistán megadott katalógustól kezdve rekurzíven törli az alatta lévő állományokat és katalógusokat (mindent !)

-i Az állományok törlése előtt megkérdezi a felhasználót.

Ha egy fájlt letöröltünk vagy felülírtunk, akkor az megsemmisül és semmilyen eszközzel sem lehet visszaállítani!

Az ln parancs

Segítségével egy fájlra több féle névvel is hivatkozhatunk, vagyis egy adott fájlnak többféle nevet adhatunk. Ez akkor lehet fontos, amikor van kettő (vagy több) futtatható programunk melyek hasonló feladatokat látnak el, és nem akarjuk mindkettőt külön-külön lefordítani bináris programmá, hanem csak egy nagyobb programot akarunk melyet aszerint futtatunk le, hogy milyen néven hivatkozunk rá. Így memória és lemezterületeket lehet megtakarítani. Szép példa erre éppen ez a parancs, mely hasonló a cp és az mv parancshoz, így e három tevékenységet tulajdonképpen egy bináris program végzi.

A UNIX kétféle linket ismer a hard és a soft linket, melyek csak abban különböznek egymástól, hogy a UNIX másképp kezeli őket.

Szintaxisa:

ln [ -s ] forrásnév célnév

Kapcsolók:

-s Soft linket készít. (Kapcsoló nélkül hard linket készít.)

Például: Hard link készitése:

ls -l egy

-rw-r--r-- 1 fvarga student 12 Aug 5 14:20 egy

ln egy ketto

ls -l

-rw-r--r-- 2 fvarga student 12 Aug 514:20 egy

-rw-r--r-- 2 fvarga student 12 Aug 5 14:21 ketto

(A második mező jelenti a fájlra mutató hard linkek számát.)

Most az egy és a ketto ugyanaz a fájl - tehát, ha az egyiket módosítjuk a másik is módosul, mivel csak a név más, a fájl ugyanaz. Ugy is felfoghatjuk, hogy egy fájlnak egyszerre ket néve is van.

Soft, avagy szimbólikus link készitése:

ln -s egy ketto

ls -l ketto

lrw-r--r-- 1 fvarga student 12 Aug 5 14:25 ketto -> egy@

A fájlelérési jogok kezdő "-" jele most l betűre változott. Innen látszik, hogy szimbólikus linkről van szó, azaz a link katalógus bejegyzése egy olyan fájlra mutat, ami a láncolt fájl nevét tartalmazza. (lásd a listázás végén látható nyilat.)

Műveletek szövegfájlokkal

A cat parancs

A cat parancs a paraméterként megnevezett fájlokat listázza ki folyamatosan tördelés nélkül. pld

cat file1 (A file1 tartalmát kiíratja a képernyőre.)

Kapcsolók:

-s Nem kapunk hibaüzenetet hiányzó állományok esetén.

-v A nem nyomtatható karaktereket olvasható formában jeleníti meg.

A more parancs

Hasonló mint a cat parancs, csak a fájl tartalmát oldalanként jeleníti meg. pld

more file1

A szövegből most egy képernyőnyi rész jelenik meg, a szóköz (space) billentyű lenyomására megmutatja a következő oldalt. Ha nem akarjuk végignézni az egész fájlt, üssük le a q betűt vagy a Ctrl-C-t.

A head parancs

Egy fájl első sorait lehet vele megjeleníteni:

head -15 file1

A file1 fájl első tizenöt sorát listázza ki.

A tail parancs

A fájl utolsó sorait lehet vele megtekinteni. pld

tail -3 fájl_név

A file parancs

A file parancs egy adott fájl típusának meghatározására szolgál. Kapcsolók nélkül az aktuális katalógusban vizsgál.

Kapcsolók:

-f knév A knév nevű katalógusból vizsgálja a megadott fájl neveket.

-L Ha a fájl szimbólikus link, akkor magát a fájlt vizsgálja.

pld

file -f /home/demo file1

file1:ascii text

De a file* parancs az aktuális katalógus fájljait fogja megvizsgálni.

A du parancs

A fájljaink és könyvtáraink által elfoglalt lemezterületet lehet vele megtekinteni.

Szintaxisa:

du [ -a ] [ -s ] directory

Kapcsolók:

-a A könytárban szereplő összes fájlról is ad adatot.

-s Csak a könyvtár teljes helyfoglalását írja ki.

pld

du -s $HOME

15 (A du parancs az eredményt kilobájtban adja meg.)

Fájlok létrehozása

Rövidebb fájlokat a cat és az echo parancsok segítségével hozhatunk létre. Mindkét parancs alapértelmezésben a képernyőre írja a fájl tartalmát, de az (>) átirányítás jel segítségével ezt megváltoztathatjuk.(ilyenkor a shell másképp értelmezi a parancsot) pld

cat >newfile1

A UNIX szepsegei

CTRL-D

Hasonló módon alkalmazhatjuk az echo parancsot is.

echo A UNIX szepsegei >newfile2

Hosszabb fájlokat szövegszerkesztő segítségével írhatunk és ugyenezt alkalmazhatjuk fájlok módosítására is.

A vi editor

A vi teljes képernyőt kitöltő (full screen) editor. Ha a beállított terminált nem ismeri fel, akkor hibaüzenetet kaphatunk. A terminál típusát c shell-ben a setenv TERM vt100 paranccsal lehet pl. vt100-asra állítani. A vi-nak két üzemmódját tárgyaljuk az input és a parancs módot.

A parancs módban begépelt karaktereket parancsként értelmezi, például x=”karaktertörlés”. Input üzemmódban a beírt karakterek a kurzor aktuális pozíciójára kerülnek. Parancs módból input (text) üzemmódba váltunk, ha kiadjuk az a, C, I, o, O vagy R parancsok valamelyikét. Text módból az ESC billentyűvel jutunk parancs módba. A képernyőn semmi sem utal arra, hogy éppen melyik üzemmódban vagyunk. Viszont a vi a legegyszerűbb terminálokon is működik sok ezer kilométer távolságból.

A kis- és nagybetűk különbözőnek számítanak.

Szintaxisa:

vi [ -l -R -r [file1] ] [file2]

-l lisp mód (a lisp egy mesterséges intelligencia programnyelv)

-R read only - így nem tudunk véletlenül felülírni egy fájlt

-r [file1] rendszerhiba után file1 néven visszaállítja az utolsó editált fájlt

[file2] a szerkeszteni kívánt fájl neve

 

Általános parancsok

Esc

input mód vége

Ctrl ?

interrupt - parancs végrehajtásának megszakítása

Ctrl g

fájl információ

n parancs

a parancsot n-szer hajtja végre ( pl.: 5dd - 5 sort töröl )

.

Megismétli az utolsó parancsot.

:! UNIX parancs

végrehajtja a UNIX parancsot (pl.: :! ls -la vagy :! tcsh)

:set nu

sorszámozás megjelenítése

:set nonu

eltünteti a sorszámozást ( a no előszócskával minden beállítást vissza lehet vonni )

:set list

rejtett karakterek megjelenítése

:set ts=(tab)

meghatározza, hogy a Tab karaktereket mivel helyettesítse a képernyőn

(a kettősponttal kezdődő parancsokat a képernyő alján látjuk begépeléskor, és itt láthatjuk a hibaüzeneteket is.)

 

Mozgás a szövegben

h

(bal) ezek minden terminálon helyesen mozgatják a kurzort,

l

(jobb) nem úgy, mint a kuzor nyilak

k

(fel)

j

(le)

Ctrl-f, Ctrl-b

A kurzort a szövegben előre (forward) vagy hátra (back) viszi 12 sorral.

e

A kurzort a következő szó végére viszi.

w

A kurzort a következő szó elejére viszi.

b

A kurzort az előző szó elejére viszi.

)

1 mondat előre

(

1 mondat hátra

H

(high) képernyő tetejére ugrik

L

(low) képernyő aljára ugrik

M

(middle) képernyő közepére ugrik

Ctrl-g

Kiírja a kurzort tartalmazó sor sorszámát.

G A szerkesztett fájl végére ugrik.
nG A fájl n-dik sorára ugrik.
$ Ugrás az aktuális sor végére.
/keresett_szó A keresett_szó első előfordulási helyére ugrik.
/ A keresett_szó következő előfordulási helyére ugrik.

 

Képernyő görgetés

Ctrl-y, Ctrl-e

A szöveget a képernyőn felfelé vagy lefelé viszi 1 sorral

Ctrl-u, Ctrl-d

A szöveget a képernyőn felfelé (up) vagy lefelé (down) viszi 12 sorral ( fél képernyőnyivel ).

Ctrl-b, Ctrl-p

A szöveget egy képernyőnyivel felfelé vagy lefelé görgeti.

z+, z-

Page up, Page down - ugyanaz, mint az előző

 

Szöveg beszúrás

i

A begépelt szöveget beszúrja (insert) a kurzor pozíciójához. Ha befejeztük a műveletet, üssük le az ESC billentyűt.

I

A begépelt szöveget beszúrja a sor elejére. Ha végeztünk - ESC.

a

A begépelt szöveget a kurzor pozíciójától kezdve hozzáfűzi (append) a szerkesztett dokumentumhoz. (Ha befejeztük a műveletet, üssük le az ESC billentyűt.)

A

A begépelt szöveget a sor végére fűzi. (Majd ESC)

o

Egy üres sort hoz létre az aktuális sor alatt. (Gépeljük be a kívánt szöveget, majd üssük le az ESC billentyűt.)

O

Egy üres sort hoz létre az aktuális sor felett. (Gépeljük be a kívánt szöveget, majd üssük le az ESC billentyűt.)

Esc

Vissza parancsmódba

 

Szöveg módosítása

u

Visszaállítja az utolsó műveletet (undo).

U

Visszaállítja az eredeti állapotot az aktuális sorban. (Csak akkor működik, ha a művelet óta nem mozdultunk el onnan.)

x

Kitörli a kurzor pozícióján álló karaktert (Delete)

X

Kitörli a kurzortól balra álló karaktert (Backspace).

D

Az aktuális sor kurzortól jobbra lévő részét törli.

dd

Kitörli az aktuális sort.

dw

Kitörli az aktuális szót.

r

Kicseréli (replace) a kurzor pozícióján álló karaktert a beírt karakterre ( pl.: alma:  r n -> alna ).

R

Felülírásos üzemmódba kapcsol. (Üssük le az ESC billentyűt ha vissza akarunk térni parancs módba.)

J

A következő sort összefűzi az aktuális sorral (join).

C

Kijelöli az aktuális sor kurzortól jobbra esô részét (egy $ jelet rak a sor végére.) Amit ezután begépelünk, az felülírja a megjelölt részt.

cc

Felülírhatjuk az aktuális sort.

cw

Felülírhatjuk az aktuális szót.

~

Kisbetűt nagyra, nagybetűt kicsire cserél.

:i,j m p

Az i. és j. sorok közé eső részt (beleértve magát az i. és j. sort is) áthelyezi a p. sor utáni helyre.

:g;string1;s;;string2

Kicseréli `string1`-et `string2`-re.

 

Copy & Paste

yw

(copy word) szó másolása a clipboardra

yy

sor másolása a clipboardra

p

(paste) másolás a szövegbe, a kurzor után a clipboardról

P

másolás a szövegbe, a kurzor elé a clipboardról

 

Mentés illetve kilépés a vi-ból

:w

Elmenti a szerkesztett szöveget.

:w név

'név' néven elmenti a szerkesztett szöveget.

:i,j w név

'név' néven elmenti az i. es j. sorok közé eső részt (beleértve magát az i. es j. sort is)

:q

Kilép, ha nem változtattunk a szövegen az utolsó mentés óta, ha van változás hibaüzenetet kapunk.

:q!

Mindenképpen kilép, az esetleges változtatások elmentése nélkül.

:wq vagy ZZ

Elmenti a szerkesztett szöveget és kilép.

Az xedit editor

Az xedit X-windows alatt működő editor. Használata a menürendszeren keresztül magától értetődő.

A UNIX shell

A UNIX felépítése című fejezetben már volt róla szó. A shell az a program, amelyik elindul amikor belépünk egy UNIX rendszerbe, a parancsokat innen adjuk ki és a parancsok végrehajtása után ide térünk vissza (hasonló a DOS command processzorához). Minden shell egy un. prompttal jelzi, hogy kész a parancsok fogadására. Shell-ből több fajta létezik. Az alábbiakban a legelterjedttebb változatairól lesz szó. Két fő kategória van: az un. "Bourne shell" és a "C shell", ezek neve sh és csh. Nevükön kívül szintaxisukban különböznek: a csh a C programoknál használatos szintaktikát követi hasonlóan a tcsh-hoz, amely a csh egy kibővített változata. Természetesen az sh-nak is van bővitett változata: a ksh (Korn shell). Ez utóbbi mindazokat a funkciókat igyekszik megvalósítani amivel a csh több az sh-nál. pl. "history" buffer hasonlóan a DOS doskey funkciójához, vagy aliasing mechanizmus, amelynek révén hosszú parancsokra rövidebb nevekkel tudunk hivatkozni.

A parancsok általános szintaxisa

A parancssor elejét a prompt jelzi- ez rendszerint % vagy $ jel a sor elején, de bármi más is lehet, tetszőlegesen beállítható. A parancs neve után szóközökkel elválasztva kell megadni a paramétereket: ezek határozzák meg közelebbről, hogy a parancs mit is csináljon. A szóköz fontos, mert a parancsértelmező (shell) a parancssorban szereplő karaktereket az első "fehér karakterig" egybe olvassa. A fehér karakterek közé tartozik a szóköz, a tabulátor és maga az újsor karakter. A paraméterek közül azokat, amelyek mínusz (-) jellel kezdődnek, ezentúl kapcsolóknak fogjuk hívni, mivel ezekkel lehet bekapcsolni egy parancs különféle üzemmódjait. A kapcsolókból rendszerint egyszerre több is megadható, ilyenkor általában elegendő egy mínusz jelet kiírni és felsorolni utána a kapcsolókat (ezt nem minden rendszer teszi lehetőve!). Például az ls -l -a -r parancs megadható igy is: ls -alr.

A UNIX mindig csak annyi üzenetet ad, amennyit elengedhetetlenül szükségesnek tart. Ezért ne lepődjünk meg, ha egy parancs végrehajtása után semmi sem jelenik meg a képernyőn: ez azt jelenti hogy a parancs hibátlanul lefutott. A UNIX programok sikeres végrehajtás esetén soha nem jeleznek vissza, csak hiba esetén.

A UNIX törekszik az egységességre, ennek szellemében minden interaktív parancsból ugyanúgy kell kilépni. (Interaktívnak nevezzük azokat a parancsokat, amelyek futás közben elvárják, hogy begépeljünk nekik valamit.) Tehát ha ki akarunk lépni egy ilyen programból, üssük le a Ctrl+D billentyűkombinációt.

Ha a parancssorban ütjük le a Ctlr+D-t, akkor kijelentkezünk a rendszerből (néhány gépen ez le van tiltva, helyette a logout parancsot kell használnunk). Ez összhangban van az előző alapelvvel, mert amikor be vagyunk jelentkezve, valójában egy programot futtatunk (ez a parancsértelmező, amit shell-nek vagy buroknak hívnak): kijelentkezéskor ebből a programból lépünk ki.

Ugyancsak alapelv, hogy a kis- és a nagybetűk különbözőnek számítanak. Ügyeljünk erre, és lehetőleg semmit ne gépeljük csupa nagybetűvel!

A shell változók és a környezet

A shell részben programozási nyelv is, ezért tartalmaz változókat, melyek lehetnek lokálisak (a shell belső változói) és globálisak (a shell környezeti változói). Figyelem! Az sh-ban (sh, ksh) és a csh-ban (csh, tcsh) másként kell értéket adni a változóknak!

Az sh tipusu shellek az "=" jelet használják lokális változók megadására:

a="hello sh"

míg a csh tipusuakban a set paranccsal kell értéket adni a változóknak:

set a="hello csh"

A kiíratást mindkét shell esetében az echo parancs végzi, a változó neve előtt pedig egy $ jelnek kell szerepelnie:

echo $a

hello sh

Ezek a shell belső változói - tehát csak az aktuális shellben ismertek, lokálisak. A shell lehetővé teszi a futtatandó programok környezetének (environment) beállításat is. A környezet azon változók csoportja, melyek minden programból elérhetőek, globálisak. A környezet beállításának szempontjából is különbözik az sh és a csh. A környezet beállítása sh-ban:

Például PAGER környezeti változó, amelyet például a man parancs (később még szó lesz róla) használ megjelenítőprogramként. A sh-ban következőképpen állítható more helyett cat-ra.

PAGER="cat"

export PAGER

A környezeti változók beállítása csh-ban a setenv parancs segítségével történik. A fenti példa csh-s megfelelője tehát:

setenv PAGER cat

Ennek kicsit kellemetlen az eredménye, mivel ha man-t kérünk, a szöveg elrohan a szemünk előtt. Ha oldalanként szeretnénk látni a szöveget, akkor állitsuk be a környezeti változót more értékre.

Amennyiben egy lokális vagy környezeti változóra nincs szükségünk, kitörölhetjük őket. Sh-ban unset változónév, csh-ban a lokális változókra unset változónév, a globálisokra pedig unsetenv változónév. Azt hogy milyen változók vannak beállitva úgy tudhatjuk meg, hogy a set ill. a setenv parancsok után nem írunk változónevet.

A PATH környezeti változó

Kiemelten kezeli a shell a PATH (csh-ban path) nevű változót, ugyanis ez a változó jelzi a shell számára, hogy hol kell keresnie a futtatandó programot. Például:

echo $PATH

/bin /usr/bin /usr/local/bin .

A fenti példa az sh -t mutatja, mindez csh-ban igy néz ki:

echo $path

/bin /usr/bin /usr/local/bin .

Tehát a shell először megnézi, hogy a futtatandó program a /bin-ben, a /usr/bin-ben, a /usr/local/bin-ben végül pedig az aktuális könyvtárban (a "." ezt jelzi) található-e?

Automatikus indításu shell scriptek

Minden shell képes arra, hogy indulasákor egy adott nevű shell scriptet elindítson, így a felhasználóknak lehetőségük van arra, hogy környezetüket személyiségükhöz igazítsák.

Ez a program az sh-nál a bejelentkezési könyvtárban (home directory) lévő ".profile", csh esetében pedig a bejelentkezés esetén a ".login" és minden más csh indításnál a bejelentkezési könyvtárban lévő ".cshrc" rejtett fájl. Ki-ki ebbe teheti az általa kedvelt változó és környezet beállításokat.

Lássuk mit lehet beállítani egy .cshrc fájlban.

cat .cshrc

set history=100

alias h history

alias ls ls -F

alias ll 'ls -l | more'

set prompt="`hostname` > "

A set history arra szolgál, hogy a begépelt parancsainkat a rendszer megőrizze. A 100-as szám azt jelzi, hogy 100 parancsot őriz meg. (mint a DOS-nál a doskey)

A h parancs most a history parancs ekvivalense - a history parancs az eddig begépelt utasításokat listázza ki.

A következő sorban az ls az ls -F -nek lesz az ekvivalense. Ezután minden ls parancs automatikusan ls -F lesz.

Az ezutáni sor még érdekesebb, mivel arra példa, hogy egy utasitássorozatnak legyen egy rövid neve. Tehát egy lista kimenetét átadjuk a more nézegető programnak, hogy oldalanként lássuk azt.

Ezután a prompt beállítására láthatunk példát. A gép először lefuttatja a hostname programot, ami kiírja a gép nevét és azt berakja a promptba. A ` (visszafelé mutató egyes idézőjel) jelentése, hogy a program futásának eredményét helyettesítse be a hostname szó helyett.

Az alias parancs arra szolgál, hogy egy hosszab utasitássorozatot egy parancs begépelésével indíthassunk. A jelenleg definiált aliasokat a paraméterek nélkül hívott alias parancs mutatja meg; egy-egy aliast pedig az unalias paranccsal tudunk megszüntetni.

Terminál beállítások

Az egyik leghasznosabb dolog, amit az automatikusan elinduló .cshrc vagy .profie fájllal csinálhatunk, a terminálunk beállítása. A terminál feladata, hogy a leütött billentyűhöz rendeljen egy kódot és azt küldje el a számítógépnek. A UNIX értelmezi ezt a kódot, és végrehajtja az adott billentyűkombinációhoz rendelt parancsot. Ha nem az történik amit szeretnénk akkor módunkban áll azt megváltoztatni.

A terminál beállításait az stty paranccsal listázhatjuk ki. A -a kapcsolóval teljes listát kapunk. (Némely UNIX-nál ezt a kapcsolót másképp hívják - ilyenkor nézzük meg a manuált!)

stty -a

speed 9600 baud; line = 1;

intr=^C; quit=^\; erase=DEL; kill=^U; eof=^D; eol <undef>; swtch=^Z lnext=^V; werase=^W; rprnt=^R; flush=^O; stop=^S; start=^Q

.

.

A listán funkciókat látunk (intr, quit, erase...) és az őket aktiváló kódokat (^C, ^\, DEL, ...). Ezek közül a legfontosabb az erase. Ez a funkció törli a kurzortól balra álló karaktert. A fenti példán értéke DEL, azaz a DEL billenyű leütésével lehet végrehajtani.

Az stty parancsot használhatjuk akkor is, amikor az adott billentyű funkcióját akarjuk megváltoztatni. Tételezzük fel, hogy a backspace billentyűvel szeretnénk törölni, de ha leütjük ezt a billentyűt, akkor ^? karakter sor jelenik meg a képernyőn. Gépeljuk be, hogy:

stty erase "^?"

Ezután nyugodtan törölhetünk a backspace billentyűvel is. A többi funkció beállítása hasonlóan történik.

További fontos funkciók:

intr Megszakítja a futó programot. Általában a ^C-vel lehet végrehajtani.

kill Kitörli a parancssorba eddig begépelt szöveget (ha meg nem ütöttük le az ENTERT.)

eof Ez a jól ismert fájlvége jel. Ez szinte mindenhol ctr-d

stop Felfüggeszti a képernyőre írást.

start Folytatja a stoppal befagyasztott képernyőre írást.

swtch Az aktuális program futásának felfüggesztése.

Természetesen nagyon fáradtságos, ha minden paraméter legkedvezőbb beállítását nekünk kell kikísérletezni. Ezért definiáltak néhány beállítás-készletet, amelyekere a nevükkel lehet hivatkozni. Ilyen például a dec terminál; gyakran segít, ha kiadjuk az stty dec parancsot.

Bemenet és kimenet fogalma

Mint már korábban olvashattuk, a UNIX parancsok nem, vagy nagyon ritkán jelzik, ha jól működnek. Az, hogy a UNIX nem jelzi a hiba nélküli futást, azért van, hogy a parancsok be- és kimenetei más parancsoknak átadhatóak legyenek. A legtöbb program a bemenetről (standard input - stdin) veszi az adatait és a kimenetre (standard output - stdout) küldi az eredményt. Azonban előfordulhat, hogy hiba lép fel és azt a programnak jeleznie kell. Ilyenkor a hiba leírását egy más helyen, a hibacsatornán kapjuk (stderr). Rendszerint a bemenet a billentyűzet, a kimenet és a hibacsatorna pedig a képernyő.

Például: a sort parancs rendezi a bemenetről beérkező sorokat (a -r kapcsolóval fordított (reverse) rendezés):

sort

gyufa

izzok

csoko

<ctrl-d>

csoko

gyufa

izzok

Megjegyzés: a <ctrl-d> a control (Ctrl) és a d billentyűk együttes leütését jelenti!

Igy máris abc-sorrendbe raktuk a bevásárlólistát.

A bemenet és a kimenet átirányítása

A shell lehetőséget ad arra, hogy a kimenetet átirányítsuk (redirection), és ehhez csupán a ">" jelet kell hogy használjuk. Nézzük, hogy is működik ez az előző példán.

sort > mit_vegyek

gyufa

izzok

csoko

<ctrl-d>

Ugyanezzel a módszerrel - átirányítas - hoztunk létre fájlt (ott a cat parancs kimenetét irányítottuk át). Az eredmény nem látható, hanem a mit_vegyek nevű fájlba került. Nézzük meg, hogy valóban ez történt-e?

cat mit_vegyek

csoko

gyufa

izzok

Ugyanez vonatkozik a bemenet átirányítására is, ennek jele "<".

Például: csináljunk egy áruk nevű fájlt, aminek tartalmát rendezzük:

cat > aruk

izzok

gyufa

csoko

<ctrl-d>

sort < aruk

csoko

gyufa

izzok

Fontos jel még a ">>", ami szintén a kimenet átirányítását teszi lehetővé; különbség közte és a szimpla átirányítójel között annyi, hogy ha ezt használjuk, a fájl végéhez tudunk hozzáfűzni új adatokat.

Csövek

Azt már tudjuk, hogy egy-egy program eredményét hogy lehet fájlba átirányítani, azonban lehetőség van arra, hogy egy program a bemenetét egy másik programtól vegye. Erre talalták ki UNIX-ban a cső (pipe) fogalmát. Azt, hogy egy program kimenetét egy másik bemenetére szeretnénk átirányítani a "|" jellel jelezzük.

Vegyünk egy konkrét példát - szeretnénk a bejelentkezési könyvtárunkat fordított abc-sorrendben kiíratni. Eddigi tudásunkkal hogyan tudjuk ezt megvalósítani?

ls -l > file_list

cat file_list

total 3

drwxr-xr-x 2 fvarga 1024 Jul 21 1992 Apps

drwxr-xr-x 8 fvarga 1024 Oct 19 13:35 Library

drwxr-xr-x 3 fvarga 1024 Jul 25 1992 Mailboxes

sort -r < file_list

total 3

drwxr-xr-x 3 fvarga 1024 Jul 25 1992 Mailboxes

drwxr-xr-x 8 fvarga 1024 Oct 19 13:35 Library

drwxr-xr-x 2 fvarga 1024 Jul 21 1992 Apps

A sort kapcsolói csak azt jelentik, hogy a 3. mezőtől kezdjen rendezni (egyet ki kell vonni a mező sorszámából!), és hogy forditva (r - reverse)

Ezt a cső használatával egy sorban is el lehet intézni, és az eredmény ugyanaz:

ls -l | sort -r

Nagyon jó szolgálatot tesznek a csövek a hosszu könyvtárlisták nézegetésénél is. Az ls -l | more paranccsal oldalanként nézegethetjük a listát, igy az nem fut le a képernyőről.

Előtér- és háttérfolyamatok (processzek)

A UNIX egyik fő jellemzője amellett, hogy több felhasználos, az, hogy egyszerre több program futtatására képes (multitasking).

A ps paranccsal meg tudjuk nézni, hogy milyen processzeink (programjaink) futnak.

ps

PID TT STAT TIME COMMAND

3902 p0 S 0:01 -tcsh (tcsh)

Amint látjuk, most a felhasználónak csak egy processze fut, mégpedig a shell (tcsh). A listán még egy nagyon fontos dolog szerepel, a processz egyedi azonosítója (PID - process ID), esetünkben 3902.

A futó processzt a shell job néven ismeri (a processz és a job ugyanazt jelentik!). A shell lehetőséget ad a jobok manipulálására, ezt job controlnak hívjuk; ami azt jelenti, hogy egyszerre több egymástól különböző dolgot csinálhatunk, és váltogathatjuk, hogy éppen melyik futását akarjuk figyelemmel kísérni. Például éppen szerkesztünk egy programot, de eszünkbe jut, hogy már meg kellett volna írni egy E-mailt; erre kinál megoldást a job control.

Előtérben (foreground) és háttérben (background) való futtatás

A jobok futhatnak előtérben és háttérben, előtérben azonban egyszerre csak egy job lehet. Az előtérben levő job kapja a bemenetet a billentyűzetről és küldi a kimenetet a képernyőre (hacsak át nem irányítottuk). A háttérben futó jobok billentyűzetről jövő bemenetet nem kapnak meg. (Vigyázat, mert a képernyőre attól még írhatnak!)

A jobok lehetnek felfüggesztett állapotban (suspended); ez azt jelenti, hogy a jobot egy kis időre megállítjuk. Az ilyen job se az előtérben sem pedig a háttérben nem fut. Miután felfüggesztettünk egy jobot, a futtatását lehet folytatni tetszés szerint az előtérben, vagy akár a háttérben. A job ott folytatja a munkát, ahol előzőleg abbahagyta.

Figyelem! Egy job felfüggesztése nem ugyanaz, mint a megszakítása; ugyanis megszakítás esetén (ctrl-c) a job már nem tudja a munkáját folytatni!

Vegyünk egy példát:

A yes parancs y karakterek végtelen sorozatát küldi a kimenetére.

yes

y

y

.

Hogy ne kelljen az y-ok végtelen sorát látni irányítsuk át a kimenetet egy alkalmas helyre: /dev/null - egy un. fekete lyuk: a beleirányított összes információt elnyeli.

yes > /dev/null

Így kaptunk egy előtérben futó jobot. Hogy a háttérbe tegyuk, a "&" jelet kell alkalmaznunk.

yes > /dev/null &

[1] 3954

A shell promptját visszakaptuk. Az [1] a yes processz folyamatszámát jelenti a shell számára. A shell minden futó jobhoz rendel egy számot. A másik szám a processz azonosítója (PID mező a ps-ben) - a processzre mindkét számmal utalhatunk.

Nézzük meg, hogy valóban fut-e a folyamatunk?

jobs

[1] + Running yes > /dev/null

A kill parancs segítségével a folyamatot leállíthatjuk. A kill parancs, paramétere lehet a folyamat száma vagy pedig a processz azonosítója (PID). Használjuk:

kill %1

vagy

kill 3954

A % jellel jelezzük azt, hogy folyamatszámot adunk meg. Ha processz azonosítót adunk, akkor nincs szükség másra csak a processz azonosítójára. Lássuk, mi történt.

jobs

[1] + Terminated yes > /dev/null

Megjegyzés: Előfordulhat, hogy egy háttérben futó folyamatot sehogyan sem tudunk megállítani. Használjuk ilyenkor a "kill -KILL processz azonosító száma (vagy folyamat száma)" , vagy "kill -9 processz azonosító száma (vagy folyamat száma)" parancsot. (A két parancs ekvivalens.) Ez a UNIX számára azt jelenti, hogy mindenképp állítsa le a folyamatot.

Van egy másik lehetőség is arra, hogy egy jobot a háttérben futtassunk, mégpedig az, hogy futását felfüggesztjük, majd a háttérbe téve futtatjuk tovább.

Indítsuk el:

yes > /dev/null

Majd nyomjuk meg a ctrl-z -t, amivel a job futását felfüggesztjük.

<ctrl-z>

Stopped

A program futását ezután mind az előtérben, mind a háttérben folytathatjuk tovább. Az előtérben való futtatásra az fg (foreground) parancs szolgál, a háttérben futtatásra pedig a bg (background).

fg

yes > /dev/null

<ctrl-z>

vagy

bg

[1] yes > /dev/null &

Természetesen mind az fg mind a bg parancsnak is megadhatunk job számot és így akár háttérben futó folyamatokat is vissza lehet hozni az előtérbe és fordítva.

fg %2

vagy az egyszerűbb formát is használhatjuk:

%2

Egyéb job vezérlő (control) parancsok

Még két parancsról kell ebben a fejezetben beszélnünk: ezek a nohup és az at.

A nohup (jelentese no-hangup) arra szolgál, hogy egy folyamat azután is fusson, miután mi kiszálltunk a rendszerből; különben a háttérben futó processzek megállnak a sh-ban.

Szintaxisa: nohup <parancs>

Például:

nohup compress nagyon_nagy_program &

Ezután nyugodtan hazamehetünk, a processz le fog futni.

Megjegyzés: egyes UNIX változatokban nincs nohup; az &-el indított processzek akkor is tovább futnak, ha kilépünk.

Az at paranccsal egy programot egy meghatározott időpontban futtathatunk. Az at parancsot ugy használjuk, hogy megadjuk az időpontot, amikor el akarjuk indítani a kérdéses programot, majd leütjük az entert. Erre (a legtöbb gépen) megjelenik az at> prompt, ahova be kell gépelnünk az elindítandó programok neveit. A listát a ctrl+d leütésével zárjuk. Ha a program(ok) futtatásakor nem vagyunk bejelentkezve, akkor a program által generált kimenetet a rendszer E-mailben elküldi nekünk.

Például:

at 8:00am jan 24

at> csenget

<ctrl+d>

Ennek eredményeképp a gép január 24.-én reggel 8-kor fogja elindítani a csenget nevű programot.

A UNIX parancsok leirása (man)

Ha egy parancsról nem tudjuk pontosan azt, hogy mit is csinál, akkor a man parancs segítségével információt kaphatunk róla. A man-ban minden parancs leírásával egy "lap" (Page) foglalkozik, még akkor is, ha egy ilyen lap esetenként több képernyőoldalt tesz ki. Nézzük meg egy példán, hogy a man lapjai milyen címszavakat tartalmaznak:

man sh

NAME

sh, rsh - shell, the standard/restricted command programming language

Ez alatt a címszó alatt egy sorban leírják, hogy a parancs mit csinál. Gyakori, hogy a logikailag összetartozó parancsokat egy lapon szerepeltetik a dokumentációban. (Mint például itt is).

SYNOPSIS

/bin/sh -acefhiknrstuvx [ args ]

/bin/rsh -acefhiknrstuvx [ args ]

Itt felsorolják, hogy hogyan lehet paraméterezni a parancsot, milyen kapcsolókat ismer, stb. Az arg helyére a shell parancsokat írhatjuk.

DESCRIPTION

sh is a command programming language that executes commands read from a terminal or a file. sh is a restricted version of the standard command interpreter sh; it is used to set up login names and execution...

Itt részletesen is ismertetik, hogy a parancs mit is csinál, hogyan és mire lehet használni, stb.

OPTIONS

Ez alatt a címszó alatt találjuk a parancs kapcsolóinak részletes ismertetését.

FILES

/etc/profile

$HOME/.profile

Itt felsorolják azokat a fájlokat, amelyeknek valami közük van a parancshoz. (Például a program futás közben olvas valamelyikből, adatokat ment bele, vagy éppen a program működését lehet tartalmukkal befolyásolni.

SEE ALSO

cd(1), dup(2), echo(1), env(1), exec(2), fork(2), getopts(1), getrlimit(2), intro(1), login(1), newgrp(1), pipe(2), profile(4)

Itt vannak felsorolva azok a parancsok, amelyek kapcsolódnak a címszóban említett programhoz. Ha a fenti szöveg átolvasása után sem találtuk meg azt amit kerestünk, akkor nézzük meg az itt felsorolt parancsokról szóló dokumentáció lapokat!

BUGS

A már felderített, de ki még nem javított hibákat itt sorolják fel.

A dokumentáció lapjait általában a more parancs segítségével listázzák ki. Ilyenkor kereshetünk is a szövegben, ha a --More-- felirathoz egy / jel után beírjuk a keresett szót. Ilyenkor a more parancs nem a következő oldalt jeleníti meg, hanem előre ugrik a szövegben annyit, hogy a keresett szót tartalmazó sor a képernyő legalsó sorába kerüljön. Jegyezzük meg azonban, hogy ezzel a módszerrel csak előrefele lehet keresni!

A whatis parancs segítségével egymondatos leírást kaphatunk arról, hogy a paraméterként megadott parancs mire való. A whatis program valójában nem csinál mást, mint kiírja a megadott parancs man lapjáról a NAME mező tartalmát. Például:

whatis cat

cat (1) - concatenate and print files

Ha nem arra vagyunk kiváncsiak, hogy egy parancs mit csinál, hanem adva van egy feladat, és azt akarjuk tudni, hogy melyik paranccsal lehet azt megoldani, akkor a man adatbázisban a -k kapcsoló segítségével parancsnév helyett kereshetünk valamilyen kulcsszót is:

man -k 'execution time'

profile(2) - execution time profile

sprofile(2) - execution time profile or disjoint text spaces

Szerencsére vannak jóval fejlettebb megoldások: ilyen például a Silicon Graphics gépek insight nevű programja. Ez egy grafikus felületen futó hipertext rendszer, kereszthivatkozásokkal és példákkal, sajnos azonban csak grafikus terminálon lehet használni és természetesen csak a Silicon Graphics gépein.


A tanult parancsok felsorolasa:

chmod, chown, chgrp, pwd, ls, cd, mkdir, rmdir, mv, cp, ln, rm, cat, more, head, tail, file, du, man, vi, xedit, jot, echo, set, export, setenv,  sort, ps, jobs, kill, bg, fg, nohup, at, man


Hasznos mutatók

ORLANDO UNIX ISKOLA

 

2000 dec. 22.