O GNU Midnight Commander (MC) é um gerenciador de arquivos visual, licenciado pelo GNU General Public License (GPL) que está disponível em https://www.gnu.org/licenses/gpl.html. O MC é uma aplicação console que funciona em modo texto e que permite copiar, mover e excluir arquivos e toda a árvore de diretórios. Com MC também podemos procurar por arquivos e executar comandos. O MC também inclui um visualizador interno e um editor. O MC é baseado em interfaces de texto versáteis que permite trabalhar sobre conexões SSH e todos os tipos de Shells remotos.

No desenvolvimento do MC existem três desenvolvedores principais e mais de cem colaboradores. A lista com as últimas versões do MC está disponível em http://www.midnight-commander.org/download. Quem estiver interessado em consultar o código fonte ou até mesmo ajudar no projeto pode se conectar no repositório GIT do projeto através das URLS abaixo, sendo que a segunda é utilizada para aqueles que estão por trás de um firewall (normalmente dentro de alguma empresa):

git clone git://github.com/MidnightCommander/mc.git

git clone https://github.com/MidnightCommander/mc.git

A interface principal do MC possui dois painéis que exibem o sistema de arquivos.

A seleção de arquivos é feita usando as teclas de seta do teclado, a tecla “insert” é usada para selecionar arquivos e as teclas de função (f1, f2, f2, etc) executam operações como renomear arquivos, editar, copiar, etc. As versões recentes do MC já suportam a utilização do mouse. Se iniciarmos o MC e o mouse não estiver disponível podemos tentar forçar a inicialização do MC com suporte a mouse através do comando “mc -x”.

O MC é suportado nos sistemas operacionais GNU/Linux, FreeBSD, Mac OS X, Solaris, HP-UX e outros. No Windows ele pode ser executado sobre o Cygwin.

Instalação

Para instalar o MC nos sistemas operacionais suportados podemos faze-lo de diferentes formas.

No Debian ou no Ubuntu podemos utilizar o comando apt-get, para isso basta executar o comando abaixo:


  $ sudo apt-get install mc

Para os sistemas RHEL, CentOS e Fedora utilizamos os comando abaixo:

# yum install mc

Explorando o MC

Para executar o MC basta digitar "mc" no Prompt de comando.

Ao abrir o MC veremos uma tela como a Figura 1.

Tela de abertura do MC

Figura 1. Tela de abertura do MC.

Nesta figura podemos verificar a presença de dois painéis: um painel localizado na esquerda e outro na direita.

Por padrão, um diretório é mostrado em cada painel, e os diretórios não possuem necessariamente uma posição definida em um certo painel.

Na figura acima podemos verificar que selecionamos o diretório "literature" no painel esquerdo e no painel direito é apresentado o conteúdo deste diretório, que inclui também outro diretório chamado "qcomputer".

Podemos fazer algumas modificações nesta interface, por exemplo, através do atalho “Ctrl-u” poderemos trocar os painéis de posição. O atalho “Alt-i” fará com que o outro painel mostre o mesmo diretório do painel ativo.

Na figura acima também podemos notar a presença de alguns elementos. Na coluna mais à esquerda temos o nome do arquivo ou diretório. Os dois pontos em cima do "qcomputer" no painel direito ou acima do ".svn" no painel esquerdo é um atalho para o diretório pai no diretório atual. Se o nome do arquivo for muito grande para a coluna, existirá um "~" no meio do nome do arquivo como pode ser observado no arquivo "Chico P~ch .pdf". Ao clicar com o mouse em cima do cabeçalho da coluna podemos ordenar os arquivos do diretório por esta coluna, se clicarmos novamente teremos uma ordenação reversa.

Outra observação que pode ser feita através da tela do MC é a diferenciação de cores que ele apresenta. Essa diferença de cores denota o tipo do arquivo. Assim, a cor branca indica um diretório, a cor vermelha indica um documento e o ciano uma imagem.

Na parte inferior da tela do MC temos a presença de alguns comandos como Help, Menu, View, Edit, Copy, Re~ov, Mkdir, Delete, PullDn e Quit. Cada um desses comandos possuem um número associado onde o Help tem o número 1, Menu o número 2, View o número 3 e assim sucessivamente. Cada um desses números denotam um tecla de função. Dessa forma, a tecla F1 é um comando para chamar o Help, F2 o Menu, F3 o View e assim por diante. Os comandos também podem ser acionados diretamente clicando com o mouse diretamente nele, sem a necessidade de utilizarmos as teclas de função.

Por fim, no canto inferior direito de cada painel temos também a quantidade de espaço disponível na partição. Por exemplo, tanto no painel direito quanto no painel esquerdo temos o indicativo que estamos usando apenas 2% (10GB) da capacidade total (523GB) da partição.

Atalhos e Funcionalidades

O MC possui diversos comandos acessíveis através da combinação de teclas.

É importante conhecermos antes de mais nada a convenção usada nos documentos do MC. Quando temos o indicativo "C-x" significa que devemos usar a combinação "Ctrl-x". Quando temos "M-x" significa que devemos usar a combinação "Alt-x".

Quando estamos navegando no mc podemos usar as teclas de seta para navegar entre os diretórios e os arquivos. Para mudar de um painel para o outro basta usarmos a tecla TAB. Para entrar num diretório basta pressionar ENTER. Quando utilizamos a tecla ENTER sobre um arquivo de imagem, esse arquivo será executado em um programa especifico para visualização de imagens, se utilizada num arquivo de vídeo será iniciado um player de vídeo para executa-lo, se utilizada num arquivo de áudio ele será tocado e se for um documento no formato DOC, PDF, TXT, etc, será executado o visualizador apropriado para o arquivo específico. Podemos modificar a ação executada quando pressionado ENTER sobre um arquivo, para isso basta ir em “Edit -> Extension File” no Menu. Se a tecla ENTER for utilizada num arquivo do tipo zip, tar, rar, etc, o MC navegará no arquivo e exibirá os arquivos como se estivéssemos num diretório normal do sistema de arquivos. Também podemos selecionar o arquivo, copiar, mover, renomear, exportar, e muito mais, tudo dentro deste arquivo compactado.

O MC permite que possamos pular diretamente para um arquivo ou diretório pressionando "Alt-s" e digitando o nome do arquivo. Este comando pesquisa o que for digitado, posicionando rapidamente o cursor no item desejado. Para selecionar ou deselecionar o arquivo podemos usar a tecla "0" ou então o próprio mouse. Quando os arquivos estiverem selecionados podemos utilizar as teclas de função vistas anteriormente como “F5” para copiar, “F6” para mover ou “F8” para deletar. No caso da deleção o MC pergunta se o usuário realmente quer deletar o arquivo. As confirmações de deleção, sobrescrita e outras opções podem ser alterada indo em “F9”, “Options” e “Confirmations”. Todas as ações realizadas sobre arquivos no Unix também estão disponibilizadas no MC.

Outras operações disponíveis nos sistemas Unix e que também podem ser utilizados são os comandos “link”, “link simbólico” e “chown”. Para criar um link basta selecionar o arquivo e disparar as teclas “Ctrl-x” e depois a tecla com letra "l", será aberta uma caixa de diálogo para que possamos configurar o link. O link simbólico é acionado pelas tecla “Ctrl-x” seguido pela tecla "s". O chown é utilizado para alterar o criador ou o grupo de um arquivo, para isso basta acionar a tecla “Ctrl-x” seguido por um "o". Uma caixa de diálogo também será apresentada para selecionarmos o criador e o grupo a partir de uma lista de valores válidos. Segue na Figura 2 a tela do chown.

Tela do comando Chown

Figura 2. Tela do comando Chown.

A tecla “+” pode ser usada para especificarmos um padrão de arquivos a serem selecionados. A Figura 3 demonstra a tela apresentada quando utilizamos essa opção.

Tela apresentada quando
utilizamos a tecla +

Figura 3. Tela apresentada quando utilizamos a tecla +.

Se a opção "Using shell patterns" estiver desmarcada as expressões regulares serão usadas. Por padrão os diretórios não são selecionados.

Para realizarmos a cópia de arquivos ou diretórios é muito simples, basta selecionar o arquivo ou diretório que desejamos copiar e apertar a tecla “F5”. Após isso, a janela da Figura 4 será exibida.

Tela para configuração da
cópia de arquivos

Figura 4. Tela para configuração da cópia de arquivos.

Podemos verificar bem embaixo da tela a presença do Shell de comandos do MC. Para visualizar melhor o Shell podemos esconder os painéis através do atalho “Ctrl-o”. Com os painéis escondidos podemos usar a tecla “TAB” para auto completar (AutoComplete).

O Shell do MC também permite utilizarmos alguns atalhos. O atalho “Alt-Enter” em qualquer arquivo faz com que ele apareça diretamente no Shell. O atalho “Ctrl-Shift-Enter” faz a mesma coisa, porém com o caminho completo incluído. O atalho “Ctrl-x t” faz com que todos os arquivos selecionados apareçam no Shell, no entanto se quisermos fazer o mesmo, mas no painel oposto usamos o atalho “Ctrl-x Ctrl-t”. “Ctrl-x p” ou “Ctrl-a” escreve no Shell o caminho corrente e “Ctrl-x Ctrl-p” faz o mesmo porém com o painel oposto.

Uma outra alternativa para arquivos de texto é pressionar “F3” que nos remete a Figura 5.

Tela do comando View
disparado pelo atalho F3

Figura 5. Tela do comando View disparado pelo atalho F3.

Podemos verificar diversos comandos no canto inferior da tela. Nesta tela da View ainda podemos usar o atalho “F7” para fazer uma pesquisa dentro do arquivo. Um atalho interessante de ser utilizado após realizar uma pesquisa com “F7” é o “Ctrl-s” que move a seleção para a próxima ocorrência da pesquisa no texto.

Outro detalhe interessante do View é quando estamos visualizando um documento HTML, PDF ou similares, pois o MC tentará mostrar apenas o texto do documento. Dessa forma, um documento HTML será mostrado todo formatado sem as tags. Se quisermos visualizar em um formato "não processado" utilizamos o comando "Raw" ou utilizamos o atalho “F8”. Para destacar a sintaxe utilizamos o atalho “Ctrl-s”.

Um comando muito importante do MC é o que nos permite acessar a ajuda do MC. Este comando pode ser disparado através do atalho “F1”. A Figura 6 mostra a tela do Help do MC.

Tela do comando View
disparado pelo atalho F3

Figura 6. Tela do Help disparado com atalho F1.

O comando Edit chamado através do atalho “F4” na tela principal do MC nos permite fazer a edição de arquivos. Segue na Figura 7 a imagem da tela do Edit.

Tela do Edit disparado
com atalho F4

Figura 7. Tela do Edit disparado com atalho F4.

Agora na tela do Edit podemos utilizar o atalho “F3” para selecionar um texto e após selecionado ainda podemos utilizar o atalho “F5” para copia-lo ou “F8” para excluir o texto selecionado. Para deselecionar o texto utilizamos o atalho “F3” novamente.

Outros atalhos muito utilizados nos editores de texto e que estão disponível no MC são: a opção "desfazer" que é executada pelo atalho “Ctrl-u”, Refazer executado pelo atalho “Alt-r”, “Ctrl-Ins” para Copiar, “Shift-Del” para Recortar ou “Shift-Ins” para Colar. Também podemos utilizar os atalhos “Alt-n” para mostrar as linhas e “Alt-l” para pular até alguma linha. Para trocar palavras por outras em todo o texto podemos usar o atalho “F4” que exibe a tela mostrada na Figura 8.

Tela do Replace disparado
pelo atalho F4

Figura 8. Tela do Replace disparado pelo atalho F4.

O atalho “F7” mostra uma tela similar, no entanto é utilizada para fazer uma pesquisa em todo o texto.

Para salvar o texto utilizamos “F2” e para salvar como um novo arquivo utilizamos “F12”. Se for um arquivo com a extensão de alguma linguagem como HTML, Java, entre outras, podemos habilitar o destaque de sintaxe através do atalho “Ctrl-s”.

Para visualizar outras opções basta utilizarmos o atalho “F9” e o menu da Figura 9 será exibido.

Outras opções disponíveis
no Edit

Figura 9. Outras opções disponíveis no Edit.

O Editor do MC pode ser executado diretamente pelo Shell através do comando “mcedit”.

O MC possui também um menu na parte superior com mais opções, conforme destacado na Figura 10.

Menu superior do MC

Figura 10. Menu superior do MC.

Todos os menus superiores possuem diversas opções e customizações.

O menu “Right” basicamente possui opções que impactam o painel direito e o “Left” age no painel esquerdo.

A Figura 11 mostra as opções do menu “Right”.

Opções disponíveis no
menu Right

Figura 11. Opções disponíveis no menu Right.

A opção File nos permite diversas opções além de apenas mover e copiar arquivos. Existem diversas opções para manipular arquivos.

Segue na Figura 12 diversas opções disponível no File.

Opções Disponíveis no
menu File

Figura 12. Opções Disponíveis no menu File.

O menu Command possui diversas opções para editar os diversos arquivos de configuração do MC. O menu Command possui algumas opções interessante como o "Directory hotlist" que é essencialmente uma forma de marcador de diretórios comumente acessados. A opção para “Editar arquivo de extensão” (Edit extension file) permite que possamos personalizar o comando que é executado quando visualizamos um tipo de arquivo ou pressione Enter sobre ele.

O menu Options nos permite fazer diversas configurações quanto ao layout do MC, os painéis direito e esquerdo, os arquivos e muito mais.

Cliente FTP

O MC também pode ser utilizado como um cliente de FTP (File Transfer Protocol). O FTP é um protocolo para transferência de arquivos bastante rápido e versátil, sendo uma das mais utilizadas na internet.

O FTP primeiramente tem um cliente que realiza uma conexão TCP para a porta 21 do servidor. Essa conexão, chamada de conexão de controle, permanece aberta ao longo da sessão enquanto temos também uma segunda conexão, chamada conexão de dados, que é estabelecida na porta 20 do servidor e em alguma porta do cliente que será estabelecida no diálogo entre ambos e também será utilizada para a transferência de arquivos. A conexão de controle é utilizada para administração da sessão (comandos, identificação, senhas) entre cliente e servidor.

Após o cliente solicitar uma conexão ao servidor, o servidor responde na conexão de controle. Se tudo estiver correto o cliente e o servidor podem trocar comandos e arquivos. Um comando poderia ser uma solicitação para exibir todos os arquivos presentes num diretório, ou um comando para transferir um arquivo. Tudo isso é feito através de comandos passados através do protocolo. No entanto, utilizando um cliente FTP não precisaremos se preocupar com isso. O MC disponibiliza um poderoso cliente FTP que abrange tudo que é necessário para comunicação e transferência de arquivos entre um cliente e um servidor.

Os painéis Direito e Esquerdo na tela principal do MC não são utilizados apenas para diretório local, podemos utilizar um dos painéis ou ambos para se conectar a um computador remoto utilizando um Link FTP.

Neste caso o MC age como um cliente FTP. Para se conectar a um Serviço FTP, basta pressionar "F9" e FTP Link. O MC perguntará as credenciais do FTP. O formato da credencial será como abaixo:

user:password@maquina_ou_endereco_ip

Segue na Figura 13 a configuração FTP do MC.

Configurações de FTP no
MC

Figura 13. Configurações de FTP no MC.

Se as credenciais estiverem corretas, então o painel exibirá os diretórios do computador remoto. Segue na Figura 13 a conexão com um servidor remoto no painel direito.

Painel direito mostrando
a conexão estabelecida com o computador remoto

Figura 14. Painel direito mostrando a conexão estabelecida com o computador remoto.

Para desconectar do FTP basta pressionar a tecla “F9”, “Command” e “Active VPS Link”. Na lista de diretórios do “Active VPS Link”, veremos o endereço do FTP. Bastas selecionarmos este endereço do FTP remoto e pressionar “Free VFSs now”. Segue na Figura 15 a tela.

Tela para desconectar do
servidor remoto

Figura 15. Tela para desconectar do servidor remoto.

Se a nossa rede está utilizando um servidor de Proxy podemos configurar o MC para usar o Proxy no FTP. Basta pressionar “F9”, “Options”, “Virtual FS” e por fim “Always use ftp proxy” conforme ilustra a Figura 16.

Configurando o Proxy no
Virtual File System Setting

Figura 16. Configurando o Proxy no Virtual File System Setting.

Bibliografia

[1] Site Oficial, disponível em https://www.midnight-commander.org/.

[2] GNU Midnight Commander File Manager, disponível em https://www.gnu.org/software/mc/.