

Le Terminal de Mac OS X (1)
Le Terminal de Mac OS X : Introduction
Voici un nouvel épisode de ma petite rubrique. La semaine dernière, je vous avais exposé les concepts basiques, les conventions... Mais rien à propos du terminal lui-même... Donc je vais m'y atteler cette semaine.
Quand vous ouvrez le terminal, voici à peu près ce que vous avez... Mis à part l'heure d'ouverture et le nom d'utilisateur :
Au commencement, il y avait :
Lors de la première ouverture de cette fenêtre, le terminal vous donne quelques informations : déjà, la date à laquelle vous avez ouvert cette fenêtre, ensuite il est très poli, il vous souhaite la bienvenue, et enfin on arrive dans le vif du sujet.
Cette ligne, sur laquelle clignote un petit rectangle, s'appelle la ligne de commande, c'est cette petite ligne sur laquelle vous écrirez vos commandes et, les exécuterez à l'aide des touches "Entrer" ou "Retour". Cette ligne affichera toujours 3 informations :
La première : un nombre dont je ne connais pas du tout la signification sincèrement, mais ça ne m'a jamais vraiment dérangé.
La deuxième qui suit le ":", c'est le fameux "dossier courant", c'est là que vous vous trouvez dans l'arborescence des répertoires, si le nombre est inutile, cette information est extrêmement importante, surtout lorsque vous agirez sur des fichiers. Dans mon cas, et dès que vous ouvrez une nouvelle fenêtre, vous pouvez reconnaître le fameux symbole tilde "~" qui représente votre dossier de départ.
La troisième information c'est tout simplement votre nom abrégé. Dans mon cas c'est "psycho", il sera toujours suivi du signe "$".
L'utilisateur dit : "Que le Terminal soit" et le terminal fut :
Mais l'utilisateur ne fut pas plus éclairé. En effet, quel obscur outil que ce Terminal (surtout le mien avec ses couleurs !). Il est utile de savoir à quoi ça sert avant de s'en servir... De loin et en passant vite, le terminal est de la même famille de logiciel que le Finder : comme le Finder celui-ci sert à :
- Naviguer dans l'arborescence des fichiers de l'ordinateur
- Manipuler ces fichiers (déplacement, renommage, suppression)
- Modifier les autorisations appliquées aux fichiers
- Ouvrir des fichiers et les utiliser dans leur application attitrée ou dans une autre
En revanche, le Terminal, à l'inverse du Finder, n'est pas cloisonné, le seul cloisonnement qu'il doit subir est celui des autorisations : avec le terminal un administrateur peut faire plus de choses qu'un utilisateur normal, mais moins de choses que l'utilisateur racine (root).
Le Terminal est un Shell (traduction littérale : coquillage, mais la traduction n'étant pas très pertinente le terme de Shell est utilisé en français). L'image qu'on peut utiliser pour comprendre le terme c'est que le système d'exploitation est le mollusque contenu dans ce coquillage, et la coquille elle-même est ce qui en permet l'accès et la manipulation. Le terminal vous permet donc de manipuler votre système de manière plus directe.
Ainsi, l'interface du Terminal vous permet d'écrire des instructions, appelées "commande" ou "commande Shell", qui seront interprétées par le terminal et ensuite exécutées par le système. Alors, le Terminal vous fournira ou non un résultat selon le principe du "Pas de Nouvelle, Bonne Nouvelle" énoncé la semaine dernière, et tout ceci sera suivi d'une nouvelle ligne de commande permettant l'écriture d'une nouvelle instruction. Mais, comme je l'ai dit plus haut, le terminal a quand même quelques limites?
"Pour accompagner le règne des justes sur la Terre afin que le fort jamais ne brutalise le faible." - Code d'Hammurabi, Prologue :
Voici une citation bien pompeuse pour vous exposer les autorisations. Car les autorisations ne sont rien d'autres que des lois, elles sont l'un des concepts fondamentaux de l'environnement Unix (avec les concepts des processus, des fichiers et des communications interprocessus). Chaque fichier possède trois caractéristiques :
- Un identifiant
- Un propriétaire ou owner (par défaut celui qui crée le fichier), par exemple : root, psycho, etc.
- Un ensemble de droits d'accès (autorisations) qui sont eux-mêmes de trois groupes différents :
- Propriétaire (défini par la lettre "u" comme "User")
- Groupe du propriétaire (défini par la lettre "g" comme "Group")
- Tous les autres (défini par la lettre "o" comme "Other")
Il y a aussi trois types de droits d'accès :
- Lecture (défini par la lettre "r" pour "Read")
- Écriture (défini par la lettre "w" pour "Write")
- Exécution (défini par la lettre "x" pour "eXecution")
- Lecture : il s'agit du droit de voir le fichier, par exemple pour un dossier, ce droit d'accès vous autorise à voir son contenu.
- Écriture : il s'agit du droit de modifier le fichier par contre la possibilité de supprimer un fichier dépend des autorisations appliquées au dossier qui le contient.
- Exécution : il s'agit du droit d'exécuter un fichier qui est un programme soit Shell, soit autre, par exemple : toutes les applications non .app (Word par exemple) sont des fichiers possédant les autorisations "exécutable", pour les applications .app comme Mail.app, le fichier /Applications/Mail.app/Contents/MacOS/Mail est un fichier exécutable qui contient le programme de base de Mail.
Et le simple citoyen devint légiste :
Pour illustrer le discours austère que je viens de vous faire à propos des autorisations, je vais vous apprendre votre première commande : ls (LiSte), elle vous permet d'afficher la liste de fichiers du dossier courant.
Voici sa syntaxe : ls [-ABCFGHLPRTWZabcdefghiklmnopqrstuwx1] [fichier ...]
Si vous n'utilisez aucune option, le terminal vous affichera la liste des fichiers visible classés par ordre alphabétique.
Mais nous, nous voulons afficher les autorisations des fichiers, et cela se fait avec l'option "-l" (minuscule de la lettre "elle").
Alors ouvrez le terminal et tapez : "ls -l" et appuyez sur la touche "retour". Le terminal devrait vous afficher quelque chose comme ça :
drwxrwxr-x 3 psycho admin 102 Apr 22 2005 Desktop drwxrwxr-x 4 psycho admin 136 Aug 21 2005 Documents drwxrwxr-x 21 psycho admin 714 Nov 11 2005 Library drwxrwxr-x 3 psycho admin 102 Apr 22 2005 Movies drwxrwxr-x 3 psycho admin 102 Apr 22 2005 Music drwxrwxr-x 3 psycho admin 102 Apr 22 2005 Pictures drwxrwxr-x 4 psycho admin 136 Apr 22 2005 Public drwxrwxr-x 5 psycho admin 170 Apr 22 2005 Sites
Sur cette liste, vous avez plusieurs informations :
- Les Autorisations : c'est une suite de 10 caractères, elle commence soit avec un "-" soit avec un "d" (pour "directory") si le fichier en question est un dossier / répertoire.
- Le nombre de fichiers contenus dans le dossier, si le fichier n'est pas un répertoire, ce nombre sera "1", sous Mac OS X, un répertoire, même vide, contient au moins 3 fichiers : ".", ".." et ".localized", d'où le numéro "3" sur la ligne de Movies, Music et Pictures qui sont pourtant vides.
- Le propriétaire, en l'occurrence tous les répertoires appartiennent à Psycho.
- Le groupe du propriétaire, en l'occurrence Psycho est un administrateur.
- La taille du fichier en octets, vous pouvez d'ailleurs remarquer pour un dossier que la taille est intimement liée aux nombres de fichiers qu'il contient, à raison de 34 octets par fichier, il s'agit en fait de la référence du fichier en question, le dossier ne fait que lister ces références.
- La date de création du fichier
- Le nom du fichier
Revenons aux autorisations, cette commande affiche les autorisations sous forme de 10 caractères, les 9 derniers sont en fait 3 groupes de 3 caractères, le premier désigne les autorisations du propriétaire, le deuxième les autorisations du groupe du propriétaire, et le dernier les autorisations de tous les autres.
Les autorisations sont toujours dans le même ordre : lecture, écriture, exécution, "rwx", l'autorisation est remplacée par un "-" si vous n'avez pas le droit en question.
Dans la liste précédente, toutes les autorisations étaient symbolisées par : drwxrwxr-x, cela signifie :
- Dossier
- Droits d'accès pour le propriétaire : lecture, écriture, exécution
- Pour le groupe : lecture, écriture, exécution
- Pour les autres : lecture et exécution et pas de droits d'écriture.
Et le légiste devint législateur :
Maintenant que vous comprenez la loi, je vais vous apprendre à la modifier. Alors une nouvelle petite commande, un peu plus compliquée, qui s'appelle chmod (CHange MODe), le mode en question c'est simplement les droits d'accès.
Voici sa syntaxe (simplifiée) : chmod mode fichier
Vous remplacez le fichier par le chemin (relatif ou absolu) du fichier à modifier. Et le mode? c'est un peu le bordel? vous avez deux possibilités :
- 0000 : aucune autorisation pour personne
- 0777 : toutes les autorisations pour tout le monde
- 0400 : les autorisations de lecture uniquement pour le propriétaire.
- 0763 : toutes les autorisations pour le propriétaire, lecture-écriture pour le groupe et écriture ? exécution pour les autres.
- Etc.
- Verbeux, le système avec des lettres, celles que je vous ai désignées plus haut. Alors l'expression d'assignation des autorisations (vous suivez toujours ?), est composée d'une lettre désignant le destinataire, d'un symbole et des autorisations assignées :
- Le destinataire : u (user = propriétaire), g (group = groupe de l'utilisateur), o (other = tous les autres), a (all = tout le monde), vous pouvez cumuler les destinataires, exemple : ug, uo, go,?
- Le signe : + (pour ajouter des autorisations), - (pour supprimer des autorisations), = (pour désigner clairement les autorisations)
- Les autorisations : toujours les mêmes r, w, x?
- Par exemple :
- u+w : ajoute le droit d'écriture au propriétaire
- go=wx : fixe les autorisations du groupe et des autres à l'écriture et l'exécution
- etc.
Donc un petit exemple, je veux appliquer à un petit fichier Psycho.jpg situé dans mon dossier Images, les autorisations suivantes : lecture et écriture pour moi et mon groupe, lecture pour les autres, cela donne à peu près ça :
- Verbeux : chmod ug=rw,o=r ~/Pictures/Psycho.jpg
- Octal : chmod 0664 ~/Pictures/Psycho.jpg
Et pour finir?
Je vais terminer ce message qui commence à s'allonger, par une petite commande exclusivement Mac OS Xienne. La commande "open".
Voici quelques unes de ses syntaxes :
- open [-a application] fichier
- open [-e] fichier
- open url
- open application
Déjà vous pouvez remarquer qu'il y a plusieurs possibilités? Si vous tapez "open" suivit d'un nom de fichier, celui-ci sera ouvert avec son application par défaut, si vous tapez "open ?a" suivit du nom d'une application et de votre fichier, le fichier sera ouvert avec l'aide de l'application en question. Si vous mettez l'option "-e", le fichier sera ouvert à l'aide de TextEdit.app. Si vous mettez un URL, celui-ci s'ouvrira avec l'application appropriée (et oui, tout URL ne s'ouvre pas qu'avec Safari ou FireFox :D). Et enfin, si vous mettez une application, elle s'ouvrira tout simplement :D.
Et voilà ce qui conclut le deuxième épisode de cette rubrique? C'est assez bourratif encore une fois, si vous arrivez à digérer tout ça? C'est que vous êtes très courageux. Encore une fois, si vous avez des commentaires ou des questions, vous avez le choix entre la section commentaire située juste en dessous ou mon e-mail dans le menu contacter de LogicielMac, ou encore le Forum.
Sinon bonne semaine, et à la prochaine fois !
Psycho
Une petite question... Lorsque je tape la commande "ls -l", j'ai bien la liste mentionnée plus haut, mais au lieu d'avoir admin, j'ai la mention "staff" alors que je suis aussi administrateur (non mais!). Est-grave docteur? Sinon, bravo pour cet article assez digeste qui m'a permis d'entrevoir les entrailles du système.