LAG07.qxd
9/11/2006
3:19 PM
Page 181
7 A terminál lehetõségeinek kiterjesztése 49–54. fogás A Linux-terjesztõk buzgón igyekeznek meggyõzni bennünket arról, hogy Linux rendszerükön bármilyen feladatot elvégezhetünk a grafikus asztalról, anélkül, hogy a parancssor közelébe kerülnénk. A Fedora Core indítópadja például egy árva ikont sem tartalmaz a terminálhoz, és ezzel azt sugallja, hogy csupán az idejétmúlt szobatudósok és a számítástechnikai nagyágyúk nyúlnak a parancssori eszközökhöz. A tapasztalt Linux-felhasználók azonban tudják, hogy az egyszerûen kezelhetõ grafikus felület csupán bizonyos felhasználóknak, bizonyos feladatokra felel meg, de sok feladat a parancssor, illetve a szöveges parancsfájlok hatékonyságát igényli. Mások egyszerûen kedvelik a szöveges alkalmazásokat. Én is közéjük tartozok, és gyakran azért választom a szöveges Mutt levelezõprogramot, mert a Mutt támogatja a makróparancsokat, amelyekkel gyorsabban rendet vághatok az új levelek között, mint bármelyik grafikus levelezõprogrammal. Ezért tartozzunk bár az idejétmúlt, de öntudatos szobatudósok, a számítástechnikai virtuózok, vagy azok körébe, akik egyszerûen kedvelik a szöveges programokat, a fejezet nekünk szól. Mi több, abból indul ki, hogy elõnyben részesítjük az X terminálokat, és szívesebben dolgozunk könnyûsúlyú terminálokkal, mint a jóval nagyobb erõforrásigényû GNOME vagy KDE terminálokkal.
LAG07.qxd
182
9/11/2006
3:19 PM
Page 182
Linux asztali gépen
Az utolsó három fogás, a Microsoft Word dokumentumok megtekintése terminálokban [52. fogás], a PDF dokumentumok megtekintése terminálokban [53. fogás] és a Word és PDF állományok megtekintése a Mutt levelezõprogramban [54. fogás] nem csak X terminálban alkalmazhatók jól, de ideálisak akkor is, ha nem használjuk az X rendszert, és szigorúan csak virtuális szöveges konzolokon dolgozunk (lehetõség szerint képtáras konzolon). Valójában nehéz volt a döntés, hogy ezek a fogások a konzoloknak szentelt 2. fejezetbe kerüljenek-e, vagy ide, ahol az X terminálokkal foglalkozunk. Ugyanez volt a helyzet a 2. fejezetbe került Áramvonalas készenléti jel [13. fogás], A könyvtárváltás egyszerûsítése [14. fogás] és a Színes állománynevek a lapozóprogramokban [15. fogás] címû fogásokkal, amelyek pontosan olyan jól futnak X terminálokon is. Érdemes az összes, kettõs személyiségû fogást virtuális konzolokon és X terminálokon is kipróbálni, hogy meggyõzõdjünk róla: mindkét esetben mûködnek.
49. fogás • Alkalmazások és monitorok megosztása a screen eszközzel Végezzünk közös munkát konzolon! Mindenki figyelmét felkelti az X terminálokkal kapcsolatos egy-egy ügyes fogás, néhány remek trükköt azonban a konzolon is elvégezhetünk, egy screen nevû eszköz segítségével. A screen ablakkezelõ program terminálokhoz, amely a következõ nagyszerû lehetõségeket kínálja: • Több képernyõ kezelése • Görgetõmemória • Másolás és beillesztés tár Bár a felsorolás meglehetõsen unalmas – végül is, ezt megtehetjük X terminálokkal is –, ne feledjük, hogy e lehetõségeket a terminálon belül érhetjük el. Nincs szükség X kiszolgálóra; a screen pontosan olyan jól (vagy jobban) mûködik a Linux virtuális terminálján vagy akár egy távoli gépen. Összetettebb alkalmazásra is módot ad, mert biztosítja, hogy egy folyamat kimenetét leválasszuk vagy megosszuk. A screen GNU eszköz, amely a legtöbb Unix alapú rendszerhez elérhetõ, így Linuxhoz is. A legtöbb – ha nem az összes – terjesztés nyújt hozzá csomagot, de a GNU webhelyérõl magunk is letölthetjük és lefordíthatjuk.
49
A screen szolgáltatásait a CTRL+A billentyûkombinációval érhetjük el. A billentyûkombinációt, majd a kérdõjel (?) billentyût lenyomva néhány érvényes parancsot tekinthetünk meg.
LAG07.qxd
9/11/2006
3:19 PM
Page 183
7. fejezet • A terminál lehetõségeinek kiterjesztése
183
(Szét)kapcsolva A screen leggyakrabban igénybe vett szolgáltatásainak egyike – a több alkalmazás egyidejû futtatátásnak támogatása mellett – az a képessége, hogy leválasztva is képes tovább futtatni alkalmazásokat. Amikor a screen programot elindítjuk, létrehoz egy a jelenlegi termináltól független, új folyamatot. Ezután kikapcsolhatjuk a terminált (vagy kijelentkezhetünk), megnyithatunk egy újat (vagy ismét beléphetünk), és újra rákapcsolódhatunk a képernyõnkre. Ez a lehetõség hosszú háttérfeladatok futtatásánál célszerû (például a rendszermag fordításánál), amikor nem szeretnénk véletlenül leállítani a folyamatot azzal, hogy bezárjuk a terminált vagy kijelentkezünk. Különösen pedig akkor hasznos, ha a feladatot egy távoli számítógépen végezzük, ahol még nagyobb a kockázata a kapcsolat megszakadásának. Elsõ lépésként futtassuk a screen alkalmazást paraméterek nélkül: foo@bar:~$ screen
Nyomjuk le a CTRL+A billentyûkombinációt, majd a D billentyût. Ezzel visszatérünk az eredeti konzolhoz, miközben az alábbi üzenet arról tájékoztat, hogy lekapcsolódtunk a képernyõrõl: [detached]
A futó képernyõket így kérhetjük le: foo@bar:~$ screen -ls
Az utasítás kimenete valahogy így fest: There is a screen on: 25091.pts-3.foo (Detached) 1 Socket in /var/run/screen/S-user.
A képernyõre így kapcsolódhatunk ismét: foo@bar:~$ screen -r
Ha több képernyõt látunk a felsorolásban, így választhatjuk ki, hogy melyikhez kívánunk kapcsolódni: foo@bar:~$ screen -r n
Az n helyére a screen -ls parancs kimenetében kapott számot írjuk (például, 25091).
Tükröm, tükröm... A screen egy másik hasznos szolgáltatása, hogy kapcsolódhatunk egy már csatolt képernyõre. Ezt gyakran a hibásan megszakított munkame-
49
LAG07.qxd
184
9/11/2006
3:19 PM
Page 184
Linux asztali gépen
netek helyreállításához vesszük igénybe (például amikor az összeköttetés megszakad), de alkalmazások tükrözésére is alkalmas. Jó példa erre az IRC. Az egyidejûleg több számítógépet (például egy laptopot és egy asztali számítógépet) futtató felhasználók igényelhetik, hogy IRC csatornáik mindkét gépen nyitva legyenek, de anélkül, hogy kétszer kellene bejelentkezniük. A screen használata esetén erre nincs is szükség. Egy héjból adjuk ki az alábbi utasítást: foo@bar:~$ screen irssi
Az utasítás elindítja a screen alkalmazást és betölti az irssi IRC konzolügyfelet a nulladik képernyõre (nem mindig kell interaktív héjat futtatnunk). Egy másik héjban (helyi vagy távoli SSH héjban) írjuk be: foo@bar:~$ screen -ls
Az utasítás kimenete ehhez hasonló munkameneteket tartalmaz: There is a screen on: 3483.pts-0.foo (Attached) 1 Socket in /var/run/screen/S-user.
A fenti munkamenet számát megadva írjuk ezt: foo@bar:~$ screen -x 3483
Ezzel megosztottuk képernyõ-munkamenetünket. Próbáljuk ki több héjból is! Tetszõleges számú munkamenetre csatlakozhatunk, de amikor kilépünk az alkalmazásból (feltéve, hogy közvetlenül indítottuk el, mint az irssi esetében, és nem egy képernyõhéjból), az adott képernyõ leáll.
Adni öröm Arra is van lehetõség, hogy több felhasználó egyetlen screen felületen osztozzon – például közösen dolgozzon egy dokumentumon vagy programkódon. Ehhez a következõknek kell teljesülnie:
49
• A screen fordítása a „multiuser”, a több felhasználós üzemmód engedélyezésével történt (a legtöbb csomag ilyen). • A screen rendszergazdai (root) jogosultságokkal rendelkezik (chmod +s /usr/bin/screen). Feltéve, hogy a screen fut, user1 felhasználóként nyomjuk le a CTRL+A billentyûket, majd írjuk be: :multiuser on. Továbbra is user1 felhasz-
LAG07.qxd
9/11/2006
3:19 PM
Page 185
7. fejezet • A terminál lehetõségeinek kiterjesztése
185
nálóként nyomjuk le a CTRL+A billentyûkombinációt, és írjuk be: :acladd felhasználónév, ahol a felhasználónév az a felhasználó, akinek lehetõvé szeretnénk tenni a csatlakozást képernyõnkre. A példában legyen ez a user2. user2 felhasználóként így indítjuk el a screen alkalmazást: foo@bar:~$ screen -x user1/
Ekkor rákapcsolódunk a user1 felhasználó screen alkalmazására. Az acladd mellett az aclchg, acldel és aclgrp utasításokkal szabályozhatjuk, ki férhet hozzá a screen-hez, és mit tehet vele (például csak olvashatja). Ha a kapcsolódott felhasználókat ki szeretnénk íratni, nyomjuk le a CTRL+A billentyûket, majd a csillag (*) billentyût. Ha ideiglenesen meg szeretnénk akadályozni, hogy a felhasználók módosítsák ablakainkat, nyomjuk le a CTRL+A billentyûkombinációt, és írjuk be: :writelock on. A zárolást a :writelock off utasítással oldhatjuk fel. Ha a felhasználók írási jogosultsággal rendelkeznek, felülbírálhatják a writelock utasítást. Ha meg szeretnénk akadályozni, hogy egy felhasználó bármelyik ablakunkat módosítsa, nyomjuk le a CTRL+A billentyûket, és írjuk be: :aclchg felhasználónév -w "#". – David Murphy
50. fogás • Szabaduljunk meg a terminál parancssori kapcsolóitól! A szakértõ felhasználók olyan sûrûn váltogatják az ablakkezelõket, mint Sydney Bristow a frizuráját az Alias címû filmsorozatban. Íme hogyan vehetjük figyelembe, hogy minden ablakkezelõ másképpen indítja el az X terminálokat. A GNOME és a KDE az egyszerû használhatóság tekintetében kiváló alkalmazások, és termináljaik (gnome-terminal, konsole) leegyszerûsítik beállításaink mentését, de a számítógép erõforrásait jelentõsen megterhelõ feladatok futtatásakor erõforrásokat szabadíthatunk fel, ha kevésbé sokoldalú, „karcsúbb” ablakkezelõt választunk, amilyen a Fluxbox, a WindowMaker, az ION vagy bármelyik a több tucat rendelkezésre álló közül. Emellett a grafikus asztalok kedvelõi közül sokan elõnyben részesítik e könnyûsúlyú ablakkezelõket, mert a régebbi hardvereszközökön gyorsabban futnak. Ha takarékoskodni szeretnénk az erõforrásokkal, és beérjük egy egyszerûbb ablakkezelõvel, akkor nincs értelme a GNOME vagy a KDE tetszetõs termináljait futtatni, hiszen ezek már a futásukhoz is számos könyvtárat
50
LAG07.qxd
186
9/11/2006
3:19 PM
Page 186
Linux asztali gépen
töltenek be. Ha az erõforrások kímélése végett döntünk egy egyszerûbb ablakkezelõ mellett, érdemes egy karcsú terminálutánzót (terminálemulátort) választanunk, amilyen az xterm, az aterm vagy az rxvt. Ez a fogás bemutatja, hogyan indíthatjuk el e terminálprogramokat parancssori kapcsolók nélkül, mégis úgy, hogy a kívánt módon jelenjenek meg. Elõször azonban lássuk, hogyan indíthatjuk el kedvenc beállításainkkal például az xterm terminált a hagyományos módszerrel, különbözõ ablakkezelõkben! Tegyük fel, hogy ki szeretnénk próbálni a Fluxbox ablakkezelõt. A menübõl futtatjuk az xterm terminált, ami az alapértelmezett beállításokkal jelenik meg. Az alapértelmezett beállítások azonban messze nem elégítik ki az ízlésünket. Mit tehetünk? Készítünk egy ~/.fluxbox könyvtárat, megkeressük az alapértelmezett menüállományt (amelynek neve – nem véletlenül – menu, és általában a /usr/share/fluxbox könyvtárban található), átmásoljuk a ~/.fluxbox könyvtárba, és módosítjuk a terminál indításáért felelõs utasításokat. Ha például adott mérettel, fehér elõtér- vagy írásszínnel, fekete háttérrel, 10x20-as betûmérettel, 4000 soros görgetõmemóriával stb. szeretnénk az xterm terminált indítani, az alábbihoz hasonló menübejegyzést készítünk: [exec] (xterm) {xterm -fn 10x20 -fg white -bg black ¯ -geometry 120x40 -sb 4000}
De mi történik, amikor a terminál valamennyi menüelemét beállítottuk a Fluxbox ablakkezelõhöz, majd úgy döntünk, hogy mégis inkább a WindowMaker ablakkezelõt futtatnánk? Sajnos a fenti kódsort nem emelhetjük át egyszerûen a WindowMaker menüállományába, mert a WindowMaker eltérõ formátumú parancsbejegyzéseket vár. Ne csüggedjünk! Bár gyakran megfeledkeznek róla, létezik egy állomány, ahol elegendõ egyszer megadni az egyedi beállításokat, és ha elindítjuk az xterm terminált egy egyszerû xterm utasítással, paraméterek nélkül, vagy az aterm terminált az aterm utasítással, paraméterek nélkül, azok a kívánt módon jelennek meg, sõt a menübejegyzések is egyszerûbbek. A Fluxbox bejegyzéshez csupán ennyi szükséges: [exec] (xterm) {xterm}
50
A kérdéses állomány a kezdõkönyvtárunkban található .Xdefaults (egyes terjesztésekben .Xresources, noha úgy tûnik, hogy valamennyi terjesztés ellenõrzi és figyelembe veszi az .Xdefaults állományt). Manapság ugyan csak néhány program törõdik az ~/.Xdefaults állomány beállításaival, a karcsú, egyszerû terminálprogramok többsége azonban közéjük tartozik.
LAG07.qxd
9/11/2006
3:19 PM
Page 187
7. fejezet • A terminál lehetõségeinek kiterjesztése
187
A következõ ~/.Xdefaults állomány az xterm, az aterm és az rxvt megjelenését és mûködését állítja be, hasonlóképp, mint a korábbi, Fluxbox menüállomány az xterm terminált, de egyéb beállításokat is láthatunk. Az alábbi XTerm meghatározásokat mindhárom terminál figyelembe veszi (legalábbis azokat, amelyeknek megfelelõ szolgáltatások az aterm és az rxvt terminálokban is elérhetõk), elõfordul azonban, hogy az aterm, rxvt és más terminálokhoz önálló beállításokat kell megadnunk. XTerm*scrollBar: on XTerm*rightScrollBar: on XTerm*title: XTerm XTerm*font: 10x20 XTerm*savelines: 4000 Xterm*geometry: 120x40 XTerm*background: black XTerm*foreground: white XTerm*colorMode: on XTerm*dynamicColors: on XTerm*underLine: off XTerm*colorBDMode: on XTerm*colorBD: cyan XTerm*colorULMode: on XTerm*colorUL: magenta XTerm*customization: -color XTerm*reverseWrap: true XTerm*color0: #000000 XTerm*color1: #b21818 XTerm*color2: #18b218 XTerm*color3: #BE5F00 XTerm*color4: #6D85BA XTerm*color5: #b218b2 XTerm*color6: #18b2b2 XTerm*color7: #b2b2b2 XTerm*color8: #686868 XTerm*color9: #FF5454 XTerm*color10: #54FF54 XTerm*color11: #FFFF54 XTerm*color12: #73A5FF XTerm*color13: #FF54FF XTerm*color14: #54FFFF XTerm*color15: #FFFFFF
Az említett terminálprogramok több beállítási lehetõséggel is rendelkeznek. Ezekrõl elsõsorban az egyes terminálok súgóoldalán, a RESOURCES szakaszban olvashatunk. Mivel a programok megjelenésének és mûködésének ily módon történõ szabályozása egyre ritkább, a beállítási lehetõségekrõl nem mindig találunk alapos leírást. Kísérletezzünk a különbözõ beállításokkal, amíg elérjük a kívánt eredményt!
50
LAG07.qxd
188
9/11/2006
3:19 PM
Page 188
Linux asztali gépen
51. fogás • Áttetszõ terminálok A könnyûsúlyú terminál nagyszerû dolog, különösen, ha szép. Számos terminálprogramhoz saját grafikus hátteret állíthatunk be, vagy „átlátszóvá” tehetjük, hogy láthatóvá váljon mögötte az asztal háttérképe – így valóban mutatós terminálokhoz jutunk. Manapság az átlátszó terminálok a divatosak. A valódi átlátszósággal az a gond, hogy mûködéséhez egyszínû háttérkép szükséges. Ha a háttérkép világos és sötét mintákat is tartalmaz, bajban vagyunk (7.1. ábra). Nem számít, hogy a szöveg színét fehérre vagy feketére állítjuk: attól függõen, hol jelenik meg a szöveg a színes háttérképen, egyes részeit el tudjuk olvasni, míg más részei beolvadnak a háttérbe, és láthatatlanná válnak.
7.1. ábra Nehezen olvasható átlátszó terminál
51
A 7.1. ábra kétségtelenül látványos, de az olvasó csak a szemét erõltetve képes elolvasni a szöveget. A nehézsúlyú programok, például a KDE konzol vagy a GNOME terminál ügyesen orvosolja a problémát. Terméketlen azonban olyan könnyûsúlyú ablakkezelõt futtatni, ami csak nehézsúlyú terminálokat betöltve képes szép, színes, átlátszó hatást kelteni. Az Xorg (az XFree86 X Window projekt egyik fejlesztési ága) rendelkezik olyan kísérleti szolgáltatásokkal az átlátszóság megteremtésére [34. fogás], amelyek valamennyi terminál számára megoldják a kérdést, de az alkalmazás jelenleg még nem stabil. Addig is, amíg az Xorg megszabadul a hibáitól, hívjuk segítségül az aterm és az urxvt terminálokat, illetve a .Xdefaults állomány egyes beállításait.
LAG07.qxd
9/11/2006
3:19 PM
Page 189
7. fejezet • A terminál lehetõségeinek kiterjesztése
189
Színezzük ki urxvt terminálunkat! Legalább két olyan, viszonylag könnyûsúlyú terminál is létezik – az rxvt egy Unicode változata, az urxvt, és az aterm –, amelyek képesek az áttetszõ háttér színezésére. A mrxvt program, amely lehetõvé teszi, hogy több terminált is megnyissunk egyetlen ablakban, szintén felkínálja ezt a lehetõséget. A mrxvt azonban olyan, gyorsan mozgó célpont, amelynek beállításához mindaddig nem adhatunk tanácsot, amíg egy kicsit érettebbé nem válik. Az urxvt esetében a terminál továbbra is átlátszó marad, így láthatjuk mögötte az asztal háttérképét, ugyanakkor az urxvt egy színárnyalat alkalmazásával kiigazítja a háttérképet. A színárnyalat színét és tónusát beállíthatjuk az .Xdefaults állományban [50. fogás], vagyis nem szükséges a parancssori paramétereket fejben tartanunk. Kezdjük az urxvt terminállal – az alábbi beállításokat ~/.Xdefaults állományunkban elhelyezve a 7.2. ábrán látható eredményt kapjuk. Ugye, mennyit javít a megadott zöld színárnyalat és a tónus 70-es értéke a szöveg olvashatóságán? urxvt*inheritPixmap: True urxvt*tintColor: green urxvt*shading: 70 urxvt*fading: 70
Tipp
Lássunk még két további ötletet: érdemes a termName bejegyzést az rxvt névre állítani, ugyanis a Linux egyes változatai nem tekintik az urxvt terminált érvényes termináltípusnak, így a szöveget nem formázzák megfelelõen. Emellett az urxvt rendelkezik egy fading nevû erõforrás-beállítással, amely azt határozza meg, menyire halványul el a szöveg, amikor az ablak elveszíti a fókuszt.
Az aterm színesben az igazi! A 7.2. ábrán bemutatott terminál az urxvt, a javasolt beállításokkal azonban az aterm is pontosan ugyanígy fest. Az aterm is áttetszõvé tehetõ, ha követjük az utasításokat. Nyissuk meg kedvenc szerkesztõnket, és helyezzük el az alábbi beállításokat az .Xdefaults állományban, majd futtassuk az aterm terminált: Aterm*transparent: true Aterm*tintingType: true Aterm*tinting: green Aterm*shading: 80
Ha rendszerünket többféle szövegszín alkalmazására állítottuk be, e színek egyike mindig nehezen olvasható, függetlenül a választott színár-
51
LAG07.qxd
190
9/11/2006
3:19 PM
Page 190
Linux asztali gépen
nyalattól. Ha például a sötétkék árnyalást választjuk, a sötétkék szöveg olvasható nehezen. Köztes megoldás lehet, ha az árnyékolás értékét változtatva a színárnyalatot világosítjuk vagy sötétítjük, amíg végül valamennyi szövegszín olvashatóvá nem válik. Érdemes kipróbálni, ha máskülönben elégedettek vagyunk a hatással.
7.2. ábra Átlátszó és színezett urxvt terminál
52. fogás • Microsoft Word dokumentumok megtekintése terminálokban Ne várjunk az OpenOffice.org betöltésére, tekintsük meg a Microsoft Word dokumentumokat a terminálban!
52
A Microsoft Word dokumentumokat terminálban legegyszerûbben a catdoc utasítással jeleníthetjük meg. A Word dokumentumot azonban a catdoc egyszerû szöveggé alakítja, így a dokumentum eredeti formátumából semmi sem vagy nagyon kevés marad meg. Nyilvánvaló, hogy a Word dokumentumokat szinte lehetetlen a terminálban pontosan úgy megjeleníteni, ahogy a Wordben megjelenne. Sõt még a rivális szövegfeldolgozó alkalmazásoknak is gondot okozhat a Word dokumentumok betöltése a formátum megõrzésével, noha elõnnyel indulnak, hiszen grafikus asztali alkalmazásokról van szó. Ez a fogás ennek ellenére hatalmas elõrelépés a catdoc programhoz képest, mert azzal, hogy a Word dokumentumokat HTML formátumúvá alakítja, az eredeti dokumentum formátumát legalább részben megõrzi.
LAG07.qxd
9/11/2006
3:19 PM
Page 191
7. fejezet • A terminál lehetõségeinek kiterjesztése
191
Ahhoz, hogy a Word dokumentumokat formátumukat részlegesen megõrizve megjelenítsük a terminálban, a wvWare állományátalakító eszközök készlete, a hibrid webböngészõ- és lapozóprogram, a w3m, valamint egy kis parancsfájlvarázslat szükséges.
wv, az egyetemes Word-átalakító Létezik egy módszer, amellyel az eredeti formátum legalább bizonyos elemeit megõrizhetjük, miközben a dokumentumot a képernyõre írjuk. Ehhez a wvWare segédprogramkészlet szükséges. A wvWare honlapja a http://wvware.sourceforge.net címen található. A wvWare csomagként elérhetõ szinte valamennyi Linux terjesztéshez, noha a csomag neve általában csak wv. Ha még nincs rendszerünkre telepítve, a wv csomag Debian Linux rendszeren például így telepíthetõ: # apt-get install wv
A yum csomagkezelõ felhasználói a wv RPM változatát így telepíthetik: # yum install wv
w3m , az egyetemes webböngészõ- és lapozóprogram A fogáshoz ez még nem elegendõ. Szükségünk van a w3m népszerû webböngészõ- és lapozóprogramra. A legtöbb Linux terjesztéshez találunk w3m csomagokat; a csomag neve w3m. A w3m Debian Linux rendszeren így telepíthetõ: # apt-get install w3m
A yum csomagkezelõ felhasználói a w3m RPM változatát így telepíthetik: # yum install w3m
A w3m program szinte egyedülálló abban a tekintetben, hogy webböngészõ létére lapozóprogramként mûködik, vagyis csövekkel szöveget küldhetünk a w3m bemenetére, majd segítségével egyszerûen lapozhatunk a szövegben. A w3m egyes változatai képtáras konzolon még grafikák megjelenítésére is képesek, X Window asztal futtatása nélkül. A két segédprogrammal Word dokumentumokat jeleníthetünk meg terminálokban. Alakítsuk át a kívánt Microsoft Word dokumentumot HTML formátumra a wvWare segítségével, majd a kimenetet vezessük a w3m lapozóprogram bemenetére. Lássuk a teljes utasítást (az utasítás feltételezi, hogy a wvHtml.xml az /usr/lib/wv könyvtárban található, ami nem minden Linux rendszeren igaz): $ wvWare -x /usr/lib/wv/wvHtml.xml document.doc | ¯ w3m -T text/html
52
LAG07.qxd
192
9/11/2006
3:19 PM
Page 192
Linux asztali gépen
Hosszadalmas lenne ezt minden alkalommal beírni, amikor egy Word dokumentumot megtekintünk, ezért készítsünk viewdoc néven egy parancsfájlt, hogy leegyszerûsítsük a feladatot. Jelentkezzünk be gyökérfelhasználóként, és kedvenc szerkesztõnkkel hozzuk létre az alábbi parancsfájlt: #!/bin/bash wvWare -x /usr/lib/wv/wvHtml.xml $1 2>/dev/null | ¯ w3m -T text/html
Vegyük észre a 2>/dev/null kifejezést, amelynek feladata csupán a hibaüzenetek átirányítása a „homályzónába”, hogy ne alkalmatlankodjanak a Word dokumentum megjelenítésekor. Mentsük a parancsfájlt /usr/local/bin/viewdoc néven, és tegyük futtathatóvá: # chmod +x /usr/local/bin/viewdoc
Word dokumentumok megtekintéséhez szöveges konzolon vagy terminálban adjuk ki ezt az utasítást: $ viewdoc document.doc
Az eljárással nemcsak megõrizhetjük a Word dokumentum formátumának egyes elemeit, de a hiperhivatkozások is élnek, és ha rájuk kattintunk, az URL címmel hivatkozott dokumentumot az éppen futó w3m megjelenítõben tekinthetjük meg. A 7.3. ábrán egy a w3m-ben megnyitott Word dokumentumot láthatunk. Figyeljük meg a félkövér címsorokat és a http://www.bootsplash.de/files címre mutató élõ hivatkozást.
52
7.3. ábra Word dokumentum szöveges HTML formátumban
LAG07.qxd
9/11/2006
3:19 PM
Page 193
7. fejezet • A terminál lehetõségeinek kiterjesztése
193
53. fogás • PDF dokumentumok megtekintése terminálokban A PDF dokumentumokat megjeleníthetjük terminálban vagy konzolon is; a grafikus asztal nem feltétel. Ez a fogás hasonlít az elõzõre, amely Word dokumentumokat alakított át HTML-lé. Ebben a fogásban azonban PDF dokumentumokat alakítunk HTML formátumúvá, majd a HTML változatot az elinks szöveges böngészõben, illetve lapozóprogramban tekintjük meg. (Az elõzõ fogásban a w3m szöveges böngészõt választottuk, az elinks azonban ehhez a fogáshoz jobban megfelel, mint a w3m.) A két program segítségével, valamint egy kis parancsfájlvarázslattal a PDF állományok tartalmát megtekinthetjük szöveges terminálban vagy konzolon. Ezúttal PDF dokumentumot alakítunk HTML formátumra, mielõtt az elinks lapozóprogramon átfuttatnánk. Pontosan erre a feladatra készült az árulkodó nevû pdftohtml alkalmazás. A pdftohtml honlapja a http://pdftohtml.sourceforge.net/ címen található. Ha a pdftohtml még nincs Linux terjesztésünkre telepítve, vagy nem található meg a CD-inken, széles körben elérhetõ Debian és RPM alapú terjesztésekhez, amilyen a Fedora, a SUSE és mások. Az elinks programra szintén könnyen rábukkanhatunk, ha még nem telepítettük. Debian Linux rendszeren a pdftohtml és az elinks így telepíthetõ: # apt-get install pdftohtml elinks
A yum csomagkezelõ felhasználói az RPM változatot így telepíthetik: # yum install pdftohtml
A PDF dokumentumokat az alábbi utasítással tekinthetjük meg. (Az utasítás ebben a formában nem tökéletes, mert a kimenet nem tartalmazza a kereteket – a PDF állományok általában tartalmaznak egy keretet a bal oldalon, ahonnan különbözõ oldalakra ugorhatunk). $ pdftohtml -q -noframes -stdout document.pdf | elinks
Ha az oldalszámokat tartalmazó bal oldali keretet is meg szeretnénk jeleníteni, írjuk be az alábbi utasítást: $ pdftohtml -q document.pdf ; elinks document.html
A dokumentumok megjelenítésekor sok gépeléstõl megkíméljük magunkat, ha készítünk egy parancsfájlt. A sudo utasítással vagy gyökér-
53
LAG07.qxd
194
9/11/2006
3:19 PM
Page 194
Linux asztali gépen
felhasználóként bejelentkezve hozzuk létre az /usr/local/bin/viewpdf parancsfájlt, és helyezzük el benne az alábbi sorokat: #!/bin/bash pdftohtml -q $1 ~/temp.html elinks ~/temp.html
A kódban az ideiglenes HTML állományt a kezdõkönyvtárunkba mentjük, de természetesen más könyvtárat is megadhatunk. Mentsük a munkánkat, és alakítsuk az állományt futtathatóvá: $ sudo chmod +x /usr/local/bin/viewpdf
A 7.4. ábrán a viewpdf parancsfájllal megjelenített PDF dokumentumot láthatjuk.
7.4. ábra Az elinks alkalmazásban megjelenített PDF dokumentum
53
LAG07.qxd
9/11/2006
3:19 PM
Page 195
7. fejezet • A terminál lehetõségeinek kiterjesztése
195
54. fogás • Word és PDF állományok megtekintése a Mutt levelezõprogramban Jelenítsük meg az elektronikus levelek mellékleteként kapott Microsoft Word dokumentumokat és PDF állományokat közvetlenül a levelezõprogramban, az üzenet törzsének részeként! A Mutt kivételesen hatékony, terminálban futó levelezõprogram, amely támogatja az IMAP, a POP és számos más protokollt. Testreszabhatóság tekintetében egyetlen grafikus levelezõprogram sem kelhet versenyre vele. Ez az oka, hogy oly sok vérbeli Linux-felhasználó még mindig a Mutt programot választja, a milliárdnyi grafikus felhasználói felülettel rendelkezõ levelezõprogram helyett. Természetesen a csatolt Word és PDF állományok megtekintéséhez a Mutt levelezõprogramból elindíthatunk grafikus felhasználó felülettel rendelkezõ alkalmazásokat is, amilyen az OpenOffice.org vagy az Acrobat Reader, de nem minden felhasználó futtat grafikus asztalt, ezért kapóra jön, ha a dokumentumokat szövegként, közvetlenül az üzenetben tekinthetjük meg. Lássuk, hogyan! Elõször módosítsuk a Mutt beállítófájlját. Az alapértelmezett beállítófájl általában az /etc/Muttrc, érdemes azonban egy saját példányt létrehozni belõle, például az alapértelmezett állomány átmásolásával és módosításával. A Mutt felhasználói beállítófájlját ~/.muttrc vagy ~/.mutt/muttrc néven menthetjük. Módosítsuk személyes Mutt beállítófájlunkat úgy, hogy egy egyedi mailcap állományra mutasson. Például: set mailcap_path="~/mailcap.mutt"
Majd helyezzük el a ~/mailcap.mutt állományban az alábbi két sort: application/pdf; pdftohtml -q -stdout %s | w3m -T text/html; ¯ copiousoutput application/msword; wvWare -x /usr/lib/wv/wvHtml.xml %s ¯ 2>/dev/null | w3m -T text/html; copiousoutput
Mostantól valamennyi PDF és Microsoft Word dokumentum az e-mailek szövegébe ágyazva jelenik meg. Tény, hogy a formátum nem olyan szép, mint a Word és PDF dokumentumok megjelenítésekor [52. és 53. fogás], mert a teljes kimenet a Mutt saját megjelenítõjébe kerül, nem egy igazi lapozóprogramba, amilyen az elinks vagy a w3m. A csatolt állomány tartalmát azonban így is elolvashatjuk, és ha elég érdekesnek találjuk ahhoz, hogy szebb formátumban is megjelenítsük, menthetjük az állományt, majd megnyithatjuk a nekünk tetszõ programmal – akár a korábbi fogásokban bemutatott parancsfájlok egyikével is.
54
LAG07.qxd
9/11/2006
3:19 PM
Page 196