Introduction
Depuis l'arrivée de Mac OS X, une multitude de logiciels en provenance du monde Unix ont été mis à la disposition des utilisateurs Mac. Ceci a été rendu possible grâce à un changement total de l'architecture du système équipant nos Mac pour le rendre compatible POSIX (UNIX Portable Operating System for Computer Environment).
Le terminal de macOS est une application maîtresse de cette évolution. Il lance en effet un interpréteur de commande appelé shell qui permet de communiquer avec le système d'exploitation non pas de manière graphique mais en tapant au clavier les commandes qu'il doit effectuer. C'est ce qu'on appelle la ligne de commande. Ainsi, à l'aide du shell, nous pouvons naviguer dans l'arborescence de notre disque dur et lancer des applications en ligne de commandes pour effectuer diverses tâches.
Note : Nous allons utiliser ici le terminal iTerm (et Oh My Posh) qui nous offre quelques options supplémentaires par rapport au Terminal livré avec macOS. J'utilise quotidiennement iTerm mais il n'est absolument pas nécessaire pour suivre ce tutoriel, vous pouvez utiliser le Terminal d'Apple que vous trouverez dans le dossier /Applications/Utilitaires
Alors, comment ça marche ?
Voyons un peu comment tout cela fonctionne.
Voici une fenêtre de shell encore vide, sans commande. Il y est indiqué la date et l'heure de la dernière connexion dans un shell (éventuellement suivie d'un message d'accueil) puis d'une ligne plus importante. Cette ligne nous indique à quel endroit on se trouve dans l'arborescence, sous quel login et vous pouvez également y trouver le nom de votre machine. Dans l'écran précédent je suis donc connecté sur ma machine en tant que "syndicman" et mon répertoire actif est mon répertoire utilisateur représenté par le tilde ~
(alt-n sur un clavier Mac).
Il existe de nombreuses commandes Unix, elles sont composées d'un nom et peuvent parfois être suivies d'options et de paramètres. Une option est une lettre et elle est précédée d'un tiret. Un espace sépare les différents éléments d'une commande et cette dernière est prise en compte par le système à partir du moment où vous tapez la touche [return] ou [entrée]. Voyons un exemple en utilisant la commande ls
(list) qui permet d'afficher le contenu d'un répertoire :
Nous voulons maintenant obtenir la liste des fichiers et répertoires (dossiers) contenus dans le répertoire "Music/iTunes/iTunes\ Media/Music" de mon répertoire utilisateur (répertoire courant). Mais nous ne voulons pas afficher simplement son contenu, mais aussi les informations correspondant aux droits, tailles, dates etc. Nous allons donc utiliser l'option l
ainsi que l'argument Music/iTunes/iTunes\ Media/Music
qui spécifie le répertoire à lister. Notez qu'un espace dans un nom de fichier nécessite d'avoir un antislash \
devant. Ici le dossier iTunes Media devient iTunes\ Media
dans le terminal.
Dans ce dernier cas, Music/iTunes/iTunes\ Media/Music
est un chemin relatif. Notre dossier courant étant le dossier utilisateur (ou Home représenté par un ~
dans le terminal) il est inutile taper le chemin complet depuis la racine du système. Mais il serait équivalent d'écrire :
ls -l /Users/syndicman/Music/iTunes/iTunes\ Media/Music
Il s'agit ici du chemin absolu qui commence avec le /
de la racine. Chaque répertoire (ou dossier) est également séparé par un slash /
.
Par exemple, si nous voulons obtenir la liste des fichiers contenus dans le répertoire racine, il suffit de taper ls /
:
Notez que contrairement au Finder de macOS, tous les dossiers et fichiers sont affichés dans le terminal, même ceux qui sont cachés. L'option a
affiche également les fichiers qui commencent par un point (qui sont cachés en standard sur tous les Unix).
Une autre commande de base est la commande permettant de changer de répertoire courant : cd
(change directory). Tapons par exemple cd /
:
Comme vous l'avez deviné, le répertoire courant est désormais le répertoire racine /
. Il suffit de taper ls pour s'en persuader :
Lancer un logiciel en ligne de commande
Je viens de télécharger un émulateur pour macOS mais il s'agit d'un exécutable à lancer dans le terminal, comment faire ?
Il est souvent indispensable de lire le(s) fichier(s) d'aide livré avec le logiciel. Il vous faudra peut-être éditer un fichier de configuration ou faire d'autres petites choses pour accueillir le logiciel sur votre disque dur comme il se doit. L'installation d'une librairie externe à l'émulateur n'est pas à exclure (la Librairie SDL est souvent nécessaire pour les émulateurs).
Placez l'exécutable en question dans le répertoire que vous désirez, naviguez jusqu'à ce répertoire à l'aide de la commande cd
, puis lancez-le comme ceci :
./nom_du_logiciel
Par exemple j'ai téléchargé la dernière version de SDLMAME, célèbre émulateur pour macOS. J'ai déplacé le dossier contenant l'exécutable mame sur un autre volume que le système. Je dois donc me déplacer jusqu'à ce répertoire en faisant comme ceci :
cd /Volumes/APPLICATIONS/Emulation/Emulateurs/mame0261-x86
Vous pouvez glisser un répertoire ou autre fichier depuis le Finder dans la fenêtre du terminal pour que s'affiche automatiquement son emplacement dans l'arborescence, vous pouvez donc taper cd
puis glisser le répertoire mame0261-x86 depuis le Finder. Attention, n'oubliez pas l'espace après cd.
Une fois dans le bon répertoire, je lance l'émulateur comme ceci :
./mame
Sécurité
Si macOS vous dit qu'il ne peut pas vérifier s'il n'y a pas de logiciel malveillant et refuse de lancer votre exécutable c'est parce que le développeur n'a pas "notarié" son application auprès d'Apple. C'est le cas de SDLMAME et la librairie SDL. En général il suffit de faire clique-droit sur l'application puis ouvrir. Cela peut poser encore plus de problèmes pour une librairie, mais il existe un astuce. Vous retrouverez les applications bloquées par Apple dans les Réglages Système -> Confidentialité et sécurité et vous pourrez les libérer ici en cliquant sur Autoriser quand même. Il faut aussi bien entendu autoriser les applications téléchargées en dehors de l'App Store.
L'option permettant d'ouvrir l'application sera ensuite disponible. Cliquez donc sur ouvrir.
SDLMAME se lance enfin. N'hésitez pas à lire la formidable série d'articles de sky sur cet émulateur incontournable.
Compiler le code source d'un logiciel
Lorsqu'un logiciel a été porté sur macOS, il se peut que seul le code source soit disponible. Dans ce cas, il suffit la plupart du temps de se placer dans le dossier ou se trouve le code source (à l'aide de la commande cd) et effectuer ces étapes :
- Taper
./configure
pour générer un fichier de configuration en fonction des spécifications de votre système. - Taper
make
pour compiler le logiciel. - Parfois plus d'étapes sont nécessaires mais c'est probablement indiqué dans un fichier README ou la documentation.
Ces étapes ne sont pas nécessaires si le code source est fourni avec un fichier de projet Xcode qu'il vous suffira de double cliquer pour lancer le compilateur puis de cliquer sur le marteau dans l'interface d'Xcode pour compiler le code et obtenir finalement votre logiciel tant attendu.
Attention, il faut avoir installé Xcode (ou ses outils en ligne de commande Command line tool) téléchargeables gratuitement sur le site developper.apple.com (compte Apple nécessaire) ou sur le Mac App Store.
Petites choses à savoir
- L'option
--help
permet d'afficher toutes les options d'une commande man nom_de_commande
permet d'obtenir le manuel de la commande en question si il existe.- Sous Unix, tout est considéré comme des fichiers (et oui, même les répertoires/dossiers).
- Dans les noms des fichiers, évitez d'utiliser des caractères spéciaux ou des caractères accentués, le terminal pourrait ne pas comprendre.