mc (Midnight Commander)

Objet : Midnight Commander- Gestionnaire de fichiers

Niveau requis :

Commentaires : Un gestionnaire de fichiers en mode texte et plein écran

Débutant, à savoir : Utiliser GNU/Linux en ligne de commande, tout commence là !

Suivi :

Création par martinux_qc le 01/08/2013

Testé par .... le ....

Commentaires sur le forum : C'est ici1) N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !

Introduction

Midnight Commander (en abrégé MC) est avant tout un gestionnaire de fichiers, en mode texte et plein écran, très pratique. À ce titre, il permet de se déplacer dans l'arborescence des fichiers et de saisir toutes les commandes habituelles dans un terminal ! (cd, ls, cp, rm, mais aussi chmod, chown, ln,... et plus encore: tar, unzip, gzip,..).

MC c'est aussi un éditeur et visualiseur de fichiers. Tout en étant relativement simple d'utilisation et convivial, il est vraiment complet. Avec cet outil, on obtient, par exemple, la mise en évidence syntaxique des langages de programmation (par exemple le HTML ou les scripts shell).

Il comporte deux panneaux de navigation, un à gauche et l'autre à droite, qui affichent les fichiers présents dans un répertoire donné (par rapport à leur emplacement sur le disque).

En haut de son écran d'accueil, MC affiche une barre de menus déroulants et en bas de l'écran, une barre d'aide comportant les numéros des touches des raccourcis (touche F) de commandes.

Ainsi par exemple, affiché au bas de l'écran, “1 Aide” donne l'indication que l'appui sur la touche F1 permet d'accéder à l'aide en ligne.

Les touches de fonction qui peuvent être utilisées sont inscrites en bas de l'écran.

Toujours en bas de l'écran, mais au-dessus de la barre d'aide, MC offre aussi le mode console permettant à l'utilisateur d'exécuter des commandes comme dans un terminal.

Installation

Pour installer Midnight commander

apt-get install mc

Utilisation de base

Pour ouvrir mc, dans un terminal :

mc

Pour le fermer, la touche F10 ou clic gauche sur Quitter en bas.

Premières commandes débutant :

Le passage du panneau gauche à celui de droite, ou vice et versa, se fait par la touche clavier Tab ⇆

On peut sélectionner un répertoire par :

un clic sur le nom du répertoire dans le tableau puis par la touche F3 ou ↵ Entrée pour faire afficher son contenu.

la ligne de commande, juste au-dessus de l'aide, où :

Soit vous écrivez comme d'habitude :

cd /chemin/du/répertoire

Soit vous utilisez le raccourci mc par Alt + C /chemin/du/répertoire
ce qui vous liste les répertoires et les fichiers contenus dans le répertoire sélectionné.

Pour revenir en arrière, cliquez sur la racine / en haut de la liste.

Pour lire un fichier, vous le sélectionnez avec la souris et vous utilisez encore la touche F3

Idem F3 pour le fermer et revenir à la liste du répertoire.

Si vous voulez l'éditer, en modifier le texte, touche F4 et le fichier s'ouvre par défaut sous l'éditeur de fichier nano. Et oui, ce gestionnaire travaille essentiellement en ligne de commande ! On peut spécifier le répertoire de départ pour chacun des deux panneaux, par exemple en superutilisateur :

mc /etc /root

Ce qui ouvrira d'un côté les fichiers à partir de /etc et de /root dans l'autre.

Voilà pour débuter et goûter à ce merveilleux outil permettant le pilotage complet à vue de tout votre système.
Adoptez la ligne de commande pour le découvrir plus avant...

UTILISATION DIVERSES DES TOUCHES

La touche Inser

On sélectionne (ou désélectionne) des fichiers ou des répertoires avec la touche Inser Les items sélectionnés prennent alors la couleur jaune.

Control+T est un équivalent (Tagge dé-Tagge un élément)

La touche étoile *

La touche * permet de sélectionner l'ensemble des fichiers du répertoire courant, sans sélectionner les répertoires.
Si des fichiers avaient été sélectionnés individuellement, c'est le complément de ce groupe de fichiers qui sera alors sélectionné.

Sélectionnez plusieurs fichiers, et utilisez * pour sélectionner le complément

Testez en appuyant plusieurs fois sur *

Copier un fichier ou un répertoire

Tout d'abord, on peut observer la barre du bas où des fonctions sont numérotées de 1 à 10. Ces numéros sont des rappels des raccourcis clavier obtenus grâce aux touches de fonction correspondantes : F1 à F10

La touche de fonction pour copier un fichier ou un répertoire est donc F5

L'action de copie nécessite de jouer avec les panneaux droite et gauche (voir TP-02). Il faut, avant de lancer la copie proprement dite, se placer d'un côté dans le répertoire de destination, c'est-à-dire là où on veut copier le fichier ou le répertoire, et de l'autre, sur le fichier ou le répertoire à copier. Si on a préalablement sélectionné des fichiers ou des répertoires on se place où on veut dans le répertoire source.

En appuyant sur la touche F5 une boîte de dialogue copie s'ouvre. On peut alors modifier le nom du fichier ou du répertoire à copier en ajoutant son nouveau nom à la suite du chemin de répertoire de copie (champ 'vers :' ou 'to :'). On valide en appuyant sur la touche ↵ Entrée, on annule en appuyant sur la touche Echap

L'accès à l'historique (en cliquant sur [^]) est situé à la droite de chaque zone de saisie et ouvre une liste déroulante. les touches raccourci Alt+PAlt+N permettent d'accéder respectivement à la saisie précédente et suivante (next) dans la liste.

Déplacer un fichier ou un répertoire

Pour déplacer (couper-coller) un fichier ou répertoire, la procédure est la même que pour copier. La touche de fonction est alors F6

Renommer un fichier ou un répertoire

Pour renommer, on appuie sur F5 ou F6 et on entre directement le nouveau nom.

Le premier caractère entré remplacera dans la zone de saisie le nom du chemin vers l'autre panneau.

(voir aussi, plus bas, le paragraphe : Auto-completion dans toutes les boîtes de dialogue de MC)

Supprimer un fichier ou un répertoire

On supprime un fichier ou un répertoire à l'aide de la touche F8 Une boîte de dialogue de confirmation s'affiche, sauf s'il s'agit d'un répertoire vide.
Attention, cette suppression est définitive : Les fichiers supprimés par MC ne vont pas dans la corbeille de votre environnement de bureau.

Créer un répertoire

On crée un nouveau répertoire avec la touche F7

Merci à Martin_mtl Pour ces précisions ! Yop....

Lister les répertoires et les fichiers

MC nous offre des possibilités étendues pour lister les répertoires et fichiers...

Clic sur le panneau Gauche de la fenêtre mc, en haut à ... gauche et dans la liste déroulante, ouvrir Mode de listage et faites des tests...

Pour le mode Définie par l'utilisateur, après name, ajouter :

| owner | group

Et vous aurez le listage complémentaire des propriétaires et des groupes ! Un genre ls -l quoi...

Vous pourriez aussi faire afficher tous les attributs possibles :

name | size | perm | owner | group | mtime

Mais à ce moment là, il vous faudra peut être mettre les panneaux en séparation horizontale par le menu Options - Présentation... - Horizontal

Auto-complétion

MC est pauvre en complétion automatique...

Vous pouvez utiliser le raccourci Alt + ↵ Entrée
pour écrire dans la ligne de commande de mc le répertoire ou le fichier que vous aurez sélectionné au préalable avec la souris.

Pour utiliser la complétion performante habituelle du bash (ou zsh...), un Ctrl + O
vous plonge dans le terminal où vous pouvez poursuivre votre ligne de commande en auto complétion parfaite.
Ctrl + O pour revenir sur mc. cool....

Merci à Martin_mtl et nudub pour ces précisions ! Yop….

Auto-complétion dans toutes les boîtes de dialogue de MC

Tapez la touche Esc avant d'utiliser la touche de complétion Tab ⇆

Configuration manuelle

Midnight Commander - association des extensions de fichiers

La configuration pour l'action à produire se trouve dans le fichier :

~/.mc.bindings

Tu peux y accéder par les raccourcis F9 > Commande > Édition des extensions de fichiers.
Ou simplement en l'éditant avec ton éditeur de texte2) nano

Une règle s'écrit de la forme :

keyword/descNL
Actions pour "Ouvrir" ( touche Entrée ou double clic sur le fichier)
Actions pour "voir" F3
Actions pour "Editer" F4

Pour les commandes à exécuter selon l'action, on peut utiliser plusieurs variables, dont celle qui contient le nom du fichier ( %p ).
Exemples :

%p nom du fichier sans le chemin ( le chemin étant dans pwd).

%s fichiers sélectionnés

%d dossier (pwd, without trailing slash).

...

Keyword peut être :

shell ( regarde l’extension du fichier),

regex (pour utiliser les expressions régulières)

type ( utilise les informations d'un fichier avec la commande “file FICHIER. Commande “man file” pour le manuel de la commande file)

... autres ( cf explications dans le fichier en anglais)

descNL :

le mot clé à reconnaître en fonction du type de “keyword”.

EXEMPLE : Pour reconnaître un fichier texte en ”.txt“ :

Je vais dans le fichier ”~/.mc/bindings“

Je vois un classement avec une partie ”### Documents ###“ qui contient les règles pour les documents du genre pdf, html ..

j'ajoute ma règle:

#ma règle pour les fichiers .txt"
shell/.txt
Open=gedit %p >/dev/null 2>&1 &
Edit=gedit %p >/dev/null 2>&1 &

J'ai choisi “shell” par simplicité. Je pense que “type” peut aller aussi et même permettre de reconnaître tout type de fichiers textes, même sans l'extension .txt.

J'ai précisé l'action pour “Ouvrir” et “éditer”. Du coup pour “voir”, tu peux toujours faire un F3 rapide qui te montre le fichier dans mc même.

gedit3) gedit c'est un éditeur de texte.

>/dev/null 2>&1 &" c'est juste pour rediriger les sorties dans /dev/null, pour ne pas gâcher l'affichage de la console)

& permet de lancer la commande détachée de mc.

EXEMPLE d'origine utilisant “type” au lieu de “shell”: les PDF:

# PDF
type/^PDF
# Open=(see %f &)
#Open=(acroread %f &)
#Open=(ghostview %f &)
View=%view{ascii} pdftotext %f -
Open=gedit >/dev/null 2>&1 &

EXEMPLE d'origine utilisant les expressions régulières:

# html
regex/\.([hH][tT][mM][lL]?)$
Open=(if test -n "" && test -n "$DISPLAY"; then ( file://%d/%p &) 1>&2; else links %f || lynx -force_html %f || ${PAGER:-more} %f; fi) 2>/dev/null
View=%view{ascii} links -dump %f 2>/dev/null || w3m -dump %f 2>/dev/null || lynx -dump -force_html %f

On voit que pour les fichier nommés en (html, Html, hTml,...) :

“Ouvrir” par le navigateur links en vérifiant s'il y a un environnement graphique.

À tester car je ne suis pas sûr là.

“Voir” avec le viewer de mc ( %view ) en précisant l'option {ascii} au viewer ( ça peut être hex, pour voir en hewadecimal etc) ; puis sinon avec “w3m” , et enfin “links” .

J'ai pas testé, mais au lieu de “shell” j'ai vu une ligne utilisant “type” pour les fichiers de mails :

# Mailboxes
type/^ASCII\ mail\ text
Open=%cd %p#mailfs

Ça peut sûrement servir pour les fichiers txt

On peut donc programmer au moins 3 actions ( voir , éditer, ouvrir) pour chaque extension.
Ça semble dire qu'il est possible de faire pas mal de choses.

Voila, ce que j'ai essayé.

Un petit lien qui m'a aidé: http://choix-libres.org/index.php?tag/mc

Conclusion:

Il est donc possible de reconnaître tous types de fichiers en fonction de son nom, ou de son contenu.

On peut configurer les actions Ouvrir, Voir et Editer

Les actions peuvent être simple ( ouvrir le fichier dans un logiciel ), ou complexes ( suite de commandes, comme un script, en utilisant des variables offertes par MC ! )

Il est donc facile de lancer une page web dans un navigateur graphique ou non, lancer des scripts sur des fichiers en une touche, ajouter des dossiers ou musiques au lecteur de musique, monter des Fs...

mcedit

MCedit est l'éditeur utilisé par mc par défaut.
Il est très simple d'utilisation.

Pour utiliser l'éditeur par défaut de votre système Linux,
vous pouvez désactiver l'éditeur interne de MC : mcedit

Options Configuration... cochez Utiliser l'éditeur intégré.

Voir aussi la page :

mcedit - Editeur de texte couplé avec mc.

TRAVAUX PRATIQUES

MC s'utilise parfaitement dans un composite de la souris et de la ligne de commande, voire, il est fait pour cela, entre graphisme et console.

En abuser, c'est tout jouer !

TP-01 Créer un répertoire dans le home user et un fichier .txt dans ce répertoire :

Ouvrir mc à partir de l'ouverture du terminal user sur le répertoire home de l'user :

mc

Pour créer le répertoire test dans le panneau gauche, taper sur F7 de votre clavier et donnez un nom au répertoire à créer :

test-1

Celui-ci est immédiatement créé et sélectionné !

Pour l'ouvrir, taper sur ↵ Entrée
Pour créer un fichier nommé essai-1.txt écrire dans la ligne console en bas la commande :

touch essai-1.txt

dans la liste du panneau où il est apparu, le sélectionner avec la souris et taper F4
Pour ouvrir le fichier vierge essai-1.txt avec l'éditeur en ligne. ( nano par défaut sur stable)

Écrire un texte :

sur ma console debian,
j'écris ton nom...
Liberté.

Enregistrer, quitter l'éditeur, nous nous retrouvons dans mc.

Pour vérifier, sélectionner le fichier essai-01.txt et taper sur la touche F3 de votre clavier.
Le texte nous apparaît alors.
De nouveau F3 pour quitter.

TP-02 Copie d'un fichier dans un répertoire différent :

Suite au TP précédent, créer un second répertoire test-2 de destination tapez sur Tab ⇆ de votre clavier pour sélectionner le panneau droit de mc, puis, comme TP précédent :

Tapez F7 pour la demande de création du répertoire de destination et le nommer test-2.

L'ouvrir en cliquant dessus avec la souris.

Dans le panneau gauche de mc, avec la souris, sélectionnez le fichier essai-1.txt,

Tapez F5 Vérifiez le bon sens de la copie, Validez et Hop... C'est fait !

Cette opération peut tout aussi bien être faite depuis le panneau droit vers le panneau gauche ... Yop !

TP-03 Suppression d'un fichier et déplacement d'un fichier dans un répertoire différent :

Suite au TP précédent, sélectionnez le fichier essai-1.txt copié en double dans le répertoire test-2 tapez sur la touche F8 de votre clavier, confirmez, et le répertoire test-2 est vide !

Dans le panneau gauche, ouvrez de nouveau le répertoire test-1

Sélectionner le fichier essai-1.txt en cliquant dessus avec la souris, ou en utilisant la touche Inser
Puis, dans le panneau droit de mc, avec la souris, ouvrez le répertoire test-2, tapez F6 Vérifiez le bon sens du déplacement,
Validez et Hop... C'est fait... Magique, hein !

Vous pouvez faire de même et renommer le fichier essai-1.txt en esssai-2.txt par exemple dans la ligne de commande qui apparaît avec la touche F6

Idem, vous pouvez faire des sélections de plusieurs fichiers d'un coup en utilisant la touche * et faire d'un coup aussi les mêmes opérations (copie ou déplacement de fichiers d'un répertoire à l'autre).

Toujours pareil, vous pouvez inverser l'ordre des panneaux droite gauche ou gauche droite.

Astuces

Accès au menus

F9 vous permet d'accéder aux menus (Gauche Fichier Commande Options Droite) de la barre supérieure.

Une fois activé entrez simplement la lettre correspondant à celle qui est en jaune dans le nom du menu ou/et des sous-menus

Par exemple :

la touche G ouvrira le menu déroulant Gauche
la touche F ouvrira le menu déroulant Fichier
etc.

Tri colonnes

Cliquez (bascule) avec la souris sur le nom de la colonne (Nom Taille Date etc.)

Informations sur la sélection

Ctrl+X+I (bascule => ré-entrez la combinaison de touches pour revenir à la présentation initiale)

Editeur par défaut du système

F9+O+C et dé-cochez Utiliser l'éditeur intégré
L'éditeur utilisé quand vous demandez à éditer un fichier depuis MC sera celui qui a été sélectionné comme éditeur par défaut du système

Editeur intégré

L'éditeur intégré par defaut est mcedit
F9+O+C et cochez Utiliser l'éditeur intégré

Editeur par défaut = VIM

Méthode 1

Méthode obsolète sous jessie.

On édite son fichier ~/.mc/ini :

nano ~/.mc/ini

Et on ajoute ces lignes :

use_internal_view=0 use_internal_edit=0

MC prendra alors par défaut l'éditeur se trouvant dans la variable $EDITOR

Méthode 2

Pour modifier pour tous les users l'éditeur par défaut nano sous Lenny et choisir vim par exemple nous allons compléter le fichier /etc/bash.bashrc

Ouvrir mc sous root (voir commande : su)

mc /etc

Sélectionner dans la liste avec la souris le fichier

bash.bash.rc

taper sur F4 pour ouvrir ce fichier en mode édition nano.
Ajouter à la fin du texte la ligne :

export EDITOR=vim

Enregistrer et quitter (voir nano)

Nous revoilà dans mc.
Le fermer (clic sur quitter).

Dans un terminal, aller dans le répertoire /etc :

cd /etc

actualiser la source :

. bash.bashrc

Attention ! Dans la commande précédente, un espace entre le point et le nom du fichier.

Il faut redémarrer afin que cela soit effectif pour tout usager autre que root.

Ainsi en ouvrant mc et en éditant un fichier, nous serons bien avec vim !

Si vous désirez changer cet éditeur uniquement pour un user spécifique, modifiez à l'identique le .bashrc dans le home de cet user.

Connexion SSH :

Menu Gauche ou Droite

Sélectionnez LienShell

Entrez user@ip (ou Alt+P plusieurs fois pour sélectionner les différentes adresses précédemment entrées.)

Connexion FTP :

Menu Gauche ou Droite

Sélectionnez Lien FTP

Entrez user@nomServeur (ou Alt+P plusieurs fois pour sélectionner les différentes adresses précédemment entrées.)

Visu du contenu des fichiers .iso .tar .tgz .deb …

Si vous avez installé le paquetage genisoimage sur votre système (de même que pour les fichiers zip, tar, paquetages, etc)
il vous suffira de faire ↵ Entrée sur le nom du fichier ISO pour en visualiser le contenu dans un système de fichiers virtuel.

Voir le chapitre Virtual File System dans le fichier d'aide.

Créer un fichier archive compressé du répertoire

Entrez dans le répertoire à compresser et pressez F2

Le fichier compressé sera créé dans le répertoire parent.

Liens utiles :

Pour débuter :

http://www.misfu.com/utiliser-configurer-midnight-commander-mc-linux.html

Pour comprendre MC plus en profondeur :

http://www.framasoft.net/article1176.html