Généralités sur le TerminalLe Terminal, situé dans le dossier "Utilities" du dossier "Applications" de Mac OS X est un logiciel qui pourra effrayer bien des habitués du Mac. Opposé, de par son principe même, à l'environnement graphique propre au monde Mac, il est d'un autre univers où pratiquement tout peut être exécuté en écrivant des lignes de code. Centre d'information et de pilotage intégral d'un système unix, outil d'édition et de programmation, il n'a rien de convivial, rien de très simple pour un non informaticien, mais pourra rendre bien des services à des béotiens l'utilisant avec la plus grande précaution. Les commandesEnvoyer une commande consiste généralement à écrire une drôle de formule magique sur une ligne du Terminal puis à presser la touche Retour du clavier (ou Return ou Enter, si vous préférez) pour la voir s'exécuter. Obtenir des informations sur le système, sur le hardware utilisé, sur la hierarchie des dossiers, sur leur contenu, fichiers invisibles y compris, sur les autorisations relatives à chaque élément, par exemple, mais aussi changer des autorisations, effacer ou déplacer un fichier ou un dossier, concaténer des fichiers, ouvrir, consulter et modifier le contenu de fichiers même s'ils sont invisibles, compresser des fichiers, se connecter à Internet, télécharger des fichiers sur Internet et j'en passe, représentent une petite partie des nombreuses opérations qui pourront être réalisées directement sur le Terminal et sans devoir ouvrir une seule autre application. Tout commencera par l'envoi du simple commande. Un exemple de commande ? Lancez donc l'application Terminal, ne prêtez pas attention à l'expression qui s'inscrit (nous en parlerons un peu plus bas), tapez par exemple les deux lettres suivantes (la première est un "elle"...) et enfoncez la touche Retour : ls
Vous verrez alors apparaître... la liste des fichiers et dossiers installés dans votre dossier d'utilisateur, dossier que nous appellerons à partir de maintenant "petit_nom" pour plus de commodité, ce dossier changeant de nom d'un utilisateur à l'autre. La commande que vous venez d'envoyer est rudimentaire. Elle n'abrite aucune option ni paramètres. Relançons la mais en ajoutant une option supportée par cette commande en inscrivant cette fois : ls -a
Résultat ? La liste de TOUS les éléments du dossier "petit_nom" apparaît cette fois : "TOUS", car même les éléments invisibles sont maintenant présentés. Cette commande à option reste relativement simple : elle contient certes une option mais pas une seul paramètre particulier à gérer... Enrichissons-la donc de la manière suivante : ls -a Documents
La touche Retour pressée, vous voyez maintenant s'afficher la liste de TOUS les éléments du dossier "Documents" du dossier "petit_nom" Il est aussi possible d'associer plusieurs options, dès lors que ces options ne sont pas incompatibles. Entrez maintenant la formule magique suivante : ls -l -a Documents
Vous voyez le résultat ! la première lettre ou le tiret trouvé au début d'une ligne identifie le type d'élément (tiret pour fichier et "d" pour dossier, ou plutôt "directory" puisque le Terminal parle anglais...) ensuite, vous trouvez le détail des autorisations en écriture, lecture et exécution, etc... etc... (vous trouverez tous les détails dans le manuel de l'unix dont l'activation est évoquée un peu plus bas). Il est à noter que vous auriez aussi bien pu écrire la formule magique d'autres manières : ls -la Documents ou ls -al Documents ou encore ls -a -l Documents
Le résultat aurait été le même. Vous voyez le principe même si, sur un point, il ne sera parfois pas applicable. Certaines options propres à certaines commandes ne pourront pas être placées dans n'importe quel ordre, telle option devant parfois toujours précéder telle autre. Vous vous demandez probablement Mais comment connaître les options de chaque commande, comment savoir que telle petite lettre précédée d'un tiret peut activer quelque chose et qu'active-t-elle au juste ? La réponse est aussi dans le Terminal. Envoyez donc cette nouvelle commande pour vous en convaincre : man ls
Intéressant, n'est-ce pas ? Arrivé en bas de page, pour faire défiler la suite des informations, utilisez la touche Retour. La commande "man" pourra être appliquée sur n'importe quelle commande intégrée dans l'unix d'Apple, même sur elle même. Envoyez donc maintenant cette commande : man man
Vous aurez ainsi plus d'informations sur la commande "man" et découvrirez ses intéressantes options. Remarquez au passage la bonne ambiance qui peut règner dans le monde unix en lisant le paragraphe "BUGS". Les très sérieuses pages des très sérieux manuels des très sérieux unix sont assez souvent traversées par de belles notes d'humour ou par de superbes coups de gueule. Les chemins d'accèsDésigner un fichier ou un dossier à traiterNous venons de voir que la commande : ls
permettait d'obtenir le détail du contenu du dossier "petit_nom", lorsque la commande : ls Documents
permettait d'obtenir le détail du contenu du dossier "Documents", dossier situé à l'intérieur du dossier "petit_nom". ls Documents/Sous_dossier
Vous avez donc, dans cette formule, d'une part la commande "ls" et d'autre part le chemin d'accès conduisant à l'élément sur lequel s'appliquera la commande.
ls Documents/Sous_dossier/Sous_sous_dossier
aura pour effet d'afficher le contenu du dossier "Sous_sous_dossier" du dossier "Sous_dossier" situé dans le dossier "Documents" du dossier "petit_nom". Point de départ des chemins d'accèsLe point de départ de tous les chemins d'accès trouvés dans les précédents exemples est toujours le même : il s'agit de votre dossier de départ, du dossier ouvert après chaque sélection de l'article "Départ" du menu "Aller" du Finder (ou en cliquant sur l'icône représentant une maison dans la barre d'outils d'une fenêtre du Finder), dossier appelé "petit_nom" dans le cadre de notre article mais portant, sur votre machine, votre petit-nom d'utilisateur. Ce qui est "Départ" pour le Finder l'est aussi pour le Terminal lorsqu'il est lancé. Changer le point de départ des chemins d'accèsEn ouvrant le Terminal, vous pourrez trouver l'expression suivante déjà inscrite dans sa fenêtre, expression qu'il vous sera impossible d'effacer : [localhost:~] petit_nom%
Les expressions entre crochets ont cette signification : le terminal est prêt à travailler à partir du dossier de départ (le caractère "~" n'étant pas suivi du moindre chemin d'accès vers d'autres dossiers), dossier se trouvant sur la machine "localhost", donc sur l'ordinateur que vous utilisez et non pas sur une machine reliée en réseau à votre ordinateur. L'expression hors crochets indique le nom de l'utilisateur du Terminal. Dans ce cas de figure le nom du dossier de départ et le nom de l'utilisateur sont le même : "petit_nom". Admettons que vous vouliez maintenant utiliser le dossier Pictures comme point de départ. Grâce à la commande "cd" (abréviation de "change directory") rien n'est plus simple : cd Pictures
Le Terminal répond favorablement à l'envoi de cette commande en affichant la formule suivante : [localhost:~/Pictures] petit_nom%
Le Terminal est donc maintenant prêt à travailler à partir du dossier "Pictures" du dossier de départ du Finder ou dossier "petit_nom". Dès à présent, tous les chemins d'accès à définir dans le Terminal devront partir du dossier "Pictures" et non plus du dossier "petit_nom". Revenir au point de départ initialTapez "cd" et rien d'autre puis pressez le bouton Retour. Accéder au dossier supérieurIl est possible de définir des chemins d'accès pointant sur des dossiers qui ne seraient pas inclus, directement ou indirectement, dans le dossier de départ. Pour remonter d'un niveau dans la hiérarchie des dossiers, l'expression "../" est à insérer au début du chemin d'accès. Exemple : depuis l'envoi de la commande précédente, votre dossier de départ est le dossier "Pictures". Or vous souhaitez, en partant encore de ce dossier, désigner dans une commande un élément nommé "Element" et situé dans le dossier "Documents" du dossier "petit_nom". ../Documents/Element
"../" donne à sortir du dossier Pictures pour entrer dans le dossier "petit_nom" qui l'abrite. Puisque le dossier "Documents" est directement situé dans le dossier "petit_nom", il suffit d'inscrire son nom et de l'ouvrir pour accéder enfin à l'élément voulu. Si le point de départ n'avait pas été le dossier "Pictures" mais un de ses sous-dossiers, le chemin d'accès aurait été : ../../Documents/Element
"../" répété X fois permettant de remonter de X niveaux dans la hiérarchie. les chemins d'accès "absolus"Nous n'avons jusqu'à présent fait qu'aborder le thème des chemins d'accès dits "relatifs". "Relatifs" parce que relatifs à l'emplacement d'un dossier de départ. Les chemins d'accès dits "absolus" ne changent jamais de point de départ. Ils commencent toujours au niveau "Ordinateur" (niveau affiché après avoir sélectionné "Ordinateur" dans le menu "Aller" du Finder, par exemple), à la racine du disque dur. /Users/petit_nom
Pour désigner un élément nommé "Element" situé dans le dossier "Documents" de votre dossier d'utilisateur, il faudra écrire : /Users/petit_nom/Documents/Element
Lorsque "Element" se trouve plutôt dans un dossier nommé "Dossier" situé au premier niveau d'une partition nommée "Partition", le chemin d'accès absolu devient : /Volumes/Partition/Dossier/Element
Inscrire le chemin d'accès absolu d'un élément en une secondeAttrapez l'icône de l'élément et lâchez cette icône sur la fenêtre du Terminal Désigner un élément en n'indiquant qu'une partie de son nomSi le Terminal ne peut pas voir plus loin qu'à l'intérieur de son dossier de départ, s'il faut prendre la peine de lui indiquer des chemins d'accès pour qu'il en soit autrement, le Terminal voit plutôt bien dans son dossier de départ, assez bien pour être capable de reconnaître un élément désigné par vos soins dans une commande, même si vous ne faisiez pas l'effort d'inscrire la totalité de son nom. Un seul astérisque saura aussi remplacer plusieurs caractères normalement trouvés au coeur d'un nom. Pour que les choses soient bien claires, voici quelques commandes à tester sur votre ordinateur. cd D*
Malheureusement, le terminal affiche un joli message d'erreur en réponse : "ambiguous". Et nous le comprenons. Il existe en effet au moins deux dossiers dont le nom commence par un D dans le dossier "petit_nom". Entre "Desktop" et "Documents", le Terminal ne sait pas quel dossier choisir. Vous décidez donc de lui donner quelques précisions en envoyant maintenant cette commande : cd Do*
De deux choses l'une, soit le Terminal valide le changement en affichant : [localhost:~/Documents] petit_nom%
soit le message "ambiguous" est renvoyé et il faut en déduire qu'un autre élément (dossier ou fichier) que le dossier "Documents" est aussi situé dans le dossier "petit_nom" et porte aussi un nom commençant par "Do". Imaginons que le message "ambiguous" ait été renvoyé à cause de la présence d'un dossier nommé "Documentation". cd Do*s
Sauf exception (autre dossier ou fichier présent dont le nom commencerait par "Do" et finirait par "s") le changement de dossier de départ aurait enfin lieu. cd D*s
produirait le même bon résultat, le mot "Desktop" ne se terminant pas, comme le mot "Documentation", par un "s" à la différence du mot "Documents". Vous faisiez alors d'une pierre deux coups. Vous devez maintenant vous en rendre compte, l'usage des asterisques fera vraiment gagner du temps à condition d'avoir en tête ou sous les yeux la liste des dossiers ou/et fichiers abrités dans le dossier d'un élément à désigner avec cette méthode (NB. nous n'avons fait référence qu'à des dossiers dans nos exemples que parce que la commande "ls" utilisée ne s'applique qu'à des dossiers). Sinon, les "ambiguoustés" pourraient bien être au rendez-vous et demander plus de temps pour être résolues qu'il n'en faudrait pour inscrire en toutes lettres le nom de fichier à traiter. Pour finir, sachez qu'un ou plusieurs astérisques pourront intervenir, si vous le souhaitez, dans la définition d'un chemin d'accès. En imaginant que le dossier "Documents" abrite un seul dossier nommé "Sous_documents", vous pourriez très bien afficher son contenu en rédigeant la commande ainsi : ls D*s/Sous_documents
Afficher la liste de tous les éléments abrités dans un dossier (du contenu de tous ses sous-dossiers y compris)ne pas utiliser la commande "ls" mais la commande "find". Pour reprendre en partie l'exemple précédent : find D*s
Afficher la liste des dossiers abrités et de leur contenu immédiat (1 niveau)ls *
affichera le contenu du dossier de départ. Si le dossier de départ abrite des dossiers, le contenu de chaque dossier sera détaillé. Pour afficher le même type d'informations concernant le contenu d'un dossier qui ne serait pas le point de départ, le chemin d'accès au dossier doit être inscrit suivi d'un slash puis de l'astérisque. ls Documents/*
Les pièges à éviterNom des applications pour Mac OS XLe Finder indique le nom des applications spécialement conçues pour Mac OS X en nous cachant leur suffixe ".app". Noms de dossiers et de fichiers : caractères trop "spéciaux"Evitez de nommer vos dossiers et fichiers en faisant usage de caractères spéciaux. Et par "caractères spéciaux", j'ai malheureusement compris à l'usage qu'il fallait aussi entendre caractères accentués. Le Terminal semble en effet incapable de gérer directement de tels caractères. Qu'un seul fichier ne soit pas reconnu et aucune opération ne pourra être effectuée dans une commande chargée de traiter différents fichiers... Prenons quelques exemples. Admettons que votre dossier "petit_nom" abrite à la fois un dossier nommé "Prêté à l'âne" un dossier nommé "Prêté à l'âme" et qu'aucun autre nom de dossier ou de fichier du dossier "petit_nom" ne commence par "P" à l'exception du dossier "Pictures" : P*ne
pourra donc par exemple être inscrit pour désigner l'élément "Prêté à l'âne" (si vous ne voyez pas en quoi, vous avez probablement sauté un paragraphe important) puisqu'aucun autre élément du dossier "petit_nom" ne possède de nom commençant par "P" et se terminant par "ne". cd P*ne
Le Terminal reconnaîtra le dossier ainsi désigné, le transformera en dossier de départ, et renverra la longue ligne suivante abritant la traduction maison de "Prêté à l'âne" : [localhost:~/Pre\314\202te\314\201 a\314\200 l'a\314\202ne] petit_nom%
Clair et pratique, n'est-ce pas ? Mise entre apostrophes - espaces et caractères spéciauxLorsqu'un nom comportant un ou plusieurs espaces est présent dans un chemin d'accès, le chemin d'accès doit être placé entre apostrophes. Pour désigner, par exemple, le dossier "le dossier" du dossier "petit_nom" pris pour point de départ, il faudra écrire : 'le dossier'
Pour désigner le dossier "autre dossier" du dossier "Documents" du dossier "petit_nom" pris pour point de départ, il faudra inscrire : 'Documents/autre dossier'
Si "autre dossier" pouvait être identifié par "a*r" (reconnu en n'indiquant que la première et dernière lettre de son nom), utilisant ce raccourci, l'absence d'apostrophes s'imposerait : Documents/a*r
Trouvant un espace, sans apostrophes, le Terminal considérerait sinon que vous cherchez à désigner deux éléments séparés, et non un seul élément en deux parties reliés par un espace. Eliminer espaces et caractères spéciauxRemplacer les caractères accentués par des caractères non accentués, et les espaces par des tirets bas évitera de devoir mettre des expressions entre apostrophes, de devoir jongler avec l'astérisque de substitution et permettra de définir facilement les chemins d'accès absolus en lâchant l'élément voulu dans une fenêtre du Terminal. Autres commandes en détailsNous avons vu comment désigner un élément dans une commande, comment obtenir des informations sur les dossiers et leur contenu (commande "ls"), comment changer le dossier de départ (commande "cd"), comment consulter le manuel pour obtenir des informations détaillées sur chaque commande (commande "man"), découvrez maintenant des fonctions plus avancées du Terminal |
||
|