- p°edchozφ Φlßnek - nßsledujφcφ Φlßnek - obsah -

LinuxovΘ noviny ┌nor 1998

Midnight Commander

Jacek Kopeck², Petr Stan∞k, 9. ·nora 1998

B²valy doby, a v∞t╣ina z nßs si je pamatuje, kdy Unix-like operaΦnφ systΘmy byly znßmy hlavn∞ svou u╛ivatelskou nep°φv∞tivostφ. DOS by na tom byl podobn∞ neb²t tak°ka genißlnφho programu pana Petera Nortona, Norton Commanderu. V tom se nejspφ╣ prvn∞ objevila my╣lenka mφt na jednΘ obrazovce file manageru dv∞ okna s (nejΦast∞ji) r∙zn²mi adresß°i. V∞t╣ina prßce se soubory se p°eci jen odehrßvß "n∞kde" nebo "odn∞kud n∞kam", tak╛e dv∞ okna jsou prßv∞ dost. V╣ichni Nortona znali a pou╛φvali. Mnozφ si na n∞j zvykli. PotΘ se vyrojila spousta r∙zn²ch napodobenin (Volkov Commander, Mana╛er602, DOS Navigator, ...), k tomu se roz╣φ°ily Windows, a taky Linux. Ten se stal populßrnφ ne kv∙li propracovanosti u╛ivatelskΘho rozhranφ, ale kv∙li stabilit∞, standardnosti a kv∙li tomu, ╛e to nenφ produkt spoleΦnosti Microsoft. Ale sprßva soubor∙ z∙stala nep°φv∞tivß do doby, kdy p°i╣el Miguel de Icaza (miguel@roxanne.nuclecu.unam.mx) s Midnight Commanderem a do prost°edφ UNIX∙ vnesl sv∞tlo Nortonovo.

Podrobnosti

Midnight Commander (MC) je, jak u╛ je asi z°ejmΘ, "nortonoidnφ" sprßvce soubor∙. Mß takΘ menu naho°e, pod nφm dva panely s v²pisy adresß°∙, pod nimi tzv. Hintbar, kde se objevujφ r∙znΘ tipy pro zp°φjemn∞nφ/zefektivn∞nφ prßce s MC, dßle pak p°φkazovou °ßdku a pruh "tlaΦφtek". Zobrazenφ menu, tlaΦφtek a Hintbaru se dß vypnout, podobn∞ jako mini-status v panelech. Ov╣em v NC jsem nevid∞l mo╛nost rozd∞lit si obrazovku nejen vertikßln∞, ale i horizontßln∞ (panely nad sebou), a v obou p°φpadech t°eba i asymetricky. To v╣e se dß najφt v menu Options/Layout.

[ MC ]

Dal╣φ roz╣φ°enφ oproti NC je v mo╛nostech zobrazenφ informacφ v panelech. Krom∞ Full a Brief (jen dva sloupce) m≤d∙ je k dispozici je╣t∞ Long, kde se panel roztßhne na ╣φ°ku obrazovky a pokud nenφ aktivnφ, je p°ekryt druh²m. V takto dlouhΘm panelu se pak zobrazφ informace ne nepodobnΘ v²stupu p°φkazu ls -la. Poslednφ mo╛nost zobrazenφ je pak User, tu si u╛ivatel m∙╛e pln∞ nadefinovat. TakΘ mini-status (odd∞lenß dolnφ °ßdka panel∙) se dß nastavit. Jß to nap°φklad pou╛φvßm jen na zobrazenφ jmΘna, kterΘ se n∞kdy do hornφ Φßsti panelu nevejde, proto╛e tam je╣t∞ chci mφt velikost souboru a p°φstupovß prßva. TakovΘ dlouhΘ jmΘno souboru se v p°φpad∞ nedostatku mφsta zobrazφ jako n∞kolik znak∙ ze zaΦßtku, vlnovka, a n∞kolik znak∙ z konce.

Velmi u╛iteΦnß, i kdy╛ n∞kdy mo╛nß nebezpeΦnß, mi p°ipadß mo╛nost kopφrovßnφ nebo p°esouvßnφ soubor∙ na pozadφ (tlaΦφtko Background), zvlß╣t∞ v p°φpad∞ kopφrovßnφ n∞Φeho z Internetu p°es FTP.

Podobn∞ jako NC mß MC vestav∞n² prohlφ╛eΦ a editor soubor∙. Prohlφ╛eΦ je pom∞rn∞ chytr², dokß╛e zobrazit soubory tak, jak jsou, ale i tak, jak by m∞ly vypadat, t°eba .html "pro╛ene" lynxem, sprßvn∞ zformßtuje i manußlovΘ strßnky. M∙╛e se samoz°ejm∞ splΘst, proto╛e soubory rozeznßvß podle jmΘna, nikoli t°eba podle v²stupu programu file. Pak mßte ov╣em stßle mo╛nost stisknout F8, to p°epφnß z filtrovanΘho do p°φmΘho zobrazenφ. Je╣t∞ je tu F9, to pro zm∞nu p°epφnß tzv. formßtovßnφ, tedy to, jestli MC interpretuje n∞kterΘ znakovΘ sekvence pou╛φvanΘ nap°φklad k zv²razn∞nφ textu v manußlov²ch strßnkßch. Prohlφ╛et soubory m∙╛ete po stisku klßvesy F4 i v hexadecimßlnφm m≤du, a tady je zßludn∞ schovanß mo╛nost soubory v hexa takΘ editovat (F2, pozor, jen v raw mode - F8). Tento prohlφ╛eΦ je schopen hledat krom∞ normßlnφho °et∞zce (F7) takΘ regulßrnφ v²razy (F6 nebo / pop°φpad∞ ? pro hledßnφ pozpßtku). PokraΦovßnφ hledßnφ je bu∩ F17 (Shift-F7 nebo Shift-F5), nebo p°φhodnΘ n.

Ovlßdßnφ

MC se ovlßdß podobn∞ jako NC pomocφ kurzorov²ch klßves, funkΦnφch klßves a my╣i. Hlavnφ klßvesovΘ zkratky jsou stejnΘ s NC, tedy nap°. F5 pro kopφrovßnφ a F8 pro mazßnφ soubor∙ (taky jste si v╣imli F8 pro kopφrovßnφ ve Windows 3.11 File Manageru?), dßle t°eba Ctrl-u pro prohozenφ panel∙ apod. Dal╣φ MC-specifickΘ zkratky jsou zjistitelnΘ v menu, podle dokumentace majφ mnoho spoleΦnΘho s programy lynx, less a Emacs.

My╣ je podporovßna na linuxovΘ textovΘ konzoli (gpm) a v xtermu. Pro provßd∞nφ cut-and-paste je p°itom t°eba dr╛et klßvesu Shift.

I kdy╛ jsou funkΦnφ i kurzorovΘ klßvesy v terminßlech docela dob°e definovanΘ, m∙╛e se stßt, ╛e MC nepoznß, co to u╛ivatel maΦkß. Pak je tu mo╛nost zvolit v menu Options polo╛ku Learn Keys a MC s pou╛φvanou klßvesnicφ seznßmit. Pokud ani toto nezabere, funkΦnφ klßvesy se dajφ simulovat sekvencφ Esc-Φφslo, t°eba Esc-5 pro F5.

Virtual Filesystems

U╛ v NC nebo n∞jakΘm jeho pokraΦovateli jsem potkal mo╛nost prochßzenφ obsahem r∙zn²ch archiv∙, jako je arj, rar, zip apod. V Midnight Commanderu krom∞ archφv∙ s p°φponami tar, tar.gz, tgz, tar.bz2, rar, arc, lha a snad i zip m∙╛ete prohlφ╛et obsahy deb a rpm balφk∙. M∞l jsem mo╛nost vyzkou╣et jen rpm, to nabφzφ krom∞ soubor∙ v balφku p°φmo obsa╛en²ch navφc soubor HEADER a adresß° INFO, kde jsou informace o balφku, a takΘ skripty INSTALL a UPGRADE, jejich╛ spu╣t∞nφm balφk nainstalujete nebo upgradujete.

Krom∞ v╣ech t∞chto lokßlnφch virtußlnφch filesystΘm∙ MC je╣t∞ nabφzφ sφ╗ovΘ p°ipojenφ na FTP server nebo na sv∙j vlastnφ MC server. Na FTP se p°ipojφte bu∩ pomocφ

cd ftp://[!][user[:pass]@]\
machine[:port][remote-dir]
nebo pomocφ volby FTP link z menu pro dan² panel. V╣echny polo╛ky mezi ftp:// a poslednφ ] jsou dob°e popsßny v nßpov∞d∞. Zmφn∞n² specißlnφ MC server (mcserv) je asi zam²╣len jen jako nßhrada pro FTP server tam, kde tento nenφ k dispozici. Nenapadß m∞ toti╛ jeho jinΘ vyu╛itφ. V╣iml jsem si jednoho rozdφlu mezi FTP a mcserv. Soubory kopφrovanΘ z FTP se cachujφ v /tmp a p°i jejich p°enosu se v Hintbaru zobrazuje, kolik u╛ bylo p°eneseno, nic takovΘho se ned∞je p°i komunikaci s mcserv.

Hlavnφ v²hodou t∞chto sφ╗ov²ch virtußlnφch filesystΘm∙ je asi to, ╛e nenφ t°eba pou╛φvat r∙znΘ programy (t°eba ftp a mc) pro stejnΘ operace (kopφrovßnφ soubor∙), navφc ve standardnφm ftp nenφ mo╛no rekurzivn∞ p°enß╣et adresß°e.

Poslednφ verze MC navφc je╣t∞ umφ na linuxovΘm ext2fs provΘst undelete: po

cd undel:/dev/<partition>
se zobrazφ seznam Φφsel i-nod∙, kterΘ lze obnovit. Bohu╛el jsou ztraceny p∙vodnφ nßzvy a je tak celkem pracnΘ najφt hledan² smazan² soubor.

MC a X-Window SystΘm

MC lze takΘ s ·sp∞chem pou╛φt p°i prßci v X-Window. Jsou dv∞ mo╛nosti, jak jej spustit. Mo╛nost prvnφ je spustit jeho Tk verzi, zvanou TkMC. Je to celkem zajφmav² projekt, ale dokud nebude TkMC stejn∞ funkΦnφ jako MC, dßm osobn∞ p°ednost jeho textovΘ verzi.

[ TkMC ]

"Textovou verzi" MC lze spustit v rxvt nebo v xtermu. Pak v╣ak hrozφ nefunkΦnost spousty oblφben²ch klßves. ╚ßsteΦn∞ to lze °e╣it pomocφ v²╣e uveden²ch fines. Jinak je zde je╣t∞ mo╛nost upravit pat°iΦnΘ definice klßves pro xterminßl v souborech termcap a terminfo. V t∞chto databßzφch chybφ velkΘ mno╛stvφ funkΦnφch klßves. Takto ne·plnΘ definice xterminßl∙ dokß╛φ znaΦn∞ znep°φjemnit ╛ivot.

Pokud je MC zkompilovßn se SLang knihovnou pro prßci s obrazovkou, co╛ je standardn∞, pak dokonce sprßvn∞ reaguje na zv∞t╣enφ nebo zmen╣enφ okna xtermu, co╛ nenφ podporovßno v knihovn∞ curses. Na╣t∞stφ je knihovna SLang p°φmo v distribuci MC.

Pokud MC nesprßvn∞ detekuje barevn² xterminßl a zobrazφ se Φernobφle, dß se k barv∞ donutit parametrem -c, nebo zapsßnφm va╣eho oblφbenΘho "barevnΘho" terminßlu do ~/.mc.ini, sekce [Colors].

Kompilace a instalace

Pokud instalujete z rpm (nebo snad i deb) balφk∙, nejsou ╛ßdnΘ problΘmy. BezproblΘmovß je i kompilace a instalace z .tar.gz zdrojov²ch balφk∙, hlavn∞ dφky tomu, ╛e MC pou╛φvß GNU autoconf. Zvlß╣t∞ jsem ocenil soubor INSTALL.FAST, ve kterΘm jsou krßtce popsßny v╣echny kroky pro kompilaci a instalaci, vΦetn∞ nejd∙le╛it∞j╣φch parametr∙ skriptu configure.

MC je taky kompilovatelnΘ ve Windows 95/NT, to jsem ale nezkou╣el, mφsto toho jsem pou╛il binßrnφ distribuci.

95/NT verze

AΦkoli je to verze pro Windows, pou╛φvß textovΘ okno, tak╛e je vzhledov∞ shodnß s ostatnφmi. Krßtce popφ╣u jen rozdφly mezi verzemi pro Windows a UNIX, jak jsem si jich v╣iml:

  • win verze (zatφm) nemß vfs,
  • proto╛e ve Windows nejsou v╣echny disky v jednom stromu, je tam pou╛ito F11 a F12 pro p°epnutφ diskov²ch jednotek,
  • Windows verze nepodporuje my╣.

AIX

S velik²m ·sp∞chem u ostravskΘ poboΦky IBM pou╛φvßm MC na firemnφch sφtφch pod AIX-em. Velk² ·div sklφzφ fakt, ╛e je napsßn pod GNU GPL, a tφm hrav∞ vytlaΦφ svΘ komerΦnφ konkurenty. Pokud nevlastnφte p°ekladaΦe, nezoufejte, pro b∞╛n∞ provozovanΘ verze komerΦnφch UNIX∙ najdete na Internetu ji╛ hotovΘ binßrnφ distribuce.

Vady na krßse

I p°es pom∞rn∞ vysokΘ Φφslo verze jsou v Midnight Commanderu chyby a jinΘ vady na krßse. Tedy, nenφ jich mnoho. Prvnφ z t∞ch, kter²ch jsem si v╣iml, se projevφ, kdy╛ mßm rozepsan² n∞jak² p°φkaz a pou╛iji menu. To pak funguje dokud nezmßΦknu klßvesu Enter. Ta mφsto vybrßnφ polo╛ky menu spustφ rozepsan² p°φkaz. Ov╣em kdy╛ se MC potΘ znovu objevφ, nep°ekreslφ se sprßvn∞ a nenφ vid∞t, ╛e jsem po°ßd v menu. Opravφ to a╛ ╣ipky doleva Φi doprava.

Dßle se mi od n∞jakΘ doby (nevφm, od jakΘ verze) ╣patn∞ p°ekresluje rotujφcφ lomφtko v pravΘm hornφm rohu obrazovky, lΘpe °eΦeno ono tam Φasto z∙stane i kdy╛ u╛ nenφ pot°ebnΘ. P°i Ctrl-l se ov╣em obrazovka p°ekreslφ sprßvn∞, to ale nefunguje v menu (viz p°edchozφ chyba).

Hexadecimßlnφ editor a prohlφ╛eΦ takΘ pot°ebujφ dod∞lat, podle m²ch zku╣enostφ jsou tro╣ku "fuzzy".

Stoprocentn∞ nefunguje ani mcserv, kdy╛ jsem jej spustil jako normßlnφ u╛ivatel, ani za nic necht∞l p°ijmout mΘ heslo, jako root mi to jednou fungovalo.

Nßsleduje pßr v∞cφ, kterΘ je mo╛no dod∞lat: postup instalace rpm balφk∙ by mohl b²t zobrazovßn v okn∞ stejn∞ jako t°eba postup kopφrovßnφ; snad by se takΘ dalo n∞jak urychlit naΦφtßnφ obsah∙ adresß°∙ v FTP, kterΘ dost trvß zvlß╣t∞ p°i pomalej╣φm p°ipojenφ, nap°φklad modemem; kopφrovßnφ/p°esouvßnφ soubor∙ na pozadφ by mohlo n∞jak ukazovat, co u╛ mß a co ne.

Dal╣φ v∞c m∙╛e obΦas mßst: pokud si u╛ivatel nechß n∞kde v panelu zobrazovat velikost soubor∙ a ta se nevejde do stanovenΘho sloupce, pak se mφsto v bytech zobrazφ v kilobytech nebo i v megabytech, s p°ipojen²m K nebo M. Pak se nap°φklad velikost 1854672 na prvnφ pohled jevφ °ßdov∞ v∞t╣φ ne╛ 23657K.

Sφ╗ovΘ zdroje

Hlavnφ WWW strßnka o MC je na adrese http://mc.blackdown.org/mc. Odtamtud je takΘ mo╛nost si MC opat°it, a to bu∩ ve zdrojov²ch textech pro kompilaci, nebo v binßrnφch distribucφch pro v∞t╣inu podporovan²ch systΘm∙. V ╚R je MC podle manußlovΘ strßnky na adrese ftp://sunsite.mff.cuni.cz/GNU/mc.

Na ·prav∞ xtermu pro MC a Φe╣tinu pracuje Richard ⌐puta a v²sledek bude dostupn² na serveru LINUX-CZ.

Na adrese majordomo@roxanne.nuclecu.unam.mx je dostupn²ch n∞kolik konferencφ o MC: v╣eobecnß mc, tß╛ v digest form∞ je mc-digest, hlavnφ oznßmenφ se vyskytujφ v mc-announce, nejΦerstv∞j╣φ zßplaty jsou posφlßny do mc-patch (je jich tam pr² 4-8 t²dn∞), a diskuse o v²voji MC probφhß v mc-devel.

Zßv∞r

V r∙zn²ch linuxov²ch konferencφch se obΦas vyskytne dotaz na filemanagery v X-Window. Jednou z prvnφch odpov∞dφ je zpravidla "MC v xtermu". N∞co na tom bude... *


- p°edchozφ Φlßnek - nßsledujφcφ Φlßnek - obsah -