Chi lavora spesso con il terminale di GNU/Linux si trova facilmente a dover scorrere il filesystem alla ricerca di vari file da modificare in qualche modo. In un ambiente grafico esistono ovviamente i file manager come Dolphin e Nautilus, che permettono di controllare i file in modo semplice. In un terminale il metodo più rapido è rappresentato dai comandi ls e cd per leggere il contenuto di una cartella ed entrare in un’altra directory. Ma possono essere molto scomodi, se non si sa già bene dove cercare e soprattutto se si devono vedere molte cartelle. Per questo esiste Midnight Commander , un file manager per terminale basato su Ncurses, che offre un’interfaccia simile a quella di un programma grafico ma all’interno di una normale shell Bash, e che può essere utilizzato anche quando si accede ad un sistema tramite SSH, per esempio quando si sta lavorando con un Raspberry Pi. Il programma ha molte opzioni, che uniscono la comodità di un’interfaccia grafica alla potenza della shell, ottenendo un buon compromesso. Uno dei vantaggi meno conosciuti riguarda la possibilità di copiare e rinominare file usando i caratteri Jolly , quindi è per esempio possibile rinominare tutti i file “*.jpeg” in “*.jpg”.
Quando si apre Midnight Commander con il comando mc
, si ottiene una vista su due schede appaiate: per passare dalla scheda sinistra a quella di destra basta usare il tasto Tab . Ci si può spostare tra i vari file molto intuitivamente usando le frecce ed il tasto Invio . Per accedere ai menu posti in alto basta premere F9 .
In qualsiasi momento è possibile tornare alla shell con Ctrl+O . Si tratta di una funzione molto comoda, perché capita spesso di dover eseguire qualche comando mentre si sta lavorando sui file. Premendo nuovamente Ctrl+O si ritorna al file manager. In questo modo è possibile usare mc semplicemente per spostarsi nel filesystem, continuando poi ad usare la shell. In altre parole, invece di usare il comando cd
basta premere Ctrl+O e scegliere la nuova cartella con il comodo sistema di visualizzazione di MC.
Su MC è possibile selezionare (o deselezionare) dei file semplicemente passandoci sopra con le frecce e premendo il tasto Ins , che normalmente si trova sul tastierino numerico. Ma è anche possibile usare questi comandi:
+: Seleziona file sulla base di un pattern
: Deseleziona file sulla base di un pattern
*: Inverte la selezione attuale (oppure seleziona tutto)
Un pattern può essere qualcosa del tipo ME*.txt
, che per esempio seleziona tutti i file che iniziano con “ME” e finiscono con l’estensione “.txt”.
È anche possibile eseguire ricerche all’interno del filesystem. Basta premere Alt+? per visualizzare la finestra di ricerca. La ricerca può essere molto approfondita: si può specificare la cartella di partenza (se si lascia vuoto verrà usata la cartella attuale), eventuali cartelle da ignorare, e delle opzioni per cercare sia nel nome dei file che nel loro contenuto.
Il file manager offre poi una serie di altri comandi molto utili:
Ctrl+Spazio: Calcola la dimensione della cartella selezionata
Ctrl+x c: Apre una finestra per impostare i permessi di un file (come chmod)
Ctrl+x o: Apre una finestra per impostare il proprietario del file (come chown)
Alt+H: Mostra la cronologia delle ultime cartelle visitate
Alt+h: Mostra la cronologia degli ultimi comandi della shell interna
Ctrl+s: Salta al primo file che corrisponde a un certo pattern
I comandi del tipo Ctrl+x funzionano un po’ come su EMACS: prima si preme Ctrl+x , poi si rilasciano i tasti e si preme la lettera del comando specifico (es: c per impostare i permessi del file).
Un’altra funzionalità utile di MC sono i file system virtuali. In altre parole, MC è in grado di visualizzare come parte del filesystem anche ciò che di fatto non lo è. Per esempio, è possibile entrare in un file ZIP come se fosse una normale cartella. Ed è possibile accedere a server FTP con un semplice comando del tipo cd ftp://utente@server.it/
. Questo rende MC una valida alternativa ad altri client FTP per terminale, visto che la sua interfaccia è molto semplice e permette di lavorare con i file sul server come se si stesse lavorando in locale.