Linux felhasználói ismeretek
INIT A Linux legfőbb szolgáltatása Ez indul elsőként Meghatározza, hogy milyen alkalmazások fognak lefutni, és milyen démonok fognak elindulni. DÉMON: Olyan program, ami valamilyen szolgáltatásért felelős.
DÉMONOK apache, httpd: WEB szerver sendmail, smail, exim: levelezés lpd: nyomtatás smbd (SAMBA): fájlmegosztás named, (bind): névkiszolgálás
DÉMONOK KONFIGURÁLÁSA konfigurációs állomány (/etc, vagy a démon megfelelő alkönyvtárában) egyszerű szöveges állományok # - komment sorok általában vannak X-Window alatt futó konfigurációs segédprogramok is.
DÉMONOK INDÍTÁSA Kézzel: parancs kiadásával, init szkript futtatásával (start, stop, reload) Automatikusan: az „rc könyvtárak” futtatható állományait az init futtatja le az indítási folyamat során inetd metadémonon keresztül: olyan démonok esetén, amire nincs mindig szükség (a memóriában az inetd van, ő indít szükség esetén)
INETD konfigurációs állománya a /etc/inetd.conf fájl ha itt megtalálható egy szolgáltatás, akkor igény esetén használhatóvá válik # jelet elétéve nem lesz elérhető a következő indításnál kill -HUP szám (inetd-beli azonosító): a szolgáltatás leállítása
PORT SZÁM Minden szolgáltatáshoz jól meghatározott port szám tartozik, ezeken lehet őket megszólaltatni /etc/services - az összerendelések helye ftp 21/tcp www 80/tcp pop3 110/udp
A PARANCSÉRTELMEZŐ A felhasználó és a gép közötti kommunikáció programja (shell) csh tcsh ash bash ksh zsh
PROCESSZ-EK, JOB-OK Minden futó program egy processzt határoz meg ps ax - az éppen futó processzek listája
PROCESSZ-EK, JOB-OK Ha a lista nem férne ki: Ps ax|more Minden processsznek van egy azonosító száma, amivel lehet rá hivatkozni.
PROCESSZ-EK, JOB-OK Ha csak bizonyos karaktersorozatot tartalmazó processzlistát kérünk: Pl: ps ax|grep lib
PROCESSZ LEÁLLÍTÁSA stop paraméterével (ha van neki) /etc/rc.d/init.d/apache stop kill paranccsal: kill -9 2031 A 2031-es azonosítójú processzt utasítottuk, hogy feltétel nélkül lépjen ki. Killall apache
PROCESSZ, JOB "félreállítás": ctrl+shift+z Háttérben folytassa a munkát: bg Háttérben futó munkáink: jobs Újra előtérbe hozás: fg munkaszám
TOP A rendszerünk foglaltsságáról ad információt
FREE A memória foglaltsága
DF A merevlemez partíciók foglaltsága
LS Könyvtár tartalmának listázása
LS-L Többlet információ
LS -A A ponttal kezdődő fájlokat is mutatja
KÖNYVTÁRKEZELÉS cd könyvtárváltás mkdir könyvtár létrehozása rm -rf könyvtárnév könyvtár törlése rm fájlnév fájl törlése * több karaktert helyettesíthet ? egy karaktert helyettesíthet
CAT Fájl tartalmának megtekintése
LESS Fájl tartalmának a megtekintése úgy, hogy abban közlekedni is lehet.
MAN Részletes leírás egy adott parancsról
Memória kezelés Szerencsére nincs felosztva, teljesen egyben kezeli. Virtuális memória külön partíción (swap partíció) Egy swap általában 2-szer akkora mint a fizikai memória, bár néha elosztva összesen 16 db lehet belőle.
Lemezek, fájlrendszerek, fájlok Egy elfogadott fájlrendszer felépítés, amit minden disztribúciónak illik követni. Gyökér (root) fájlrendszer: géptől függö, egyedi, tartalmazza a bootoláshoz szükséges dolgokat /bin programok, amit a felhasználók is használhatnak
Lemezek, fájlrendszerek, fájlok /sbin rendszerprogramok és szkriptek /etc konfigurációs fájlok /root a root (rendszergazda) home könyvtára /lib osztott könyvtárak a programokhoz /dev eszközfájlok könyvtára, minden eszköz az eszközfájlján keresztül érhető el
Lemezek, fájlrendszerek, fájlok /boot a rendszerindításhoz szükséges összetevők (pl. lilo, grub fájljai) /mnt ha fel akarunk csatolni egy fájlrendszert, akkor azt itt érdemes megtenni /media cserélhető meghajtók /media/floppy /media/cdrom /media/usbdisk
/usr fájlrendszer Felhasználói programokat és megosztott adatokat tartalmaz /usr/X11R6 az X-Window rendszer állományai /usr/bin /usr/sbin /usr/include fejléc állományok a C programozási nyelvhez /usr/lib /usr/local külön telepített programok
/var fájlrendszer A működés során változó állományokat tartalmaz /var/log naplófájlok /var/run processz azonosítók, felhasználók, stb. /var/spool várakozási sorok /var/tmp ideiglenes állományok
Lemezek, fájlrendszerek, fájlok /home a felhasználók személyes állományai /proc az éppen futó rendszerünkről tartalmaz információkat /opt opcionálisan telepíthető, általában külső gyártótól származó programok
Háttértárak /dev könyvtár eszközfájljain keresztül érhetők el. /dev/fd0 floppy lemez (DOS-ban A:) /dev/fd1 floppy lemez (DOS-ban B:) IDE winchesterek, IDE CD meghajtók /dev/hda 1. csatorna master /dev/hdb 1. csatorna slave /dev/hdc 2. csatorna master /dev/hdd 2. csatorna slave Partíciók: /dev/hdc3 a 2. csatorna master lemezének 3. partíciója
Háttértárak SCSI winchesterek /dev/sda, /dev/sdb, /dev/sdc,... A partíciók számozása az IDE winchesterekhez hasonlóan SCSI CD meghajtók /dev/scd0, /dev/scd1,...
PORTOK /dev/ttyS0 a DOS alatti COM1 soros port. /dev/lpt0 a DOS alatti LPT1 párhuzamos port. /dev/psaux A PS/2 port
PARTÍCIONÁLÁS Max. 4 db elsődleges partíció lehet A winchester első lemezének első rekordja a Master Boot Rekord. A BIOS a boot folyamatban ehhez a szektorhoz nyúl és az itt talált programnak adja át a vezérlést. Az itt talált betöltő program beolvassa a partíciós táblát és keres egy bootolható partíciót.
PARTÍCIONÁLÁS A bootolható program boot szektorára ugrik, ahol egy másik program elkezdi betölteni az operációs rendszert. Minden lemez minden partíciójának rendelkeznie kell boot szektorral Ha nem elég a 4 elsődleges partíció, akkor kiterjesztett partíciót, és azon logikai meghajtókat kell alkalmazni
MOUNTOLÁS Fájlrendszer csatlakoztatása a rendszerhez Az eszközök nem alkotnak külön fájlrendszert, mint a DOS esetén mount /dev/hdc /mnt/cdrom A 2. IDE csatorna master egységét csatolja cdrom néven A CD állományai ezután a /mnt/cdrom könyvtárban találhatók SUPERMOUNT: Automatikus mountolás indításkor
Fájlrendszer lecsatolása umount /mnt/cdrom A CD addig ki sem vehető, amíg fel van mountolva A lecsatolás csak akkor lehetséges, ha nem használja az adott fájlrendszert senki. mount 10.1.1.2/home home felcsatolás a hálózaton keresztül /etc/fstab állományban megadott módon történik a mountolás bootoláskor
Fájlok hozzáférése Gazda Csoport
Fájlok hozzáférése - fájl d könyvtár l link R olvasható(4) Gazda jogai w írható(2) x futtatható(1) Gazda jogai Csoport jogai Többi felhasználó jogai
JOGOK MÓDOSÍTÁSA chmod xyz fájlnév X gazda jogainak összege Y csoport jogainak összege Z egyéb felhasználók jogai Pl: chmod 100 vizsga.arj chmod 300 vizsga.arj chmod 754 vizsga.arj
Tulajdonos és csoport váltása chown újtulajnév fájlnév tulajdonosváltás chgrp újcsoportnév fájlnév csoportváltás R kapcsolóval egy egész alkönyvtár tartalmára vonatkozik a változás
LINKELÉS Más helyen és esetleg más néven hivatkozunk egy fájlra, vagy könyvtárra ln /mnt/floppy /home/lemez A floppy fájlrendszerét "helyileg közelebbre hozzuk" a hivatkozással.
Az indulás Önteszt BIOS betöltő rekord kereső program végignézi a lemezeket, hogy melyik boot szektorában van betöltő program (boot loader) MBR: a winchesterek első lemezének első rekordja Boot szektor: a partíció első rekordja
Az indulás Ugrás annak a partíciónak a boot szektorára, ami bootolható (az MBR bejegyzései alapján) Az itt található program betölti az operációs rendszert LILO: Linux Loader, betölti a kernelt.
LILO, GRUB Lehet az MBR-ben, segítségével az összes operációs rendszerünket bootolhatjuk Lehet a Linux partíció boot szektorában, a Linux betöltéséhez A lilo behúzza a kernelt, inicializálja a hardvert, betölti a szükséges eszközvezérlőket Elindul az INIT folyamat (bejelentkezések lehetővé tétele, fájlrendszerek ellenőrzése, démonok indítása)
Futási szintek LILO: kernelnév szám 0 a rendszer leállítása 1 egy felhasználós mód, csak a root (szervíz üzemmód) 2-5 normál működési szintek, a root állítja be azok sajátosságait 6 újraindításra szokták használni
Leállítás shutdown - leállítási folyamat végrehajtása sync - memória kiírása lemezre shutdown -h a folyamat végén leáll shutdown -r a folyamat végén újraindul shutdown -h now azonnal elkezdi leállítani a rendszert shutdown -h 10 'Üzenet' 10 perc múlva kezd leállni, az üzenetet már most elküldi minden bejelentkezett felhasználónak
Felhasználók karbantartása adduser felhasználó_név Új felhasználó létrehozása passwd felhasználó_név Jelszó beállítása
Héjak(shellek) A UNIX rendszerek legalapvetőbb munkakörnyezete Közönséges felhasználói program Sokféle héj létezik sh csh ksh tcsh ash vsh zsh bash
Héjak(shellek) Legfontosabb tulajdonságok: Parancsértelmező, mely a parancsokat a standard bemenetről(stdin) vagy fájlból olvassa Egyszerűen kialakíthatók az ún. shell sriptek(parancsállományok) A shell scripteket ugyanúgy paraméterezhetem akárcsak a programokat Ez egy programnyelv, mely string változókra és hatékony vezérlési szerkezetekre épül. Lehetővé teszi a B/K átirányítását, csővezetékezést, processzek kezelését Könnyű konfigurálhatóság, stb.
Parancssor,argumentumok,B/K Egy parancssor legegyszerűbb formája: parancs arg1 arg2 … argn pl. grep pista /etc/passwd A paraméter lehet: egyszerű karakterlánc állománynév karakterlánc joker(helyettesítő) karakterekkel Egy újabb parancs, ez a parancshelyettesítés Be/Kivitel átirányítása stdin (0) stdout (1) stderr (2)
B/K átirányítás stdin stdout hozzáfűzés stdout-al (>>) stderr pl.: cat < file1 vagy cat 0< file1 stdout pl.: ls > file2 vagy cat 1> file3 hozzáfűzés stdout-al (>>) Pl.: cat >> file4 stderr find / -name "*" -print find / -name "*" -print 2> /dev/null
Csővezeték(pipe) Speciális állomány ami egy FIFO-t valósít meg. A csővezeték mérete véges A stdin és stdout is csővezetékbe irányítható. pl. sort file1 | wc –w >file2 Vagy pl. ls | pr A FIFO-nak nem kell nagynak lennie(csak 8Kb) hiszen az egyes parancsok párhuzamosan futnak. Az eredmény a cső végén még azelőtt megjelenhet, mielőtt az első program az összes bemenetét feldolgozná.
Parancshelyettesítés Egy programnak paraméterként egy másik program eredményét adjuk át. Pl.: more `grep –l halacska *` A különbség a csővezeték és a parancshelyettesítés között az, hogy míg a csővezetéknél az adatok a stdin-ről jönnek azok párhuzamosan is végrehajtódhatnak, addig itt az aposztrófok közé szorított parancsnak ki kell teljesen értékelődnie mielőtt eredménye átadódhatna.
Parancssorozatok,Joker karakterek Pontosvesszővel elválasztás: pl.: date ; ls Egy parancs végrehajtása után hátrahagy egy kilépési értéket(exit status). || és && használata, feltételesen végrehajtódó sorozat parancs1 || parancs2 parancs1 && parancs2 Joker karakterek: * nulla vagy tetszőleges számú tetszőleges karakter ? Pontosan egy tetszőleges karakter [abd] Az „a” avgy „b” vagy „c” karakterek egyike [a-z] Az a-z intervallumból egy karakter
Szinkronizáció, background Eddig a kiadott parancsaink egymás után szinkronban futottak le. Lehetőség van azokat egyszerre, egymással aszinkron állapotban is futtatni. pl.: date & Vagy pl. cc source > program & Parancskiadásakor egy a parancshoz rendelt folyamat jön létre azonosítóval együtt. megszakítás(CTRL-Z), újraindítás(fg) jobs parancs kiadásával megtekinthetjük a felfüggesztett folyamatokat
Shell script(parancsállomány) Egy shell script egy szöveges fájl, mely parancsokat és vezérlési szerkezeteket tartalmaz. Legyen egy ilyen shell scriptünk most a my_script nevű. Tartalma: #!/bin/bash echo Hello World A shell maga is egy program ahogy azt már említettük, vagyis rekurzíve újra lefuttatható. Egy shell scriptet így egy shellből a következőképpen futtathatok: sh my_scipt
Bourne Shell(változók) Speciális változók: $0 parancsállomány neve $# indítási paraméterek száma $* összes indítási paraméter $1, $2,…,$n az első második n-edik paraméter $$ processz szám $HOME home katalógus neve $PATH keresési út Stb.
Legfontosabb belső parancsok break Kilép a while, until, for vagy select hurokból continue A while, until, for vagy select következõ ciklusát kezdi el eval [Argumentum ...] Beolvassa az Argumentumokat shell inputként, és az eredményként létrejövõ parancso(ka)t végrehajtja exit A shell befejezi futását és az n értékkel tér vissza let Kifejezés ... Kiértékeli a megadott atritmetikai kifejezést read [Var] Beolvas egy sort a standard bemenetrõl a Var változóba shift [n] Átszámozza a pozíciós paramétereket n+1-tõl kezdve 1, 2 ...-re.
Legfontosabb belső parancsok A feltételeket a test, az [ és ] illetve a [[ és ]] parancspárral adhatjuk ki, állományok jellemzõinek vizsgálatára, számok, stringek összehasonlítására [-a File] Igaz, ha a File létezik [-n String] Igaz, ha a String nem nulla hosszúságú [File1 -nt File2] Igaz, ha File1 létezik és újabb, mint File2. [String = Minta] Igaz, ha a String egyezik a Mintával [String1 > String2] Igaz, ha String1 a String2 után következik könyvtári sorrendben [Kifejezés1 -eq Kifejezés2] Igaz, ha a Kifejezés1 egyenlõ Kifejezés2-vel. [Kifejezés1 -lt Kifejezés2] Igaz, ha a Kifejezés1 kisebb, mint Kifejezés2 [Kifejezés1 -ge Kifejezés2] Igaz, ha Kifejezés1 nagyobb vagy egyenlõ, mint Kifejezés2
Vezérlési szerkezetek If feltétel: If parancsok then parancsok else parancsok fi For ciklus: for i in s1 s2 … do parancsok done If test $1=‘alma’ then echo ‘$1=alma’ fi for i in alma körte do echo $i done
Vezérlési szerkezetek While ciklus: while parancsok do parancsok done Until ciklus: until parancsok C=0 while [ $C -lt 10 ]; do echo The counter is $C C=`expr $C + 1` done C=20 until [ $C -lt 10 ]; do echo C $C C=`expr $C - 1`
Vezérlési szerkezetek Case szerkezet: Case word in minta1) parancsok ;; minta2) parancsok ;; esac case $# in 1) echo 1 ;; 2) echo 2 ;; *) echo sok esac
Egyszerű scriptek #!/bin/bash echo Kérlek add meg a neved read NAME echo "Hi $NAME!" tar -cZf /var/my-backup.tgz /home/me/ if test $# -le 5 then echo Az argumentumok szama kisebb vagy egyenlo mint 5. else echo Az argumentumok szama nagyobb mint 5. fi
Számok összege 1-től a megadottig. #!/bin/bash sum=0 i=1 while [ $i -le $1 ]; do sum=`expr $sum + $i` i=`expr $i + 1` done echo $sum
Milyen nap van ma? #!/bin/bash Mon=hetfo Tue=kedd Wed=szerda Thu=csutortok Fri=pentek Sat=szombat Sun=vasarnap nap=`date +%a` # date +%a csak annyit ír ki, hogy Mon vagy Tue stb. eval echo Ma \$$nap van.
n! kiszámítása ciklussal #!/bin/bash i=$1 # kezdő érték beállítása fac=1 while [ $i -gt 0 ] do fac=`expr $fac \* $i` # kell a per jel a szorzásjel előtt, különben # syntax errort kapunk i=`expr $i - 1` done # eredmény visszaírása echo $fac
Két sztring összehasonlítása #!/bin/bash S1='string' S2='String' if [ $S1!=$S2 ]; then echo "S1('$S1') nem egyenlő S2('$S2')-vel" fi if [ $S1=$S1 ]; then echo "S1('$S1') egyenlő S1('$S1')-vel"
Hány Anna nevû user van összesen és ezek közül hányan nincsenek bejelentkezve? #!/bin/bash x1=`cat /etc/passwd | grep Anna | wc -l` x2=`finger | grep Anna | wc -l` x3=`expr $x1 - $x2` echo $x3
LINUX parancsok cd $HOME : a saját könyvtárba áll export változó=érték pl. PS1=‘\u@\h:\w\$ ‘ probi@sop-fox:/bin$ mkdir -p auto/ford/puma/fekete: egyszerre létrehozza a könyvtárakat. ? ;-el elválasztva írjató több parancs? 70
LINUX parancsok cp -ar: a: maradnak az attributumok, r: rekurzív módon rm -rf ?? (rekurzív?) mv arlista lista : átnevezés 71
Információs parancsok ps -e : minden folyamat -f : részletesebb lista (PPID: szülő ID, STIME: indítási időpont) 72
Kommunikációs parancsok 73
Kommunikációs parancsok 74
Gyakorló feladatok touch torta.txt Készítsünk egy torta.txt file-t mkdir talca cp torta.txt talca cd talca ls torta.txt cat torta.txt rm torta.txt cd.. rmdir talca Készítsünk egy torta.txt file-t Készítsünk egy talca nevű könyvtárat! Másoljuk be a torta.txt-t a talca kt-ba! Lépjünk be a talcaba és nézzük meg benne van-e Listazzuk ki a tartalmát! töröljük a file-t lépjünk ki a talca-ból és töröljük! 75