Commandes de base



--Téléchargez Commandes de base en PDF --


Tour d’horizon du système

Avant de passer aux premières commandes, il est intéressant de parler du fonctionnement interne de Linux. En effet, un système Linux gère les fichiers et l’arborescence des dossiers de manière totalement différente d’un Windows.

Le FHS (Filesystem Hierarchy Standard) est une convention qui organise l’arborescence des répertoires sous Linux. Grâce à cette convention, lors de l’installation d’un logiciel, les fichiers se placent dans les bons répertoires, quelle que soit la distribution Linux utilisée.

Le principe de base du FHS est que tout est fichier. Que se soit un fichier, une imprimante ou encore le disque dur, le FHS le considère comme un fichier dans lequel on va écrire.

L’arborescence

Avec Windows, nous sommes habitués à avoir des lecteurs nommés (C:\, D:\ …) qui disposent chacun de leur propre hiérarchie. Sous Linux, tout part d’un dossier nommé root et qui est représenté par le slash /. Cette arborescence permet aussi d’utiliser un ou plusieurs disques dur de façon transparente. Nous trouverons dans root les dossiers élémentaires du système.

Répertoire Contenu
/bin Les exécutables binaires vitaux pour l’utilisateur
/boot Les fichiers relatifs au démarrage du système.
/dev Les périphériques
/etc Les fichiers de configuration et des fichiers nécessaires au démarrage (rc scripts)
/home Les répertoires personnels de chaque utilisateur
/lib Les bibliothèques partagées et les modules du noyau (dans /lib/modules)
/mnt Les dossiers pour les points de montage temporaires
/proc Accès direct aux paramètres du noyau (donc, on ne touche pas!)
/root Répertoire personnel du super-utilisateur, root
/sbin Les exécutables binaires vitaux pour le super-utilisateur
/tmp Dossiers et fichiers temporaires, vidé à chaque démarrage.
/usr User Systeme Resources, tout ce qui n’est pas vital au système.
/var Les fichiers qui changent fréquemment, comme les fichiers log.

Dans les répertoires intéressant, notons /usr qui reprend une partie des répertoires présents dans /. On y trouvera les fichiers relatifs aux programmes tiers, comme le navigateur web ou les lecteurs multimédias.

Dans /var, nous trouverons des fichiers dont le contenu va changer fréquemment et sans intervention directe de l’utilisateur.

Enfin, /home contiendra le dossier personnel de chaque utilisateur.

Chemins relatifs et absolus

Le système de fichier le Linux est une représentation virtuelle de tout le système, y compris le matériel. Tous les répertoires sont liés à / . Nous pouvons naviguer au sein de cette hiérarchie pour accéder à toutes les ressources. Pour se déplacer dans cette arborescence, il va falloir d’abord expliquer le concept de chemins relatifs et absolus.

Chemin absolu

Le chemin absolu d’un fichier ou d’un dossier est son emplacement à partir de la racine. Chaque niveau sera séparé du slash (/).

Chemin relatif

Le chemin relatif est le parcours à effectuer depuis l’endroit où l’on se trouve. Le niveau actuel est symbolisé par un point (.). Si on souhaite remonter d’un niveau, on utilisera le symbole ..

Notez aussi le symbole ~, qui symbolise le répertoire utilisateur (/home/xxx)

Nous verrons comment se déplacer à travers l’arborescence plus tard.

Premières commandes

À sa conception, Unix devait fonctionner en mode texte, sans interface graphique pour assurer la relation entre l’utilisateur et le système. Bien qu’aujourd’hui de nombreuses interfaces ont vu le jour, le terminal reste un outil de configuration puissant et universel.

Le terminal

Dans la leçon précédente, nous avons installé un Ubuntu en mode minimal, sans interface graphique. Vous ne serez donc pas surpris qu’au démarrage de la machine virtuelle, vous soyez devant un écran noir avec juste écrit ubuntu login : _. C’est le terminal. Si vous avez installé une interface graphique, vous trouverez le terminal dans le menu de gestion des programmes. La CLI (Command Line Interface) est une interface permettant d’accéder au système.

Concrètement, le shell lit les commandes que lutilisateur introduit, ensuite il les interprète, les exécute, accède si nécessaire à d’autres fichiers ou programmes, et fournit un résultat.

Le shell est également un langage de programmation qui permet des exécutions conditionnelles et des facilités de contrôle.

Pour les shells Linux, certains caractères ont un sens particulier (caractères spéciaux)

Caractères

Significations

*

correspond à zéro ou plusieurs caractères quelconques

?

correspond à un caractère quelconque

[ ou ]

correspond à une plage de caractères

Par défaut, le shell utilisateur sur un system linux est BASH (Bourne Again SHell) lancé par la commande /bin/bash.

Syntaxe des commandes Linux

Les commandes ont des options qui modifient leur comportement. Ces options sont généralement non obligatoires et peuvent parfois recevoir des arguments.

commande  [-option] [argument1 | arguments2]

Les commandes

Une commande représente un nom de fichier exécutable ;

  • doit avoir entre 2 et 9 caractères ;
  • doit uniquement être composée de lettres minuscules et/ou chiffres.

Exemple de commandes simples : date, exit, who

Les options

  • toute option doit être précédée du signe « – » ;
  • une option est constituée d’un seul caractère (minuscule ou majuscule) ;
  • l’ordre n’a pas d’importance ;
  • les options sans paramètre peuvent être regroupées après un « – » unique ;
  • une option peut avoir un ou plusieurs paramètres ;
  • un paramètre d’option suit celle-ci séparé d’un espace ;
  • si une option possède plusieurs paramètres, ceux-ci doivent être séparés par une virgule ou regroupés entre guillemets et séparés par des espaces.

Les arguments

  • représentent souvent un nom de fichier ou un chemin d’accès à un fichier ou une entrée standard ;
  • L’ordre relatif des arguments peut affecter leur rôle ou leur importance selon des façons déterminées par la commande avec laquelle ils sont associés ;
  • « – » précédé et suivi d’un espace ne doit être utilisé que pour désigner l’entrée standard ;

Code de retour

Chaque commande fournit un code (1 byte) de retour (exit status) traduisant l’état de l’opération :

  •        0 si tout s’est bien passé
  • 0 pour indiquer une anomalie (paramètre incorrect ou inaccessible, etc.)

Passons enfin à nos premières commandes !

man, le manuel d’aide

Commençons par une commande qui va vous aider dans plusieurs situations. La commande man permet d’afficher l’aide sur une commande.

Tapez la commande man man  .

Vous venez de demander l’aide à propos de la commande man, c’est-à-dire de l’aide ! Ayez le réflexe d’utiliser man pour connaître les paramètres et autres options de la commande à taper.

Pour appeler la page d’aide d’une commande, il faut donc taper man commande.

Comme le montre le manuel, les différents manuels sont classés en différentes sections :

  1. Les commandes utilisateurs.
  2. Les appels systèmes et les numéros d’erreurs.
  3. Les fonctions des bibliothèques C.
  4. Les pilotes de périphériques.
  5. Les formats de fichiers.
  6. Les jeux et autres divertissements.
  7. Informations diverses.
  8. Les commandes de maintenance et d’utilisation du système.
  9. Les informations de développement du noyau.

Comme vous l’aurez constaté si vous avez testé la commande man man, le manuel est plutôt verbeux. Il existe une aide simplifiée, tout aussi utile : pour la plupart des commandes, il faut ajouter après la commande –help. Ex : <strong>man</strong> --help

who

La commande <strong>who</strong> indique qui travaille actuellement sur la machine (n’oubliez pas que Linux est multi-utilisateurs!).

who am i

who am i  (ou  whoami) est une commande qui donne des informations personnelles. whoami affiche uniquement votre login tandis que la version longue donne l’heure de connexion.

date

La commande date , comme son nom l’indique, donne la date… mais aussi l’heure !

echo

La commande echo  a pour seul but d’afficher à l’écran ce qu’elle reçoit en paramètre. Très utile pour les scripts !

ls

La commande <strong>ls</strong> est une commande permettant de lister le contenu d’un dossier. Il est fréquent d’associer à la commande ls les paramètres -a (pour tout lister), -l (pour les détails). Ex : <strong>ls</strong> <strong>-al</strong>

En passant en paramètre un chemin, permet de lister les répertoires et fichiers du chemin passé, sans devoir changer de dossier.

cat, tac

La commande <strong>cat</strong> affiche le contenu d’un fichier passé en paramètre. Ex : <strong>cat</strong> /etc/fuse.conf . Dans certains cas, notamment pour la lecture des fichiers journaux, il serait intéressant de pouvoir le lire à l’envers. Inversez la commande cat et observez : <strong>tac</strong> /etc/fuse.conf 

tail, head

Ces deux commandes sont similaires à cat , mais n’affichent que le nombre de lignes demandé en paramètre. Soit les n premières avec head , soit les n dernières avec tail .

Ex : <strong> tail -n5</strong> /var/log/syslog affichera les 5 dernières lignes du syslog, tandis que <strong>head -n5</strong> /var/log/syslog  en affichera les 5 premières.

wc

Autant éviter le mauvais jeu de mots tout de suite, cette commande est l’abbréviation de word count. Elle compte le nombre de lignes, de mots et de caractères dans le fichier passé en paramètre.

Ex : <strong>wc</strong> /etc/fuse.conf

clear

Efface l’écran.

history

affiche l’historique des commandes tapées précédemment.

cd

La commande Change Directory (cd) permet de se déplacer dans les dossiers. Il demande un chemin en paramètre.

cp, mv

Ces deux commandes, similaire dans leur fonctionnement, sont les commandes de copies (copy) et de déplacement (move). Toutes deux demandent en paramètre deux chemins : le chemin de la source et de la cible. Notez que si vous avez des chemins avec des espaces, il faudra les englober par des guillemets « ».

Ex : <strong>cp</strong> /var/log/syslog sys  va copier le fichier syslog dans le répertoire courant sous le nom sys.

Ex : <strong>mv</strong> /var/log/syslog sys2  va déplacer le fichier syslog dans le répertoire courant sous le nom sys2.

mkdir

Signifie make directory, cette commande demande le chemin du dossier à créer : <strong>mkdir</strong> /tmp/toto  va créer le dossier toto dans le répertoire tmp.

touch

Cette commande crée un fichier vide à l’endroit indiqué en paramètre. Vous pouvez passer plusieurs chemins successivement.

Ex : <strong>touch</strong> /tmp/toto/bump.txt /tmp/toto/other.txt  va créer deux fichiers.

rm

Signifie remove, elle permet de supprimer le fichier ou dossier en paramètre. Attention, rm ne supprimera pas de dossier s’il n’est pas vide, à moins d’y affecter les options -r.

Ex : <strong>rm</strong> /tmp/toto/bump.txt  supprime le fichier bump.txt.

Ex : <strong>rm</strong> /tmp/toto  ne fonctionnera pas s’il y a d’autres fichiers dans le dossier. Par contre, <strong>rm</strong> -r /tmp/toto  le fera.

Exercices

Pour tous ces exercices, n’oubliez pas man !

  1. Comment afficher l’heure de démarrage du système ?
  2. Comment connaître l’heure de création du fichier /bin/ln ?
  3. liste en ordre alphabétique des fichiers dans bin.
  4. Idem mais trié en ordre croissant sur la taille.
  5. Idem mais liste du type humain (ko Mo Go).
  6. Afficher le nombre de lignes du fichier /etc/passwd.
  7. Afficher le nombre de mots du même fichier.
  8. Créer un dossier « exercice » dans votre répertoire personnel.
    1. Dans ce dossier, créez un fichier vide nommé tempo.txt.
    2. Renommez-le temp2.txt.
    3. créer une copie de ce fichier sous le nom temp3.txt.
    4. Supprimez temp2.txt.
  9. Afficher les 30 derniers caractères du syslog.