Il y a maintenant quelques temps, j’ai commencé à m’intéresser au Terminal qui se trouve dans le dossier utilitaire des applications. J’étais assez curieux de comprendre pourquoi, à chaque fois qu’il fallait faire quelque chose d’un peu pointu, je devais passer par cette application. Et là, quelle ne fut pas ma surprise de découvrir un univers entier et inédit, caché dernière une toute petite fenêtre.

En fait, pour mieux comprendre le contexte, MacOsX est construit sur un noyau UNIX. Ce qui veut dire que derrière ce que l’on voit (le bureau, les applications) tourne une sorte de second système d’exploitation, un OS extrêmement stable et éprouvé, sur lequel vient s’appuyer Os X. C’est ce qui rend nos ordinateurs plutôt bien sécurisés et stables.
Le Terminal est en quelque sorte la porte d’accès à cette arrière boutique. Il n’est pas vraiment sexy puisqu’il ne fonctionne qu’en mode texte, mais plutôt rapide n’ayant pas à gérer l’aspect graphique. On y écrit donc une commande et le résultat, s’il doit y avoir un, ressort sous format texte. Evidemment le tout est écrit en anglais. Autant dire, qu’il faut un minimum de motivation pour s’y attaquer. Mais alors, que de services rendus.
Mais qu’est-ce qui fait de ce Terminal une application si intéressante ? Et bien, elle donne accès à de nombreuses fonctionnalités, pas forcement accessibles depuis l’interface classique. D’abord, accéder à la maintenance et/ou les paramètres avancés du mac. Ensuite, pouvoir utiliser un grand nombre d’utilitaires gratuits et déjà installés, comme par exemple, une puissante fonction de recherche, un convertisseur d’image, un firewall très performant, des clients FTP, SSH, etc. Enfin, sa grande richesse est l’ouverture sur le monde d’unix et à la multitude d’applications libres développées pour cette plateforme.
J’ai mis un certain temps à comprendre en quoi tout ça allait bien pouvoir m’aider au quotidien. D’abord, j’ai compris que de nombreux utilitaires payant sous leur forme graphique existaient gratuitement sous forme de lignes de commande. Ensuite j’ai également compris comment je pouvais me servir du Terminal pour effectuer des taches répétitives ou bien agir sur un très grand nombre de fichiers. D’ailleurs, là est pour moi le principal argument pour vous inciter à vous y intéresser. Rien de plus simple que de renommer plusieurs centaines de fichiers, ou de réduire la taille d’énormément de photos avant de les mettre en ligne, le tout ne prenant que quelques secondes. Réorganiser des dossiers, en obtenir le contenu et le stocker dans des fichiers texte de façon journalière. Compresser et archiver de vieux mails ou fichiers avant de les graver sur un CD. Les exemples sont innombrables.
Plus concrètement, le Terminal envoie à un interpréteur de commande (le shell), des instructions. Ce shell est configuré par défaut pour comprendre la syntaxe bash, qui est la plus répandue dans le monde d’uni et surtout de linux. Donc, si vous voulez vous documenter sur cet univers, cherchez les ouvrages faisant référence au bash. Mais il en existe d’autres qui peuvent très bien être configurées.
Sachez, que dans le terminal, il n’est pas réellement aisé de combiner des commandes complexes mais plus simple d’écrire dans un fichier texte, un petit script (.command) qui sera ouvert par le terminal afin d’exécuter ce qui s’y trouve. On peut alors concevoir ses propres taches, aussi complexe soient-elles. Par exemple, il m’est arrivé d’avoir à réunir des milliers de mp3 venants de 2 comptes iTunes différents tout en évitant les doublons et en gardant ceux dont la qualité était la meilleure. Je pense que sans passer par un script (donc une suite de commande), il m’aurait été impossible de traiter autant de fichiers sans y passer le mois. L’exécution du script n’aura pris que quelques minutes.
Maintenant, comment s’y retrouver dans ce vaste monde. Tout d’abord, se familiariser avec les commandes dites de base, qui permettent d’évoluer dans l’architecture de l’ordinateur et d’en vérifier le contenu (ls, cd, pwd). De nombreux raccourcis existent afin de nous faciliter la vie, notamment les flèches du haut et du bas pour voyager dans l’historique des commandes déjà exécutées et tabulation pour demander au terminal de terminer la saisie en cours (surtout dans il s’agit d’écrire un chemin d’emplacement de fichier en entier). Ensuite, sachez que pour toute commande, il y a un manuel qui existe et qui documente l’utilisation du programme : “man <commande>”. Personne ne peut apprendre toutes les fonctionnalités, donc “man” est la commande qui doit surement être la plus souvent exécutée, même par les utilisateurs les plus aguerris (barre espace pour défiler les pages vers le bas, b pour remonter et q pour en sortir). Enfin, si vous cherchez des programmes liés à un thème, faites “apropos <thème>”. Pour terminer et pour aller un peu plus loin, vous trouverez toutes les subtilités du bash et de sa syntaxe en faisant “man bash”.
N’en ayez pas peur, on arrive très facilement à des résultats.
N’hésitez pas non plus à recherchez de la documentation sur internet ou en librairie spécialisée. Je vais continuer dans les prochains posts à documenter quelques commandes qui m’apparaissent très utiles. En attendant vous trouverez des liens pour commencer à appréhender la chose dans cette perle.