Linux Professional Institute Learning Logo.
Passer au contenu principal
  • Accueil
    • Toutes les ressources
    • Supports de Cours LPI
    • Devenez contributeur
    • Publishing Partners
    • Devenez Partenaire de Publication
    • À propos
    • FAQ
    • Contributeurs
    • Feuille de route
    • Contactez-nous
  • LPI.org
103.1 Leçon 1
Thème 101 : Architecture système
101.1 Détermination et configuration des paramètres du matériel
  • 101.1 Leçon 1
101.2 Démarrage du système
  • 101.2 Leçon 1
101.3 Change runlevels / boot targets and shutdown or reboot system
  • 101.3 Leçon 1
Thème 102 : Installation de Linux et gestion de paquetages
102.1 Conception du schéma de partitionnement
  • 102.1 Leçon 1
102.2 Installation d'un gestionnaire d'amorçage
  • 102.2 Leçon 1
102.3 Gestion des bibliothèques partagées
  • 102.3 Leçon 1
102.4 Utilisation du gestionnaire de paquetage Debian
  • 102.4 Leçon 1
102.5 Utilisation des gestionnaires de paquetage RPM et YUM
  • 102.5 Leçon 1
102.6 Linux en tant que système virtuel hébergé
  • 102.6 Leçon 1
Thème 103 : Commandes GNU et Unix
103.1 Travail en ligne de commande
  • 103.1 Leçon 1
  • 103.1 Leçon 2
103.2 Traitement de flux de type texte avec des filtres
  • 103.2 Leçon 1
103.3 Gestion élémentaire des fichiers
  • 103.3 Leçon 1
  • 103.3 Leçon 2
103.4 Utilisation des flux, des tubes et des redirections
  • Prochainement...
103.5 Création, contrôle et interruption des processus
  • Prochainement...
103.6 Modification des priorités des processus
  • Prochainement...
103.7 Recherche dans des fichiers texte avec les expressions rationnelles
  • Prochainement...
103.8 Édition de fichier simple
  • Prochainement...
Thème 104 : Disques, systèmes de fichiers Linux , arborescence de fichiers standard (FHS)
104.1 Création des partitions et des systèmes de fichiers
  • Prochainement...
104.2 Maintenance de l'intégrité des systèmes de fichiers
  • Prochainement...
104.3 Montage et démontage des systèmes de fichiers
  • Prochainement...
104.5 Gestion des permissions et de la propriété sur les fichiers
  • Prochainement...
104.6 Création et modification des liens physiques et symboliques sur les fichiers
  • Prochainement...
104.7 Recherche de fichiers et placement des fichiers aux endroits adéquats
  • Prochainement...
How to get certified
  1. Thème 103 : Commandes GNU et Unix
  2. 103.1 Travail en ligne de commande
  3. 103.1 Leçon 1

103.1 Leçon 1

Certification :

LPIC-1

Version :

5.0

Thème :

103 Commandes GNU et Unix

Objectif :

103.1 Travailler en ligne de commande

Leçon :

1 sur 2

Introduction

Les débutants dans le monde de l’administration Linux et du shell Bash se sentent souvent un peu perdus sans le confort rassurant d’une interface graphique. Ils ont l’habitude de pouvoir accéder par un clic droit aux repères visuels et aux informations contextuelles que les gestionnaires de fichiers graphiques mettent à leur disposition. Il est donc important d’apprendre et de maîtriser l’ensemble relativement restreint d’outils en ligne de commande qui vous permettent d’accéder rapidement à toutes les données disponibles dans votre ancienne interface graphique - et bien plus encore.

Obtenir des informations sur le système

Lorsque vous contemplez le rectangle clignotant d’une invite de commande, votre première question sera probablement "Où suis-je ?". Ou, plus précisément, "Où suis-je en ce moment dans le système de fichiers Linux et si, admettons, je créais un nouveau fichier, où se trouverait-il ?". Ce que vous recherchez ici, c’est votre répertoire de travail actuel (present work directory), et la commande pwd vous dira ce que vous voulez savoir :

$ pwd
/home/frank

Imaginons que Frank est actuellement connecté au système et qu’il se trouve dans son répertoire personnel : /home/frank/. Si Frank crée un fichier vide en utilisant la commande touch sans spécifier d’autre emplacement dans le système de fichiers, le fichier sera créé dans /home/frank/. En affichant le contenu du répertoire avec ls, on peut voir ce nouveau fichier :

$ touch newfile
$ ls
newfile

En dehors de votre position dans le système de fichiers, vous voudrez souvent obtenir des informations sur le système Linux que vous utilisez. Il peut s’agir du numéro de version exact de votre distribution ou de la version du noyau Linux qui est actuellement chargée. L’outil uname est ce que vous recherchez ici. Et, plus exactement, uname en utilisant l’option -a (“all”).

$ uname -a
Linux base 4.18.0-18-generic #19~18.04.1-Ubuntu SMP Fri Apr 5 10:22:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Ici, uname indique que la machine de Frank a le noyau Linux version 4.18.0 installé et qu’elle utilise Ubuntu 18.04 sur un processeur 64 bits (x86_64).

Obtenir des informations sur les commandes

Vous trouverez souvent de la documentation qui traite des commandes Linux avec lesquelles vous n’êtes pas encore familiarisé. La ligne de commande elle-même offre toutes sortes d’informations utiles sur ce que font les commandes et comment les utiliser efficacement. Les informations les plus utiles se trouvent sans doute dans les nombreux fichiers du système man.

En règle générale, les développeurs de Linux rédigent des fichiers man et les distribuent avec les utilitaires qu’ils créent. Les fichiers man sont des documents bien structurés dont le contenu est subdivisé de manière intuitive par des titres de section types. En tapant man suivi du nom d’une commande, vous obtiendrez des informations comprenant le nom de la commande, un bref résumé de son utilisation, une description plus détaillée ainsi que des informations importantes sur l’historique et les licences. Voici un exemple :

$ man uname
UNAME(1)             User Commands            UNAME(1)
NAME
   uname - print system information
SYNOPSIS
   uname [OPTION]...
DESCRIPTION
   Print certain system information.  With no OPTION, same as -s.
   -a, --all
      print  all information, in the following order, except omit -p
      and -i if unknown:
   -s, --kernel-name
      print the kernel name
   -n, --nodename
      print the network node hostname
   -r, --kernel-release
      print the kernel release
   -v, --kernel-version
      print the kernel version
   -m, --machine
      print the machine hardware name
   -p, --processor
      print the processor type (non-portable)
   -i, --hardware-platform
      print the hardware platform (non-portable)
   -o, --operating-system
      print the operating system
   --help display this help and exit
   --version
      output version information and exit
AUTHOR
   Written by David MacKenzie.
REPORTING BUGS
   GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
   Report uname translation bugs to
   <http://translationproject.org/team/>
COPYRIGHT
   Copyright©2017 Free Software Foundation, Inc. License  GPLv3+: GNU
   GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
   This is free software: you are free to change and redistribute it.
   There is NO WARRANTY, to the extent permitted by law.
SEE ALSO
   arch(1), uname(2)
   Full documentation at: <http://www.gnu.org/software/coreutils/uname>
   or available locally via: info '(coreutils) uname invocation'
GNU coreutils 8.28       January 2018             UNAME(1)

man ne fonctionne que si vous lui fournissez un nom de commande précis. En revanche, si vous n’êtes pas sûr du nom de la commande que vous recherchez, vous pouvez utiliser la commande apropos pour effectuer une recherche dans les noms et les descriptions des pages man. En supposant, par exemple, que vous ne vous souvenez pas que c’est uname qui vous renseigne sur la version actuelle de votre noyau Linux, vous pouvez fournir le terme de recherche kernel à apropos. Vous obtiendrez probablement de nombreux résultats, mais ils devraient inclure ceux-ci :

$ apropos kernel
systemd-udevd-kernel.socket (8) - Device event managing daemon
uname (2)            - get name and information about current kernel
urandom (4)          - kernel random number source devices

Si vous n’avez pas besoin de la documentation complète d’une commande, vous pouvez obtenir rapidement des informations de base sur une commande en utilisant type. L’exemple qui suit utilise type pour interroger quatre commandes distinctes à la fois. Le résultat nous montre que cp (“copy”) est un programme qui réside dans /bin/cp et que kill (changer l’état d’un processus en cours) est une primitive du shell — ce qui veut dire qu’il fait partie du shell Bash lui-même :

$ type uname cp kill which
uname is hashed (/bin/uname)
cp is /bin/cp
kill is a shell builtin
which is /usr/bin/which

Vous remarquerez que, en plus d’être une commande binaire normale comme cp, uname est également "haché" (“hashed”). C’est parce que Frank a récemment utilisé uname et, pour augmenter l’efficacité du système, il a été ajouté à une table de hachage pour le rendre plus accessible la prochaine fois que vous l’exécutez. S’il lançait type uname après le démarrage du système, Frank constaterait que type décrit à nouveau uname comme un binaire ordinaire.

Note

Une façon plus rapide de vider la table de hachage est de lancer la commande hash -d.

Parfois — en particulier lorsque vous travaillez avec des scripts automatisés — vous aurez besoin d’une source d’information plus simple pour une commande. La commande which que notre précédente commande type a repérée pour nous ne retournera rien d’autre que le chemin absolu vers une commande. Cet exemple localise à la fois les commandes uname et which.

$ which uname which
/bin/uname
/usr/bin/which
Note

Si vous voulez afficher des informations sur les primitives du shell, vous pouvez utiliser la commande help.

Utiliser l’historique des commandes

Il vous arrivera souvent de rechercher soigneusement l’usage approprié d’une commande et de l’exécuter avec succès, accompagnée d’une série passablement complexe d’options et d’arguments. Mais que se passe-t-il quelques semaines plus tard lorsque vous devez exécuter la même commande avec les mêmes options et les mêmes arguments mais que vous ne vous souvenez plus des détails ? Plutôt que de devoir recommencer vos recherches depuis le début, vous pourrez souvent retrouver la commande originale en utilisant history.

En tapant history, vous obtiendrez les commandes les plus récentes que vous avez exécutées, avec la plus récente qui apparaîtra en dernier. Vous pouvez facilement effectuer une recherche dans ces commandes en passant une chaîne donnée à la commande grep. Cet exemple recherchera n’importe quelle commande qui inclut le texte bash_history :

$ history | grep bash_history
1605 sudo find /home -name ".bash_history" | xargs grep sudo

Ici, une seule commande est renvoyée avec le numéro de séquence correspondant 1605.

Quant à bash_history, c’est en fait le nom d’un fichier caché que vous devriez trouver dans votre répertoire d’utilisateur. Puisque c’est un fichier caché (désigné comme tel par le point qui précède son nom de fichier), il ne sera visible qu’en affichant le contenu du répertoire en utilisant ls avec l’option -a :

$ ls /home/frank
newfile
$ ls -a /home/frank
.  ..  .bash_history  .bash_logout  .bashrc  .profile  .ssh  newfile

Que contient le fichier .bash_history ? Regardez par vous-même : vous y verrez des centaines et des centaines de vos commandes les plus récentes. Vous pourriez cependant être surpris de constater que certaines de vos commandes les plus récentes sont absentes dans cette liste. En effet, bien que celles-ci soient instantanément ajoutées à la base de données dynamique history, les tout derniers ajouts à votre historique de commandes ne sont pas écrits dans le fichier .bash_history avant la fin de votre session.

Vous pouvez exploiter le contenu de history pour rendre votre expérience de la ligne de commande beaucoup plus rapide et efficace en utilisant les flèches haut et bas de votre clavier. En appuyant plusieurs fois sur la touche haut, la ligne de commande sera renseignée avec les commandes récentes. Lorsque vous arrivez à celle que vous souhaitez lancer une seconde fois, vous pouvez l’exécuter en appuyant sur Entrée. Il est ainsi facile de se rappeler et, le cas échéant, de modifier les commandes plusieurs fois de suite au cours d’une session dans le shell.

Exercices guidés

  1. Utilisez le système man pour déterminer comment indiquer à apropos de fournir une commande brève afin qu’il affiche seulement un bref message d’utilisation et qu’il quitte ensuite.

  2. Utilisez le système man pour déterminer quelle licence est attribuée à la commande grep.

Exercices d’approfondissement

  1. Identifiez l’architecture matérielle et la version du noyau Linux utilisées sur votre ordinateur dans un format d’affichage facile à lire.

  2. Affichez les vingt dernières lignes de la base de données dynamique history et du fichier .bash_history et comparez les deux résultats.

  3. Utilisez l’outil apropos pour identifier la page man où vous trouverez la commande dont vous aurez besoin pour afficher la taille d’un périphérique bloc matériel connecté en octets plutôt qu’en mégaoctets ou en gigaoctets.

Résumé

Dans cette leçon, vous avez appris :

  • Comment obtenir des informations sur votre emplacement dans le système de fichiers et la pile logicielle de votre système d’exploitation.

  • Comment trouver de l’aide pour l’utilisation des commandes.

  • Comment identifier l’emplacement dans le système de fichiers et le type de commandes binaires.

  • Comment trouver et réutiliser des commandes précédemment invoquées.

Les commandes suivantes ont été abordées dans cette leçon :

pwd

Afficher le chemin d’accès au répertoire de travail actuel.

uname

Afficher l’architecture matérielle de votre système, la version du noyau Linux, la distribution et la version de la distribution.

man

Accéder aux fichiers d’aide qui documentent l’utilisation des commandes.

type

Afficher l’emplacement dans le système de fichiers et le type pour une ou plusieurs commandes.

which

Afficher l’emplacement dans le système de fichiers pour une commande.

history

Afficher ou réutiliser les commandes que vous avez invoquées précédemment.

Réponses aux exercices guidés

  1. Utilisez le système man pour déterminer comment indiquer à apropos de fournir une commande brève afin qu’il affiche seulement un bref message d’utilisation et qu’il quitte ensuite.

    Lancez man apropos et faites défiler la section “Options” jusqu’au paragraphe --usage.

  2. Utilisez le système man pour déterminer quelle licence est attribuée à la commande grep.

    Lancez man grep et descendez jusqu’à la section “Copyright” du document. Notez que le programme utilise un copyright de la Free Software Foundation.

Réponses aux exercices d’approfondissement

  1. Identifiez l’architecture matérielle et la version du noyau Linux utilisées sur votre ordinateur dans un format d’affichage facile à lire.

    Lancez man uname, lisez la section “Description”, et identifiez les options de commande qui vous permettront d’obtenir les résultats précis que vous souhaitez. Notez que -v vous fournira la version du noyau et -i la plateforme matérielle.

    $ man uname
    $ uname -v
    $ uname -i
  2. Affichez les vingt dernières lignes de la base de données dynamique history et du fichier .bash_history et comparez les deux résultats.

    $ history 20
    $ tail -n 20 .bash_history
  3. Utilisez l’outil apropos pour identifier la page man où vous trouverez la commande dont vous aurez besoin pour afficher la taille d’un périphérique bloc matériel connecté en octets plutôt qu’en mégaoctets ou en gigaoctets.

    Une façon de procéder consiste à lancer apropos avec la chaîne block, lire le résultat, noter que lsblk affiche les périphériques de type bloc (et constitue donc l’outil le plus adapté à nos besoins), lancer man lsblk, faire défiler la section “Description” et noter que -b affiche la taille du périphérique en octets. Il ne reste qu’à lancer lsblk -b pour voir ce qui en ressort.

    $ apropos block
    $ man lsblk
    $ lsblk -b

Linux Professional Insitute Inc. Tous droits réservés. Visitez le site web du projet _Learning_ : https://learning.lpi.org
Ce travail est sous licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Pas de Modification 4.0 International.

Prochaine leçon

103.1 Travail en ligne de commande (103.1 Leçon 2)

Lire la prochaine leçon

Linux Professional Insitute Inc. Tous droits réservés. Visitez le site web du projet _Learning_ : https://learning.lpi.org
Ce travail est sous licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Pas de Modification 4.0 International.

LPI est une organisation à but non lucratif.

© 2023 Le Linux Professional Institute (LPI) est la référence mondiale en matière de certification et un organisme de soutien aux professionnels de l'Open Source. Avec plus de 200 000 certifiés à son actif, c'est le principal organisme de certification indépendant pour Linux et l'Open Source au monde. Le LPI a certifié des professionnels dans plus de 180 pays, organise des examens en plusieurs langues et compte des centaines de partenaires pour la formation.

Notre objectif est la création d'opportunités économiques et créatives pour tous en rendant accessible au monde entier la certification des connaissances et des compétences en matière d'Open Source.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contactez-nous
  • Politique en matière de confidentialité et de cookies

Vous avez repéré une erreur ou vous voulez aider à améliorer cette page ? Faites-nous savoir.

© 1999–2023 The Linux Professional Institute Inc. Tous droits réservés.