1. vezbi , .

# Kopiranje na site izvrsni datoteki

mkdir vezbi

pateka="/home/knoppix/Desktop/"

for i in `ls $pateka`

do

      if [ -f $i -a -x $i ]

      then

            cp $i $pateka/vezbi

      fi

done    

 

2. , Brojot na poddirektoriumi e n, n .

 

echo "Poddirektoriumite na domasniot direktorium se:"

cd $HOME

echo

br=0

for i in `ls`

do

      if [ -d $i ]

      then

            echo $i

            br=`expr $br + 1`

      fi

done

echo

echo "Brojot na poddirektoriumite e: $br."

 

:

echo "Vo $PWD ima vkupno `ls -R -l |grep "^d"|wc -l `

poddirektoriumi."

 

3. 10 student ,   ( sleep n , n ).

 

 # v=`who -q|grep -c " student "`

koj="vole"

v=`grep -c "$koj" najaveni`

while [ $v = 0 ]

do

      echo "$koj ne e najaven na sistemot."

      v=`grep -c "$koj" najaveni`

      sleep 3

done

echo

echo "$koj e najaven na sistemot."

 

4. izvrsni.txt, .

 

br=0

for i in `ls -l`

do

      if [ -f $i -a -x $i ]

      then

            echo $i >> izvrsni.txt

            br=`expr $br + 1`

      fi

done

echo "Brojot na datotekite e: $br." >> izvrsni.txt

 

:

 

5. , , . : iminja.txt poraka.txt IME, , .

 

for i in `cat iminja.txt`

do

      touch $i.proba

      echo "Zdravo $i" >> $i.proba

      cat poraka.txt >> $i.proba

      mail $i < $i.proba

done

 

6. .txt.

 

c=0

sum=0

for i in `ls -l *.txt`

do

      c=`expr $c + 1`

      if [ $c -eq 5 ]

      then

            sum=`expr $sum + $i`

      fi

      if [ $c -eq 9 ]

      then

            c=0

      fi

done

echo "Vkupnata golemina e: $sum"

echo

echo "So gotova funkcija goleminata e: `du -bc *.txt | tail -1 | awk '{ print $1 }'`"     # Resenieto na Boki

 

 

7. , .

 

v=0

for i in `ls`

do

      if [ -f $i -a -x $i ]

      then

            v=`expr $v + 1`

            rm -i $i

      fi

done

v1=0

for i in `ls`

do

      if [ -f $i -a -x $i ]

      then

            v1=`expr $v1 + 1`

      fi

done

echo "Brojot na izbrisani izvrsni datoteki e: `expr $v - $v1`"

echo "Brojot na neizbrisani izvrsni datoteki e: $v1"

 

8. () 7   poc.

 

i=7

s="poc"

echo "-------------------------------------------"

echo "Datoteki koi zapocnuvaat na $s se slednive"

echo "---------------Detalna Lista---------------"

echo

ls -l $s* | grep ^-.* | sort -k 7

echo

echo "-------------------------------------------"

echo "Znaci ima `ls -l $s* | grep ^-.* | wc -l` takvi datoteki."

echo "-------------------------------------------"

echo "Od koi najnovi $i se:"

ls -l $s* | grep ^-.* | sort -k 7 | tail -$i

 

 

9. :

 

            1 2 3 4 5

            * * * *

            1 2 3

            * *

            1

            * *

            1 2 3

            * * * *

            1 2 3 4 5

 

 

 

i=5

while [ $i -ge 1 ]

do

      j=1

      if [ `expr $i % 2` -eq 1 ]

      then

            while [ $j -le $i ]

            do

                  echo -n "$j"

                  j=`expr $j + 1`

            done

            echo " "

      else

            while [ $j -le $i ]

            do

                  echo -n "*"

                  j=`expr $j + 1`

            done

            echo " "

      fi

      i=`expr $i - 1`

done

#

i=2

while [ $i -le 5 ]

do

      j=1

      if [ `expr $i % 2` -eq 1 ]

      then

            while [ $j -le $i ]

            do

                  echo -n "$j"

                  j=`expr $j + 1`

            done

            echo " "

      else

            while [ $j -le $i ]

            do

                  echo -n "*"

                  j=`expr $j + 1`

            done

            echo " "

      fi

      i=`expr $i + 1`

done

 

moze i vaka :

 

for i in 5 4 3 2

do

  val=1

 while [ $val -le $i ]

 do

 y=`expr $i % 2`

    if [ $y -eq 1 ]

     then

          echo -n $val

         val=`expr $val + 1`

     else

          echo -n "*"

          val=`expr $val + 1`

    fi

 done

 echo

done

for i in 1 2 3 4 5

do

        val=1

        while [ $val -le $i ]

        do

        y=`expr $i % 2`

           if [ $y -eq 1 ]

            then

                 echo -n $val

                val=`expr $val + 1`

            else

                 echo -n "*"

                 val=`expr $val + 1`

           fi

        done

        echo

done

 

10. , .

 

echo

echo "Ova e brojot na site korisnici definirani na sistemot `who -a|wc -l`."

echo

echo "Ova se korisnicite momentalno najaveni na sistemot:"

echo

who

echo "Ova e brojot na momentalno najavenite na sistemot: `who|wc -l`."

11. FOR Dzvezda, :

$ ./dzvezda

Dzvezda

*

**

***

****

*****

*****

****

***

**

*

 

echo

echo "Dzvezda"

for i in "*" "**" "***" "****" "*****"

do

      echo "$i"

done

for i in "*****" "****" "***" "**" "*"

do

      echo "$i"

done

 

ili vaka:

 

i=5

var=1

echo " Dzvezda "

while [ $var -le $i ]

do

      j=1

      d="*"

      while [ $j -lt $var ]

      do

              d=$d"*"

              j=`expr $j + 1` 

      done                     

      echo "$d"    

    var=`expr $var + 1`

done

while [ $i -ge 1 ]

do

      j=1

      d="*"

      while [ $j -lt $i ]

      do

              d=$d"*"

              j=`expr $j + 1` 

      done                     

      echo "$d"    

    i=`expr $i - 1`

done

 

12. backup . backup .backup.

 

echo

echo "Tekovniot direktorium e `pwd`."

if [ -d backup ]

then

      echo "Postoi datoteka backup i vo nea ke gi smestam datotekite!"

else

      echo "Kreiram datoteka backup..."

      mkdir backup

fi

echo "Kopiram datoteki..."

for i in `ls`

do

      if [ -f $i ]

      then

            cp $i backup/

      fi

done

cd backup/

echo "Im dodavam nastavka .backup na datotekite..."

for i in `ls`

do

      mv $i "$i.backup"

done

cd ..

ili vaka:

 

test -d `pwd`/backup || mkdir backup

for var in `ls`

do

   if [ -f $var ]

   then

      cp $var `pwd`/backup/$var.backup

   fi

done

 

13. : (datoteki) (imenici) .

 

echo "Tekovniot direktorium e `pwd`."

for i in `ls`

do

      if [ -f $i ]

      then

            echo $i >> datoteki

      fi

done

for j in `ls`

do

      if [ -d $j ]

      then

            echo $j >> imenici

      fi

done

 

14. date . () 3 neparen, paren, vikend. , neparen, paren vikend.

 

echo "Tekovniot direktorium e `pwd`."

v=`date|cut -c1-3`      # Moze i so v=`date|awk { print $1 }`

case $v in

      Mon)

        cat neparen

      ;;

      Tue)

        cat paren

      ;;

      Wed)

        cat neparen

      ;;

      Thu)

        cat paren

      ;;

      Fri)

        cat neparen

      ;;

      Sat)

        cat vikend

      ;;

      Sun)

        cat vikend

      ;;

esac

 

 

15. .txt zaglavija.txt.

 

 

echo "Tekovniot direktorium e `pwd`."

for i in `ls *.txt`

do

      head -5 $i >> zaglavija.txt

done

 

16. i973. .

 

echo "Ova se logiranite korisnici na koi korisnickoto ime ne im pocnuva na i973."

echo

who | grep -v "^i973. " | sort -rk 1 | more

echo

 

17. , , Zaednicki, . Zaednicki , , .

 

if [ -d Zaednicki ]

then

        echo "Postoi takov direktorium i go brisam..."

        rm -r Zaednicki

fi

echo "Kreiram direktorium Zaednicki..."

mkdir Zaednicki

 

echo "Kopiram..."

for i in `ls -l | grep "^-........x " | awk '{ print $9 }'`

do

        cp $i Zaednicki/

done

 

18. home podDeset 10, nadDeset.

 

br=0

for i in `ls`

do

        if [ -f $i ]

        then

                br=`expr $br + 1`

        fi

done

echo "Ima vo domasniot direktorium $br datoteki."

if [ $br -lt 10 ]

then

        echo "Kreiram podirektorium podDeset..."

        mkdir podDeset

        echo "Kopiram..."

        for i in `ls`

        do

                if [ -f $i ]

                then

                        cp $i podDeset/

                fi

        done

fi

if [ $br -ge 10 ]

then

        echo "Kreiram poddirektotium nadDeset..."

        mkdir nadDeset

        echo "Kopiram..."

        for i in `ls`

        do

                if [ -f $i ]

                then

                        cp $i nadDeset/

                fi

        done

fi

 

19. : , : Vo imenikot imenik se naogjaat: f1,f2, (, ). listing.

 

cd $HOME

if [ -f listing ]

      rm listing

fi

touch listing

echo "Vo imenikot $HOME se naogaat:" >> listing

ls -l >> listing

for i in `ls`

do

      if [ -d $i ]

      then

            echo "" >> listing

            echo "Vo imenikot $i se naogaat:" >> listing

            ls -Rl $i >> listing

      fi

done

 

20. ( : 24 . : , ).

 

if [ -f modificirani ]

then

      rm modificirani

fi

touch modificirani

mesec=`date | awk '{ print $2 }'`

datum=`date | awk '{ print $3 }'`

for i in `ls`

do

      if [ -f $i ]

      then

            m=`ls -l $i | awk '{ print $6 }'`

            d=`ls -l $i | awk '{ print $7 }'`

            if [ $mesec = $m -a $datum = $d ]

            then

                  echo $i >> modificirani

            fi

      fi

done

 

21. , , . , ~/gjubre. , .

 

mesec=`date | awk '{ print $2 }'`

datum=`date | awk '{ print $3 }'`

if [ -d ~/gjubre ]

then

      rm -r ~/gjubre

fi

mkdir ~/gjubre

for i in $*

do

      mv $i ~/gjubre

done

cd ~/gjubre

for j in `ls`

do

      m=`ls -l $j | awk '{ print $6 }'`

      d=`ls -l $j | awk '{ print $7 }'`

      if [ ! $mesec = $m -o ! $datum = $d ]

      then

            echo "Ja brisam $j"

            rm $j

      fi

done

 

22. stari   stari ( date).

 

if [ -d stari ]

then

      echo "Postoi imenik stari i go brisam!"

      rm -r stari

fi

echo "Kreiram imenik stari!"

mkdir stari

pom=`date | awk '{ print $6 }'`

for i in `ls`

do

      if [ -f $i ]

      then

            k=`ls -l $i | awk '{ print $8 }'`

            if [ ! $pom = $k ]

            then

                  cp $i stari/

            fi

      fi

done

 

23. , , 100 . . logfile .

 

touch logfile

for i in `ls`

do

      if [ -f $i ]

      then

            k=`ls -l $i | awk '{ print $5 }'`

            if [ $k -ge 100 ]

            then

                  echo $i

                  echo "Dali sakas da ja brises $i (y/n): "

                  read odg

                  if [ $odg = "y" ]

                  then

                        echo "datoteka $i izbrisana na data `date`" >> logfile

                        rm $i

                  fi

            fi

      fi

done

 

24. .

 

if [ $# -ne 1 ]

then

      echo "Vnesi eden argument"

      exit 1

fi

if [ ! -f $1 ]

then

      echo "Ne postoi takva datoteka"

      exit 1

fi

sed "s/#.*//" $1 > $1_

rm $1

cp $1_ $1

rm $1_

 

 

25. .

 

spid=`ps -AF --no-heading | awk '{ print $2 }'`

sppid=`ps -AF --no-heading $i | awk '{ print $3 }'`

 

for i in $spid

do

      br=1

      echo "Na proces $i deca se:"

      for j in $sppid

      do

            if [ $i = $j ]

            then

                  g=`ps -AF --no-heading | head -$br | tail -1`

                  echo "$g"

                  br=`expr $br + 1`

            else

                  br=`expr $br + 1`

            fi

      done

done

 

moze I vaka:

 

ps -l|cat > dat.tmp

m=`cat dat.tmp|wc -l`

m=`expr $m - 1`

`tail -$m dat.tmp > temp.tmp`

`cat temp.tmp > dat.tmp`

awk '{print $2}' dat.tmp > PID

awk '{print $3}' dat.tmp > PPID

echo "Brojot na procesi e:" $m

count1=1

count2=1

for i in `cat PID`

do

   count2=1

   echo

   echo "PROCES PID: " $i

   echo "Deca na ovoj proces se:"

   for j in `cat PPID`

   do

      if [ $i -eq $j ]

      then

             count1=1

         for y in `cat PID`

             do

                if [ $count1 -eq $count2 ]

                then

                   echo $y

                fi

                count1=`expr $count1 + 1`

             done

      fi

      count2=`expr $count2 + 1`

   done

   echo

done

 

26. ID, , , .

 

spid=`ps -AF --no-heading | awk '{ print $2 }'`

 

for i in $spid

do

      echo $i

      sppid=`ps -F --no-heading $i | awk '{ print $3 }'`

      echo "proces: $i, tatko: $sppid"

      echo "dali da go ubieme procesot? (d/n)"

      read x

      if [ $x = "d" ]

      then

            kill $pid

      fi

done

 

27. avtomat : skripta, , avtomat skripta avtomat.. kraj. skripta izlez.txt.

, skripta , o Denes, Utre, Zadutre, kraj, izlez   Denes, Utre, Zadutre, .

 

avtomat

 

if [ -f izlez.txt ]

then

      rm izlez.txt

fi

touch izlez.txt

while true

do

      echo "Vnesete argument za skriptata, a kraj za izlez!"

      read odg

      case $odg in

            kraj) exit 0

            ;;

            *) skripta $odg >> izlez.txt

            ;;

      esac

done

 

moze I vaka:

 

ok="pocetok"

touch izlez.txt

while [ $ok != "kraj" ]

do

   if [ $ok != "pocetok" ]

   then

      `bash skripta $ok >> izlez.txt`

   fi

   echo "Ako ne sakate da ja povikate skriptata vnesete kraj."

   echo "Vneset argument:"

   read ok

done

 

 

28. 55 , .. :

$ process tatko, sega vleguvam vo process dete

$ proces dete

  *****

  *****

  *****

  *****

  *****

$ pak sum vo process tatko

 

#include<stdio.h>

#include<sys/wait.h>

 

int main()

{

      int i,j,pid;

      pid=fork();

      if(pid > 0)

      {

            printf("proces tatko, sekga vleguvam vo dete\n");

            wait(NULL);

            printf("pak sum vo process tatko\n");

      }

      else

      if(pid == 0)

      {

            printf("proces dete\n");

            for(i=1;i<=5;i=i+1)

            {

                  for(j=1;j<=5;j=j+1)

                        printf("*");

                  printf("\n");

            }

      }

}

 

29. , .   Jas sum tatko na xxxx i yyyy, a Jas sum prvoto dete Jas sum vtoroto dete.

 

# include <stdio.h>

 

int main()

{

            int pid1,pid2;

            pid1=fork();

            pid2=fork();

 

            if((pid1>0) && (pid2>0))

            {

                  printf(" Jas sum tatkotooo...so deca \n");

                  printf(" Dete1: %i \n Dete2: %i \n",pid1,pid2);

                  exit(0);

            }

 

            if((pid1==0) && (pid2>0))

            {

                  printf("Jas sum dete1 \n");

                  exit(0);

            }

 

            if((pid1>0) && (pid2==0))

            {

                  printf("Jas sum dete2 \n");

                  exit(0);

            }

 

            if((pid1==0) && (pid2==0))

            {

                  printf("Jas sum dete na deteto1 \n");

                  exit(0);

            }

 

}

 

30. , . , , , , ༝ 0. . , :

 

John, Doe,        1555, Main St., Baltimore, MD 21228,           (410) 222-3333,
Mary, Moe,        9899, Jones Blvd., Warren, NH 03787,          (603) 898-3232,
Richard, Roe,     856, E. 7th St., New York, NY 10009,          (212) 333-4567,
Sam, Roe,         956, E. 8th St., New York, NY 10009,          (212) 444-5678,
Zoe, Zenobia,     4481, N. Baker St., San Franciso, SF 94338,   (415) 501-1631,
Richard, Zenobia,     856, E. 7th St., New York, NY 10009,          (212) 333-4567,
 

John, Mary, Richard1, Sam, Zoe, Richard2 , John

John

Doe

1555

Main St.

Baltimore

MD 21228

(410) 222-3333

 

,

 

x=-1

for i in john, doe, ny,

do

x=`expr $x + 1`

b=`expr $x % 3`

 

zbor=`echo $i | sed "s/,//"`

 

case $b in

   0)

   echo "Ime: $zbor"

   echo $zbor >> $zbor 

   ;;

   1)

   echo "Prezime: $zbor"

   ;;

   2)

   echo "Grad: $zbor"

   ;;

esac

 

done

 

 

 

31. /etc/passwd . 

               :

 

 

 

cat /etc/passwd > sifri.txt

 

br=`wc -l sifri.txt|sed "s/sifri.txt//"`

i=1

while [ $i -le $br ]

do

    head -n 1 sifri.txt > linija.txt

    clear

    echo "--------------------------------------------------------------------"

    echo

    echo "User Id:            `cut -f 1 -d : linija.txt` "

    echo

    echo "Sifra:                `cut -f 2 -d : linija.txt` "

    echo

    echo "Broj:                 `cut -f 3 -d : linija.txt` "

    echo

    echo "Drug Broj:        `cut -f 4 -d : linija.txt` "   

    echo

    echo "Ime i Prezime:  `cut -f 5 -d : linija.txt` "   

    echo

    echo "Domasen dir:    `cut -f 6 -d : linija.txt` "   

    echo

    echo "Shell:                `cut -f 7 -d : linija.txt` "

    echo

    echo "--------------------------------------------------------------------"

    echo "Stisni [ Enter ] za ponatamu             Stisni [ Ctrl + C ] za KRAJ"

    ime=`cut -f 1 -d : linija.txt`

    tail -n `expr $br - $i` sifri.txt > nsifri.txt

    mv -f nsifri.txt sifri.txt

    let i=$i+1

    read

done

rm -f sifri.txt

 

 

 

 

 

32. :

 

1

22

333

4444

55555

 

:

 

bash-2.05a$ cat ZAD4

echo "zadaca4"

for i in 1 2 3 4 5

do

        val=1

        while [ $val -le $i ]

        do

                val=`expr $val + 1`

                echo -n $i

        done

        echo

done

 

33. .

 

   :

ok=1

while [ $ok -ne 0 ]

do

   echo -n Vnesete go skrienoto ime

   read n

   if [ SkrienoIme = $n ]

   then

        echo Pogodok

        ok=0

   else

        echo Greska

   fi

done

 

34. 1000 1900 7 3.

 

 

:

 

   zad 7

 

   n=1000

   while [ 1900 -gt $n ]

   do

      n=`expr $n + 1`

      if [  `expr $n % 3` -eq 0 ]

   then

   echo $n >> delivi_so_3

  fi

  grep 7 delivi_so_3

  done

 

 

35. neso spored datum se izbira dali da se prevede .c programa

 

function fifth_argm {

   echo $6

}

 

function fifth_argd {

   echo $7

}

 

d=`date | awk '{ print $3 }'`

 

m=`date | awk '{ print $2 }'`

 

 

for i in `ls *.c`

do

 

   file_ls=`ls -l $i`

   data=`fifth_argd $file_ls`

   mesec=`fifth_argm $file_ls`

 

   if [ $d -eq $data ]

   then

      if [ $m = $mesec ]

      then

        echo  Dali da se prevede da/ne $i

        read n

        if [ $n = "da" ]

        then

             echo  Kako da se vika izvrsnata datoteka

             read k

 

             cc -o $k $i

             ./$k  

             cat 2>>greski

            

        fi

     fi

   fi

done

 

36. ( )    

    .

 

:

 

function pomosna{

                        echo $2

                        }

Function pomosna1{

                        echo $9

                        }

 

 

for i in `ls`

do

            if [ -f $i ]

            then

                        pom=`ls -l $i`

                        pom1=`pomosna $pom`

                        pom2=`pomosna1 $pom`

                                    if [ $pom1 -eq 2 ]

                                    then

                                                echo $pom2

                                    fi

            fi

done   

 

moze I vaka:

sec_arg () {

      echo $2

}

d_ls=`ls -l $1`

l=`sec_arg $d_ls`

case $l in

      1) echo " $1 ima 1 vrska";;

      2) echo " $1 ima 2 vrski";;

      3) echo " $1 ima 3 vrski";;

      4) echo " $1 ima 4 vrski";;

      5) echo " $1 ima 5 vrski";;

      *) echo " $1 ima mnogu vrski";;

Esac

 

37.   . :

 
Type one of the following:
1 -  who am I?
2 -  who is logged on?
3 -  date
4 -  calendar

 

 

 

echo "Izberete opcija"

echo "1-Who am I?"

echo "2-Who is logged on?"

echo "3-Date"

echo "4-Calendar"

 

read val

 

case $val in

        1) whoami;;

        2) who ;;

        3) date ;;

        4) cal;;

esac

 

 

38.        user

 

function imeip {

echo $2 $3

}

finger|grep -v "Name" > lista.txt

br=`wc -l lista.txt|sed "s/lista.txt//"`

i=1

echo Najaveni se:

while [ $i -le $br ]

do

    head -n 1 lista.txt > lin.txt

    ime=`cat lin.txt`

    echo `imeip $ime`

    tail -n `expr $br - $i` lista.txt > nlista.txt

    mv -f nlista.txt lista.txt

    i=`expr $i + 1`

done

rm -f lin.txt

 

 

 

39. echo "Brojot na site korisnici e: `cat /etc/passwd | wc -l`"

echo  " Brojot na najaveni korisnici e: `who | wc -l`"

 

40. datoteki pomali od 5kb

 

fifth_arg () {

      echo $5

}

ninght_arg () {

      echo $9

}

if [ -f najmalidatoteki ]

then

      rm  najmalidatoteki

fi

count=0

for file in *

do

      if [ ! -d $file ]

      then

            file_ls=`ls -l $file`

            size=`fifth_arg $file_ls`

            if [ $size -lt `expr 5 \* 1024` ]

            then

                  nam=`ninght_arg $file_ls`

                  siz=`fifth_arg $file_ls`

                  let count=$count+1

                  echo $nam $siz >> najmalidatoteki

            fi

      fi

done

sort  -k 2 -nr najmalidatoteki > najmalid

echo " Vkupno $count datoteki pomali od 5KB " >> najmalid

 

 

41. broj na samoglaski

 

clear

for i in `cat in`

do

            numb=0

            count1=`echo $i|grep [aA]|wc -l`

            count2=`echo $i|grep [eE]|wc -l`

            count3=`echo $i|grep [iI]|wc -l`

            count4=`echo $i|grep [uU]|wc -l`

            count5=`echo $i|grep [Oo]|wc -l`

            numb=`expr $count1 + $count2 + $count3 + $count4 + $count5`

            if [ $numb -eq 2 ]

            then

                        echo $i

            fi

done

 

LABOVI 5

1. ls -al | grep '^\-..x..x..x' > izvrsni.txt

cat izvrsni.txt

k=`cat izvrsni.txt |wc -l`

if [ $k -gt 0 ]

then

echo " Ima $k izvrsni datoteki "

else

echo Nema izvrsni datoteki

fi

 

 

2. file="/home/OOS2007/ii11546/vezba"

if [ -x $file ]

then

echo "Datotekata vezba ima privilegii za izvrsuvanje"

else

chmod u+x vezba

echo "Datotekata nemase priveilegii, ama sega ima"

fi

 

 

3. echo "Vnesi datoteka na koja ke i gi smenite privilegiite:"

read dat

echo "Vnesi privilegii (razdelete gi broevite so prazno mesto)"

read a b c

chmod $a$b$c $dat

 

 

4. echo "Vnesete tri broja (razdelete gi broevite so prazno mesto) : "

read x y z

if [ `expr $x + $y` -gt $z -a `expr $x + $z` -gt $y -a `expr $z + $y` -gt $x ]

then

echo "Postoi takov triagolnik"

else

echo "Ne postoi takov triagolnik"

fi

 

5. echo "Vnesete tri broja (razdelete gi broevite so prazno mesto) : "

read a b c

if [ $a -gt $b ]

then pom=$a

else pom=$b

fi

if [ $pom -gt $c ]

then max=$pom

else max=$c

fi

echo "Najgolem e $max"

 

LABOVI 6

 

1.

 

for VAR in `ls *.cc`

do

if [ `echo $VAR|grep '^[1-9]'|wc -l` -gt 0 ]

then

echo $VAR

fi

done

 

 

2.

while [ `who | grep '^student' | wc -l` -eq 0 ]

do

sleep 10

done

 

3.

n=0

touch izvrsni.txt

for i in `ls*.txt`

do

if [ -x $i]

then

echo $i >> izvrsni.txt

n=`expr $n + 1`

fi

done

echo " Ima vkupno $n takvi datoteki"

cat izvrsni.txt

 

4.

while :

do

echo "1. Sodrzina na /etc/passwd"

echo "2. Momentalno najveni korisnici"

echo "3. Tekoven imenik"

echo "4. Izlez"

echo -n "Izberete opcija [1 - 4]"

read temp

case $temp in

1) echo " Sodrzina /etc/passwd";

more /etc/passwd;;

2) echo " Lista na momentalno najaveni ";

who;;

3) echo "Vie ste vo $(pwd) imenikot";;

4) echo "Cao $USER";

break;;

*) echo "$temp e nevazecka opcija. Izberi pomegu 1-4 ";;

esac

done

 

5.

broj=0

for VAR in `ls | grep '^[1-9]'`

do

if [ `grep 'for' $VAR | wc -l` -gt 0 ]

then

broj=`expr $broj + 1`

fi

done

echo "Brojot na datoteki koi pocnuvaat na broj i sodrzat \"for\" e " $broj

 

LABOVI 7

zadaca1:

 

function datum {

echo $6 $7

}

function dat {

echo $2 $3

}

date > datum.txt

dtm=`cat datum.txt`

denes=`dat $dtm`

echo "datotekite koi se modificirani na $denes se:"

echo

for i in *

do

if [ ! -d $i ]

then

listfl=`ls -l $i`

ddenes=`datum $listfl`

if [ "$denes" = "$ddenes" ]

then

echo $i

fi

fi

done

rm -f datum.txt

 

 

 

 

 

ili vaka

 

 

Mesec=`date | awk '{ print $2 }'`

Den=`date | awk '{ print $3 }'`

for i in `ls`

do

if [ -f $i ]

then

Mesec1=`ls -l $i | awk '{ print $6 }'`

Den1=`ls -l $i | awk '{ print $7 }'`

if [ $Mesec = $Mesec1 -a $Den = Den1 ]

then

echo $i >> dat

fi

fi

done

*****************************************************************

zadaca2:

 

mkdir ~/gjubre

for i in $*

do

if [ -f $i ]

then

echo "Dali sakas da ja izbrises datotekata $i (da/ne)"

read temp

case $temp in

da) mv $i ~/gjubre;;

ne) break;;

*) echo "Gresen izbor";;

esac

else

echo "$i Ne e datoteka"

fi

done

 

*****************************************************************

zadaca 3

case $2 in

1) echo "Go brisam podatokot $1"

rm -i $1;;

2) echo "Vnesi go novoto ime, za da go preimenuvam podatokot?"

read ime

mv $1 $ime;;

esac

 

LABOVI 8

 

1)

 

function fifth_arg {

echo $5

}

sum=0

for file in *

do

if [ ! -d $file ]

then

file_ls=`ls -l $file`

size=`fifth_arg $file_ls`

let sum=$sum+$size

fi

done

if [ $sum -gt 10485760 ]

then

echo "Sumata e pogolema od 10MB"

else

echo "Sumata e pomala od 10MB"

 

=======================================================================================================

 

2)

 

ls -l | sort -rn -k 5

 

========================================================================================================

3)

 

sum=0

function f1

{

echo $5

}

function f2

{

for file in *

do

if [ ! -d $file ]

then

file_ls=`ls -l $file`

size=`f1 $file_ls`

let sum=$sum+$size

else

cd $file

f2

cd ..

fi

done

}

f2

echo $sum

 

=========================================================================================================

 

4)

 

function f2

{

for file in *

do

if [ ! -d $file ]

then

if [ `echo $file | grep "\.txt$"` ]

then

sed "s/10000/400/" $file > $file

fi

else

cd $file

f2

cd..

fi

done

}

f2

 

 

LABOVI 9

1)

 

ps -aux | grep "pico" |awk '{print $1}'

 

==================================================================

2)

 

ps -aux | sort -n -k2

 

==================================================================

3)

 

ps -aux

 

echo "Vnesi PID za procespt sto sakas da go \"ubies\""

 

read PID

 

kill -1 $PID

 

==================================================================

4)

count=0

for var in `ps |awk '{print $1}' `

do

count=`expr $count + 1`

if [ $count -gt 1 ]

then

echo "Dali sakas da go kilnes procesot $var"

read odg

case $odg in

da) kill -1 $var;;

ne);;

esac

 

fi

 

done

 

 

 

 

for var in `ps |awk '{print $1}' `

do

echo $var>>lista

done

 

for var in `tail +2 lista`

do

echo "Dali sakas da go kilnes procesot $var"

read odg

case $odg in

da) kill -1 $var;;

ne);;

esac

 

done

 

 

 

==================================================================

 

 

5)

 

ps -l

echo "Na koj proces sakas da gi doznaes decata"

read PID

ps -aux | grep $PID |awk '{print $2}'

 

 

 

 

 

 

 

 

head -3|tail -1 ke go dade samo 3tiot red

 

 

 

 

 

 

LABOVI 10 PROCESI

 

1)

 

#include <stdio.h>

#include <sys/types.h>

#include <stdlib.h>

#include <sys/wait.h>

 

 

 

int main(void){

pid_t pid;

int n,j,i;

 

if((pid=fork())==0)

{ printf("Proces dete\n");

printf("Kolku dzvezdi da otpecatam?");

scanf("%d",&n);

for (i=0;i<n;i++){

for(j=i;j<n;j++){

printf("*");

}

printf("\n");

}

printf("Zavrsiv \n");

exit(0);

}

else

{

if(pid>0){

 

printf("Proces tatko\n");

wait(NULL);//go ceka deteto

printf("Povtorno proces tatko \n");

 

 

}

else

{

if(pid == -1) {

fprintf(stderr,"fork ne uspea da kreira nov proces");

exit(1);

}

}

 

}

}

 

 

 

=======================================================================

2)

 

#include <stdio.h>

#include <sys/types.h>

#include <stdlib.h>

#include <sys/wait.h>

 

 

int

main(void)

{

pid_t pid;

 

 

 

if ((pid = fork()) == 0) {

printf("Proces Dete \n");

printf("Spijam edna sekunda \n");

sleep(1);

printf("spijam dve sekundi \n");

sleep(1);

printf("spijam tri sekundi \n");

sleep(1);

printf("se budam \n");

exit(0);

}

if (pid > 0) {

 

printf("Proces tatko\n");

wait(NULL); //go ceka deteto

printf("Povtorno proces tatko \n");

 

 

}

}

 

=================================================================

3)

 

#include <stdio.h>

#include <sys/types.h>

#include <stdlib.h>

#include <sys/wait.h>

 

int main(void)

{

pid_t pid,pid1;

pid=fork();

pid1=fork();

if(pid == 0 && pid1 != 0)

{

printf("Dete1\n");

}

else

{

if( pid != 0 && pid1 == 0 )

{

printf("Dete2\n");

}

 

else

{

if( pid > 0 && pid1 > 0 )

{

printf("Tatko \n");

wait(NULL);

wait(NULL);

}

}

}

}

 

 

==============================================PROCESI==============================================================================

 

 

 

#include <stdio.h>

#include <stdlib.h>

#include <sys/wait.h>

#include <sys/types.h>

 

int main(int argc, char *argv[])

{

pid_t pid;

pid=fork();

if (pid > 0)

{

printf("proces tatko\n");

wait(NULL);

printf("povtorno proces tatko\n");

}

else

{

if (pid == 0)

{

printf ("proces dete\n");

printf ("*\n");

printf ("**\n");

printf ("***\n");

printf ("****\n");

printf ("*****\n");

}

}

}

 

___________________________________________________

29. , .

Jas sum tatko na xxxx i yyyy, a Jas sum prvoto dete Jas sum vtoroto dete.

 

# include <stdio.h>

int main()

{

 

int pid1,pid2;

 

pid1=fork();

 

pid2=fork();

 

 

if((pid1>0) && (pid2>0))

 

{

 

printf(" Tatkoto X \n");

 

printf(" Deteto Y: %i \n Deteto Z: %i \n",pid1,pid2);

 

exit(0);

 

}

 

 

if((pid1==0) && (pid2>0))

 

{

 

printf("Jas sum deteto Y \n");

 

exit(0);

 

}

 

 

if((pid1>0) && (pid2==0))

 

{

 

printf("Jas sum deteto Z \n");

 

exit(0);

 

}

}

 

______________________________________________________________________________________________________

55 , .. :

$ process tatko, sega vleguvam vo process dete

$ proces dete

*****

*****

*****

*****

*****

$ pak sum vo process tatko

 

#include<stdio.h>

#include<sys/wait.h>

 

int main()

{

int i,j,pid;

pid=fork();

if(pid > 0)

{

printf("proces tatko, sekga vleguvam vo dete\n");

wait(NULL);

printf("pak sum vo process tatko\n");

}

else

if(pid == 0)

{

printf("proces dete\n");

for(i=1;i<=5;i=i+1)

{

for(j=1;j<=5;j=j+1)

printf("*");

printf("\n");

}

}

}

 

______________________________________________________________________________________________________

 

 

 

# include <stdio.h>

 

int main()

{

int pid1,pid2,pid3;

pid1=fork();

pid2=fork();

pid3=fork();

 

if((pid1>0) && (pid2>0) && (pid3>0))

{

printf(" Moi deca se: %i, %i, %i\n",pid1,pid2,pid3);

exit(0);

}

if((pid1==0) && (pid2>0) && (pid3>0))

{

printf("Vnesi komanda za najstaroto dete: \n");

//se cita komandata od konzola vo string promenliva

//execl("/usr/bin/date","date",0);

exit(0);

}

 

if((pid1>0) && (pid2==0) && (pid3>0))

{

printf("Vnesi komanda za srednoto dete: \n");

//se cita komandata od konzola vo string promenliva

//execl("/usr/bin/date","date",0);

exit(0);

}

if((pid1>0) && (pid2>0) && (pid3==0))

{

printf("Vnesi komanda za najmaloto dete: \n");

//se cita komandata od konzola vo string promenliva

//execl("/usr/bin/date","date",0);

exit(0);

}

}

 

 

 

 

 

 

PICO

 

pico ime //pisuvam datoteka vo piko

 

chmod u+x ime // privilegija za izvrsuvanje

 

./ime //za otvaranje

 

 

 

 

 

 

// zemanje na zbor od recenica ( a;i zema cela kolona, a ne samo 1 red)

 

cat > pole

string1 string2 string3 string4

 

cut -f2 -d" " pole

string2

 

 

If you want to find a file that is 7 days old, use the -mtime option:.

find . -mtime 7 -print

find . -mtime +6 -mtime -8 -print

 

 

 

 

 

cat<<kraj>primer

vo datotekata primer ke zapisuvam vlez od tastatura se dodeka ne vnesam zbor kraj od tastaturata

 

 

 

if [ -d Zaednicki ]

then

echo "Postoi takov direktorium i go brisam..."

rm -r Zaednicki

fi

echo "Kreiram direktorium Zaednicki..."

mkdir Zaednicki

 

 

 

for i in `ls`

do

if [ -f $i ]

then

k=`ls -l $i | awk '{ print $5 }'`

if [ $k -ge 100 ]

then

echo $i

 

 

 

indent xxx.c

 

banner DaciSS

 

 

 

fork()//kreira nov proces

 

wait(NULL)/znaci tatkoto go ceka deteto da zavrsi

 

scanf("%d",&n);/za vnesuvanje na integer broj od testatura

 

printf(" Deteto Y: %i \n Deteto Z: %i \n",pid1,pid2); // dava PID na decata vo C

 

 

 

 

#include <unistd.h>

 

#include <iostream>

using namespace std;

 

int main(){

pid_t pid;

int status, died;

switch(pid=fork()){

case -1: cout << "can't fork\n";

exit(-1);

case 0 : sleep(2); // this is the code the child runs

exit(3);

default: died= wait(&status); // this is the code the parent runs

}

}