Legfontosabb tulajdonságai
Programozás alapjai II. UNIX alapok
• • • •
Szeberényi Imre
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
BME IIT
<
[email protected]>
Budapesti Műszaki Egyetem UNIX alapok
© BME-IIT Sz.I.
2010.02.08.
-1-
UNIX alapok
Legfontosabb tulajdonságai/2
© BME-IIT Sz.I.
2010.02.08.
-3-
UNIX alapok
© BME-IIT Sz.I.
2010.02.08.
-4-
Bejelentkezés
• két fő irányzat:
• Felhasználó azonosítás grafikus, vagy alfanumerikus felületen keresztül:
– AT&T SystemV, – BSD
– login – password
• minden nagy gy gyártó gy saját j implementációval p 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 © BME-IIT Sz.I.
-2-
• A UNIX nem új, de mindig megújul (több mint 40 é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).
A UNIX rövid története/2
UNIX alapok
2010.02.08.
A UNIX rövid története
• 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 p 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.
2010.02.08.
• Jelszó változtatás: passwd • Kedvelt ssh kliens a putty – fontos a helyes beállítás: • keyboard • char set (translation) -5-
UNIX alapok
© BME-IIT Sz.I.
2010.02.08.
-6-
1
Bejelentkezés/2
stty
• Bejelentkezés után normál esetben a login v. home katalógusban elindul a parancsértelmező (shell). • Ez a értelmezi a felhasználói parancsokat és indítja a további processzeket (processz = futó program). • Több shell alakult ki ki, melyek elsősorban programozói szempontból különböznek. • A parancsértelmező felület kezelése igen kényelmetlen, ha nincs rendesen beállítva a környezet. • Nagyon fontos a terminál típusának beállítása ill. összhangja a teminálemulátorral. (set term=, TERM=)
• Minden terminálkapcsolat (session) önálló beállításokkal rendelkezik. A legfontosabbak:
UNIX alapok
© BME-IIT Sz.I.
-7-
2010.02.08.
– üzemmód • raw, cooked, icanon – input karakterek kezelése • echo, echoe, echok, onlcr – output kar. kezelése
– speciális karakterek • erase (^H), kill (^U), intr (^C), quit(^\) • susp (^Z) eof (^D), start (^Q), stop(^S)
UNIX alapok
© BME-IIT Sz.I.
stty/2
A ← jelre a terminálemulációk általában ^H-t adnak, de néha ^?-t. A bash mindkettőre visszalép, de a terminálkezelő csak az erase karaktert figyeli. stty –all Beállítás: (célszerű sh-t indítani előtte) stty erase ^H stty erase ^?
FONTOS tudni, hogy a bash maga intézi a sor javítását, ezért előfordulhat, hogy a bash-ban megy a ←, de más program használatakor (pl. cat) nem! © BME-IIT Sz.I.
2010.02.08.
-9-
UNIX alapok
A UNIX állományrendszere
© BME-IIT Sz.I.
(jele: -) (jele: d) (jele: c vagy b) (jele: s) (jele: p) (jele: l) 2010.02.08.
2010.02.08.
- 10 -
– 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 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)
– egyetlen gyökér (root) van a rendszerben, a kötetek (adathordozók) számától függetlenül – Fájlok legfontosabb csoportja:
UNIX alapok
© BME-IIT Sz.I.
A UNIX állományrendszere/2
• Az állományrendszer hierarchikus, fa • Legfontosabb tulajdonságok:
• egyszerű (plain) • katalógus (directory) • periféria (device) további csoportok: • socket • named pipe • szimbolikus link
-8-
stty/3
A képernyő-orientált programok mindent maguk intéznek (raw mód), míg a sor orientált programok a sor javítását, szerkesztését a terminálkezelőre bízzák (cooked mód).
UNIX alapok
2010.02.08.
- 11 -
UNIX alapok
© BME-IIT Sz.I.
2010.02.08.
- 12 -
2
A UNIX állományrendszere/3
Védelmi rendszer
– A fa struktúrában keresztkapcsolatok (link) hozhatók létre. A link két változata:
• Többfelhasználós rendszer, védeni kell: – fájlok adatait – processzek adatait
• Hard link • Szimbolikus link
• A védelem kiterjed: j
– A fájlok elnevezési szabályai rugalmasak – Az állományrendszer működését beépített cache gyorsítja (buffer cache)
UNIX alapok
© BME-IIT Sz.I.
2010.02.08.
– olvasásra – írásra – végrehajtásra
- 13 -
UNIX alapok
© BME-IIT Sz.I.
Védelmi rendszer/2
• Minden állománynak van: – tulajdonosa (rendszerint aki létrehozta) – felhasználói csoportja – legalább 3x3-as védelmi kódja
– 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)
• Ez utóbbi megadja, hogy a – tulajdonos – csoporttárs – bárki más milyen műveletet végezhet az állományon.
• A felhasználó által létrehozott minden processz ezt örökli. © BME-IIT Sz.I.
2010.02.08.
- 15 -
UNIX alapok
© BME-IIT Sz.I.
Védelmi rendszer/4
• Az ls parancs a védelmi kódot betűkkel jeleníti meg pl: ....
-r--r--r-UNIX alapok
© BME-IIT Sz.I.
- 16 -
• 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ó l ó katalógus k ló védelmétől. éd l é ől Pl: drwxrwxrwx 2 joska . . . . munka
– olvasás (r) – írás (w) – végrehajtás/keresés (x)
tanulo
2010.02.08.
Védelmi rendszer/5
• Állományokon végezhető műveletek:
-rwxr-xr-- 1 joska
- 14 -
Védelmi rendszer/3
• A bejelentkezéskor felhasználó azonosítás történik és meghatározásra kerül az adott felhasználó
UNIX alapok
2010.02.08.
2010.02.08.
- 17 -
UNIX alapok
© BME-IIT Sz.I.
1
joska . . . . levelem 2010.02.08.
- 18 -
3
Védelmi rendszer/6
Védelmi rendszer/9
• Az előzőek alapján a fájl módosításához nem kell írási jog a befogadó katalógusra. Pl: 2 jjoska . . . . munka dr-xr-xr-x
• umask Alapvetően kényelmi szerepe van a védelmi rendszerben. Az állomány létrehozásakor korlátozza (maszkolja) az új fájl védelmi kódjá A 33x3 kódját. 3 bi bites védelmi éd l i kód kódot oktális k áli számként kiolvasva pl. az rw-rw-rwvédelemnek a 666-os oktális szám felel meg. Fájl létrehozásakor az előírt védelmi kódból az umask által megjelölt bitek törlődnek.
-rw-rw-rw-
UNIX alapok
1
joska . . . . levelem
© BME-IIT Sz.I.
2010.02.08.
- 19 -
UNIX alapok
© BME-IIT Sz.I.
umask példa
Az általános célú programok 0666-tal hozzák létre az állományokat, így az umask fog korlátozni. Ez történik pl. az output átirányításkor is. Pl: ls > proba Ez csupán KÉNYELMI funkció, hiszen a tulajdonos bármikor megváltoztathatja a védelmi kódot. 2010.02.08.
UNIX alapok
© BME-IIT Sz.I.
- 22 -
c od 640 chmod 6 0 uborka ubo a chmod -w korte chmod g+w alma chmod oug=rw
- 21 -
Fájlkezeléssel kapcs. parancsok – 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
2010.02.08.
chmod okt_szám file1 file2 ... chmod oug+-=rwxstougX file ... Pl:
0666 0022 0644
© BME-IIT Sz.I.
- 20 -
chmod parancs
umask 022 (oktális); creat(file, 0666)
UNIX alapok
2010.02.08.
© BME-IIT Sz.I.
Fájlkezeléssel kapcs. parancsok/2
katalógus váltás munkakatalógus kiírása katalógus létrehozása katalógus törlése katalógus g 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 2010.02.08.
UNIX alapok
– chmod (ch. mode) védelmi kód változtatás – chown/chgrp tulajdonos megváltoztatás – mount/umount csatlakoztatás
Sok fájkezeléssel kapcsolatos parancs –r (–R) kapcsolóra rekurzív lesz (pl. cp)
- 23 -
UNIX alapok
© BME-IIT Sz.I.
2010.02.08.
- 24 -
4
Shell
On-line manual
• 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.
man man man man –k man 1 cp, vagy man –s 1 cp GNU: info
UNIX alapok
© BME-IIT Sz.I.
2010.02.08.
- 25 -
Legelterjedtebb Shell változatok
2010.02.08.
- 27 -
UNIX alapok
Shell-ek beállítása shell sh ksh
– login – start – logout – távoli vagy nem interaktív
csh
tcsh
bash
© BME-IIT Sz.I.
- 26 -
© BME-IIT Sz.I.
2010.02.08.
- 28 -
Shell-ek beállítása/2
• Több jól definiált ponton speciális parancsállományok futtására van lelhetőség:
UNIX alapok
2010.02.08.
• 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 á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ó.
– Bourne Shell (sh) → Bourne Again Shell (bash) – C Shell (csh) → tcsh – Korn Shell ((ksh)) → zsh – Visual Shell (vsh) – Midnight Commander (midc,mc)
© BME-IIT Sz.I.
© BME-IIT Sz.I.
Shell legfontosabb tulajdonságai
• Legelterjedtebb változatok:
UNIX alapok
UNIX alapok
2010.02.08.
- 29 -
UNIX alapok
login /etc/profile $HOME/.profile /etc/profile $HOME/.profile /etc/csh.cshrc /etc/csh.login ~//.cshrc 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
2010.02.08.
- 30 -
5
Parancsok általános felép.
Parancs és parancssor • Egy parancssor több parancsot is tartalmazhat.
parancs kapcsolók argumentumok .....
– prog1 ; prog2 – prog1 || prog2 –p prog1 g && p prog2 g
• Kapcsolók: parancs működését, eredményét módosító paraméterek. Többnyire "–"-szal kezdődnek (ls –l) kezdődnek. l).
• Sőt egy parancssor több sorból is állhat. (folytatósor) • Egy parancs is lehet többsoros (pl: for)
• Á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.
2010.02.08.
- 31 -
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 © BME-IIT Sz.I.
© BME-IIT Sz.I.
2010.02.08.
- 33 -
UNIX alapok
© BME-IIT Sz.I.
Szinte minden jel speciális: * ? [ ]< > | & $ { } ; ( ) '
ls A?[0-9]*z ls ~/**A**
' ' t " n ` i
• Ha a programra szeretnénk bízni a kezelést, le kell “takarni”. ls “**A**”
t n i 2010.02.08.
2010.02.08.
- 34 -
Speciális jelentés megszüntetése
• Nincs korlátozás a helyettesítő karakterek alkalmazására.
© BME-IIT Sz.I.
- 32 -
• 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
Shell állománynév helyettesítés/2
UNIX alapok
2010.02.08.
Shell állománynév helyettesítés
• • • •
UNIX alapok
UNIX alapok
- 35 -
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.
2010.02.08.
- 36 -
6
Shell parancshelyettesítés
Reguláris kifejezések
• Lehetővé teszi, hogy egy program kimenete a másik program indítási paramétere legyen:
• Szövegfeldolgozás jellemző feladat a programfejlesztői környezetekben. • A szövegre illeszkedő minta egységes g találták ki. megadására • 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.
prog1 `prog2` more `grep ` -ll alma l *.txt` * `
UNIX alapok
© BME-IIT Sz.I.
2010.02.08.
- 37 -
UNIX alapok
Reguláris kifejezések/2
© BME-IIT Sz.I.
2010.02.08.
- 38 -
Reguláris kifejezések/3
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 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.
2010.02.08.
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 - 39 -
UNIX alapok
Reguláris kifejezések/4
© BME-IIT Sz.I.
2010.02.08.
- 40 -
Reguláris kifejezés példák
\(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 i n-szer ismétlődhet i étlődh t r\{m\} r atom pontosan m-szer ismétlődhet r\{m,\} r atom legalább m-szer ismétlődhet
• • •
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.
Ezek csak ed, sed és perl esetében. UNIX alapok
© BME-IIT Sz.I.
2010.02.08.
- 41 -
UNIX alapok
© BME-IIT Sz.I.
2010.02.08.
- 42 -
7
Reguláris kifejezés példák/2
Verziókezelő rendszerek
• A ^[^mh]alma azokra a sorokra illeszkedik, amelyen nem malma, vagy halma sorozattal 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.
• 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 S í ik a verziók iók adminisztrálását d i i álá á
UNIX alapok
© BME-IIT Sz.I.
2010.02.08.
– SCCS – RCS – CVS – SVN – GIT - 43 -
UNIX alapok
© BME-IIT Sz.I.
© BME-IIT Sz.I.
2010.02.09. 2010.02.08.
- 44 -
8