Midnight Commander
-=-=-=-=-=-=-=-=-=-=
user, n.: The word computer professionals use when they mean
"idiot."
-- Dave Barry, "Claw Your Way to the Top"
[I always thought "computer professional" was the phrase hackers
used when they meant "idiot." Ed.]
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.
Screenshot
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.
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.
"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á \emph{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...
výheň