# Midnight Commander

GNU Midnight Commander (também conhecido como mc, o comando usado para executá-lo) é um gerenciador de arquivos free software ortodoxo cross-platform e um clone do Norton Commander. Foi iniciado por Miguel de Icaza em 1994.
Midnight Commander está licenciado sob os termos da GNU General Public License.

## Design

Midnight Commander é um aplicativo de linha de comando com uma interface modo texto. A interface principal consiste de dois painéis que mostram o sistema de arquivos. A seleção de arquivo é feita pelos botões direcionais do teclado, a combinação dos botões <Shift>+<Espaço> é usada para selecionar mais de um arquivo e os botões de função (F1-F12) realizam operações de arquivos tais como renomear, editar e copiar arquivos. Para alternar entre os painéis, usa-se o botão <Tab>. Versões posteriores do Midnight Commander adicionalmente possuem suporte a mouse. Tais versões fazem uso do GPM e de emuladores de terminal X (tais como GNOME Terminal ou xterm) que suportam uso do mouse. Quando rodando dentro de um terminal X, estas versões podem atualizar o nome da janela na qual o Midnight Commander está rodando (se habilitado pelo emulador de terminal).
Entre as capacidades do Midnight Commander se inclui a habilidade de visualização do conteúdo de pacotes RPM; possui também função para FTP ou FISH. Midnight Commander também inclui um editor chamado mcedit, que pode ser executado como um programa individual ou como uma função interna do Midnight Commander usando a tecla F4. mcedit's inclui coloração de sintaxe para muitas linguagens, macros, trechos de código, integração simples com ferramentas externas, indentação automática, suporte a mouse, um clipboard e habilidade de trabalhar tanto em modo ASCII quanto hex. O usuário também tem a opção de substituir o mcedit com o editor de sua preferência na primeira execução do programa (que procurará os editores disponíveis no sistema no momento), tendo a opção de modificar posteriormente digitando no terminal:
Midnight Commander também pode renomear grupos de arquivos, diferente de um grande número de gerenciadores de arquivos, que podem renomear apenas um de cada vez. Isso é conveniente para manipular grandes quantidades de arquivos, isto é, para colocá-los conforme um nome conveniente. Midnight Commander também pode mover arquivos para um diretório diferente ao mesmo tempo em que os renomeia. Basta o usuário especificar o nome de arquivo original e o resultante usando caracteres curingas. Isto faz o poder das expressões regulares disponível para renomear arquivos, com uma conveniente interface de usuário. Adicionalmente, o usuário pode selecionar usando ou não "padrões shell" ou "globais" (agrupamento automático de curingas). Tudo isso está disponível ao se usar o menu de seleção Arquivo > Renomear/Mover. (A tecla F1 dispõe de uma breve explanação das opções, incluindo exemplos de como usar caracteres curingas.)
Midnight Commander é baseado em interfaces de texto versáteis, tais como a Ncurses ou S-Lang, as quais permitem que o mc funcione em um console comum, dentro de um terminal X Window, sobre conexões SSH, sobre uma interface RS-232 (para aparelhos "embedded") e todo tipo de shells remotos.

## Suporte Unicode

Suporte nativo para locale UTF-8 para Unicode foi adicionado em 2009. Desde a versão 4.7.0, mc possui suporte Unicode.