Sites


Introduction à la ligne de commande

CommandLineIntro: BeginningSyntax

Les différentes parties d'une commande

Le premier mot que vous allez taper est (le nom de) la commande que vous désirez exécuter. Dans la section "Mise en route" nous avons vu un appel à la commande date, qui retourne la date et l'heure courante.

Les arguments

Une autre commande que nous pourrions utiliser est echo, qui affiche l'information qui lui est donnée.  Elle ne serait pas bien utile si nous ne lui passons pas d'information à afficher. Heureusement, nous pouvons communiquer de l'information supplémentaire à une commande afin de modifier son comportement; cette information consiste en les arguments . Par chance, la commande echo n'entrera pas dans une longue discussion; elle répète simplement ce que lui demandons :

$ echo foo
foo

Dans ce cas, l'argument est foo, mais il n'y a pas de raison de limiter le nombre d'arguments à un. Tous les mots entrés, à l'exception du premier, seront considérés comme des arguments passés à la commande. Si nous voulons qu'echo nous réponde avec plusieurs mots,  par exemple foo bar, nous pouvons lui passer plusieurs arguments:

$ echo foo bar
foo bar

Les arguments sont habituellement séparés par des blancs  (espaces et tabulations -- ce qui apparaît blanc sur du papier).  Le nombre d'espaces que vous tapez n'importe pas, aussi longtemps qu'il y en a au moins un. Par exemple, si vous tapez :

$ echo foo              bar
foo bar

avec beaucoup d'espaces entre les deux arguments, les espaces "supplémentaires" sont ignorés, et le résultat affiche les deux arguments séparés par un unique espace.  Pour indiquer à la ligne de commande que les espaces font partie d'un argument, il faut d'une manière ou d'une autre délimiter cet argument. Une manière de faire est de mettre l'entièreté du contenu de l'argument entre guillemets (doubles guillemets américains (")) :

$ echo "foo              bar"
foo              bar
Nous verrons plus tard qu'il y a plusieurs manières de grouper du texte, et que ces différentes manières peuvent (ou pas) donner des résultats différents, en fonction de la manière dont le texte est groupé.

Options

Revisitons la commande date et supposons qu'en fait on voulons récupérer le temps et la date UTC.  Pour ce faire, date fournit l'option --utc.  Notez les deux tirets au début de l'option.  Ils indiquent les arguments qu'une commande vérifie lorsqu'elle est lancée et qui contrôle son comportement.  La commande date vérifie si l'option --utc est spécifiée et dit, "Bien, je sais maintenant que vous me demandez le temps UTC".  C'est différent des arguments que nous avons inventés, comme par exemple les arguments foo bar.

À l'exception des deux tirets au début du mot, --utc est introduit comme un argument :

$ date --utc
Tue Mar 24 18:12:44 UTC 2009

Habituellement, il est possible de raccourcir les options par exemple date -u (la version plus courte n'a souvent qu'un seul tiret).  Les options courtes se tapent plus rapidement (utilisez les lorsque vous tapez les commandes à la ligne de commande), alors que les options longues sont plus faciles à lire (utilisez les dans vos scripts).

Imaginons maintenant que vous vouliez connaître la date d'hier au lieu de celle d'aujourd'hui. Pour y arriver nous utiliserions l'argument --date (ou -d en raccourcis), qui prend un argument supplémentaire. L'argument d'une option est simplement le mot qui suit cette option. Dans le cas qui nous occupe, la commande serait date --date yesterday.

Comme les options sont juste des arguments, vous pouvez les combiner pour obtenir des comportements plus évolués.  Par exemple, pour combiner les deux options précédentes et obtenir la date UTC d'hier, vous taperiez :

$ date --date yesterday -u
Mon Mar 23 18:16:58 UTC 2009

Comme vous le voyez, certaines options s'attendent à être suivies par un argument (-d, --date) et d'autres ne prennent pas d'argument (-u, --utc).  Passer un argument un peu plus complexe à l'option --date permet d'obtenir des informations intéressantes, par exemple savoir si cette année est une année bissextile (dans ce cas le dernier jour de février est le 29).  Vous devez savoir le jour qui précède directement le 1ier Mars :

$ date --date "1march yesterday" -u
Sat Feb 28 00:00:00 UTC 2009
La question posée à date est : si aujourd'hui nous sommes le premier mars de cette année, quelle est la date d'hier?  Eh non, 2009 n'est pas une année bissextile.  Il peut aussi être utile de connaître le jour de la semaine d'une date donnée, disons la veille du nouvel an 2009 :
$ date -d 31dec +%A
Thursday

qui est équivalent à :

$ date --date 31december2009 +%A
Thursday

Dans ce dernier cas nous avons passé à la commande date l'option -d (--date) suivie de la date de la veille du nouvel an, et puis d'un argument spécial (qui est spécifique à la commande date). ⁞ Les commandes peuvent parfois avoir des arguments étranges et ésotériques...  La commande date peut recevoir un argument spécifiant un format, cet argument débute avec un plus (+).  Le format %A demande d'imprimer le nom du jour de la semaine de la date donnée (alors que %a aurait imprimé l'abréviation du nom du jour de la semaine : essayez le!).  Pour l'instant ne vous inquiétez pas pour ces détails hermétiques : nous verrons comment obtenir de l'aide de la ligne de commande pour apprendre les détails des commandes.  Présentons cependant un exemple avancé qui combine les commandes echo et date :

$ echo "This New Year's Eve falls on a $( date -d 31dec +%A )"
This New Year's Eve falls on a Thursday

Répétition et édition des commandes

Utilisez la touche Flèche-haute pour retrouver une commande que vous avez exécutée plus tôt.  Vous pouvez vous déplacer vers le haut ou vers le bas dans les commandes issues précédemment avec les touches flèches.  Les touches Flèche-gauche et Flèche-droite permettent de se déplacer dans une commande donnée.  Combinées avec la touche Retour-arrière, ces touches vous permettent de modifier des parties de la commande et de la changer en une nouvelle commande.  À chaque pression de la touche Enter, vous soumettez la commande modifiée au terminal qui l'exécute comme si vous l'aviez entièrement taper à partir d'une ligne blanche.

Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.

Vous devriez rafraîchir la page.