Ako ste koristili .BAT datoteke za prečice do dugih naredbi (ja jesam,
puno), to možete odgovarajućim alias redovima (pogledajte gornji primjer)
u profile ili .profile. Ali ako su vam .BAT-ovi bili složeniji,
onda ćete obožavati jezik ljuske: moćan je kao QBasic, ako ne i više.
Ima varijable, strukture kao while, for, case, if... then... else i puno
drugih mogućnosti: dobra je alternativa "pravom" programskom jeziku.
Za pisanje skripte -- ekvivalenta .BAT datoteci pod DOS-om -- samo trebate
napisati standardnu ASCII datoteku koja sadrži instrukcije, snimiti ju,
a onda učiniti izvršnom naredbom chmod +x <skripta>. Ako ju hoćete
izvršiti, samo napišite njeno ime.
Malo upozorenje. Editor sustava zove se vi i po mom iskustvu vrlo je težak za većinu novih korisnika. Neću vam objašnjavati kako ga upotrebljavati, jer ga ne volim i ne koristim. Reći ću samo ovo:
:q!;
:wq.Dobar editor za poćetnika je joe: ako ga pokrenete kao jstar, dobit ćete iste tipke kao u DOS-ovom editoru. jed u WordStar ili IDE modu još je bolji. Pogledajte dio Gdje naći aplikacije za informacije gdje ih nabaviti.
Pisanje skripti u bashu tako je golema tema da zahtijeva knjigu samo za sebe i neću dublje u nju ulaziti. Samo vam dajem primjer skripte iz koje možete vidjeti neka osnovna pravila:
#!/bin/sh
# primjer.sh
# ja sam komentar
# ne mijenjajte prvi red, on mora biti tamo
echo "Ovaj sustav je: `uname -a`" # korištenje izlaza naredbe
echo "Moje ime je $0" # ugrađene varijable
echo "Dali ste mi ovih $# parametara: "$*
echo "Prvi parametar je: "$1
echo -n "Kako se zovete? " ; read vaše_ime
echo pogledajte razliku: "zdravo, $vaše_ime" # citiranje s "
echo pogledajte razliku: 'zdravo, $vaše_ime' # citiranje s '
DIROVI=0 ; DATOTEKE=0
for datoteka in `ls .` ; do
if [ -d ${datoteka} ] ; then # ako je datoteka direktorij
DIROVI=`expr $DIROVI + 1` # DIROVI = DIROVI + 1
elif [ -f ${datoteka} ] ; then
DATOTEKE=`expr $DATOTEKE + 1`
fi
case ${datoteka} in
*.gif|*jpg) echo "${datoteka}: grafička datoteka" ;;
*.txt|*.tex) echo "${datoteka}: tekstualna datoteka" ;;
*.c|*.f|*.for) echo "${datoteka}: datoteka s izvornim kodom" ;;
*) echo "${datoteka}: općenita datoteka" ;;
esac
done
echo "ima ${DIROVI} direktorija i ${DATOTEKE} datoteka"
ls | grep "ZxY--!!!WKW"
if [ $? != 0 ] ; then # izlazni kod zadnje naredbe
echo "ZxY--!!!WKW nije nađen"
fi
echo "dosta... napišite 'man bash' ako hoćete još informacija"
Pod Unixom jezik sustava je C, svidjelo se to vama ili ne. Tu je i hrpa drugih jezika (Java, FORTRAN, Pascal, LISP, BASIC, Perl, AWK...).
Ako znate C, evo nekoliko uputa za one razmažene Turbo C++-om ili nekim
njegovim DOS rođakom. Linuxov C kompajler zove se gcc i nedostaju mu
svi ukrasi uobičajenih IDE pandana: nema IDE-a, izravnih uputa,
integriranog debuggera, itd. To je samo grubi kompajler komandne linije,
vrlo moćan i djelotvoran. Za kompajliranje standardnog hello.c
napišite:
$ gcc hello.c
što će dati izvršnu datoteku a.out. Ako hoćete drugo ime, napišite
$ gcc -o zdravo hello.c
Za vezanje librarya na program, dodajte prekidač -l<imelibrarya>. Na primjer, za vezanje s matematičkim libraryem:
$ gcc -o matematika matematika.c -lm
-l<imelibrarya> kaže gccu da veže library
/usr/lib/<imelibrarya>, pa -lm veže
/usr/lib/libm.a.
Zasad je sve u redu. Ali kad se vaš program sastoji od više datoteka,
koristit ćete alat make. Prepostavimo da ste napisali parser izraza:
njegova se datoteka zove parser.c i uključuje dva zaglavlja,
parser.h i xy.h. A onda želite koristiti funkcije iz
parser.c u drugom programu, recimo kalk.c, koji također
uključuje parser.h. Kakva zbrka! Kako ćete kompajlirati
kalk.c?
Napisat ćete takozvani makefile, koji kompajleru pokazuje
međuovisnosti izvornih i objektnih kodova. U našem primjeru:
# Ovo je makefile za kompajliranje kalk.c # Pritisnite <TAB> gdje je označeno! kalk: kalk.o parser.o <TAB>gcc -o kalk kalk.o parser.o -lm # kalk ovisi o dvije objektne datoteke: kalk.o i parser.o kalk.o: kalk.c parser.h <TAB>gcc -c kalk.c # kalk.o ovisi o dvije izvorne datoteke parser.o: parser.c parser.h xy.h <TAB>gcc -c parser.c # parser.o ovisi o tri izvorne datoteke # kraj makefilea
Ovu datoteku snimite kao Makefile i napišite make za kompajliranje
programa; možete ju snimiti i kao kalk.mak i napisati make -f
kalk.mak. Naravno, RMP. Nešto uputa o C funkcijama pokrivaju man stranice
3. dijela; na primjer,
$ man 3 printf
Za otklanjanje grešaka koristite gdb. info gdb za njegovo
korištenje.
Librarya ima puno; najvažnije su ncurses, za efekte u tekstualnom modu i svgalib za grafiku. Ako ste dovoljno hrabri za programiranje u X11, postoje libraryi kao što je već spomenuti XForms, Qt, Gtk i mnoge drugi, kojima pisanje X11 programa postaje lako. Pogledajte http://www.xnet.com/~blatura/linapp6.html.
Mnogi editori mogu imitirati IDE; na primjer, emacs i jed imaju sintaktičko osvjetljavanje, automatsko uvlačenje itd. Možete nabaviti i paket rhide s ftp://sunsite.unc.edu:/pub/Linux/devel/debuggers/. To je klon Borlandovog IDE-a i vjerojatno će vam se svidjeti.