[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home] [volume] [parte]


Capitolo 205.   File manager: Midnight Commander

Il gestore di file, o file manager, è quel tipo di programma che facilita la gestione di file e directory e spesso incorpora anche le funzionalità di una shell. Il programma più importante di questo genere è Midnight Commander, che corrisponde all'eseguibile mc.(1)

Midnight Commander, è un ottimo gestore di file per i terminali a caratteri. Il nome richiama chiaramente la sua origine: si tratta di un programma molto simile al noto Norton Commander (software proprietario nato per il Dos).

Non si può dire che si tratti di un programma essenziale, dal momento che gli strumenti a disposizione dei sistemi Unix comuni, sono più che sufficienti. Tuttavia, uno strumento del genere può facilitare di molto l'attività dell'utente comune o dell'amministratore del sistema.

205.1   Funzionamento

Lo scopo principale di questo programma è quello di permettere la visione e la gestione simultanea di due directory di lavoro.

Figura 205.1. Midnight Commander.

mc-avvio

A questo proposito, si può suddividere lo schermo gestito da Midnight Commander in quattro parti:

  1. la superficie più grande, nella parte centrale, è utilizzata da due pannelli contenenti l'elenco di due directory;

  2. la penultima riga dello schermo viene usata per l'inserimento di comandi di shell;

  3. l'ultima riga in basso mostra i riferimenti ai tasti funzionali;

  4. la prima riga, in alto, è utilizzata per la barra del menù e può restare eventualmente invisibile fino a che il menù non viene richiamato.

Dei due pannelli, uno è quello attivo e di conseguenza è quella la directory corrente. Il pannello attivo è evidenziato dalla presenza della barra di selezione. La maggior parte delle operazioni hanno effetto sul pannello attivo e quando l'operazione richiede un riferimento a una destinazione, si fa riferimento alla directory dell'altro pannello.

La presenza di una riga di comando permette di inserire ed eseguire comandi di shell nel modo solito. Per terminare il funzionamento di Midnight Commander si usa il tasto [F10], oppure, spesso è possibile usare anche il comando exit come si fa con le shell comuni.

205.1.1   Avvio di Midnight Commander

L'eseguibile mc viene avviato normalmente senza alcun argomento. Eventualmente, se si indicano una o due directory, il contenuto di queste viene visualizzato inizialmente:

mc [opzioni] [directory_1 [directory_2]]

Tabella 205.2. Alcune opzioni.

Opzione Descrizione
-b
Forza Midnight Commander a funzionare in modo monocromatico.
-d
Disabilita l'uso del mouse.

205.1.2   Uso del mouse

L'uso del mouse, quando la piattaforma lo consente, è abbastanza intuitivo:

205.1.3   Tastiera

Midnight Commander potrebbe essere utilizzato anche in situazioni non ottimali come lo è invece una console di GNU/Linux. In questi casi, il mouse potrebbe mancare e la tastiera potrebbe non rispondere nel modo consueto, come quando si sta utilizzando una connessione TELNET. Esistono quindi diversi modi per fare le stesse cose e un minimo di nozioni può fare risparmiare molto tempo.

Il programma fornisce dei suggerimenti e una guida interna, in cui viene usata una notazione per le combinazioni di tasti, tipica di Emacs. In pratica, C-a rappresenta la combinazione [Ctrl a], mentre M-a rappresenta la combinazione [Meta a] ([Alt a] negli elaboratori x86).

In particolare, dal momento che non tutte le tastiere hanno un tasto [Meta], oppure alcune connessioni TELNET non ne permettono l'uso, in sua sostituzione si può utilizzare la sequenza [Esc][tasto]. Si tratta quindi di premere [Esc], rilasciarlo e premere subito dopo il tasto successivo.(2)

Anche i tasti funzionali possono creare dei problemi. In tal caso si può utilizzare la combinazione [Meta n], dove il 10 corrisponde allo zero. Per esempio, al posto del tasto [F1] si può utilizzare la combinazione [Meta 1], mentre per [F10] si può usare [Meta 0].

Il tasto [Invio] ha diversi utilizzi a seconda del contesto:

Il funzionamento di altri tasti e combinazioni di tasti viene riassunto nella tabella 205.3. Quello che è importante tenere presente è che non sono sempre disponibili tutti in ogni situazione.

Tabella 205.3. Alcuni tasti e combinazioni di tasti utili per il controllo di Midnight Commander.

Comando Alternativa Descrizione
[Meta Esc] [Esc][Esc] Annulla l'ultima operazione o conclude qualcosa.
[Ctrl l] Ridisegna l'immagine dello schermo o della finestra.
[Ctrl r] Rilegge il contenuto della directory aggiornando il pannello attivo.
[Ctrl s] [Meta s] Inizia la ricerca di un file nel pannello attivo.
[Meta t] Passa alla modalità successiva di visualizzazione del pannello attivo.
[+] Seleziona un gruppo di file, attraverso l'uso di metacaratteri.
[-] [\] Deseleziona un gruppo di file, attraverso l'uso di metacaratteri.
[Tab] [Ctrl i] Seleziona l'altro pannello.
[Ins] [Ctrl t] Marca o toglie la marcatura dal file selezionato.
[freccia su] [Ctrl p] Sposta la barra di selezione in alto di una posizione.
[freccia giù] [Ctrl n] Sposta la barra di selezione in basso di una posizione.
[pagina su] [Meta v] Sposta la barra di selezione in alto di una pagina.
[pagina giù] [Ctrl v] Sposta la barra di selezione in basso di una pagina.
[Meta Invio] [Esc][Invio] Copia il nome del file selezionato nella riga di comando.
[Meta Tab] [Esc][Tab] Tenta di completare il nome iniziato nella riga di comando.
[Ctrl q][x] Inserisce x nella riga di comando evitando interpretazioni diverse.
[Meta p] [Esc][p] Recupera il comando precedente accumulato nello storico dei comandi.
[Meta n] [Esc][n] Recupera il comando successivo accumulato nello storico dei comandi.
[freccia sinistra] [Ctrl b] Sposta il cursore a sinistra in una riga di comando qualunque.
[freccia destra] [Ctrl f] Sposta il cursore a destra in una riga di comando qualunque.
[Backspace] [Ctrl h] Cancella il carattere precedente.
[Canc] [Ctrl d] Cancella il carattere successivo.

Utilizzando Midnight Commander, occorre fare attenzione all'uso del tasto [Esc]. Dal momento che serve a generare delle combinazioni (o meglio delle sequenze), come nel caso in cui si vogliono emulare i tasti funzionali, la semplice pressione di [Esc] non genera nulla, fino a che non si preme un altro tasto. Se la sequenza che si genera, [Esc][tasto], non è conosciuta da Midnight Commander, ciò che si ottiene è l'equivalente di [Meta Esc], cioè l'annullamento o la conclusione di qualcosa.

205.1.4   Menù

Il funzionamento della barra del menù è abbastanza intuitivo. In particolare va ricordato che, per attivarlo quando non si dispone del mouse, si usa il tasto [F9].

A fianco delle voci contenute nelle tendine dei menù sono annotate le combinazioni della tastiera che possono essere usate come scorciatoia per la funzione relativa.

205.2   Configurazione

Midnight Commander può essere configurato a vari livelli. Il più semplice è la scelta del modo in cui devono essere usati i pannelli. Per questo si trovano i menù {Left} e {Right}, identici, ma riferiti ai pannelli rispettivi.

A livello globale, è possibile definire la configurazione di Midnight Commander attraverso il menù {Options}. In particolare è da ricordare che occorre salvare la configurazione, se si vuole che sia mantenuta. Il salvataggio di questa genera il file ~/.mc/ini.

205.2.1   Pannelli

La figura 205.4 mostra il menù {Left}, attraverso il quale configurare il comportamento del pannello sinistro. Le stesse voci appaiono nel menù {Right}.

Figura 205.4. Il menù {Left} di Midnight Commander.

mc-left

La funzione {Listing mode} è molto utile per configurare l'aspetto dell'elenco di file del pannello sinistro e destro. La figura 205.5 mostra un esempio della maschera che viene ottenuta attraverso la sua selezione.

Figura 205.5. La maschera a cui si accede attraverso la voce {Listing mode}.

mc-listing-mode

È probabile che sia preferibile attivare la modalità {Full file list} (come si vede nell'esempio), oppure chi è più esperto può trovare utile la possibilità di configurare gli elementi da visualizzare nell'elenco, attraverso la voce {User defined}. In questo caso, occorre compilare il campo successivo, con l'indicazione delle colonne da includere. La prima parola chiave serve a stabilire la dimensione dell'elenco:

Le parole successive rappresentano le colonne, separate da una virgola:

È possibile attivare anche la voce {user Mini status} per visualizzare sul fondo della finestra altre caratteristiche del file evidenziato dal cursore. Gli elementi da visualizzare sono indicati attraverso una sintassi analoga a quanto appena descritto sopra.

205.2.2   Menù delle opzioni

Il menù opzioni ({Options}) è quello che permette di configurare il funzionamento di Midnight Commander in modo globale, indipendentemente dalle caratteristiche di una finestra particolare. La funzione più importante è appunto {Configuration}, anche se in realtà, tutte le altre voci del menù riguardano la configurazione di questo programma.

La configurazione di Midnight Commander, sia per ciò che riguarda questo menù, sia per quanto accessibile attraverso i menù {Left} e {Right}, viene memorizzata nel file ~/.mc/ini. Per ottenere questo, occorre però che tale configurazione sia salvata attraverso la funzione {Save setup}, alla fine del menù delle opzioni.

La funzione {Configuration} permette di modificare alcuni comportamenti importanti di Midnight Commander. Per esempio è possibile includere o escludere i file «nascosti» e quelli che rappresentano le copie di sicurezza di versioni precedenti. Inoltre, le versioni recenti di Midnight Commander permettono di utilizzare un programma interno per la gestione dei file di testo. Questo, a differenza dei comuni programmi del genere che funzionano su uno schermo a celle di caratteri, si avvicina molto ai programmi simili utilizzati in ambiente Dos. La figura 205.6 mostra un esempio della maschera di configurazione generale delle opzioni.

Figura 205.6. Menù opzioni: configurazione.

mc-configure-options

205.3   File system virtuali

Uno dei vantaggi principali nell'utilizzo di questo programma sta nella facilità con cui è possibile accedere al contenuto di file compressi o a dei servizi FTP. È sufficiente premere [Invio] su un archivio, anche compresso, per accedere al suo contenuto (in sola lettura). Anche i pacchetti RPM (Red Hat) e Debian sono accessibili facilmente, purché siano presenti i programmi rpm e dpkg.

Figura 205.7. Midnight Commander permette di accedere facilmente anche al contenuto di archivi compressi.

mc-zip

Figura 205.8. Gli archivi RPM vengono gestiti come archivi compressi.

mc-rpm

Figura 205.9. Gli archivi Debian vengono gestiti come archivi compressi.

mc-deb

Nello stesso modo è possibile accedere a un servizio FTP, come se si trattasse di un file system normale.

Queste funzionalità sono disponibili tramite il menù, ma si può usare una forma particolare nella riga di comando. Nel caso di FTP, si usa la forma seguente:

ftp://[utente@]nodo[directory_remota]

Per esempio, per accedere alla directory /pub/ del servizio FTP anonimo presso dinkel.brot.dg, si può utilizzare il comando seguente:

cd ftp://dinkel.brot.dg/pub[Invio]

Midnight Commander, così come molti altri programmi clienti FTP, consente anche di inserire il nominativo-utente assieme alla parola d'ordine. Tuttavia, questa è sempre una pratica sconsigliabile, perché potrebbe risultare visibile nella riga di comando memorizzata nel sistema di gestione dei processi.

Figura 205.10. Midnight Commander incorpora le funzionalità di un cliente FTP.

mc-ftp

Midnight Commander considera anche altri file system virtuali, come si vede nella documentazione originale: la pagina di manuale mc(1).

205.4   Mcedit: programma integrato per la gestione dei file di testo

Un altro degli aspetti importanti di Midnight Commander è il sistema integrato di gestione dei file di testo, Mcedit, (4) giunto ormai a un ottimo livello di maturazione. Infatti, uno dei problemi maggiori che incontra chi si avvicina a GNU/Linux, o a un altro sistema Unix, è la difficoltà nell'uso dei programmi tradizionali per la creazione e la modifica di file di testo. Questi richiedono normalmente la conoscenza di comandi espressi attraverso combinazioni di tasti, senza avere a disposizione un menù e senza poter usare i tasti funzionali.

Mcedit risolve parzialmente questo problema, offrendo un funzionamento intuitivo per l'utente che proviene dall'esperienza Dos, quando si ha a disposizione un terminale adeguatamente raffinato, come una console virtuale di GNU/Linux.

Mcedit può funzionare anche se si utilizza un terminale poco dotato, ma in tal caso si ritorna a dover usare le solite combinazioni di tasti che annoiano alcuni utenti.

205.4.1   Avvio

L'avvio del sistema di gestione dei file di testo si ottiene semplicemente puntando il file desiderato con la barra di selezione di Midnight Commander e premendo il tasto [F4], oppure avviando il binario di Midnight Commander utilizzando il nome mcedit (si tratta normalmente di un collegamento simbolico a mc).

Ci si inserisce in questo modo in un ambiente differente (anche se uniforme) per la modifica del file. In basso si notano alcuni riferimenti a tasti funzionali:

mc-f1-f10

In alto si vede una riga di stato, dalla quale si conosce il nome del file aperto, lo stato del file, la colonna su cui si trova il cursore, il numero della prima riga che appare sullo schermo, il numero della riga relativa allo schermo, la riga assoluta in cui si trova il cursore, il numero totale di righe del file e altre informazioni, come si vede nella figura 205.12.

Figura 205.12. La riga di stato del sistema di gestione dei file di testo di Midnight Commander.

riga di stato

Premendo il tasto [F9] (o una delle sue varianti), oppure [Meta f] (in quanto la «f» è l'iniziale di «file»), la riga di stato viene sostituita da un menù a tendina che si può utilizzare in modo semplice e intuitivo.

205.4.2   Configurazione

La configurazione del sistema di gestione dei file di testo è accessibile attraverso il menù {Options}, in particolare merita attenzione la funzione {General}, come si vede in figura 205.13.

Figura 205.13. La maschera di configurazione generale.

mcedit-options-configuration

Il significato delle varie opzioni dovrebbe essere evidente. In particolare, nel seguito viene mostrato l'uso della tastiera secondo l'emulazione «intuitiva».

Merita un po' di attenzione la gestione del carattere di tabulazione. Dal momento che lo standard generale prevede che la tabulazione dei file di testo sia ogni otto colonne, è opportuno che questa dimensione non venga alterata, mentre diviene conveniente l'opzione {fake half tab}. Questa permette di utilizzare il tasto [Tab] per inserire spaziature ridotte (di quattro caratteri) che poi vengono tradotte in pratica con tanti caratteri spazio (<SP>) quanti servono. Se però l'utente usa più volte la tabulazione, dove possibile viene utilizzato il carattere di tabulazione orizzontale (<HT>).

205.4.3   Comandi comuni

Mcedit è «intuitivo», in quanto si può usare senza dovere ricordare delle combinazioni di tasti. Quando serve qualcosa di più basta chiamare il menù e cercare tra le varie voci disponibili. Tuttavia, quando si utilizza attraverso un terminale non sufficientemente raffinato, si rischia di perdere l'uso di alcuni tasti, per cui si deve ripiegare sul solito sistema di combinazioni. La tabella 205.14 mostra l'elenco di alcuni comandi utili per lo spostamento del cursore e per la modifica del testo.

Tabella 205.14. Alcuni comandi per la navigazione e la modifica del testo.

Comando Alternativa Descrizione
[Meta Esc] [Esc][Esc] Termina l'attività sul file.
Caratteri normali Inseriscono il testo corrispondente.
[Tab] [Ctrl i] A seconda della configurazione, inserisce una tabulazione.
Tasti freccia Spostano il cursore nella direzione della freccia.
Tasti pagina Spostano il cursore di una schermata in avanti o indietro.
[Ctrl pagina-su] Sposta il cursore all'inizio del file.
[Ctrl pagina-giù] Sposta il cursore alla fine del file.
[Backspace] [Ctrl h] Cancella il carattere a sinistra del cursore.
[Canc] [Ctrl d] Cancella il carattere in corrispondenza del cursore.
[Invio] [Ctrl j] Inserisce un'interruzione di riga.
[Ctrl y] Elimina la riga su cui si trova il cursore.
[Ctrl l] Ridisegna lo schermo.
[Ins] Scambia tra sovrascrittura e inserimento del testo digitato.
[Ctrl u] Annulla l'ultimo comando (compresa la singola digitazione).

205.4.4   Blocchi di testo e le funzionalità di taglia-copia-incolla

I blocchi di testo possono essere evidenziati, copiati, tagliati e incollati nello stesso modo utilizzato comunemente dai programmi fatti per il sistema Dos. Questo significa che tenendo premuto il tasto [Maiuscole] e utilizzando i tasti freccia, si ottiene la selezione del testo con trascinamento, fino a quando si rilascia nuovamente il tasto [Maiuscole]; la combinazione [Ctrl Ins] copia la selezione corrente, deselezionandola; la combinazione [Maiuscole Ins] incolla la selezione copiata precedentemente, nella posizione del cursore.

Tutto questo però, vale solo se si sta usando una console virtuale GNU/Linux; se si sta lavorando da un terminale differente, o una connessione remota, si usa il tasto [F3] (con le varianti eventuali dei tasti funzionali, già descritte per Midnight Commander) per segnalare l'inizio di una zona da marcare, quindi si sposta il cursore e infine si preme nuovamente [F3] per concludere la zona evidenziata.

In entrambi i casi, si potrebbe evitare la copia della zona selezionata, premendo semplicemente il tasto [F5] per incollare nella posizione del cursore, senza nemmeno perdere la selezione.

Per ritagliare l'area selezionata, si utilizza la combinazione [Maiuscole Canc]; poi si può incollare quanto ritagliato nel solito modo: [Maiuscole Ins].

Ciò che viene ritagliato, o copiato, viene inserito in un file temporaneo nella directory personale dell'utente: ~/.mc/cedit/cooledit.clip. L'estensione del file suggerisce che si tratti di una clipboard. Questo meccanismo è molto importante, in quanto permette di incollare testo copiato o ritagliato con un'altra sessione di lavoro di Mcedit (attraverso Midnight Commander), purché appartenga allo stesso utente.

Mcedit consente anche l'utilizzo del mouse per delimitare un blocco di testo, anche quando si utilizza il programma all'interno di una finestra di terminale, nell'ambito del sistema grafico X.

Tabella 205.15. Taglia-copia-incolla.

Comando Alternativa Descrizione
[Maiuscole frecce] [F3] ... [F3] Delimita un blocco di testo.
[F5] Incolla una copia del testo evidenziato.
[F6] Sposta il blocco evidenziato in corrispondenza del cursore.
[F8] Cancella il blocco evidenziato.
[Ctrl Ins] Copia la zona evidenziata nell'area temporanea, togliendo l'evidenziamento.
[Maiuscole Canc] Ritaglia la zona evidenziata inserendola nell'area temporanea.
[Maiuscole Ins] Incolla il contenuto dell'area temporanea nella posizione del cursore.

Infine, per eliminare un blocco di testo evidenziato, senza inserirlo nell'area temporanea, basta usare il tasto [F8].

205.4.5   Composizione del testo

Attraverso la configurazione di Mcedit, è possibile stabilire se si intende fare in modo che il testo sia mandato a capo automaticamente o meno. Per questo è anche necessario fissare la dimensione massima di colonne del testo.

In generale, dovrebbe essere conveniente evitare che Mcedit provveda da solo a dividere le righe mentre si digita il testo. Quando si vuole riallineare un paragrafo, cioè un blocco di righe di testo preceduto e seguito da una riga vuota, basta usare il comando [Meta p], oppure si può richiamare la voce corrispondente del menù {Edit}.

205.4.6   Macro

Attraverso la combinazione [Ctrl r], si inizia e si conclude la registrazione della pressione di una sequenza di tasti. Al termine viene richiesto di indicare un carattere; successivamente, per riprodurre quella sequenza, è sufficiente utilizzare la sequenza [Meta a][x], dove l'ultimo tasto è appunto il carattere specificato in precedenza per memorizzare la macro.

205.4.7   Ricerche e sostituzioni

Dal menù {Search/Replace} si accede alle funzionalità di ricerca e di sostituzione del testo. La voce {Search}, a cui si accede facilmente anche con il tasto [F7], apre un riquadro come quello che si vede nella figura 205.16.

Figura 205.16. La maschera per la ricerca.

mcedit-search

L'utilizzo delle caselle di selezione è abbastanza intuitivo. In particolare, è possibile utilizzare le espressioni regolari; inoltre, se funziona il mouse, è possibile selezionare il simbolo [^] con il quale si ottiene lo storico delle stringhe di ricerca già inserite.

La ricerca con sostituzione è un po' più complessa; in tal caso, la stringa di sostituzione può essere costante, o contenere anche un espressione da trattare come se fosse inserita in una funzione printf().

Purtroppo, tale funzionalità, pur essendo documentata e anche molto importante, potrebbe non essere operativa. Pertanto, se l'esempio che viene proposto non funziona, dipende dalla propria edizione di Mcedit.

Nella figura 205.17 si mostra un esempio in cui si cerca la stringa «rosso naso» e la si vuole sostituire con «naso rosso». Guardando la figura, si osservi il fatto che nell'espressione regolare di ricerca sono state delimitate le parole «naso» e «rosso» con delle parentesi tonde; a queste parole, ovvero alla stringa corrispondente secondo l'espressione regolare, si fa riferimento attraverso le metavariabili %s, della funzione printf(); tuttavia, si rende necessaria l'inversione nell'ordine di questi due parametri.

Figura 205.17. La maschera per la ricerca e la sostituzione, con un esempio.

mcedit-replace

In alternativa all'esempio mostrato, in cui si fa uso di un'espressione regolare per la ricerca (ammesso che la sostituzione funzioni come dovrebbe), si potrebbe usare un'espressione adatta alla funzione C scanf(). In tal caso, l'opzione {Regular expression} andrebbe disattivata.

205.4.8   Collegamento «mcedit» e variabile di ambiente «EDITOR»

Si è accennato al fatto che si può ottenere immediatamente l'avvio di Mcedit avviando Midnight Commander con il nome mcedit. In tal caso sono valide la maggior parte delle opzioni che si potrebbero dare a mc, con la differenza che si può aggiungere l'indicazione di un nome di file nella stessa riga di comando, così da poter creare o accedere immediatamente a un file di testo.

mcedit [opzioni] [file]

Se si apprezzano le caratteristiche di Mcedit, la presenza di questo collegamento permette di utilizzarlo anche al di fuori del funzionamento normale di Midnight Commander e di indicarlo come programma predefinito per la creazione e la modifica di file di testo.

205.4.9   Limiti di memoria

Di norma, Mcedit non è in grado di gestire file con una dimensione superiore a 64 Mibyte. Raramente può succedere di avere la necessità di gestire file di testo di dimensioni maggiori; in quei casi è necessario modificare uno o due valori nel file edit/edit.h dei sorgenti di Midnight Commander:

...
#define MAXBUFF 2048 /* il valore originale è 1024 */
...
...
#define START_STACK_SIZE 64 /* il valore originale è 32 */
...

Nel modo mostrato si raddoppiano i limiti, ma si osservi che il valore START_STACK_SIZE riguardante la pila per l'annullamento dei comandi, non deve essere ampliato necessariamente.

Eventualmente, per la ricompilazione di un pacchetto Debian, si veda il capitolo 59.

205.5   Altri programmi affini


1) GNU Midnight Commander   GNU GPL

2) Data la funzione particolare che ha il tasto [Esc], come sostituto del tasto [Meta], si può comprendere il motivo per il quale, spesso, per annullare un'operazione occorre premere due volte il tasto [Esc].

3) Le finestre di dialogo contengono diversi tipi di elementi e la conferma o l'annullamento si ottengono selezionando una voce che riproduce una sorta di tasto virtuale.

4) GNU Midnight Commander   GNU GPL

5) deco   GNU GPL


Appunti di informatica libera 2008 --- Copyright © 2000-2008 Daniele Giacomini -- <appunti2 (ad) gmail·com>


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome file_manager_midnight_160_commander.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home]

Valid ISO-HTML!

CSS validator!

Gjlg Metamotore e Web Directory