====== mc (Midnight Commander)======
* Objet : Midnight Commander- Gestionnaire de fichiers
* Niveau requis :{{tag>débutant avisé}}
* Commentaires : // Un gestionnaire de fichiers en mode texte et plein écran //
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-)
* Suivi : {{tag>à-tester}}
* Création par [[user>martinux_qc]] le 01/08/2013
* Testé par .... le ....
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=1590 |C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
{{/file-R4f620a6f03a610bd9c99c30f8378905d.png}}
===== 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 [[doc:editeurs:nano | 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 [[:doc:systeme: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 [[doc:systeme:commandes:le_debianiste_qui_papillonne | 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 (**T**agge dé-**T**agge 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 **p**récédente et suivante (**n**ext) 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 texte(([[:doc:editeurs:nano | 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.
* gedit(([[:doc:environnements:gnome: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 :
* [[:doc:systeme:mcedit | 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 !// LOL
==== 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. ([[doc:editeurs:nano | 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 **G**auche \\
la touche f ouvrira le menu déroulant **F**ichier \\
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 : [[:doc:systeme: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 [[:doc:editeurs: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