Programozás s 2 II.GUI -k (Grafikus felhasználói i felületek) letek) és parancsértelmez rtelmezők utolsó változtatás s 2008.04.12.
Alapok A GUI olyan (2Ds) felhasználói i felület, let, ami képekkel (ikonokkal), grafikus, vagy karakteres "ablakokkal" segíti a felhasználó és a gép g p közötti k párbeszp rbeszédet. A felhasználó sok feladatot a grafikus elemek manipulálásával gépelg pelés s nélkn lkül l is elvégezhet. Lehet Általános célú c (pl. Windows, XWindow) Speciális (pl. bankautómat maták, érintőképernyő,, stb)
Microsoft Windows Egymást átfedő,, mozgatható ablakok (valójában szinte minden ablak... pl. gombok,ikonok, stb de ezekre most nem gondolunk.) Legörd rdülő és s felugró menűk k az ablakok címsorc msorában Alkalmazások közötti k adatátvitel tvitel a vágólapon keresztül áthúzással Szoros OS integráci ció Tematizálhat lható (hátt ttérkép, ikonok, ablak dekoráci ció)
X-Window System UNIX/Linux-os rendszerek GUI-ja (kivéve ve Mac OS X) hálózati protokol még m g egy gépen g belül l is a megjelenítést végzv gző rész a szerver, a programok (amelyek m is futhatnak, de a megjelenítésük k a mi gépünkg nkön n törtt rténik) a kliensek. A kinézete az ablakkezelő programtól függ, tematizálhat lható Egymást átfedő,, mozgatható ablakok Menük k az ablakok címsorc msorában Legörd rdülő és s felugró menűk Több különbk nböző integrált környezetk van hozzá.. Ezek biztosítj tják k a programok közötti k adatátviteleket, tviteleket, amelyek megegyeznek a Windows-éivel ivel (amelyek más s gépen g rnyezet (pl. KDE, Gnome, Enlightenment)
Aqua (Mac OS-X) Egymást átfedő,, mozgatható ablakok Alkalmazást stól l függf ggően változv ltozó menü a képernyk pernyő tetején n (nem az ablakokon) Animáci ciók Az ablak szerver (Quartz Compositor) kezeli a képernyőt és s a felhasználói i inputokat. (Quartz Extreme az új j grafikus kártyk rtyákra épít) Felbontásf sfüggetlen megjelenítés s kivéve ve az alkalmazások által használt képeket. k
Parancsértelmez rtelmezők k (shell-ek) ek) Karakteres felületek letek (lehetnek önálló képernyők, vagy ablakok egy GUI-n) Sok esetben kényelmesebbek k a GUI-kn knál (Valamilyen szinten) Programozhatóak ak Programok debuggolására ideálisak Egyszerű szöveges inputot váró, v, karakteres kimenetű programok kapcsolhatóak ak össze bonyolultabb feladatok megoldására (UNIX filozófia) fia)
Windows shellek command.com kompatibilitás s miatt, nem foglalkozunk külön n vele cmd.exe Vannak beépített parancsok (pl. dir,del,ren,echo,copy, for külső parancsok (pl. subst[.exe] [.exe]) Környezeti változv ltozók k beáll llítása parancssorból: név=tartalom Programozása batch fájlokkal f (pl. valami.bat) Ha azt akarjuk, hogy egy batch fájl f a Windows-ba belépéskor elinduljon (mint a régi r autoexec.bat csin korábbi Windows-okban) okban) rakjuk be a start menübe. dir,del,ren,echo,copy, for) és csinálta a
BATch fájl f parancsok http://technet.microsoft.com/en-us/library/bb490869.aspx Parancs @ echo echo on/off Feladata Alaphelyzetben a BAT fájl f minden parancsot kiír r a képernyk pernyőre re amikor végrehajtja azt.. Ha nem akarjuk, hogy valamelyik sort kiírja írjunk @-ot a sor elejére. Ha a kiiratást az összes sorra le akarjuk tiltani használjuk az echo off parancsot! Szöveg kiiratása. Ezt BAT fájlban az echo on/off paranccsal letilthatjuk, vagy engedélyezhetj lyezhetjük. Az első echo parancs min- denképp kiíródik, kivéve, ve, ha @ van elötte. Példa @echo off Ha a BAT fájl f tartalma: echo Ez egy szöveg ezt látjuk: l echo Ez egy szöveg Ez egy szöveg Ha viszont ez van a BAT-ban: @echo off echo Ez egy szöveg akkor ezt látjuk: l Ez egy szöveg
BATch fájl f parancsok http://technet.microsoft.com/en-us/library/bb490869.aspx call GOTO Cimke IF ERRORLEVEL egy másik m BAT fájl f meghívása. A másik fájl f végrehajtv grehajtása után n visszatér és s folytatja a hívóh végrehajtását. t. ugrás cimkére goto célpontjac feltételes teles végrehajtv grehajtás s (a teljes if utasítást st egy sorba kell írni) IF feltétel tel parancs A parancs lehet bármi, b pl. goto is. parancssori program visszatérési si kódjk djának kezelése goto cimke :CIMKE if "%1" == "?" goto SUGO if "%1" == "F" goto OLVAS else Goto VEGE... :SUGO... IF ERRORLEVEL == 1 GOTO E1 vagy IF NOT ERRORLEVEL 3 GOTO E3
BATch fájl f parancsok http://technet.microsoft.com/en-us/library/bb490869.aspx környezeti változv ltozó %0,%1,%2,%3,%4,%5,%6,%7 %1,%2,%3,%4,%5,%6,%7,%8,%9 shift shift /n for ciklus beáll llítása után n programjaink használhatj lhatják lekérdez rdezés törlés parancssori paraméterek Max. 10 parancssori paramétert lehet használni Ha több van a shift-tel tel lehet azokat is használni. az (n+1)-ik paramétert tertől for {%változó %%változó} in (halmaz) do parancs [ parancs_opciók] % - parancssorban, %% BAT fájlban set REGI_FORMATUM=1 if REGI_FORMATUM== ==1 1 program set Path set Path= Ha a futtata.bat tartalma if "%1"== =="x" program futtat x Shift Shift /2 ekkor így használhatjuk %1 ből l lesz %0 stb %0,%1 marad, %3 ból b l lesz %2, %4 ből b l %3, stb for %%f in (*.bak( *.bak)) do del %%f
BATch fájl f parancsok http://technet.microsoft.com/en-us/library/bb490869.aspx pause rem ideiglenesen megáll llítja a bat fájl futását t amíg g egy gombot nem nyomunk meg. megjegyzések írása a fájlbaf... echo Nyomj meg egy gombot! pause rem ez egy BAT fájlf setlocal endlocal környezeti változv ltozók k csak az adott BAT fájlban f éljenek újra globális lis változv ltozók k legyenek setlocal set GYUMOLCS=ALMA endlocal
bash speciális karakterek # megjegyzés ; parancsok elválaszt lasztásasa # ez megjegyzés echo szia; echo itt; ;; case elválaszt lasztó case "$" $ változv ltozó" " in abc) ) echo "\$v" $változó = abc";; efg) ) echo "\$v" $változó = efg";; esac. rejtett fájl, f wd, szöveges parancs végrehajtása,grep-ben " részleges idézőjel: a speciális karaktereket továbbra is a shell értelmezi ' teljes idézőjel: "szöveg betüközzel" '$alma @' \ 'escape' karakter \t \a \b \$
bash speciális karakterek $ változó név alma=3 echo $(alma) echo $alma $ grep: sor vége v grep "[a" [a-za-z]+$ Z]+$" $ pozicionális paraméter terekek összes paraméter összes paraméter egymás s után n (tömb) : NOP - helykitölt ltő,, vagy a logikai igaz érték! negálás $1,$2, $* $@ while : ; do; ;done if [$gyumolcs gyumolcs!=$alma] (...) egy al-shell shell-t t nyit és s abban hajtja végre v a parancsokat a=alma (a=korte korte; ; echo $a) echo $a futás eredménye nye: korte alma {} zárójel kifejtés s (pl. az összes txt és s htm kiterjesztésű fájl listája) ls *.{txt,htm txt,htm}
bash shell script Parancs Feladata Példa #! script fájl f típusa(sha t bang) #!/usr usr/bin/bash #!/usr/bin/perl név= v=érték test... [ ] if ;; then ;; else ; fi vagy if then else fi változók tesztelés. s. az igaz éréknek a 0, bármi b más s a hamis értéknek felel meg. feltételes teles végrehajtv grehajtás ( a példp ldában ban a cmp parancs üzenetet írhat ki, de azt nem akarjuk látni, l ezért a kimenetét átírányítjuk a /dev/null eszközre, zre, azaz eldobjuk) LOG_DIR=/var/log cd $LOG_DIR a fájl f végrehajthatv grehajtható e: test x fájl [-x fájl] if cmp a b &> /dev/null then else fi if [ -x x $fájl ] ;then ls $fájl;fi
bash shell script for... in for... ( a $@-ot használja) for mint a C-benC ben. Figyelem: dupla (()) és s a ciklusban a LIMIT előtt nincs $! ciklus ciklus while feltétel tel ; do... ; done ciklus, addig fut, amíg g a feltétel tel igaz for valt in *.txt; txt;do ls l l $valt$ valt; done for valt; ; do ls l $valt ; done LIMIT=10 for ((a=1, b=1; a <= LIMIT ; a++, b++)) do echo -n n "$a-$b $b " done var0=0 LIMIT=10 while [ "$var0" -lt "$LIMIT" ] do echo -n n "$var0 " # -n: nem csinál l soremelést st. # ^ Space, var0=`expr $var0 + 1` done
bash shell script while, mint a C-benC until ciklus, addig fut, amíg g a feltétel tel igaz ciklus, addig fut, amíg g a feltétel tel hamis ((a = 1)) # a=1 while (( a <= LIMIT )) # (( és s nincs "$" do echo -n n "$a " ((a += 1)) # let "a+=1" done ((a = 1001 00)) # a=1 until (( a == 0 )) #amíg g a nem egyenlő 0 do echo -n n "$a " ((a -= = 1)) done break ciklus félbeszakf lbeszakítás continue ciklus folytatás
bash shell script case elágaztat gaztatás case "$" $ változv ltozó" " in abc) ) echo "\$v" $változó = abc";; efg) ) echo "\$v" $változó = efg";; esac