La console, une introduction

Ah, la console ! Terrain de jeu pour certains, écran terrifiant pour d'autres, il devient chaque jour plus indispensable d'en connaître au moins les rudiments. Par John Long, bienfaiteur des designers.

“Un tutoriel pour les designers du web”

Par

Aaaah, la console... Autrefois le domaine réservé des diplômés en science informatique, elle est devenue aujourd'hui celui des hackers du web design.

Dans cette brève intro, nous allons faire le tour de la console sur Mac OSX, un petit guide rapide mais suffisant pour vous permettre de vous lancer.

Pour commencer : lancer le terminal

Dans Mac, l'application que vous utiliserez sur OSX s'appelle Terminal. Pour l'ouvrir, cliquez sur votre icône disque dur (souvent appelée “Macintosh HD”), elle se trouve dans les Applications, puis Utilitaires.

Applications/Utilitaires/Terminal

Voici une fenêtre Finder sur mon ordinateur, qui montre le chemin (en bas de la fenêtre) que j'ai utilisé pour arriver à Terminal (NdT: Lorsque vous aurez apprivoisé Terminal, le plus simple est d'intégrer Terminal à votre dock).

L'application Terminal dans le dossier

Figure 1 - L'application Terminal dans le dossier Utilitaires

Puis double-cliquez sur l'icône Terminal pour lancer l'application.

On se fait belle : les thèmes

La première fois que vous ouvrirez Terminal, vous verrez quelque chose d'assez... sobre. Si vous êtes designer, vous aurez sans doute envie de personnaliser l'apparence de la fenêtre principale.

Pour ce faire, cliquons sur Terminal dans la barre de menus (à côté de la pomme) puis sur Préférences.

Terminal → Préférences

On ouvre ainsi la fenêtre des réglages de Terminal. Sélectionnez l'onglet “Réglages”, voici ce que vous devriez voir :


La fenêtre des réglages de Terminal

Figure 2 - La fenêtre des réglages de Terminal

Sur la gauche, vous avez une liste de thèmes. Choisissez un thème et cliquez sur le bouton “Par Défaut” en bas de la liste pour en faire votre thème par défaut. Vous pouvez modifier un thème en utilisant les réglages situés sur la droite.

Les changements n'auront pas d'effet sur votre fenêtre Terminal en cours. Pour qu'ils soient effectifs, il vous faut fermer la fenêtre active et en ouvrir une nouvelle. Pour cela, il suffir d'aller sur Shell dans la barre de menus et de cliquer sur Nouvelle Fenêtre :

Shell → Nouvelle Fenêtre

Vous pouvez sélectionner un thème ou simplement cliquer Nouvelle Fenêtre qui ouvrira votre thème par défaut. Plus simple encore, faites ⌘ + N et une nouvelle fenêtre s'ouvre.

Amusez-vous un peu. Bidouillez votre thème jusqu'à trouver quelque chose qui vous plaise. Personnellement j'ai un faible pour le thème Pro. J'aime avoir une police lissée, à chasse fixe (Monaco) dans une grande taille (18px) et avec un fond sombre et à demi transparent (noir à 85% me va bien).

Et voici à quoi ressemble ma fenêtre Terminal :

Ma fenêtre Terminal

Figure 3 - Ma fenêtre Terminal


Oh simplicité, comme je t'aime

L'invite de commande (command prompt) d'OSX est ce qui s'affiche quand vous ouvrez la fenêtre Terminal : une invitation à lancer une commande. Cette fenêtre, la console, est l'endroit où vous pourrez taper des commandes, manipuler des fichiers, importer des programmes, lancer des programmes qui accomplissent des tâches complexes.

D'une certaine façon, l'invitation de commande est la plus simple des interfaces de votre ordinateur. Nous sommes habitués à des interfaces avec des fenêtres et des boutons, mais la console est une interface entièrement gérée par du texte. Tapez une commande, celle-ci est exécutée, et vous êtes invité à entrer une nouvelle commande.

Oui, c'est aussi simple que cela.

Écrire un programme pour la console est bien plus simple que d'écrire un programme comportant une interface graphique (des fenêtres et des boutons), tellement plus simple en fait que la plupart des programmes actuels sont écrits pour la console. Apprendre son utilisation vous ouvrira de nouveaux horizons, vous aurez accès à de nombreux programmes et technologies qui vous échappaient.

Vos désirs sont des ordres

La première chose que vous remarquerez dans la fenêtre Terminal, c'est l'invitation (prompt) elle-même. Sur mon ordinateur, ça donne ceci :

rhyddid:~ jlong$

L'invitation commence avec une série de mots et de symboles et se termine avec un symbole $.

Par défaut sur OSX le premier mot est le nom de votre ordinateur. Le mien s'appelle “rhyddid”, en gallois “Liberté”. Votre ordi a sans doute un autre nom - et au passage vous pouvez le modifier en cliquant sur le bouton “modifier” de Préférences système → Partage. ( NdT : ne changez JAMAIS le nom de votre ordi en modifiant le nom de son icône sur le bureau, vous vous exposeriez à de sérieux problèmes).

Dans l'invitation, après le nom de l'ordinateur on a deux points : , puis le répertoire de travail en cours. Le répertoire de travail (working directory) est le dossier dans lequel les commandes que vous entrez doivent être exécutées (le mot répertoire est le jargon des programmeurs pour dire dossier). À tout moment vous pouvez demander à voir le chemin complet du répertoire de travail en cours, en tapant :

pwd

Puis appuyez sur la touche enter. L'abréviation pwd signifie “Print Working Directory” (imprimer le répertoire de travail). Si vous tapez cette commande maintenant, vous verrez quelque chose comme ça :

/Users/jlong

...qui est en fait le chemin complet vers votre dossier “home” (la petite maison quand vous regardez le contenu de votre disque dur). Par défaut, lorsque vous ouvrez une nouvelle fenêtre Terminal sur OSX le répertoire de travail sera votre dossier home. Son abréviation sur l'invitation de commande est le caractère tilde (~), c'est pourquoi il apparaît devant votre nom.

Le dernier mot qui apparaît est le nom de l'utilisateur. Il est suivi du symbole $ qui marque (avec le curseur clignotant) le début de l'invitation.

Et maintenant, passons en revue quelques commandes de base.

Lister des fichiers

Vous pouvez voir la liste des fichiers présents dans votre répertoire courant en utilisant la commande ls. Faites l'essai. Tapez :

ls

puis appuyez sur enter, vous devriez voir quelque chose comme ça :

Applications/         Movies/
Desktop/              Music/
Documents/            Pictures/
Downloads/            Sites/
Hello World.doc
Library/

Pensez à ls comme une abréviation de liste. Ou : lister les fichiers dans le dossier actuel. Les dossiers sont affichés avec un / , les fichiers sont affichés avec leur nom complet suivi de leur extension ("Hello World.doc").

Se déplacer

Vous pouvez changer de répertoire de travail en utilisant la commande cd , qui signifie “Change Directory” (changer de dossier). Faisons l'essai :

cd Documents

La commande cd accepte un “argument”. Un argument est une chaîne de caractères sur lequel la commande va agir. Dans notre cas, nous passons le nom du nouveau répertoire de travail dans la commande cd.

Utilisons à nouveau notre commande pwd pour vérifier que ça a bien marché :

pwd

...et nous aurons un résultat similaire à celui-ci :

/Users/jlong/Documents

Super ! Nous commençons à nous déplacer. C'est exactement comme de double-cliquer sur un dossier dans le Finder. Remarquez aussi que l'invitation a changé :

rhyddid:Documents jlong$

Elle montre le dossier dans lequel nous travaillons actuellement : Documents.

Retour à la maison

Pour revenir à notre répertoire “home”, nous pouvons taper :

cd ~

Vous vous rappelez que nous avons dit que le tilde était un raccourci pour le répertoire “home” ? Et maintenant si vous tapez pwd vous devriez avoir :

/Users/jlong

Remonter d'un cran

Un autre raccourci utile quand on navigue entre les dossiers est .. . Il vous permet de remonter au dossier qui contient celui où vous vous trouvez. Où que vous soyez dans le système de fichiers, .. renvoie au dossier contenant.

Par exemple, si vous êtes dans le répertoire “home” :

cd ~

le répertoire en cours est :

/Users/jlong

et si vous tapez :

cd ..

puis :

pwd

vous verrez :

/Users

Remarque : quand vous utilisez cd, n'oubliez pas l'espace entre cd et l'argument !

Chemins absolus et relatifs

Vous pouvez aussi utiliser un chemin complet dans la commande cd . Par exemple en tapant :

cd /Applications/Utilities

ce qui changera le répertoire en cours, qui devient Applications → Utilitaires.

Il ne vous a pas échappé que les dossiers sont séparés par un / dans un chemin, un peu comme dans une URL. Pour nous rendre au répertoire racine de notre ordinateur, il suffit de taper :

cd /

Le répertoire racine est situé au sommet, c'est le dossier des dossiers.

Les chemins qui commencent avec un / sont des chemins absolus, ils sont relatifs au répertoire racine. Tous les autres chemins sont supposés être relatifs au répertoire de travail en cours.

C'est vrai dans tous les cas, sauf un. Si vous commencez un chemin avec un tilde (~), il est relatif au répertoire “home”.

Redescendre

Si vous devez revenir à un répertoire dans lequel vous vous trouviez précédemment, il existe un raccourci. Si vous passez un tiret haut (-) comme argument à la commande cd cela revient à taper le bouton (ou la flèche) Retour dans un navigateur.

Si vous êtes dans votre répertoire Documents :

cd ~/Documents

et que vous passez au répertoire Applications :

cd /Applications

vous pouvez revenir au répertoire Documents en faisant :

cd -

La commande pwd vous montrera que nous sommes bien sur

/Users/jlong/Documents

Et petit raffinement : le - se réfère toujours au répertoire de travail précédent, donc si nous tapons à nouveau :

cd -

la commande pwd nous montrera que nous somme revenus à :

/Applications

Utiliser la tabulation

À première vue, vous pourriez vous dire que qu'il va falloir beaucoup écrire, mais voici encore une astuce qui va nous être bien utile, la complétion automatique avec la touche tabulation !

Les invitations de commande modernes nous permettent de taper les premières lettres d'un nom de fichier ou de dossier, puis d'appuyer sur la touche tabulation pour le compléter.

Par exemple, si vous êtes dans votre répertoire “home” :

cd ~

et que vous tapez :

cd Doc

et appuyez sur la touche tabulation, il sera automatiquement complété en :

cd Documents

Pas mal, hein ?

Que se passe-t-il s'il y a plusieurs possibilités pour la complétion automatique ? Vous devriez entendre un bip quand vous appuyez sur tabulation pour la première fois. Si vous appuyez à nouveau, vous obtiendrez la liste des complétions possibles.

Si vous tapez par exemple :

cd Do

et que vous appuyez deux fois sur la touche tabulation, vous obtiendrez :

Documents/ Downloads/

Vous pouvez alors ajouter un c pour préciser la recherche, puisqu'il n'y a qu'un seul dossier commençant par “doc”, et appuyer sur tabulation à nouveau.

Mais la complétion ne se limite pas aux noms de fichiers et de dossiers, vous pouvez l'utiliser aussi pour les commandes.

Par exemple, si vous tapez :

who

suivi de deux tabulations, vous obtiendrez :

who     whoami  whois

parce qu'il y a trois commandes qui commencent par “who” : who , whoami , et whois .

C'est utile lorsque vous avez oublié le nom exact d'une obscure commande.

Obtenir de l'aide

Il existe plusieurs façons d'obtenir de l'aide au sujet d'une commande spécifique. La première est de passer le flag help. Un flag (drapeau) est un argument spécial qui indique au programme ou à la commande qu'il faut faire quelque chose. Pour la plupart des programmes, le flag help est soit -h-, --h, ou juste help. Quelques programmes, comme la commande gem, sont compatibles avec les trois flags, certains n'en acceptent qu'un, et d'autres ne donnent aucune aide du tout. Il faut parfois procéder à tâtons pour savoir ce qu'il en est.

Si vous avez besoin d'aide dans une commande gem, vous pouvez taper :

gem --help

Cela affichera un message d'aide qui inclura une description et des informations sur l'utilisation du programme :

Aide de la commande gem

Figure 4 - Aide de la commande gem

Si un programme ne répond à aucun des trois flags d'aide, vous pouvez parfois obtenir du soutien en tapant la commande man . En fait, cette commande vous fournira une documentation beaucoup plus complète qu'un flag help, man est une sorte de manuel numérique pour votre ordinateur. Pour l'utiliser, il suffit de passer le nom de la commande pour laquelle vous avez besoin d'aide, par exemple :

man mkdir

ouvrira la page du manuel relative à la commande mkdir (qui vous permet de créer un nouveau dossier).

Il y a encore d'autres commandes pour obtenir de l'aide, dont info et apropos, mais je vous laisse utiliser man pour en savoir plus.

Commandes supplémentaires

OSX comporte des centaines de commandes et de programmes qui fonctionnent avec la console, bien trop pour cette petite introduction. Voici une liste de commandes que j'utilise au quotidien :

cat : affiche le contenu d'un ou plusieurs fichiers.

mkdir : Crée un nouveau répertoire (dossier), make directory.

mkdir photos

crée un dossier “photos” dans le répertoire en cours.

Si vous voulez créer ce dossier dans un chemin précis, il faut utiliser le flag -p qui indique qu'il faut créer aussi les dossiers parents :

mkdir -p docs/notes/console/part1/photos

Si vous voulez créer un dossier sur votre bureau, il peut être plus pratique de se placer d'abord sur le bureau en faisant :

cd desktop

...puis de créer votre dossier à l'aide de mkdir.

open : Ouvre un fichier avec le programme qui lui est associé, un dossier avec Finder, une URL avec le navigateur par défaut.

ps : Liste tous les process en cours, utile pour savoir si un programme fonctionne en arrière-plan.

kill : met fin à un process en cours. Passez l'ID du process auquel vous voulez mettre fin, cet ID se trouve dans la première colonne des résultats affichés par la commande précédente (ps).

NdT: cette procédure comporte certains risques, notamment si vous vous trompez dans l'ID. Le plus simple, et sans aucun risque, est de faire ctrl + C. Il arrivera parfois que vous soyez perdu devant une fenêtre qui semble bloquée, et que vous ne sachiez pas comment en sortir. Ctrl + C résoudra en général le problème.

rm : efface définitivement un fichier. Soyez prudent avec cette commande, les fichiers éliminés ne sont pas mis à la corbeille, ils sont effacés définitivement.

rm hi.txt

rmdir : efface un dossier. Là encore, prudence, prudence. Les répertoires effacés ne vont pas à la poubelle, ils sont définitivement supprimés sans étape intermédiaire.

rmdir docs

ou :

rm -r docs

( NdT : suivent quelques commandes supplémentaires qui complètent bien l'article de John Long)

cd ~/desktop : souvent, lorsque vous créerez un dossier ce sera pour l'avoir sous la main et visible sur votre bureau. Dans le langage de votre ordinateur, le bureau s'appelle “desktop”. Si vous voulez créer votre répertoire de travail sur le bureau, positionnez-vous sur le desktop avec cd ~/desktop, vous vous retrouverez ici :

rhyddid:desktop jlong$

cd ../.. : Pour remonter au dossier “contenant” vous faites cd .., et pour remonter encore dans l'arborescence, il suffit d'ajouter /.. autant de fois que vous voulez remonter.

cd ../../..

cd : Pour revenir instantanément à la maison (“home”), tapez simplement cd.

ls : la commande “liste” peut être précisée :

Il est possible de lister les fichiers avec plus de détails en faisant ls -l ou ll (liste longue).

Pour lister tous les fichiers, y compris les fichiers cachés, utiliser ls -a (list all).

Pour lister les fichiers compris dans un dossier en particulier, utiliser ls nomdudossier.

Pour obtenir une liste longue des fichiers compris dans un dossier, utiliser ls -l nomdudossier ou ll nomdudossier.

mv : déplace ou renomme un fichier ou un dossier.

Pour renommer un fichier :

mv hello.txt hi.txt

le fichier hello.txt s'appelle maintenant hi.txt.

Pour déplacer un fichier :

mv hi.txt doc/

Le fichier est déplacé de son emplacement actuel vers le dossier “doc”.

Pour revenir en arrière :

mv doc/hi.txt .

Le fichier revient au répertoire de travail en cours.

Pour déplacer et renommer en même temps :

mv hi.txt doc/hello.txt

Déplace hi.txt vers le dossier “doc” et le renomme hello.txt.

Les dossiers peuvent également être déplacés (avec leur contenu) et/ou renommés.

cp : copie un fichier.

cp hello.txt hi.txt

crée une copie du fichier hello.txt dans le même dossier, nommée hi.txt, et laisse l'original inchangé.

Pour copier un fichier dans un autre dossier :

cp hello.txt docs

cp -r : copie un répertoire (dossier).

cp -r documents docs

crée une copie du dossier documents dans le dossier docs

touch : crée un fichier vide.

echo : pour ajouter du code dans votre fichier, exemple d'utilisation :

~$ mkdir mysite
~$ cd mysite
~/mysite$ echo "<title>All About Cats</title>" > index.html
~/mysite$ echo "<center>Cats are cute.</center>" >> index.html
~/mysite$ open index.html 

Remarquez la différence entre les deux lignes echo, la première avec une >, la seconde avec deux >>. Cette dernière insère une ligne supplémentaire alors que la première insère une ligne unique (faites l'essai en insérant une nouvelle ligne de code avec >).

(Ce code est extrait de l'article de Nick Farina, Git is simpler than you think)

Remarque : vous pouvez réunir les lignes en une seule, par exemple :

~$ mkdir mysite && cd mysite

synthétise les deux premières lignes.

find : trouve tous les fichiers à l'intérieur d'un dossier.

find docs -name *.txt

trouve tous les fichiers de format .txt à l'intérieur du dossier docs

grep : affiche toutes les occurrences d'un texte à l'intérieur d'un fichier.

grep "cool" hello.txt

Pour éviter les problèmes de majuscules, ajouter -i : il trouvera "cool" et "Cool".

grep -rl "cool" docs

Trouve tous les fichiers contenant le texte "cool" à l'intérieur d'un dossier docs.

ls | grep ".txt"

Liste le contenu du dossier en cours et affiche les fichiers de format .txt

Le caractère pipe | signifie : “utiliser le résultat de la commande de gauche comme input pour la commande de droite”.

clear : la fenêtre de votre console sera parfois très encombrée à la suite de nombreuses commandes ou de longs résultats de téléchargement, pour la nettoyer, tapez clear et vous aurez un écran propre. Si vous voulez revoir l'antérieur, il vous suffit de scroller, rien n'a été effacé.

Flèches up & down : vous taperez souvent les mêmes commandes. Plutôt que d'avoir à les retaper manuellement, il est plus simple d'utiliser les flècles vers le haut ou vers le bas. La flèche vers le haut fait apparaître la dernière commande utilisée. Tapez flèche vers le haut pour retrouver l'avant-dernière, etc. et vers le bas pour redescendre aux plus récentes.

Modifier une commande : si vous avez tapé une ligne de commande et que vous apercevez une erreur, il n'est pas possible de placer votre curseur comme vous le feriez normalement dans un logiciel de traitement de texte. Vous devez revenir en arrière avec la flèche vers la gauche jusqu'au(x) caractère(s) que vous souhaitez modifier. Une fois corrigé, pas besoin de revenir à la fin de la ligne, tapez enter et c'est bon.

Pour vous faciliter la vie, il existe des raccourcis :

Ctrl + A positionne le curseur au début de la ligne de commande
Ctrl + E le positionne à la fin de la ligne de commande
Ctrl + K efface tout ce qui suit l'endroit où est positionné le curseur
Ctrl + U efface tout ce qui précède l'endroit où est positionné le curseur
Ctrl + L efface l'écran (même chose que clear)
Ctrl + C annule une commande

Mots de passe : on vous demandera peut-être votre mot de passe pour effectuer une opération. Le mot de passe à entrer est celui que vous utilisez lorsque vous téléchargez un programme par exemple. Lorsque vous l'écrirez, vous ne verrez rien s'afficher, c'est normal, c'est une sécurité.


Conclusion

Bravo à vous si vous êtes arrivé jusqu'ici ! J'espère que vous avez eu le temps d'ouvrir la console et de suivre les exercices tout en avançant dans l'article. Je vous encourage à expérimenter la console par vous-même et à utiliser man lorsque vous avez besoin d'aide.

J'espère que vous avez apprécié cette brève introduction à la console OSX. Vous en savez maintenant assez pour être capable d'installer sans trembler Sass, Grunt ou tout autre programme qui vous aura amené jusqu'à cet article.

La console vous ouvre un univers de possibilités nouvelles. À vous de jouer !


Intéressé par les outils de développement ? Sur la Cascade, retrouvez des articles et ressources.


original paru dans le blog de Wiseheartdesign.

Sur l'auteur : est designer, spécialiste de Sass, Compass, Rails. Il écrit sur Sass et Compass dans The Sass Way. Il est le créateur de Radient-CMS et de Serve. On peut le suivre sur Twitter.

Traduit avec l'aimable permission de Wiseheart Design et de l'auteur.
Copyright Wiseheart Design © 2013.