Il y a quelques mois, je me suis trouvé plongé dans un milieu où il ne fait pas bon d'utiliser une souris pour copier, déplacer, créer, modifier des fichiers. Un monde où les outils disponible en ligne de commande sont puissants et nombreux. Un peu poussé, un peu tiré, j'ai appris avec plaisir les bases du command-fu. Bien sur cette discipline n'a pas de sens sous MSWindows (est-ce qu'un chirurgien utilise un marteau ?(1)) et heureusement, j'ai changé d'OS.
Il peut sembler difficile et pénible de changer de système d'exploitation et de modifier toute ses habitudes. Dans un premier temps c'est déstabilisant en effet. Mais on voit vite apparaitre des avantages dont on ne rêvait même pas (on s'habitue vite au chocolat sans moutarde)...
Perks !
Du point de vue manichéen geekeux c'est BIEN (par opposition au MAL) ; on a plus de choix (notamment pour le bureau qui peut se décliné dans de nombreuses variantes) ; beaucoup moins de souci à se faire du point de vue de la sécurité ; une facilité déconcertante pour l'installation/la suppression des programmes (on lance le gestionnaire de paquet, on coche, on valide !)
Et bien sur, le command-fu : l'art de combiner les frappes, sur le clavier, avec intelligence. Pour faire en une ligne ce qu'on ferait en une bonne dizaine (centaine ?) de clic. Voici quelques exemples :
Sauvegarder l'arborescence d'un dossier (vous voulez partager la liste des mp3 de votre dossier musique ?) dans un fichier.
ls -R >arborescence.txt
Cette commande est très simple : "ls" sert à lister les fichiers elle est ici utilisée avec l'option "-R" qui indique que la recherche doit être récursive (quand on trouve un répertoire, on liste les fichiers présents dans celui ci). La sortie (l'endroit où "va" le résultat) de cette commande est redirigée grâce au symbole ">" vers le fichier "arborescence.txt"
La même chose mais avec un filtre (vous voulez partager la liste de vos fichiers mp3 mais ils sont mélangés avec d'autres type de fichiers ?)
ls -R | grep .mp3 >mp3_files.txt
On reconnait le "ls -R" qui liste les fichiers récursivement. On reconnait aussi la redirection de la sortie de la commande ">mp3_files.txt". Mais il y a une partie inconnue au centre. Le caractère "|" (prononcer pipe (à l'anglaise)) indique que le résultat (en réalité pas le résultat, mais la sortie) de la première commande est passé à la seconde commande. Ici, l'arborescence délivrée par "ls -R" est utilisée par la commande "grep .mp3" qui agit comme un filtre en ne gardant que les éléments qui contiennent ".mp3".
Un non initié utiliserai sans doute deux étapes : "ls -R >temp" et "grep .mp3 temp >mp3_files.txt" en créant au passage un fichier "temp"
Déplacer des fichiers dans un répertoire créé à la volé.
mkdir texts && mv *.txt texts/
la première commande crée un répertoire (MaKe DIRectory) nommé "texts". Si la commande n'échoue pas (l'échec peut être du à la présence d'un fichier appelé "texts" par exemple) tout les fichiers d'extension txt (c'est le sens de "*.txt") sont déplacés (MoVe) vers le répertoire "texts". La condition de réussite de la première commande est réalisée par "&&".
Les exemples de command-fu qui font gagner parfois des secondes parfois des minutes peuvent s'énumérer sur de nombreuses lignes. Ils ne sont souvent utile que pour des geeks et/ou des codeurs, je ne parlerais pas de ceux-là. Je tiens encore à rassurer les accros de l'interface graphique qui ne se sente pas capable de naviguer avec w3m (je ne fait pas ça tout les jours), d'écrire avec vim (je fais ça tout les jours), de télécharger avec wget (ça m'arrive) ou de lire ses mails avec mail (ça aussi). Il existe de très bon logiciels avec une interface graphique fantastique. Notamment Dolphin qui ridiculise l'explorateur de MSWindows (en même temps...), Okular qui remplace AcrobatReader en ajoutant de bonnes idées (ajout de notes, copie de texte, surlignage...) à la lecture des PDF, Digikam qui rassemble la gestion d'une bibliothèque d'image et les fonctions d'édition nécessaires dans un même logiciel...
The list goes on !
Évidemment, Linux n'est pas parfait (2) et souffre de quelques faiblesses (certaines imputtable à sa Liberté qui le prive du soutien des fabricants de hardware). Mais, pour ceux qui ont un peu de temps, un soupçon de motivation et idéalement un ami dans "le milieu"(3), ça vaut le coup !
(1) If the only tool you have is a hammer, then everything looks like a nail...
(2) "Si j'étais parfaite je serais insupportable !" me disait récemment une amie
(3) "Je ne suis pas dans le milieu, il n'y a pas de milieu !" me disait il y a quelques temps une (autre) amie
(la conversation continue)
Sujet qui devait nécessairement entrainer des réactions.
La première est une dédicace a l'auteur original d'une des citations précédentes...
Voilà la seconde que j'ai reçu en noir (ce qui est assez étrange quand la page de lecture a un fond noir...) avec quelques commentaires non-indentés (ça veut dire sans espace, ni tabulation, ni décalage vers la droite).
Salut,
Évidemment, tu ne pouvais manquer de me faire réagir.
En vrac :
- cette discipline (le command-fu) a un sens sous MS-Windows. Les outils GNU me sont devenus tellement nécessaires dans ma vie de tous les jours que je ne supporte que très peu de temps l'absence d'outils comme find et diff, que je télécharge souvent bien vite quand j'ai vraiment besoin d'être sous Windows. (Grâce à Cygwin, les outils GNU sont plutôt bien supportés sous Windows.)
- GNU manque encore un peu de la facilité du Mac quant à l'installation/désinstallation de programmes. Sous Mac, il suffit de prendre l'objet "application" (qui n'est qu'un vague fichier zip), et de le transporter dans son répertoire Applications, pour installer un logiciel. Sinon, tous les logiciels sont installés et gérés dans une "Sandbox", avec un espace mémoire différent, et cette Sandbox est présentée sous la forme d'une clef USB. Je trouve ça très bien pensé.
- La commande "ls -R | grep .mp3 >mp3_files.txt" est intéressante, mais chopera aussi les fichiers nommés "machin.mp3.wav". (J'en ai sur mon ordi.) L'idéal est :
find ./ -type f -name "*.mp3"Là, ça te prend vraiment tous les fichiers dont l'extension est mp3, du répertoire courant et de ses sous-répertoires.
Libre à toi ensuite de l'écrire dans un fichier et, pour donner une astuce supplémentaire : non pas en écrasant l'éventuel fichier nommé mp3_files.txt par un fichier contenant les info trouvées, mais plutôt en ajoutant les informations trouvées au fichier qui existe déjà éventuellement :find ./ -type f -name "*.mp3" >> mp3_files.txt
Au passage, c'est amusant, parce qu'en fait, de mon point de vue, un non-initié aurait plutôt pensé en priorité à faire :b=` find ./ -type f -name "*.mp3"` && echo b > mp3_files.txt
... on doit pas avoir la même définition de non-initié.
Récemment, je me suis pris la tête sur le Mac de ma coloc'
parce qu'elle avait plein de fichiers doublons. Les fichiers en double avaient la particularité d'être de la forme "machintruc 1.mp3", tous les autres étant nommés "machintruc.mp3". J'aurais pu faire plus compliqué, mais j'ai simplement utilisé les expressions régulières Perl :
find ./ -type f -name "* 1.mp3" -exec rm -f '{}' \;Et j'aurais même pu faire un peu plus compliqué, en vérifiant avec des boucles que tous les fichiers que je supprimais avait bien un doublon, et dans ce cas, il existe le très puissant (et lent) programme fdupes, qui vérifie que les sommes md5 ne sont pas redondantes.
Enfin, je remarque que tu conclues ton article sur "Linux n'est pas parfait", mais tu oublies de crier à l'imperfection et au manque d'innovation de la part de Microsoft.
Ciao,
CU!
(la conversation continue encore)
Pour les lecteurs qui ne le savent pas, le système d'exploitation de Mac (MacOS) est une version modifiée d'une branche de Linux. La quasi-intégralité des commandes sont utilisable (même si "make" et "gcc" sont dans la catégorie MacOS Develloper Tools) ...
Ça n'intéressera peut-être pas tes lecteurs, mais en fait, Mac OS X n'a rien à voir avec Linux. (*) Historiquement, le noyau de Mac OS X est un microkernel (**) basé sur le kernel Mach, lui-même basé sur un kernel BSD.
BSD : Berkeley Software Distribution, une famille de systèmes d'exploitation informatique dérivée d'UNIX (donc c'est une version modifiée d'une branche dérivée de la souche Unix et pas Linux (my bad)...)
translate into English
(*) s'ils avaient utilisé Linux, ils auraient dû tout licencier sous GPL, du moins tous les logiciels du noyau, et je ne pense pas que ça leur aurait plu. La FSF met légèrement en garde contre Mac OS X :
http://www.gnu.org/philosophy/apsl.fr.html
(**) vieux troll : vaut-il mieux un kernel monolithique comme Linux ou un microkernel ?
Send a message
Search for members