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 znak a. jeden jakykoliv znak [abc] jeden znak a nebo b nebo c [a-z] male a-z [a-za-z] vsechna mala i velka pismena Iteratory: z* opakuj predchozi symbol 0 az n-krat z+ opakuj predchozi symbol 1 az n-krat z? opakuj predchozi symbol 0 az 1-krat z{n} opakuj predchozi symbol 0 az N-krat z{m,n} opakuj predchozi symbol min. M-krat, max. N-krat z{,n} opakuj predchozi symbol max N-krat z{m,} opakuj predchozi symbol min M-krat Pozice na radku: ^z z pouze na zacatku radku (prvni znak na radku) z$ 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 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
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" 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" shift 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 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 echo "zadej maximalni hodnotu: " read MAX CISLO=1 while [ $CISLO -le $MAX ] do echo xstudent$cislo CISLO=$(($CISLO+1)) Vypis aritmetickou posloupnost 1 maximum s inkrementem 1 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` To same, akorat cele generovani probehne ve funkci function generuj_loginy() { CISLO=1 while [ $CISLO -le $1 ] do echo xstudent$cislo CISLO=`expr $CISLO + 1` } 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 nd vyhledava data ve vsech adresarich na disku locate vyhledava data na disku na zaklade databaze, kterou aktualizujeme prikazem updatedb, vyrazne rychlejsi nez nd, ale nd 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 - komprimace tar -xvf soubory.tar - dekomprimace qzip gzip soubory.tar gunzip soubory.tar.gz 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./congure make make install make uninstall RPM rpm -ivh balicek - instalace rpm -e balicek odinstalace Balickovaci system yum install balicek yum remove balicek