Aug 10, 2012

Pisanje skriptova

Skripta se formira od datoteke u kojoj se unose komande.
Izvršavanjem skripte izvršiće se svaka komanda u datoteci.

Primer: kreirajte datoteku skripta1 i unesite sledeće:
#!/bin/sh
echo "Moja prva skripta. Pozdrav svima!"
Kad sačuvate datoteku, skriptu možete izvršavati komandom: sh skripta1 ili ./skripta1.

Postoji mogućnos da se skripta učini izvršnom što bi značilo da je dovoljno ukucati samo naziv skripte za izvršenje. Privi red u izvršnoj skripti određuje ljusku (tj. shell) u kojoj se skripta izvršava. Pored sh postoje: zsh, bash, csh, ksh.
Da bi skripta postala izvršna potrebno je uneti komandu: chmod u+x skripta1.

Petlja u okviru skripte

Kreirajte skriptu sa sledećim komandama:
#! /bin/sh
cd ~/www
for i in 'ls -1 *.html'
do
cp $i $i.bak
echo "$i backed up!"
done
  • prvi red označava shell u kome će se skripta izvršiti
  • drugi red pozicionira trenutnu putanju u www direktorijum
  • ls -1 *.html - kao rezultat daje pretragu svih .html fajlova. Obcija -1 u ovoj komandi propisuje da se spisak prikazuje u jednoj koloni
  • for i in 'izraz' - i uzima redom vrednosti iz izraza i sa tim vrednostima prolazi kroz do ... done kod
  • cp $i $i.bak - kopira datoteku $i u $i.bak
  • echo "$i backed up!" - ispisuje informaciju da je datoteka bekapovana.
  • do ... done - početak i kraj petlje

If-then naredba u skripti

#! /bin/sh
if ['ls | grep feedback']
then 
echo "Postoji fajl sa nazivom feedback"
else 
echo "Ne postoji fajl sa nazivom feedback"
fi

Prihvatanje promenljive

#! /bin/sh
echo "Unesite Vas omiljeni citat"
read citat
echo "Vas omiljeni citat je: $citat"






Aug 9, 2012

Izvršavanje skriptova i programa

Zakazivanje jednokratnih poslova je moguće komandom at:
at 12:01 1 Jan 2013
ls /etc > /root/Desktop/pregledetc.txt

Ctrl+D

  • posao će se izvršiti 1. januara u 12:01 2013
  • na Desktopu će se kreirati pregledetc.txt fajl i u njemu će biti izlistano sve što se nalazi u /etc direktorijumu
  • CTRL + D je kombinacija tastera za kraj zakazivanja posla
Vreme zakazivanje je moguće podesiti i na sledeći način:
  • at noon tomorrow
  • at 01/01/99
  • at 3:42am
  • at now + 3 weeks
  • at teatime
Komandom atq će se prikazati spisak svih poslova koji čekaju u at redu. Komanda atrm 12 birše posao pod rednim brojem 12 iz at reda.



Zakazivanje periodičnih poslova moguće je zadavanjem komande crontab -e .Otvoriće se cron datoteka u kojoj se unose vrednost za minute, sate, dan u mesecu, mesec i dan u nedelji, a zatim komandu koju želite da izvršite:
55 16 * * 1-5 ls /etc > /root/Desktop/pregledetc.txt
Ovaj posao će se izvršavati svakog radnog dana (1-5) u 16:55.

Komandom crontab -l možete videti spisak svih cron poslova

Suspendovanje posla se može pokrenuti ukoliko se neki posao dugo izvršava, a u međuvremenu je potrebno odradite nešto druge. Posao se suspenduje kombinacijom tastera CTRL+D

Zaustavljen posao se može ponovo pokrenuti u pozadini komandom bg, ili u prvom planu komandom fg, može se proveriti status posla komandom jobs ili da se sasvim obriše komandom kill.

KOMANDE:
jobs - prikazuje spisak trenutno kontrolisanih poslova

bg - izvršava u pozadini posao koji je poslednji suspendovan ili kontrolisan
bg %2 - izvršava posao 2 u pozadini
fg - izvršava u prvom planu posao koji je poslednji suspendovan ili kontrolisan
fg %2 - izvršava u prvom planu posao pod rednim brojem 2


ps - prikazuje spisak aktuelnih procesa koji se izvršavaju
ps -a -prikazuje sve procese uključujući i one koje izvršavaju drugi korisnici
ps -f - prikazuje procese i njihove međusobne odnose
ps -x - prikazuje procese koje izvršava sam sistem

top - prikazuje u realnom vremenu opterećenje sistema i procesa

nice - izvršava posao sporije, da manje utiče na ostale korisnike,

nice 19 skripta - izvršava skript sa najmanjim prioritetom 19

renice 18 2958 - menja prioritet izvršavanja posla pod brojem 2958

time skripta - prikazuje koliko traje izvršavanje skripte

pkill losposao - briše posao koji se zove losposao

kill %2 - ubija posao pod rednim brojem 2
kill 1625  - ubija proces pod broj 1625

kill -9 1625 - briše proces broj 1625

Aug 8, 2012

Arhiviranje i raspakivanje datoteka

Arhiviranje se na UNIX sistemu vrši komandom tar:
tar -cf arhiva.tar folder - arhivira "folder" u "arhiva.tar"

Da bi se arhivirani dokument raspakovao koristi se ista komanda na sledeći način:
tar -xf arhiva.tar - sadržaj iz arhiva.tar će biti raspakovan

tar -tf arhiva.tar - prikazuje spisak datoteka u arhiva.tar, ali ne raspakuje arhiva.tar

Ukoliko želite da zipujete fajl, tj. da smanjite negov prostor na disku, možete koristiti komandu gzip:
gzip proba1.tar - kreira zipovan fajl proba1.tar.gz od proba1.tar
Ukolik želite da zadržite originalni proba1.tar, možete koristiti gzip -c proba1.tar  komandu.

Za raspakivanje datoteke koja je prethodno bila zipovana komandom gzip koristi se komanda gunzip:
gunzip proba1.tar.gz

Mogu se koristiti i sledeće komande:
zip -r zipovanfajl imedirektorijuma - zipuje imedirektorijuma i sve poddirektorijume i datoteke u zipovanfajl

unzip zipovanfajl.zip - kreira razzipovan direktorijum od zipovanog fajla