Ako ste koristili .BAT
datoteke kao prečice do dugih naredbi (ja jesam,
puno), to možete odgovarajućim alias redovima (pogledajte gornji primjer) u
profile ili .bash_profile. Ali ako su vam .BAT-ovi bili
složeniji, onda ćete obožavati jezik ljuske: moćan je kao dobri stari
QBasic, ako ne i više. Ima varijable, konstrukte 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 se zove vi
i po mom iskustvu vrlo je
težak za većinu novih korisnika. Neću vam objašnjavati kako ga
upotrebljavati; pogledajte knjigu Matta Welsha ili potražite upute na mreži.
Ovdje ću reći samo ovo:
:q!
;:wq
.Dobar editor za početnika je joe
: ako ga pokrenete kao jstar
,
dobit ćete iste tipke kao u DOSWin editoru. jed
u WordStar ili IDE modu
je još bolji. Pogledajte dio
Gdje naći aplikacije za informacije gdje ih nabaviti.
Pisanje skripti u bash
u 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 vase_ime echo pogledajte razliku: "zdravo, $vase_ime" # citiranje s " echo pogledajte razliku: 'zdravo, $vase_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 se zove 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 hello 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 gcc
u da veže library
/usr/lib/<imelibrarya>.so, pa -lm
veže
/usr/lib/libm.so.
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 headera,
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; među prvima koje ćete željeti koristiti su ncurses
(efekti u tekstualnom modu) i svgalib
(grafika na konzoli). Ako ste
dovoljno hrabri za programiranje u X11 (nije to tako teško), postoje
nekoliko librarya koje pisanje X11 programa čine vrlo lakim. Pogledajte
http://www.xnet.com/~blatura/linapp6.html, imajući pritom na umu
da Gtk postaje Linux standard.
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.