Beépített változók (paraméterezés): $# - paraméterek száma $1...9 - az adott paraméter értéke $0 - az adott héjprogram neve $* - az összes paraméter egyben Idézőjelek típusai: ' ' - belső szöveg stringként (?) pl.: echo '$elso' - string, változó behelyettesítése ` ` - parancsbehelyettesítés pl.: echo `date` - kiírja az aktuális dátumot Alapparancsok: ls - listázás echo - kiíratás read - egy karakter bekérése a billentyűzetről 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 Tar tar -czf akarmi.tar.gz konyvtar tar -xvzf akarmi.tar.gz tar csak összecsomagol, a gzip
Grep kereső parancs azokat a sorokat fogja visszaadni a bemenetről, melyekben megtalálható a keresett kifejezés pl: ls -l grep 'mp3' sorvég keresése: ls -l egrep '\.png$' sor elejének keresése: ls -l egrep '^Kovács' sor keresése: ls -l egrep '^közép$' könyvtárak kilistázása: ls -l egrep '^d' kapcsolók: -v - negált keresés -h - több fájlban való kereséskor kiírja a fájl nevét is -i - nem tesz különbséget kis- és nagybetűk között -w - csak egész szóra keres -n - kiírja a találat sorának számát -e - == egrep fájlban keresés - cat fájlnév grep ha speciális karaktereket keresünk ($,[,],\), akkor \ kell eléjük!!! példa: a /etc/debconf.conf fájl átmásolása egy másikba, a kommentek kiszedésével: cat /etc/debconf.conf egrep -v '^# > uj.txt érdekesség: a. : () egrep '' - olyan sort keres, amiben legalább 3 tetszőleges karakter van () egrep '\.\.\.' - olyan sort keres, amiben 3. van () egrep '^...$' - olyan sort keres, ami pontosan 3. karakterből áll érdekesség: a [ ] ^[abc] - a,b,c -vel kezdődő sorok ^[^abc] - sorok, melyek nem a-val, nem b-vel és nem c-vel kezdődnek Tartományok, az angol ábécé szerint: [a-z] - kisbetűk [A-Z] - nagybetűk [a-za-z] - kis- és nagybetűk példa: A nagy betűvel kezdődő fájlok kilistázása: ls -l egrep '^[A_ZÁÉÍÓÖŐÜŰ]'
Jelentésmódosító jelek? - az előtte álló karakter opcionális; 0, egy 1 darab * - az előtte álló karakterből tetszőleges számút keres; lehet 0 is pl.: () egrep '1[0-9]*' -olyan sorokat kers, amelyekben van 1-gyel kezdődő szám + - az előtte álló karakterből keres tetszőleges számút, de minimum egyet pl.: () egrep '1\+' ( ) - csoportokat képezhetünk, a jelentésmódosítók a csoportokra vonatkoznak pl.: () egrep '(ab)\+' -olyan sorokat keres, ahol az ab többször előfodul { } - pontos számú egyezést vár el pl.: () egrep '[0-9]\{3\}' -pontosan 3 szám pl.: () egrep '[0-9]\{3,\}' -legalább 3 szám pl.: () egrep '[0-9]\{4,6\}' -4 és 6 számjegy között - vagy kapcsolat pl.: () egrep 'asztal\(on\ ban\ hoz\ ra\ nak\ )' Sed parancssoros szövegszerkesztő program; soralapú (?) sed 'program' feldolgozando >> uj_kimenet sed 'program' feldolgozando > kimenofajl Sed parancsok cat akarmi sed 'p' - mintatér kiíratása cat akarmi sed -n '5p' - csak az 5. sorokat írja ki cat akarmi sed -n '1,5 p' - 1-5. sorokat írja ki cat akarmi sed '1,5 d' - az 1-5. sorokat nem jeleníti meg, fájlba átirányítva ott nem jelenik meg cat akarmi sed 's/ezt/erre' - a sorban az első találatot cseréli le cat akarmi sed 's/ezt/erre/g' - az összes találatot lecseréli Cut szétvágja a kimeneteket oszlopokra cat /etc/group cut -d: -f -l Wc kimenet karaktereit, sorait számolja pl.: cat /etc/passwd wc -l - a rendszer felhasználóinak száma Head, tail a kimenet első,/hátsó néhány sorát írja ki; kapcsolóval állítható a sorok száma
Aliasok hosszú parancsokhoz rövid alternatív nevek rendelése alias l='ls -cl' Vezérlési szerkezetek: Elágazás: if [ logikai kifejezés ] then elif [ logikai kifejezés ] then else fi alma=1 case string0 in case $alma in string1) ;; 1 ) echo egy alma;; string2) ;; 2 ) echo két alma;; *) ;; *) ;; esac esac Ciklus for ciklusváltozó in lista do Példa: Könyvtár összes fájljának kiírás for ciklus segítségével: for i in `ls` do cat $i For ciklus és seq for i in `seq 30` do... Until, while until [ $K -eq 3 ]; do while [ $K -ne 3 ]; do
Példák logikai kifejezésekre: [ -r fájlnév ] - a fájl létezik olvasható [ -w fájlnév ] - a fájl létezik és írható Számok esetén használható logikai kapcsolók -eq - egenlő -ne - nem egyenlő -gt - nagyobb -ge - nagyobb egyenlő -lt - kisebb -le - kisebb egyenlő Stringek vizsgálata: if [ $string == $string2 ] then echo egyezik fi Folyamatkezelés alapok ha egy folyamatot a háttérben szeretnénk futtatni, akkor a parancs után &-t kell írni futó folyamatot ctrl+z kombinációval tudunk leállítani újraindítás fg előtérbe hozz a parancsot bg háttérben indítja újra a parancsot az fg és a bg az utoljára leállított parancsokat indítják újra. Ha több is van pl.: fg %2 a kettes számú parancsot indítja újra minden folyamatnak van szülője minden folyamat indításakor az őt indító folyamat lesz a szülője minden folyamatnak van egy azonosítója: PID (Process ID) az 1-es PID-ű folyamat az init, ez végzi a rendszerindítást, vezérlést ha a szülőt leállítjuk, leáll a gyerek is Folyamat állapotok running - jelenleg fut sleeping - futásra kész, várja, hogy kapjon időt stopped - leállítva zombie - olyan folyamat, mely befejezte a futást, de a szülő folyamat még m tudta kiolvasni a kilépési adatokat orphan - olyan folyamat, mely elveszítette a szülő folyamatát Prioritási rendszer nice érték: -20 19; minél kisebb, annál nagyobb a prioritása indításkor a szülő értéke öröklődik, felfele növelhető, lefele nem pl.: nice -n 5 /bin/valami
Top futó folyamatok lekérdezésére használatos; automatikusan frissül, space-szel frissíthető manuálisan; folyamatosan fut q - kilép M - memóriahasználat szerint rendez P - processzorhasználat szerint rendez Ps szintén a futó folyamatok lekérdezésére szolgál; ez csak egyszer fut le pl.: - ps aux Kill egy folyamat futását lehet vele megállítani pl.: - kill [PID] -kedves leállítás kill -9 [PID] -kevésbé kedves leállítás kill -STOP -megállítja a futást kill -CONT -folytatja futást kill -TERM -megpróbálja lelőni a folyamatot kill -HUP -lelövi, majd újraindítja a folyamatot kilall - weheheheheeeeee :-) Nohup olyan folyamat indítása, amire nem hat a hangup parancs (kill-hup) Folyamat kommunikáció Named pipe - csővezeték (unnamed pipe), az egyik folyamat kimeneti adatai átadódnak a másik folyamatnak Named pipe: hasonló csővezeték, de a köztes állomány létezik, lehet olvasni és írni is kell két konzol; az egyikbe írjuk be, hogy mkfifo pipe1, majd a kettő közül az egyikbe cat < pipe1, a másikba ls -l > pipe1
Tartalomjegyzék Beépített változók (paraméterezés):...1 Idézőjelek típusai:...1 Alapparancsok:...1 Tar...1 Grep...2 Jelentésmódosító jelek...3 Sed...3 Sed parancsok...3 Cut...3 Wc...3 Head, tail...3 Aliasok...4 Vezérlési szerkezetek:...4 Elágazás:...4 Ciklus...4 Példák logikai kifejezésekre:...5 Stringek vizsgálata:...5 Folyamatkezelés alapok...5 Folyamat állapotok...5 Prioritási rendszer...5 Top...6 Ps...6 Kill...6 Nohup...6