UNIX dióhéjban

Tipp: a diák között lépkedni a J és K billentyúkkel lehet. Szöveges kereséshez ctrl-F használható.

Letöltés

1.

Programozás alapjai 2 UNIX dióhéjban Szeberényi Imre BME IIT <szebi@iit.bme.hu> M Ű E GY E T E M 1 7 82 UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 1-

2.

Legfontosabb tulajdonságai • • • • többfelhasználós (multiuser) időosztásos (time sharing) hardware független nyílt rendszer – gyártófüggetlen protokollokon, eljárásokon, és szabványokon alapul. – nem kötődik egyetlen gyártóhoz sem UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 2-

3.

Legfontosabb tulajdonságai/2 • szorosan kötődik az Internet technológiákhoz • mikroszámítógéptől mainframe-ig és szuperszámítógépig minden hardware platformra implementálták • sok segédprogram, melyek lehetővé teszik komplex feladatok megoldását is • I/O eszközök egységes kezelése • hierarchikus állományrendszer UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 3-

4.

A UNIX rövid története • A UNIX nem új, de mindig megújul (több, mint 50 éves) • Bell Laboratories (1968-1974) Saját célra szoftver fejlesztői környezet. (Denis Richie, Ken Thompson, PDP-7) • V6, V7 (C nyelv); Egyetemek, kutatóintézetek (sok ötlet, felhasználók igényei szerint, inkompatibilitás). UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 4-

5.

A UNIX rövid története/2 • két fő irányzat: – AT&T SystemV, – BSD • minden nagy gyártó saját implementációval rendelkezett (SVR4,OSF/1, BSD, Linux) • szabványosítási törekvések (Posix, X/Open portability guide) • legnépszerűbb PC-n futó változatai: Linux, FreeBSD, SCO, Solaris UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 5-

6.

Bejelentkezés • Felhasználó azonosítás grafikus, vagy alfanumerikus felületen keresztül: – login – password • Jelszó változtatás: passwd • Kedvelt ssh kliens a putty – fontos a helyes beállítás: • keyboard • char set (translation) UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 6-

7.

Bejelentkezés/2 • Bejelentkezés után normál esetben a login v. home katalógusban elindul a parancsértelmező (shell). • Ez értelmezi a felhasználói parancsokat és indítja a további processzeket (processz = futó program). • Több shell alakult ki, melyek elsősorban programozói szempontból különböznek. • A parancsértelmező kezelése kényelmetlen, ha nincs rendesen beállítva a környezet. • Nagyon fontos a terminál típusának beállítása, annak összhangja a terminál emulátorral. (set term=, TERM=) UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 7-

8.

A UNIX állományrendszere • Az állományrendszer hierarchikus, fa • Legfontosabb tulajdonságok: – egyetlen gyökér (root) van a rendszerben, a kötetek (adathordozók) számától függetlenül – Fájlok legfontosabb csoportja: • egyszerű (plain) • katalógus (directory) • periféria (device) további csoportok: • socket • named pipe • szimbolikus link UNIX alapok © BME-IIT Sz.I. (jele: -) (jele: d) (jele: c vagy b) (jele: s) (jele: p) (jele: l) 2020.02.10. - 8-

9.

A UNIX állományrendszere/2 – Katalógusok, perifériák is fájlként látszanak, általában teljesen azonos módon kezelhetők az egyszerű állományokkal (ugyanazok a rendszerhívások: open, close, read, write, stb.) – Állományokat sem tartalmuk, sem nevük alapján nem kell megkülönböztetni (azaz: nincs külön szöveg fájl vagy bináris fájl, nem a fájl neve vagy kiterjesztése határozza meg a fájl funkcióját) UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 9-

10.

A UNIX állományrendszere/3 – A fa struktúrában keresztkapcsolatok (link) hozhatók létre. A link két változata: • Hard link • Szimbolikus link – A fájlok elnevezési szabályai rugalmasak kötet gyökér link UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 10 -

11.

Védelmi rendszer • Többfelhasználós rendszer, védeni kell: – fájlok adatait – processzek adatait • A védelem kiterjed: – olvasásra – írásra – végrehajtásra UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 11 -

12.

Védelmi rendszer/2 • A bejelentkezéskor felhasználó azonosítás történik és meghatározásra kerül az adott felhasználó – UID-ja (felhasználó azonosító) – GID-je (csoport azonosító) (A felhasználók csoportokba oszthatók. Egy felhasználó több csoportba is tartozhat) • A felhasználó által létrehozott minden processz ezt örökli. UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 12 -

13.

Védelmi rendszer/3 • Minden állománynak van: – tulajdonosa (rendszerint aki létrehozta) – felhasználói csoportja – legalább 3x3-as védelmi kódja • Ez utóbbi megadja, hogy a – tulajdonos – csoporttárs – bárki más milyen műveletet végezhet az állományon. UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 13 -

14.

Védelmi rendszer/4 • Állományokon végezhető műveletek: – olvasás (r) – írás (w) – végrehajtás/keresés (x) • Az ls parancs a védelmi kódot betűkkel jeleníti meg pl: -rwxr-xr-- 1 joska UNIX alapok © BME-IIT Sz.I. tanulo .... 2020.02.10. - 14 -

15.

Védelmi rendszer/5 • Védelmi szempontból a katalógusok nem különböznek a fájloktól. A katalógust egy cédulának kell tekinteni, amire a fájl neve van felírva. Egy fájl védelme nem függ az azt tartalmazó katalógus védelmétől. Pl: drwxrwxrwx 2 joska . . . . munka -r--r--r-UNIX alapok © BME-IIT Sz.I. 1 joska . . . . levelem 2020.02.10. - 15 -

16.

Védelmi rendszer/6 • Az előzőek alapján a fájl módosításához nem kell írási jog a befogadó katalógusra. Pl: dr-xr-xr-x 2 joska . . . . munka -rw-rw-rw- UNIX alapok © BME-IIT Sz.I. 1 joska . . . . levelem 2020.02.10. - 16 -

17.

chmod parancs chmod okt_szám file1 file2 ... chmod oug+-=rwxstougX file ... Pl: chmod chmod chmod chmod UNIX alapok 640 uborka -w korte g+w alma oug=rw © BME-IIT Sz.I. 2020.02.10. - 17 -

18.

Fájlkezeléssel kapcs. parancsok – – – – – – – – – – UNIX alapok cd (change dir) pwd (print w. dir.) mkdir (make dir.) rmdir (remove dir.) ls (list) cp (copy) rm (remove) mv (move) ln (link) ln –s © BME-IIT Sz.I. katalógus váltás munkakatalógus kiírása katalógus létrehozása katalógus törlése katalógus lista fájl(ok) másolása fájl(ok) törlése fájl(ok) áthelyezése fájl hivatkozás készítés szimbolikus hivatkozás készítése 2020.02.10. - 18 -

19.

Fájlkezeléssel kapcs. parancsok/2 – chmod (ch. mode) védelmi kód változtatás – chown/chgrp tulajdonos megváltoztatás – mount/umoun t kötet csatlakoztatás Sok fájkezeléssel kapcsolatos parancs –r (–R) kapcsolóra rekurzív lesz (pl. cp) UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 19 -

20.

On-line manual man man man man –k man 1 cp, vagy man –s 1 cp GNU: info UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 20 -

21.

Shell • Parancsértelmező (shell) értelmezi a felhasználói parancsokat. Ez független attól, hogy grafikus, vagy alfanumerikus felületen dolgozunk. • Több shell alakult ki, melyek programozói szempontból és a kényelmi szolgáltatásokban különböznek. UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 21 -

22.

Shell legfontosabb tulajdonságai • Parancsértelmező és programozási nyelv. • Egyszerűen kialakítható ún. shell szkript vagy parancs fájl, amivel a parancskészlet bővíthető. • Egyszerű szintaxis a standard input-output átirányítására. • Csővezeték segítségével komplex feladatok megoldása a meglevő segédprogramokkal. • Egyénileg konfigurálható, testre szabható. UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 22 -

23.

Shell-ek beállítása • Több jól definiált ponton speciális parancsállományok futtására van lelhetőség: – – – – UNIX alapok login start logout távoli vagy nem interaktív © BME-IIT Sz.I. 2020.02.10. - 23 -

24.

Shell-ek beállítása/2 shell sh ksh csh tcsh bash UNIX alapok login /etc/profile $HOME/.profile /etc/profile $HOME/.profile /etc/csh.cshrc /etc/csh.login ~/.cshrc ~/.login /etc/csh.cshrc /etc/csh.login ~/.tcshrc || ~/.cshrc ~/.login /etc/profile ~/.bash_profile ||~/.bash_login || ~/.profile © BME-IIT Sz.I. start logout rsh, nem interakt. /etc/csh.cshrc ~/.cshrc /etc/csh.logout ~/.logout /etc/csh.cshrc ~/.cshrc /etc/csh.cshrc ~/.tcshrc || ~/.cshrc /etc/csh.logout ~/.logout /etc/csh.cshrc ~/.cshrc ~/.bashrc ~/.bash_logout $BASH_ENV ~/.bashrc 2020.02.10. - 24 -

25.

Parancsok általános felép. parancs kapcsolók argumentumok ..... • Kapcsolók: parancs működését, eredményét módosító paraméterek. Többnyire "–"-szal kezdődnek. (ls –l). • Általános szabály, hogy ha a fájlnév helyén – áll, akkor az a szabványos be/kimenetet jelöli. (pl: cmp – f1). UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 25 -

26.

Parancs és parancssor • Egy parancssor több parancsot is tartalmazhat. – prog1 ; prog2 – prog1 || prog2 – prog1 && prog2 • Sőt egy parancssor több sorból is állhat. (folytatósor) • Egy parancs is lehet többsoros (pl: for) UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 26 -

27.

Shell I/O átirányítás • • • • prog > file prog >> file prog < file prog << VEGE ezt a prog megkapja a standard bemenetén a VEGE végjelig. Ez a „here” dokumentum. VEGE • prog1 | prog2 UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 27 -

28.

Shell parancshelyettesítés • Lehetővé teszi, hogy egy program kimenete a másik program indítási paramétere legyen: prog1 `prog2` more `grep -l alma *.txt` UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 28 -

29.

Shell állománynév helyettesítés • FONTOS: állománykezelő szinten nincs kiterjesztés, ezért a . (pont) a név része. • prog * - tetszőleges számú bármi • prog ? - 1 db bármi • prog [abc] - a, vagy b, vagy c • prog [a-z] - egy az a-z intervallumból • prog ~/file - home_kat/file • prog ~user_nev/file - user_home_kat/file UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 29 -

30.

Shell állománynév helyettesítés/2 • Nincs korlátozás a helyettesítő karakterek alkalmazására. ls A?[0-9]*z ls ~/**A** • Ha a programra szeretnénk bízni a kezelést, le kell „takarni”. ls UNIX alapok "**A**" © BME-IIT Sz.I. 2020.02.10. - 30 -

31.

Speciális jelentés megszüntetése Szinte minden jel speciális: * ? [ ]< > | & $ { } ; ( ) ' ' ' t " n ` i t n i UNIX alapok " n t i ` n i t \ n i i $ n i i " ` \ * n n i terminális nem értelmeződik speciálisan értelmeződik © BME-IIT Sz.I. 2020.02.10. - 31 -

32.

Reguláris kifejezések • Szövegfeldolgozás jellemző feladat a programfejlesztői környezetekben. • A szövegre illeszkedő minta egységes megadására találták ki. • Segítségével bonyolult minták és illesztési szabályok adhatók meg. • Sajnos nem teljesen egységes, mert van egy bővített változata is. UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 32 -

33.

Reguláris kifejezések/2 c önmagát a c karaktert jelenti. \c "c", ha c nem számjegy és nem (, ), {, }. ^ sor elejére illeszt. $ sor végére illeszt. . egy db tetsz. kar. (kivéve újsorjel). [abc] "a", "b", vagy "c" [^abc] bármi ami nem "a", "b", vagy "c" UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 33 -

34.

Reguláris kifejezések/3 r* r atom nullaszor vagy sokszor ismétlődhet r1r2 r1 és r2 atom egymás után illesztendő úgy, hogy r1 a lehető leghosszabban illeszkedjék. r+ r atom egyszer vagy sokszor ismétlődhet r? r atom 0-szor vagy 1-szer ismétlődhet r1|r2 r1 vagy r2 atom közül csak az egyiknek kell illeszkednie Ez utóbbi 3 csak egrep, awk, lex, perl esetében UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 34 -

35.

Reguláris kifejezések/4 \(r\) r reguláris kifejezésre később hivatkozni lehet a \n alakban, ahol n egy számjegy. \n hivatkozás az n. \(r\) alakú reguláris kif.-re r\{m,n\} r atom minimum m-szer, de maximum n-szer ismétlődhet r\{m\} r atom pontosan m-szer ismétlődhet r\{m,\} r atom legalább m-szer ismétlődhet Ezek csak ed, sed és perl esetében. UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 35 -

36.

Reguláris kifejezés példák • • • UNIX alapok Az alma azt jelenti, hogy az alma minta a soron belül bárhol előfordulhat. A ^alma előírja, hogy az alma mintának a sor elején kell előfordulnia. A ^[mh]?alma azt jelenti, hogy sor elején alma vagy malma vagy halma mintának kell előfordulnia. © BME-IIT Sz.I. 2020.02.10. - 36 -

37.

Reguláris kifejezés példák/2 • A ^[^mh]alma azokra a sorokra illeszkedik, amelyen nem malma, vagy halma sorozattal kezdődnek, de ?alma mintával kezdődnek. • A ^\([abc]\)\1 azokra a sorokra illeszkedik, amelyek vagy aa, bb vagy cc kezdetűek. (\1 szerepe itt az, hogy az [abc] szabad paraméterek közül az aktuálisan illeszkedőt kijelölje. UNIX alapok © BME-IIT Sz.I. 2020.02.10. - 37 -

38.

Verziókezelő rendszerek • Együtt kezelik különböző verziókat. Nincs szükség változatos nevű állományokra. • Vannak operációs rendszerek, melyek ehhez támogatást adnak, de.... • Segítik a verziók adminisztrálását – – – – – UNIX alapok SCCS RCS CVS SVN GIT, HG, GITHUB, GITLAB … © BME-IIT Sz.I. 2020.02.10. - 38 -

39.

Verziókezelő rendszerek/2 Jellemző életciklus: R.L.b.l 1.3.2.1 1.1 1.2 1.3 1.3.1.1 Távoli tároló: UNIX alapok © BME-IIT Sz.I. 1.3.2.2 2.1 4.12 1.3.1.2 Lokális másolatok: 2020.02.10. - 39 -

Utolsó frissítés: 2020-02-10 02.55