Nastroje na zpracovani textu: − − − − − − −
head - vypise prvnich x radku, standartne x=10 tail – vypise poslednich x radku, standartne x=10 nl – vypise a ocisluje radky v souboru a vysledek posle na STDOUT, soubor se nemeni tr – nahrada vybranych znaku za jine cut – vyber sloupcu – projekce grep – vyber radku – selekce du – vyuziti disku
vypis prvnich 8 radku v souboru head -8 oradkuje a vypise prvnich 10 radku v souboru nl soubor | head Vypiste ocislovany seznam souboru od 10. do 25. radku nl soubor | head -25 | tail -n +10 Nahrad a za A, o za O tr ao AO < soubor Vsechna velka za vsechna mala tr [A-Z] [a-z] Vypis 1. a 5. sloupec, oddelovacem je : ze souboru cut -f1,5 -d: soubor Vypis radky kde je Hampl grep hampl soubor Pocet Hamplu grep Hampl | soubor | wc -l Vypis 5 neojbasezenejsich adresaru du -ms /var/* 2>/dev/null | sort -nr | head -5 Vytvorte soubor uzivatele.csv s login, UID, home, shell vsech uzivatelu v systemu cut -f1,3,6,7 -d: /etc/passwd | tr : , > uzivatele.csv Zjisitete pocet souboru s priponu .conf v adresari /etc ls -l /etc/*.conf | wc -l
Regularni vyrazy: Znak: a . [abc] [a-z] [a-zA-Z]
znak “a” jeden jakykoliv znak jeden znak “a” nebo “b” nebo “c” male a-z vsechna mala i velka pismena
Iteratory: z* z+ z? z{N} z{M,N} z{,N} z{M,}
opakuj predchozi symbol 0 az n-krat opakuj predchozi symbol 1 az n-krat opakuj predchozi symbol 0 az 1-krat opakuj predchozi symbol 0 az N-krat opakuj predchozi symbol min. M-krat, max. N-krat opakuj predchozi symbol max N-krat opakuj predchozi symbol min M-krat
Pozice na radku: ^z z$
“z” pouze na zacatku radku (prvni znak na radku) “z” na konci radku (posledni znak na radku)
Skupiny: ()
jedna skupina
Regularni vyraz pro cele cislo grep “^[1-9][0-9]*$\|^0$” re.txt Regularni vyraz pro cele cislo se znamenkem na zacatku grep “^[+-]\?[1-9][0-9]*$\|^0$\|[+-]” re.txt Desetinne cislo se znamenkem cele_cislo.cele_cislo grep “^[+-]\?[0-9]\+\.[0-9]\+$” re.txt Cele nebo desetinne cislo [+|-]cele_cislo[.cele_cislo] grep “^[+-]\?[0-9]\+\(\.[0-9]\+\)\?$” re.txt Rodne cislo grep “^[0-9]\{6\}/[0-9]\{3,4\}$” re.txt Ipv4 cislo.cislo.cislo.cislo cislo=c|cc|ccc grep “^\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}\$” re.txt Regularni vyraz pro URL s .com nebo .cz [protokol://]hostname.nonTLD
protokol = http | https hostname = zjednodusene alfanumericke znaky alfanumericky znak = a-zA-Z0-9 nonTLD = zjednodusene alfanumericke znaky TLD = cz | com grep “(https?//)?[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+\.(cz|com)” re.txt Regularni vyraz pro petiznakovy palindrom – od predu i od zadu se cte stejne grep “\(.\)\(.\).\2\1” re.txt Vypsat uzivatele s UID 11000-11999 11xxx x=0-9 Regularni vyrazy jsou zrave- snazi se pozrat co nejvice textu grep “^[^:]*:[^:]*:11[0-9][0-9][0-9]:” re.txt Regularni vyraz pro text v uvozovkach grep “\”[^\”]*\”” re.txt
Skripty: Hledejte vzorek v re.txt, nezajimaji nas vysledne radky, pouze informace “nalezeno” nebo “nenalezeno” grep vzorek re.txt >> /dev/null/ && echo “nalezeno” || echo “nenalezeno” Napiste skript ktery prevezme dva parametry na prikazovem radku, pokud je vzor nalezen, pak vypise nalezeno, v opacnem pripade vypise nenalezeno. #! /binbash if grep “$1” $2>/dev/null then echo nalezeno else echo nenalezeno fi Primarne hleda vzor mezi uzivateli systemu, sekundarne mezi skupinami #! /bin/bash if grep "$1" uzivatele.txt>/dev/null then echo "nalezen uzivatel $1" elif grep $1 /etc/group>/dev/null then echo grupa nalezena else echo nenalezeno nic fi
Skript, ktery vypise info o souboru – zda se jedna o normalni soubor, adresar nebo neco jineho #! /bin/bash if [ -f "$1" ]; then echo "$1 je obycejny soubor" elif [ -d "$1" ]; then echo "$1 je adresar" else echo "$1 je neco jineho" fi Predchozi skript pro predem neurceny pocet parametru while [ -n “$*”] do echo $1 if [ -f "$1" ]; then echo "$1 je obycejny soubor" elif [ -d "$1" ]; then echo "$1 je adresar" else echo "$1 je neco jineho" fi shift done Napiste skript ktery reportuje informace o aktualnim uzivatelskem sezeni ./userinfo.sh -h | -u | -d | -a -h vypise jmeno stroje (hostname) -u vypise jmeno aktualne pracujiciho uzivatele (whoami) -d vypise aktualni adresar (pwd) -a vypise vsechno #!/bin/bash case "$1" in -h) hosntame;; -u) whoami;; -d) pwd;; -a) hostname whoami pwd;; *) echo "Usage: systeminfo.sh -h | -u | -d | -a " ;; esac
Napiste skript ktery nageneruje uziv. Loginy ve tvaru xstudentN, kde N=1,2,3,4 … maximum #!/bin/bash echo "zadej maximalni hodnotu: " read MAX CISLO=1 while [ $CISLO -le $MAX ] do echo xstudent$CISLO CISLO=$(($CISLO+1)) done Vypis aritmetickou posloupnost 1 – maximum s inkrementem 1 #!/bin/bash echo “Zadej max. hodnotu: “ read max cislo=1 while [ $cislo -le $max] do echo $cislo cislo=$((cislo+1)) #nebo cislo=$(expr $cislo+1) #nebo cislo=`expr $cislo + 1` done To same, akorat cele generovani probehne ve funkci #!/bin/bash function generuj_loginy() { CISLO=1 while [ $CISLO -le $1 ] do echo xstudent$CISLO CISLO=`expr $CISLO + 1` done } generuj_loginy $MAX
Sprava procesu: − − − − −
− − − −
fork – vytvori detsky proces exec – do mista v pameti natahni proces potomka a spust sleep – uspi proces exit – ukonci proces signaly – pomoci signalu spolu procesy komunikuji − kill – okamzite, nasilne ukonceni, bez moznosti ulozit si data − term – mirnejsi vyzva k ukonceni procsu, moznost ulozeni dat − hup – odvazani procesu od aktualniho terminalu top free – statistika za pamet a za swap pstree – strom procesu ps – seznam procesu − ps -u xuzivatel – podle uzivatele − ps -c bash – podle jmena − ps --ppid − ps --ppid +1 – vsechny primke potomky unitu
Souborovy system: − souborovy oddil – partition − soubor − obycejny − adresarovy − specialni soubory – pristup k HW − blokove − znakove − pojmenovane roury − linky − hardlink − symlink − vyhledavani − find – vyhledava data ve vsech adresarich na disku − locate – vyhledava data na disku na zaklade databaze, kterou aktualizujeme prikazem updatedb, vyrazne rychlejsi nez find, ale find pouziva vzdy aktualni udaje
Sprava uzivatelu: − − − − −
vytvoreni uzivatele – useradd, usermod nastavit heslo uzivateli – passwd sprava skupin uzivatelu – groupadd, groupdel resetovat heslo (=nastavit nove) – passwd kdo je prihlasen, kdo co dela, kdy login
− smazani uzivatelskeho uctu
Vzdalena plocha: − ssh − ssh xuzivatel@nazev_pocitace_v_siti
Komprimace: − tar − tar -cuf soubory.tar soubor1.txt soubor2.txt − tar -xvf soubory.tar dekomprimace − qzip − gzip soubory.tar − gunzip soubory.tar.gz
komprimace
Instalace: (plati pouze pro systemy typu RedHat)
− Kompilace – vetsinou spis komplikace, instalace vetsinou zkolabuje ze chybi nejruznejsi balicky a knihovny, ktere potrebuji dalsi a dalsi knihovny − ./configure − make − make install − make uninstall − RPM − rpm -ivh balicek - instalace − rpm -e balicek – odinstalace − Balickovaci system − yum install balicek − yum remove balicek