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.