A UNIX. A UNIX felépítése



Hasonló dokumentumok
Linux alapok. Parancsok általános alakja parancs kapcsolók paraméterek

Bevezetés az informatikába, második gyakorlat. Bevezetés Környezetváltozók és néhány egyszerű utasítás Jogosultságok Fájlkezelés

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

I. Felzárkoztató Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Az állományok kezelésére használt fontosabb parancsok

Programozás alapjai óra. Morvai Flórián, 2010 Dr. Dévényi Károly előadásvázlata alapján

Munka állományokkal. mv: áthelyezés (átnevezés) rm: törlés. rmdir: üres könyvtár törlése. -r, -R: rekurzív (könyvtár) -r, -R: rekurzív (könyvtár)

chmod umask chown, chgrp

Linux parancsok összefoglaló.

Unix-Linux alapok I. gyakorlatvezető: Lutár Patrícia

Operációs rendszerek 1.

Operációs rendszerek I. IIII. gyakorlat

Operációs rendszerek. 3. gyakorlat. Jogosultságkezelés, linkelés, csővezeték UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Hálózati adminisztráció Linux (Ubuntu 8.04) 7. gyakorlat

Operációs rendszerek gyak.

LINUX PMB LINUXOS PARANCSOK ÉS HASZNÁLATUK - GRUB

A legfontosabb DOS parancsok

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Munka állományokkal. mv: áthelyezés (átnevezés) rmdir: üres könyvtár törlése rm: törlés. -r, -R: rekurzív (könyvtár) -r, -R: rekurzív (könyvtár)

Csáky István - Mörk Péter. Orlando Unix iskola

Programozás alapjai gyakorlat

Szkriptnyelvek. 1. UNIX shell

1. Alapok. #!/bin/bash

Operációs rendszerek. 2. gyakorlat. Munka állományokkal UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs Rendszerek. Windows Parancssor

Számítógép Architektúrák. 4. Gyakorlat

Unix/Linux alapok 2. Operációs rendszerek I. készítette: Kozlovszky Miklós, Bringye Zsolt Póserné Oláh Valéria, Windisch Gergely

Saját Subversion tároló üzemeltetése i. Saját Subversion tároló üzemeltetése

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

Operációs rendszerek 2 1. óra: Linux alapok Ismétlés. Windisch Gergely félév

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

BASH SCRIPT SHELL JEGYZETEK

1. Origin telepítése. A telepítő első képernyőjén kattintson a Next gombra:

ELSŐ LÉPÉSEK A SZÁMÍTÓGÉPEK RODALMÁBA AMIT A SZÁMÍTÓGÉPEKRŐL TUDNI ÉRDEMES

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Operációs Rendszerek példatár. Utolsó frissítés: február 10.

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

OPERÁCIÓS RENDSZEREK II GYAKORLAT

Delphi programozás I.

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Bevezetés a UNIX rendszerekbe

Operációs rendszerek gyakorlat

S z á m í t ó g é p e s a l a p i s m e r e t e k

Bevezetés a héj (shell) és a UNIX terminál használatába


Bevezetés jogosultságkezelés, csővezeték, átirányítások. BASH script programozás

Operációs rendszerek gyakorlat

LINUX PMB VIRTUALBOX TÖRTÉNELEM DEBIAN ALAPPARANCSOK - GRUB

Szilipet programok telepítése Hálózatos (kliens/szerver) telepítés Windows 7 operációs rendszer alatt

Operációs rendszerek 1.

TestLine - GINOP teszt Minta feladatsor

Java-s Nyomtatványkitöltő Program Súgó

BEKÉRT ADAT KÉPERNYŐRE ÍRÁSA KÖRNYEZETI VÁLTOZÓK FÁJL REDEZETT KIÍRÁSA KÖNYVTÁRBAN BEJEGYZÉSEK SZÁMA FÁJLBAN SZÁM NÖVELÉSE. #!

1_Linux_bevezeto_bash

2016/06/09 13:15 1/108 Linux parancssor


S z á m í t ó g é p e s a l a p i s m e r e t e k

Informatika szintmérő-érettségi tételek február

Thermo1 Graph. Felhasználói segédlet

Hardver és szoftver követelmények

OPERÁCIÓS RENDSZEREK 1. PROCESSZKEZELÉS

Operációs Rendszerek II. labor alkalom

Programozás I. gyakorlat

A L I N U X f e l é p í t é s e

Az SQL*Plus használata

Bevezetés az informatikába 7. előadás. A UNIX operációs rendszer. Jellemzői. Védelem. A UNIX rendszer felépítése

AWK programozás Bevezetés

AWK programozás, minták, vezérlési szerkezetek

Bevezetés a Python programozási nyelvbe

Tájékoztató. Használható segédeszköz: -

6. BASH programozás I.

Számítógépes alapismeretek

C/C++ programozás UNIX környezetben

Szövegszerkesztő programok: Jegyzettömb, WordPad, Microsoft Word

Operációs rendszerek. 10. gyakorlat. AWK - bevezetés UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

Unix/Linux alapok. Operációs rendszerek I. készítette: Bringye Zsolt, Kozlovszky Miklós, Póserné Oláh Valéria, Windisch Gergely

SZÁMÍTÓGÉP HÁLÓZATOK BEADANDÓ ESSZÉ. A Windows névfeloldási szolgáltatásai

Operációs rendszerek gyakorlat

A billentyűzet a legfontosabb adatbeviteli eszköz, mely szinte rögtön a számítógép bekapcsolása után,,életre kel. Segítségével az operációs rendszer

Operációs rendszerek. 2. gyakorlat. Munka állományokkal UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Linux kezelés alapjai

EDInet Connector telepítési segédlet

ELTE SAP Excellence Center Oktatóanyag 1

7. Laboratóriumi gyakorlat, 1. rész : Vezérlési szerkezetek II.

PDF. Tartalomjegyzék 1/21

Útmutató az IP és Routing mérésekben használt Cisco routerek alapszint konfigurációjához i

BaBér bérügyviteli rendszer telepítési segédlete év

Ügyviteli rendszerek hatékony fejlesztése Magic Xpa-val mobilos funkciókkal kiegészítve. Oktatók: Fülöp József, Smohai Ferenc, Nagy Csaba

Példa: Aktuális könyvtár tartalmának fájlba mentése, melynek neve az aktuális dátum és idő: ls l > `date+%f_%h-%m`.txt

Youtube videó letöltés és konvertálás Linuxon

Készítette: Csatlós István 2010-ben

Novell és Windows7 bejelentkezési jelszavak módosítása

Operációs rendszerek gyakorlat

Kincskereső Könyvelő Klub. Moodle felhasználói kézikönyv

3.óra Beviteli perifériák. Perifériák: A szg.-hez csatolt külső eszközök. A periféria illesztőkön keresztül csatlakoznak.

Jelszóváltás a ludens gépen

18. témakör. Jogosultságok (Windows és Linux jogosultságok összehasonlítása, helyi és megosztási jogosultságok)

Átírás:

A UNIX A UNIX név nem csak egy szimpla operációs rendszert jelent, hanem a hozzá kapcsolódó user interface-t, programokat, segédprogramokat, amelyek együtt egy többfelhasználós, (multi user) többfeladatos (multi tasking) rendszer használatát teszik lehetõvé. Míg a DOS egyfelhasználós, egyfeladatos rendszer, azaz egyszerre csak egy felhasználó egy programot futtathat rajta, addig a UNIX alatt egyszerre több felhasználó is dolgozhat, s mindegyikük több programot is futtathat egyidejûleg. A párhuzamosan futó programok prioritásuk alapján jutnak processzor idõhöz. A többprocesszoros rendszereknél lehetséges, hogy az egyes processzorokon külön fussanak a programok. Ebbõl a szempontból a legegyszerûbben a szimmetrikus multiprocesszoros rendszerek mûködnek. Itt a processzorok közös memóriát és lemez területet használnak és a teherelosztás a prioritás alapján teljesen automatikus a processzorok között. 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 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 privilégizá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. Nagyobb rendszereken más-más személy végezheti ezeket a feladatokat. 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öbbfelhaszná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 futtatható fájl, míg a folyamat a felhasználó által elindított programból keletkezik. Ez azt jelenti, hogy egyetlen programnak több felhasználó által történõ elindításakor több folyamat keletkezik, vagy egyetlen felhasználó által ugyanazon program többszöri indítása során szintén több folyamat indul el. A munka során a kiadott parancsok a DOS operációs rendszerhez hasonlóan szekvenciálisan kerülnek végrehajtásra. A DOS-al ellentétben itt viszont mód van úgynevezett háttérfolyamatok elindítására, ahol 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. A háttérfolyamat egy speciális fajtája démon folyamat. 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. (Hasonlóan a DOS-hoz itt is vannak joker karakterek, melyeket fájlokra való hivatkozáskor használhatunk így pld *c valamennyi c betûre végzõdõ fájlt jelenti, míg a c* valamennyi c betûvel kezdõdõ fájlt jelent, ha egy karaktert akarunk helyettesíteni a fájl névben akkor a? jelet használhatjuk. Ha egy fájl a. karakterrel kezdõdik akkor az rejtett lesz.)

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 könyvtár gyökere (root directory), minden más könyvtár innen nyílik és itt található a UNIX nevû futtatható program, az operációs rendszer magja (kernel). /bin Bináris programok könyvtára, itt vannak a legfontosabb végrehajtható bináris programok. /dev Itt vannak az eszközfájlok (terminálok, lemezek, CD ROM olvasók, stb.) /etc Egyéb rendszerfájlok, rendszerint a rendszeradminisztrációs fájlok. A legtöbb esetben itt van a jelszavakat tároló fájl is. /lib Fontosabb függvénykönyvtárak - ezeket csak a programozók használják. /tmp Átmeneti tárolásra szolgáló alkönyvtár. Ezt az alkönyvtárat rendszeres idõközönként törlik, ezért soha ne tároljunk itt semmi értékeset! /usr A felhasználói fájlrendszer: munkakönyvtárak, stb. /home Bejelentkezési katalógus (Home directory) /etc/skel Felhasználói környezetet konfiguráló fájlok "prototípusai" /etc/inittab Az operációs rendszer felállásának vezérlõfájljai. /etc/default Egyes fontosabb programok alapbeállításai. /etc/termcap Termináldefiníciók. /etc/hosts Szerver címek. /usr/adm Rendszeradminisztrációs fájlok. /usr/bin A felhasználók által használatos futtatható bináris fájlok. /usr/man Az online dokumentáció, amelyet a man paranccsal tudunk megjeleníteni.

/usr/local Egyéb nyilvános dolgok (hírek, programok, stb.). /usr/spool Kommunikációs programok munkakönyvtárai. /etc/mail Itt van valamennyi felhasználó postaládája (mailbox). Elolvasni természetesen nem tudjuk más leveleit, de azt megnézhetjük, hogy valakinek van-e levele a postaládájában. 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. A gyökérkatalógus (root directory) a fájlrendszer kezdõpontja, ahonnan az egész állományrendszer felépül. 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. 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 (Errõl bõvebben a Fájlmûveletek címû fejezetben lesz szó.) 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... Az [ugoa] kapcsolókkal írjuk elõ, hogy kinek adjuk a jogot. Adhatunk jogokat a tulajdonosnak (u - user), a csoportnak (g - group), másoknak (o - others) vagy pedig mindenkinek egyszerre (a - all). A [+-] azt jelenti, hogy adhatunk (+) vagy elvehetünk (-) jogokat. Végül pedig, hogy olvasási (r - Read), írási (w - Write) vagy futtatási (execute) jogot adunk. Nehány példa: 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 Ezzel a paranccsal az aktuális könyvtár nevét írathatjuk ki. Az ls (list) parancs Ez a parancs megmutatja az aktuális könyvtárban tálalható fájlok neveit. A lista alapértelmezés szerint abc sorrendben sorolja fel a neveket, de alkalmas kapcsolók segítségével más sorrendet is elõírhatunk. Kapcsolók: -a Minden katalógusbejegyzést kilistáz. A ponttal kezdõdõ rejtett fájlokat is. -d Ha az argumentum katalógus, a benne szereplõ állományokat nem listázza. -C Több hasábban nyomtatja ki a katalógus bejegyzéseket. -l Részletes információt listáz ki, tulajdonos neve, hozzáférési jogok. -r Megfordítja a listázás sorrendjét, ha alfabetikus volt, akkor fordított abc sorrendben listáz, ha keletkezési idõ szerint volt, akkor a legidõsebbel fogja kezdeni. -t Fájlok kilistázása idõrendi sorrendben. (A legutolsó módosítás szerint.) -R A katalógusnév alatti teljes fájlstruktúrát kilistázza, nem csak a megnevezett katalógusban szereplõ fájlokat. -F A listázás során minden név után / jelet rak ha az katalógus, * jelet rak ha az futtatható fájl és @ jelet rak ha az szimbolikus link.

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 soros üzemmódban jelentkezik be. 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ódja van: szöveges mód és parancs mód. A parancs módban begépelt karaktereket paracsként értelmezi, például x="karakter törlés". Szöveges

üzemmódban a beírt karakterek a kurzor aktuális pozíciójára kerülnek. Parancs módból szöveges (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 jütünk 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. Kilépés elrontott munka esetén :q! (a kettõspont és a felkiáltójel itt a parancs része). Mozgás a szövegben Ctrl-u, Ctrl-d A kurzort a szövegben felfelé (up) vagy lefelé (down) viszi 12 sorral. 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. b A kurzort az elõzõ szó elejére viszi. Ctrl-g Kiírja a kurzort tartalmazó sor sorszámát. G A szerkesztett fájl végére ugrik. n G 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. n A keresett_szó következõ elõfordulási helyére ugrik. Szöveg beszúrás i A begépelt szöveget beszúrja (insert) a kurzor poziciójához. Ha befejeztük a mûveletet, üssük le az ESC billentyût. a A begépelt szöveget a kurzor poziciójától kezdve hozzáfûzi (append) a szerkesztett dokumentumhoz. Ha befejeztük a mûveletet, üssük le az ESC billentyût. o Egy üres sort hoz létre az aktuális sor alatt. Gépeljük be a kivá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 kivánt szöveget, majd üssük le az ESC billentyût. Szöveg módosítása x Kitörli a kurzor pozicióján álló karaktert. r Kicseréli (replace) a kurzor pozicióján álló karaktert a beírt karakterre. R Felülírásos üzemmódba kapcsol; Üssük le az ESC billentyût ha vissza akarunk térni parancs módba. dd Kitörli az aktuális sort. J A következõ sort összefûzi az aktuális sorral. 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. u Visszaállítja az utolsó mûveletet. U Visszaállítja az eredeti állapotot az aktuális sorban. :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ánni helyre. 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. :q! Mindenképpen kilép, az esetleges változtatások elmentése nélkül. :wq Elmenti a szerkesztett szöveget és kilép. Egyéb. Megismétli az utolsó parancsot. 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 jot editor A jot Silicon Graphics IRIX operacios rendszere alatt futo, GL-grafikat hasznalo sokoldalu, grafikus szovegszerkesztõ. Menurendszerrel vezerelheto, alapos segitoszoveggel. 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/binben, 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. Az Internet hálózat A világ számítógépeit összekötõ hálózatok vezetékei átszelik az egész földet. Több világméretû hálózat létezik, mi a továbbiakban az Internet hálózattal fogunk foglalkozni, mivel az oktatási intézményekben ez a legelterjedtebb. Minden hálózatba kötött gépnek van egy neve; ez az un. node name vagy host name, például: goliat.eik.bme.hu. A névbõl általában következtetni lehet a gépet mûködtetõ intezetre és annak helyére. Minden gépnek van egy telefonszám-szerû száma is, amit IP számnak hívunk. Ez valahogy igy néz ki: 152.66.115.2 (a pontokkal elválasztott számok megfelelnek a node név egyes elemeinek.) A hálózat bármelyik gépére be tudunk jelentkezni "fel tudjuk hívni" a telnet parancs segítségével (dolgozni természetesen csak akkor tudunk rajta, ha van usernameünk és érvényes jelszavunk.) A hívás történhet a node név és az IP szám alapján. A gépek közötti kapcsolat a TCP/IP protokoll segítségével történik. Errõl annyit kell tudnunk, hogy az adatokat nem egyszerre küldik el, hanem kis csomagokra (packet) bontják, majd ezeket egymás után elindítják a célállomás felé. Ha egy csomag útközben elvész, akkor elég csak a hiányzó csomagot újra küldeni. Ezért

szokták az Internetet "csomagkapcsolt hálózat" (packet switching network) néven is emlegetni. Az Interneten belül számos szolgáltatás érhetõ el, ezek közül a három legfontosabb az elektronikus levelezés, a fájl átvitel és az online kapcsolat (talk). A UNIX mail programja A bejelentkezéskor találkozhatunk a következõ üzenettel: You have mail. Ez azt jelzi, hogy valakitõl levelet kaptunk. A levél elolvasásához gépeljük be a következõ parancsot: mail Ez megmutatja a postafiókunkban (mailbox) levõ leveleket, hogy honnan érkeztek, mirõl szólnak, mikor adták fel, és a levél sorszámat. * A mail egyik régebbi változatában, a levelek fejléce helyett a program kilistázza az összes levelet. Ez nagyon kellemetlen szokás, mert ha hosszú levelünk van, akkor a szöveg eleje lefut a képernyõrõl. Ha ilyen a mail programunk, akkor használjuk a h parancsot (lásd késõbb), vagy a mail helyett a Mail (nagy kezdõbetûvel!) nevû programot indítsuk el. Ezután megjelenik egy & prompt, ahol az alábbi parancsokat adhatjuk ki:? Kilistázza a használható parancsokat. nnn Megmutatja a képernyõn az nnn-dik számu levelet. h Ismét megmutatja beérkezett leveleink fejléc-listáját. p Kilistázza az aktuális levelet, vagyis azt, amelyik neve elõtt egy > jel áll a felsorolásban. Egy levelet a legegyszerûbben úgy tehetünk aktuálissá, hogy beírjuk a sorszámát. Miután elolvastuk az aktuális levelet, az alábbi parancsok egyikét használhatjuk az levél kezelésére: d Kitörli az aktuális levelet. s Elmenti az aktuális levelet az mbox nevû fájlba. (Ha a fájl már létezik, akkor hozzáfûzi.) s file-név A levelet a file-név nevû fájlba menti, vagy hozzáfûzi, ha a fájl már létezik. r Válaszol az aktuális levélre (reply). q Kilép a mail programból és visszatér a > prompthoz. Hogyan küldjünk levelet valakinek? Ha azonos gépen vagyunk felhasználók, akkor elegendõ az ismerõs username-je. (pl.kovács.) Ekkor a legegyszerûbb módszer: mail Kovács mail Kovács@goliat.eik.bme.hu (Ha más gépen vagyunk felhasználók.) A program megkérdezi hogy mi legyen a levél témája (Subject). Írjunk be néhány jellemzõ szót és üssük le az enter billentyût. Ezután írjuk be az üzenetet; minden sor végén üssük le az Enter-t. (Javítani csak egy soron belül lehet!)