Terminal et ligne de commande

Dans la suite de ce cours, nous allons principalement nous intéresser au terminal. Le terminal (la fenêtre noire) est une application de notre environnement Linux qui nous permet d’interagir avec le système en ligne de commande, c’est-à-dire en saisissant des commandes au format texte pour obtenir des résultats de la part du système.

Par exemple, on peut demander au système d’afficher la liste des fichiers contenus dans un répertoire en utilisant la commande ls, et en réponse, le système va afficher la liste des fichiers dans le terminal (la fenêtre noire).

Il est très utile de savoir se servir des lignes de commandes pour de nombreuses raisons :

  • Pour une raison pédagogique : cela permet de mieux comprendre comment le système d’exploitation fonctionne.
  • Pour une raison pratique : parfois, on ne peut pas faire autrement que de passer par la ligne de commande pour exécuter certaines tâches
  • Pour une raison d’efficacité : quand on commence à savoir se servir de la ligne de commande, de nombreuses opérations sont beaucoup plus rapides à faire en ligne de commande que via des interfaces texte
  • Pour une raison de paresse : tout ce qui est faisable en ligne de commande peut être scripté, et donc est potentiellement reproductible sans effort
  • Pour une raison d’admin système : si vous êtes amenés à faire de l’administration système (gestion d’utilisateurs, gestion de fichiers, gestion de serveurs, etc.), il est indispensable de savoir se servir de la ligne de commande pour superviser ce qui se passe sur le système et écrire les nombreux scripts qui vous faciliteront la vie.
  • Parce que c’est cool...

La base de la ligne de commande, c’est la commande... nous allons donc en apprendre plus sur les commandes dans la suite.

Les commandes

Une commande est toujours de la forme commande [options] arguments.

Par exemple, ls -alh toto/ est la commande ls avec trois options (a, l et h), et un argument, qui est “toto”. Cette commande liste le contenu du répertoire toto sous forme de liste (option l), avec des valeurs human readable pour les tailles (option h) et en incluant les fichiers cachés (option a).

Comment lire le man ?

  • Tout ce qui est entre crochets est optionnel.
  • Tout ce qui est en gras doit être tapé tel quel.
  • Tout ce qui est souligné doit être remplacé par la valeur souhaitée (par exemple, un nom de fichier)

La commande man permet de visualiser le manuel d’une commande. Savoir lire un man demande un peu d’entraînement, donc vous avez intérêt à commencer dès maintenant.

Essayez par exemple de faire un man ls puis un man cp pour voir la façon dont sont rédigés et organisés les man.

Quelques conseils et remarques :

  • On peut chaîner plusieurs commandes sur la même ligne en les séparant par un ;.
  • On peut créer des alias pour écrire plus rapidement des commandes un peu longues. Cela s’appelle créer un alias.

Exemple de création d’alias

alias ll='ls -alh --color'

Maintenant, quand vous taperez ll, le système réagira comme si vous aviez tapé ls -alh --color.

Notez que vos alias n’ont de validité que dans la sessions courante de votre terminal. Si vous voulez que vos alias persistent, il faut les mettre dans votre fichier .bashrc, mais nous en reparlerons plus tard.

Liste des commandes à connaître :

D’ici la fin du module, vous devrez connaître un certain nombre de commandes. Pas de discrimination... les voici par ordre alphabétique.

Vous devez savoir ce que ces commandes font... mais vous n’êtes pas tenus de connaître toutes leurs options... il y a le man pour ça !

  • basename
  • cat
  • cd
  • cut
  • cp
  • date
  • dirname
  • du
  • echo
  • exit
  • find
  • grep
  • gzip
  • id
  • ls
  • man
  • mkdir
  • more
  • mv
  • pwd
  • rm
  • sort
  • tar
  • tee
  • touch
  • tr
  • tty
  • wc
  • which

Les méta-caractères, ou wild cards, ou encore jokers :

Vous devez également connaître et savoir utiliser les méta-caractères. Ces caractères sont utilisés pour remplacer un caractère ou un ensemble de caractères dans une chaîne... ils sont très utiles pour factoriser des opérations.

Par exemple, si vous voulez afficher uniquement les fichiers qui ont une extension en .pdf, il vous suffit de faire

ls *.pdf

Le caractère * est un caractère qui remplace n’importe quel caractère ou chaîne de caractères.

Voici les méta-caractères que vous devez connaître et utiliser :

  • * : n’importe quel chaîne de caractère
  • ? : n’importe quel caractère (unique)
  • [...] : les caractères entre crochets, définis par énumération ou par un intervalle
  • [^...] : n’importe quoi sauf les caractères ou les intervalles décrits.

Attention : il n’est pas possible de créer des fichiers avec des méta-caractères... ça n’aurait pas de sens. Les méta-caractères sont uniquement utilisés pour la recherche dans des fichiers existants.