Mis à jour le 13/08/2014
  • 10 heures
  • Facile

Ce cours est visible gratuitement en ligne.

Vous pouvez être accompagné et mentoré par un professeur particulier par visioconférence sur ce cours.

J'ai tout compris !

Le Terminal dans OS X

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Ce chapitre s'éloigne un peu de ce que nous avons vu précédemment puisqu'il présente une facette d'OS X qui reste méconnue d'une grande partie des utilisateurs de ce système d'exploitation.

OS X est un système basé sur un noyau UNIX et de ce fait, il en récupère de nombreux attributs avec notamment cette fameuse console que je vais vous présenter. Si vous avez déjà utilisé un système UNIX ou GNU/Linux, celle-ci vous paraitra très familière. Par contre si vous venez de Windows ou que vous découvrez simplement l'informatique le concept pourra vous paraîtra un poil déconcertant, mais je vous rassure d'office, vous n'avez rien à craindre.

Car si vous trouviez l'interface d'OS X pratique, les possibilités de la console sont presque infinies comme vous allez le voir dans la suite du cours, je vous invite donc à continuer la lecture pour en savoir plus. ;)

Pourquoi et première approche

Si il existe un mode console sur OS X et de manière générale sur tous les systèmes UNIX c'est bien qu'il y a une raison derrière, ce n'est pas une petite folie des développeurs de laisser un tel système dans votre système d'exploitation ! Plusieurs raisons expliquent la présence de la console sur notre OS, son côté historique mais aussi pratique comme nous allons rapidement le voir.

Quelques raisons

Une raison historique

Au début de l'informatique, les écrans n'étaient pas les mêmes qu'aujourd'hui et il était impossible d'afficher un nombre important de pixels en même temps sur l'écran. On utilisait donc des programmes uniquement en texte, sans interface graphique. Les ordinateurs eux-mêmes étaient moins puissants, on était donc très limités aux niveaux des possibilités, d'où l'utilisation de la console qui ne demande pas des ressources très importantes pour s'afficher.

Une raison pratique

La console permet de faire pleins de trucs qu'il est impossible de faire avec l'interface graphique que vous connaissez aujourd'hui. On peut réaliser des opérations très longues en quelques lignes de commandes et même dans les opérations les plus simples, la console est souvent beaucoup plus rapide qu'une interface graphique.

Il suffit d'un ou deux exemples pour vous convaincre des possibilités de la console même sur les ordinateurs d'aujourd'hui. Prenons un exemple un peu fou, vous cherchez à trouver les 10 plus gros fichiers qui se trouvent dans un répertoire mais également dans les sous-dossiers. Vous pourriez chercher dans chacun des fichiers un par un mais c'est un peu long, surtout si vous avez plusieurs centaines de dossiers ! Eh bien avec la console, cela se fait en une ligne :

find . -type f (-size +10000000c) -exec ls -l {} \; | sort -n -k 5,5 | tail -10

Grâce à ce que l'on appelle la programmation bash, on peut même écrire des petits programmes qui utilisent ce genre de commandes pour réaliser des galeries d'images en quelques secondes.

Bon, c'est gentil mais on ne la voit toujours pas cette console nous ...

Afficher la console

Pour afficher la console, nous allons utiliser une application qui se nomme « Terminal », qui va nous permettre de travailler avec cette console, tout en continuant à utiliser les autres applications habituelles de notre système d'exploitation. Il vous suffit donc de lancer cette application grâce à Spotlight ; elle se trouve dans le dossier « Utilitaires » du dossier « Applications »

Notre première fenêtre de Terminal
Notre première fenêtre de Terminal
Première explication

Avant d'aller plus loin, nous allons rapidement voir que signifient les deux premières lignes qui sont apparues dans notre Terminal.

La première ligne indique la date et l'heure de la dernière connexion à la console, sur l'exemple elle date du 21 Décembre 2012 à 19h08 sur ttys000. ttys000 indique le numéro du Terminal sur lequel s'est effectuée la dernière connexion. OS X numérote les terminaux à partir de 0, si vous n'avez qu'un seul terminal d'ouvert celui-ci possède le nom ttys000, mais ce n'est pas très important pour la suite.

La deuxième nous intéresse un peu plus :

macbookairnicolas:~ Nicolas$
  • macbookairnicolas : c'est le nom de la machine sur lequel est lancé le terminal, ici mon ordinateur se nomme macbookairnicolas mais il possède sûrement un nom différent chez vous.

  • :~ : c'est le nom du répertoire courant où se situe actuellement le Terminal. Dans notre cas, nous nous trouvons dans le dossier utilisateur de Nicolas, qui se nomme Nicolas, il est communément remplacé par le symbole ~ pour indiquer le dossier utilisateur.

  • Nicolas : c'est le nom de l'utilisateur qui s'est connecté à la console, ici l'utilisateur se nomme Nicolas, donc moi même.

La base des commandes

Bien que l'on puisse y faire autre chose, la principale utilité du Terminal est que l'on peut y entrer des commandes. Les commandes sont des instructions pour exécuter des actions spécifiques dans la console, il en existe des centaines et des centaines ; il est donc bien-sûr impossible de toutes les connaître mais vous allez apprendre à retenir les principales.

Nous allons commencer par quelques commandes simples pour débuter et vous montrer le fonctionnement de celles-ci, nous verrons par la suite de nouvelles commandes un peu plus compliquées mais rassurez vous, vous serez guidés !

Quelques commandes simples

Pour comprendre le fonctionnement des commandes, nous allons commencer par une des commandes les plus simples : date !

La commande date

La commande Date comme son nom l'indique, permet d'afficher la date et l'heure sur notre machine. Pour lancer cette commande, il suffit de taper date dans votre Terminal et de valider celle-ci en appuyant sur la touche Entrée.

macbookairnicolas:~ Nicolas$ date
Ven 21 déc 2012 21:28:26 CET

Cette commande nous affiche bien la date et l'heure actuelle !

La commande ls

Passons à la seconde commande : ls pour « list directory contents », qui signifie « lister le contenu d'un répertoire ». Je vous propose de lancer cette commande dans votre Terminal pour voir ce qu'elle vous renvoie.

macbookairnicolas:~ Nicolas$ ls
Applications   Desktop   Documents   Downloads   Google Drive   Library   Movies   Music   Pictures   Public

Ici notre commande nous renvoie la liste des dossiers qui se trouvent dans le répertoire Nicolas. Si on regarde avec le Finder, on observe que les mêmes dossiers y sont listés, c'est normal me direz vous. Dans le cas où rien ne s'affiche, cela signifie qu'il n'y a ni dossier, ni fichier dans votre dossier.

Le contenu de notre dossier utilisateur
Le contenu de notre dossier utilisateur

Nous venons de voir nos deux premières commandes. Comme vous avez pu le constater, c'était assez facile : il suffit d'un mot pour les lancer ! Mais certaines commandes demandent des paramètres supplémentaires.

Les paramètres

Certaines commandes acceptent des paramètres. La plupart du temps ces paramètres ne sont pas obligatoires, mais permettent de faire plus de choses avec la commande. Pour vous donner un exemple concret, je vais reprendre l'exemple de la commande ls, mais cette fois-ci avec le paramètre "a". Ce paramètre permet d'afficher en plus des fichiers et dossiers classiques, les fichiers et dossiers cachés. La syntaxe est la suivante :

macbookairnicolas:~ Nicolas$ ls -a

On voit que l'on fait précéder notre paramètre d'un trait d'union pour que notre Terminal ne le confonde pas avec le nom d'une autre commande ou d'un fichier. Cette logique est respectée avec la plupart des commandes UNIX de base. De manière générale, on a donc la syntaxe suivante pour une commande avec des paramètres :

macbookairnicolas:~ Nicolas$ commande -parametres
Combiner des paramètres

Une commande possède souvent plus d'un paramètre et il est possible de combiner plusieurs de ces paramètres afin d'obtenir le résultat souhaité. Logiquement si on veut combiner plusieurs paramètres lors de l'utilisation d'une commande on peut procéder ainsi :

macbookairnicolas:~ Nicolas$ commande -parametre1 -parametre2 -parametre3

Ainsi si on reprend notre exemple de la commande ls, celle-ci peut accepter plusieurs paramètres comme (-a, -l, -G, ...), on peut donc taper dans le terminal, la chose suivante :

macbookairnicolas:~ Nicolas$ ls -a -l -G

Le paramètre -l permet d'afficher plus d'informations sur chacun des fichiers et dossier et le paramètre -G permet de mettre un peu de couleur pour différencier fichiers et dossiers. Les trois paramètres combinés permettent d'afficher la liste détaillée de tous les fichiers et dossiers du répertoire courant avec de la couleur. On obtient le résultat suivant :

total 144
drwxr-xr-x+ 35 Nicolas  staff   1190 21 déc 12:47 .
drwxr-xr-x   5 root     admin    170 16 déc 14:32 ..
-rw-------   1 Nicolas  staff      3 25 nov 14:42 .CFUserTextEncoding
-rw-r--r--@  1 Nicolas  staff  15364 21 déc 22:44 .DS_Store
drwx------   2 Nicolas  staff     68 21 déc 22:50 .Trash
-rw-------   1 Nicolas  staff    110 21 déc 12:47 .Xauthority
drwxr-xr-x   4 Nicolas  staff    136 26 nov 22:18 .adobe
-rw-------   1 Nicolas  staff   8234 21 déc 19:08 .bash_history
drwxr-xr-x   3 Nicolas  staff    102 19 oct 12:14 .cache
drwxr-xr-x  19 Nicolas  staff    646 20 déc 22:19 .fontconfig
drwxr-xr-x   4 Nicolas  staff    136 28 oct 00:36 .gem
...
Raccourcir les paramètres

Mais la console est très puissante et vous permet d'écrire moins pour obtenir le même résultat. Comme tous nos paramètres ne sont que des lettres, on peut coller tous les paramètres ensemble, le résultat sera le même mais vous aurez tapé moins de caractères. Avec l'exemple précédent et nos trois paramètres a, l et G, on peut maintenant taper directement ceci dans le terminal :

macbookairnicolas:~ Nicolas$ ls -alG

Le résultat est exactement le même qu'avant, en plus court et toujours aussi compréhensible.

Tu es très fort, tu connais plein de fonctions sympas mais en plus tu connais tous les paramètres de celle-ci ?

La commande man

S'il ne fallait retenir qu'une seule commande, ce serait la commande man. Cette fonction permet de consulter le manuel des autres commandes disponibles. On retrouve dans ces pages de manuel des explications sur la commande mais également la liste de tous les paramètres d'une commande. Suivant le manuel que vous consultez, vous trouverez également parfois quelques exemples pour utiliser la commande.

La fonction man prend en paramètre le nom d'une autre commande et affiche la page de manuel correspondante. Cette fois-ci le paramètre n'est pas une unique lettre mais bien un mot complet, il ne faut donc pas le faire précéder d'un tiret comme c'était le cas auparavant. Pour illustrer cela, prenons un exemple simple et consultons le manuel de la commande ls que nous venons d'utiliser.

macbookairnicolas:~ Nicolas$ man ls

Le contenu de la fenêtre devrait être remplacé par du texte qui décrit votre commande, avec notamment son nom mais aussi des informations sur celle-ci, une rapide description et le début de ses paramètres. Vous pouvez vous déplacer dans le fichier avec l'aide des flèches de votre clavier. Si vous n'avez pas envie de lire le manuel de cette commande vous pouvez appuyer sur la touche q pour quitter le manuel.

Le manuel de la commande ls
Le manuel de la commande ls

Quelques commandes utiles

Bien qu'il soit impossible de lister l'ensemble des commandes disponibles dans OS X, voici une liste non-exhautive des commandes qui vous seront utiles dans la suite du cours et plus tard dans l'utilisation de la console. Je donne juste ici le nom et la fonction de ces commandes et je vous invite à regarder le manuel de ces commandes en détails. Je reviendrai sur certaines d'entre-elles par la suite. Je vous invite à consulter le cours de M@teo21 au sujet de la console et des commandes.

  • man : permet d'afficher le manuel d'une commande.

  • cd : permet de se déplacer à travers l'arborescence de votre ordinateur grâce au chemin du dossier par rapport à la racine.

  • pwd : donne l'emplacement du répertoire courant par rapport à la racine.

  • mkdir : crée un dossier dans l'emplacement courant.

  • rm : permet de supprimer des fichiers. ATTENTION à l'utilisation de cette commande !

Aller plus loin avec le Terminal

Maintenant que vous avez une petite idée sur le fonctionnement des commandes dans le Terminal d'OS X, nous allons tenter d'aller un peu plus loin en apprenant quelques manipulations qui peuvent se révéler utiles lorsque vous voudrez utiliser le Terminal plus tard.

L'auto-complétion

La première astuce que je souhaite vous présenter est l'auto-complétion. Sous ce terme un peu barbare se trouve quelque chose de vraiment puissant ! Prenons un exemple simple : vous souhaitez utiliser une commande mais vous ne vous souvenez plus que des deux premières lettres de celle-ci. Eh bien grâce à l'auto-complétion, vous allez pouvoir retrouver cette mystérieuse commande !

Nous allons reprendre le premier exemple que je vous ai donné dans le chapitre précédent avec la commande date. Supposons que vous savez que la commande commence par « da ». Deux cas de figure sont alors possibles :

  • La commande date est la seul qui commence par da.

  • Plusieurs commandes commencent par da.

Plusieurs commandes commencent par da

Pour afficher la liste des commandes qui commencent par « da », il vous suffit d'appuyer deux fois de suite sur la touche (Tabulation). Le Terminal va alors vous proposez la liste de toutes les commandes qui commencent par « da », dans notre cas quatre commandes commencent par « da »

macbookairnicolas:~ Nicolas$ da
dappprof   dapptrace  darwinup   date       
macbookairnicolas:~ Nicolas$ da

Vous n'avez plus alors qu'a taper la commande qui vous intéresse en entier, dans notre cas ici « date ».

Une liste parfois longue

Il arrive parfois que qu'un nombre important de commandes commencent par une même lettre. Si l'on applique l'exemple précédent à la lettre « d », le Terminal nous renvoie le message suivant pour nous avertir qu'il y a un nombre trop important de commandes qui commencent par la lettre d.

macbookairnicolas:~ Nicolas$ d
Display all 131 possibilities? (y or n)

Dans cet exemple, 131 commandes commencent par la lettre d ! Vous pouvez choisir de les afficher en appuyant sur la touche y (yes) ou de ne pas le faire en appuyant sur la touche n (no)

L'auto-complétion dans toute sa splendeur

Le deuxième cas de figure se pose quand il n'y a qu'une seule commande qui correspond à ce que l'on a tapé, dans ce cas ce qui a été tapé sera automatiquement complété par la commande en entier. Cette utilisation peut se révéler très pratique quand on a besoin de taper des commandes assez longues puisqu'il suffit de ne taper que le début pour que celle-ci se complète.

Toujours avec notre exemple, la commande « date » étant la seule commande qui commence par « dat », il suffit de taper « dat » dans votre Terminal puis d'appuyer deux fois sur la touche pour obtenir la commande complète.

Historique des commandes

Il arrive parfois que l'on réutilise plusieurs fois en quelques minutes la même commande, lorsque l'on compile un programme par exemple. Il arrive que ces commandes soient parfois un peu longues à taper (une commande avec plusieurs arguments). Retaper à chaque fois la commande est fastidieux et surtout je suis un grand flemmard et moins je tape sur mon clavier plus je suis content ! ;)

Grâce à l'historique des commandes vous allez vous simplifier la vie ! Pour cela, il vous suffit d'utiliser les flèches directionnelles : pour remonter dans votre historique (du plus récent au plus ancien), utilisez la flèche directionnelle « Haut »

Inversement pour redescendre dans l'historique (vers les plus récents) vous pouvez utiliser la flèche directionnelle « Bas » .

On peut ainsi facilement accéder aux dernières commandes que l'on a tapées dans le Terminal, la commande history permet d'accéder à la liste complète des commandes que vous avez saisies dans votre fenêtre de Terminal.

Le glisser-déposer

Si vous vous souvenez des premiers chapitres de ce cours, vous vous rappellerez sûrement du glisser-déposer qui nous permettait de déplacer un fichier dans un dossier par exemple. Eh bien cela fonctionne également avec le Terminal. Bien sûr, le résultat ne sera pas exactement le même mais cela peut se révéler très pratique.

Si vous connaissez un petit peu la commande cd, vous devez savoir qu'elle permet de vous déplacer dans l'arborescence de votre ordinateur mais qu'il est parfois difficile d'obtenir le chemin complet d'un dossier. Le glisser-déposer va nous permettre de simplifier la chose. La commande cd prend un argument obligatoire qui est le nom d'un répertoire ou le chemin vers celui-ci.

Le glisser-déposer ne s'applique pas uniquement à la commande cd mais l'exemple avec cette commande est plus parlant à mon goût car c'est une commande très commune dans tous les systèmes UNIX et GNU/Linux. Faire glisser un dossier (ou un fichier) dans le Terminal permet d'écrire le nom complet du dossier ou du fichier dans celui-ci.

Dans notre exemple, nous allons d'abord taper la commande cd dans notre Terminal puis au lieu de taper l'argument pour cette commande, nous allons faire glisser un fichier vers notre Terminal. Dans mon exemple, c'est le dossier « Documents ».

Exemple d'un glisser-déposer dans le Terminal
Exemple d'un glisser-déposer dans le Terminal

Vous devriez maintenant voir apparaître quelque chose de ce genre dans votre Terminal suivant le dossier que vous avez décidez de faire glisser. C'est le chemin complet vers votre dossier (ou fichier) :

macbookairnicolas:~ Nicolas$ cd /Users/Nicolas/Documents

Il vous suffit ensuite d'exécuter votre commande comme à votre habitude. ;)

Personnaliser le Terminal

Maintenant que nous avons vu la partie un peu technique concernant l'utilisation de notre console nous allons pouvoir nous faire un peu plaisir en rendant celle-ci un peu plus attrayante et en la personnalisant à votre goût. ;)

La première étape pour modifier le Terminal est de se rendre dans les préférences de l'application, dans la barre des menus via le menu « Terminal » > « Préférences ».

Préférences du Terminal
Préférences du Terminal

Personnalisation visuelle

La première chose que vous pouvez faire avec votre Terminal est de personnaliser l'apparence visuelle en vous rendant dans l'onglet « Réglages » . Il existe de base plusieurs styles de Terminal dans OS X. Par défaut le Terminal possède le style Pro, vous pouvez modifier un style existant ou bien créer vous-même votre style. Les deux premiers onglets « Texte » et « Fenêtre » vous permettent de modifier l'apparence de votre Terminal (voir la figure suivante).

Options visuelles pour le Terminal
Options visuelles pour le Terminal

Les trois derniers onglets « Shell », « Clavier » et « Avancé » sont moins importants car plus techniques et les options qui sont proposées dans ces onglets n'apportent rien à l'utilisation courante de votre Terminal.

  • La console affiche au début de chaque ligne le nom de la machine, le répertoire courant ainsi que le nom d'utilisateur.

  • La console exécute des commandes qui permettent d'effectuer certaines actions.

  • Ces commandes peuvent prendre un ou plusieurs arguments, ceci sont détaillés dans le manuel de la commande accessible grâce à la commande man.

  • L'historique des commandes accessibles via les flèches directionnelles et de la commande history permet à l'utilisateur d'exécuter plusieurs fois une même commande sans tout retaper.

  • La console est un outil très puissant mais également très vaste qu'il est impossible de développer en un seul chapitre, je vous invite à consulter le cours « Reprenez le contr^ole à l'aide de Linux » de M@teo21 sur ce sujet.

Voilà le cours est maintenant fini. Vous disposez d'une base solide sur divers éléments de votre système d'exploitation.

Vous pouvez maintenant manipuler des fichiers et des dossiers dans votre ordinateur, protéger votre ordinateur et installer des applications. Il reste encore beaucoup à faire, et vous apprendrez à encore mieux utiliser votre ordinateur, pour cela il faudra attendre la fin de ce cours.

Mais je souhaite dès à présent remercier :

Exemple de certificat de réussite
Exemple de certificat de réussite