ProgUnixon
A hszk gépeiről be lehet jelentkezni grafikusan az ural2-re is (ez az alapértelmezett beállítás). A megjelenő loginablakban a szokásos témaszámot és jelszót kell megadni, általában angol billentyűkiosztás szerint!
Következzék néhány tanács.
Vim
Aki hatékonyan akar kódot szerkeszteni, mindenképpen tanulja meg a vim (esetleg emacs) használatát. Ebben segít az ural2-n is megtalálható vimtutor nevű bináris. (Van magyar fordítása is. Lásd hupwiki.)
Érdemes ismerni a :make, :cl, :cn parancsokat, amelyekkel make-elhetünk, hibalistát tekinthetünk meg, és azon ugrálhatunk.
Jelenleg friss vim van az ural2-n, ha esetleg elavulna, küldjetek egy mailt a hszk-nak, frissíteni fogják.
Az ural2-n lévő xterm nagyon régi, úgyhogy érdemes a gvim futtatása, ez jól színez xterminálon. Otthonról való használatra javasolt a terminál megfelelő beállítása:
echo 'TERM=xterm-color' >> ~/.profile; source ~/.profile
Ha mást nem is, egy "syntax on" és "filetype plugin indent on" sort érdemes beírni a "~/.vimrc"-be.
Lásd még: Prog2Vi
Makefile
Érdemes a legkisebb projektekhez is Makefile-t készíteni, ami egyszerűsíti a fordítás folyamatát.
Egy "Makefile" nevű fájlt kell az adott könyvtárban létrehozni, majd a make parancs lefordít mindent, ami frissült.
A különálló programokat érdemes külön könyvtárban tárolni. Egy forrásfájlból álló C programhoz egy Makefile így néz ki (fontos, hogy a tab ne szóközökből álljon, mert ez hibás működéshez vezet):
CFLAGS=-lm -g # gcc flagek: math modul linkelése, debug mód valami: valami.c # valami előállítása valami.c-ből (implicit szabályok szerint) clean: # "make clean" törli a szemetet rm -f valami *.o
(C++-hoz ugyanez, csak forrásfájl nevének a vége .cpp legyen.)
Több modulból álló program esetén valami ilyesmire lesz szükség (a {foo,bar,baz}.{h,c} fájlokból fordít):
CFLAGS=-lm -g OBJS=foo.o bar.o baz.o # default cél: tárgykód összeszerkesztése ./valami kimenettel valami: ${OBJS} ${CC} -o $@ ${CFLAGS} ${OBJS} clean: rm -f valami *.o foo.o: foo.c foo.h bar.h # függőségek, mindig a legelső a forrásfájl # nem kell konkrét parancs, kiterjesztésből tudja a make bar.o: bar.c bar.h # baz.o default marad
C++ fordítására a "g++" nevű program szolgál (ez van a CXX makróban), és az előző Makefile működik vele. (A g++ kapcsolóit a CXXFLAGS makró tárolja.)
gdb
Prog2-ből szerepel is az anyagban a gdb. Egyszerűen használható parancssoros debugger. "gdb ./programneve" paranccsal indítható. "r"-rel indítod a programot, ctrl-z-vel megszakítod, c-vel folytatod, s-sel lépkedsz, bt-vel megnézed az elszállt programod stackjét, b-vel breakpointot raksz le, q-val kilépsz. Üres sorra entert ütve az előző parancsot ismétled.
Uralon nincs (mivel Solarisra nem portolták), de érdemes még kipróbálni a valgrind-ot, megmutatja, hol szivárog a memória, vagy hol vétettél csúnya hibákat.
screen
Ha nem akarsz hat ablakot nyitva tartani, használd a screen-t. Alapból kicsit fapados, de remek leírásokat találni róla. Ural2-n SIGHUP-ra leáll a screen is.
Esetleg elég lehet a Ctrl-Z, fg, bg, jobs parancsok ismerete is.
apróságok
- Ha a PATH környezeti változóban nincs benne (echo 'PATH=$PATH:.' >> ~/.profile) a (mindenkori) aktuális könyvtár, ./bináris_neve módon futtathatod a programodat.
- Unix alatt ctrl-d a szokásos eof-vezérlőkarakter, ctrl-c az interrupt. (stty-vel variálható).
- ~/.profile-ba érdemes rakni egy "export PS1"-et, hogy a subshellekben is legyen szép prompt
- szintén ~/.profileban érdemes a preferált szerkesztőt is megemlíteni ("EDITOR=vim")
- billentyűkiosztás váltása
Függvényreferencia
Az ural2-n telepítve van, Ubuntu és Debian alatt pedig például a manpages-dev csomag tartalmazza a glibc (GNU C Library) dokumentációját. Így például a "man -s 3c printf" (ural2-n) vagy "man 3 printf" (Linuxon) paranccsal elérjük a printf függvénycsalád leírását.
szkriptek
Lásd még
Kápolnai Richárd bevezetője hasonló témában, emacs-finomságokkal, gdb-leírással
-- maat - 2009.05.28.