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
2.1 Leçon 1
Sujet 1 : Communauté Linux et carrière dans le logiciel libre
1.1 Évolution de Linux et systèmes d'exploitation populaires
  • 1.1 Leçon 1
1.2 Applications libres majeures
  • 1.2 Leçon 1
1.3 Logiciel à code source ouvert et licences
  • 1.3 Leçon 1
1.4 Compétences informatiques et travail sous Linux
  • 1.4 Leçon 1
Sujet 2 : Trouver son chemin sur un système Linux
2.1 Bases sur la ligne de commande
  • 2.1 Leçon 1
  • 2.1 Leçon 2
2.2 Utilisation de la ligne de commande pour obtenir de l'aide
  • 2.2 Leçon 1
2.3 Utilisation des répertoires et liste des fichiers
  • 2.3 Leçon 1
  • 2.3 Leçon 2
2.4 Création, déplacement et suppression de fichiers
  • 2.4 Leçon 1
Sujet 3 : Le pouvoir de la ligne de commande
3.1 Archivage de fichiers en ligne de commande
  • 3.1 Leçon 1
3.2 Recherche et extraction de données à partir de fichiers
  • 3.2 Leçon 1
  • 3.2 Leçon 2
3.3 Conversion de commandes en script
  • 3.3 Leçon 1
  • 3.3 Leçon 2
Sujet 4 : Le système d'exploitation Linux
4.1 Choix d'un système d'exploitation
  • 4.1 Leçon 1
4.2 Compréhension du matériel informatique
  • 4.2 Leçon 1
4.3 Localisation des données
  • 4.3 Leçon 1
  • 4.3 Leçon 2
4.4 Intégration au réseau
  • 4.4 Leçon 1
Sujet 5 : Sécurité et droits d'accès aux fichiers
5.1 Sécurité élémentaire et identification des catégories d'utilisateurs
  • 5.1 Leçon 1
5.2 Création des utilisateurs et des groupes
  • 5.2 Leçon 1
5.3 Gestion des propriétés et des droits d'accès aux fichiers
  • 5.3 Leçon 1
5.4 Répertoires et fichiers spéciaux
  • 5.4 Leçon 1
How to get certified
  1. Sujet 2 : Trouver son chemin sur un système Linux
  2. 2.1 Bases sur la ligne de commande
  3. 2.1 Leçon 1

2.1 Leçon 1

Certification :

Linux Essentials

Version:

1.6

Thème :

2 Trouver son Chemin sur un Système Linux

Objectif :

2.1 Principes de Base de la Ligne de Commande

Leçon :

1 sur 2

Introduction

Les distributions Linux modernes disposent d’un large éventail d’interfaces graphiques, mais un administrateur devra toujours savoir comment travailler avec la ligne de commande, ou shell comme on l’appelle. Le shell est un programme qui permet une communication en mode texte entre le système d’exploitation et l’utilisateur. Il s’agit généralement d’un programme en mode texte qui lit les entrées de l’utilisateur et les interprète comme des commandes du système.

Il existe différents shells sur Linux, en voici quelques-uns :

  • Bourne-again shell (Bash)

  • C shell (csh ou tcsh, the enhanced csh)

  • Korn shell (ksh)

  • Z shell (zsh)

Sous Linux, le plus courant est le shell Bash. C’est également celui qui sera utilisé ici dans les exemples ou les exercices.

Lorsqu’on utilise un shell interactif, l’utilisateur entre des commandes à une invite de commande (prompt). Pour chaque distribution Linux, l’invite par défaut peut être un peu différente, mais elle suit généralement cette structure :

username@hostname current_directory shell_type

Sur Ubuntu ou Debian GNU/Linux, l’invite pour un utilisateur régulier ressemblera probablement à ceci :

carol@mycomputer:~$

L’invite du super-utilisateur ressemblera à ceci :

root@mycomputer:~#

Sur CentOS ou Red Hat Linux, l’invite pour un utilisateur régulier ressemblera plutôt à ceci :

[dave@mycomputer ~]$

Et l’invite du super-utilisateur ressemblera à ceci :

[root@mycomputer ~]#

Expliquons chaque élément de la structure :

username

Nom de l’utilisateur qui exécute le shell

hostname

Nom de l’hôte sur lequel tourne le shell. Il existe également une commande hostname, avec laquelle vous pouvez afficher ou définir le nom d’hôte du système.

current_directory

Le répertoire dans lequel le shell se trouve actuellement. Un ~ signifie que le shell se trouve dans le répertoire personnel de l’utilisateur courant.

shell_type

$ indique que le shell est exécuté par un utilisateur régulier.

# indique que le shell est exécuté par le super-utilisateur root.

Comme nous n’avons pas besoin de privilèges spéciaux, nous utiliserons une invite non privilégiée dans les exemples suivants. Par souci de concision, nous utiliserons simplement le $ comme invite.

Structure de la Ligne de Commande

La plupart des lignes de commandes suivent la même structure de base :

commande  [option(s)/parametre(s)...]  [argument(s)...]

Prenons la commande suivante comme exemple :

$ ls -l /home

Expliquons l’objectif de chaque composante :

commande

Programme que l’utilisateur va exécuter - ls dans l’exemple ci-dessus.

option(s)/parametre(s)

Un “interrupteur” qui modifie le comportement de la commande d’une manière ou d’une autre, comme -l dans l’exemple ci-dessus. Les options sont accessibles sous une forme courte et une forme longue. Par exemple, -l est identique à --format=long.

Il est possible de combiner plusieurs options, pour la forme courte les lettres peuvent généralement être collées. Par exemple, les commandes suivantes font toutes la même chose :

$ ls -al
$ ls -a -l
$ ls --all --format=long
argument(s)

Les données supplémentaires requises par le programme, comme un nom de fichier ou un chemin d’accès, comme /home dans l’exemple ci-dessus.

La seule partie obligatoire de cette structure est la commande elle-même. En général, tous les autres éléments sont facultatifs, mais un programme peut exiger que certaines options, paramètres ou arguments soient spécifiés.

Note

La plupart des commandes affichent un bref aperçu des commandes disponibles lorsqu’elles sont exécutées avec le paramètre --help. Nous apprendrons bientôt d’autres moyens d’en savoir plus sur les commandes Linux.

Types de Comportement des commandes

Le shell supporte deux types de commandes :

Interne

Ces commandes font partie du shell lui-même et ne sont pas des programmes séparés. Il existe environ 30 commandes de ce type. Leur but principal est d’exécuter des tâches à l’intérieur du shell (par exemple cd, set, export).

Externe

Ces commandes résident dans des fichiers individuels. Ces fichiers sont généralement des programmes ou des scripts binaires. Lorsqu’une commande qui n’est pas intégrée à un shell est exécutée, le shell utilise la variable PATH pour rechercher un fichier exécutable portant le même nom que la commande. En plus des programmes qui sont installés avec le gestionnaire de paquets de la distribution, les utilisateurs peuvent également créer leurs propres commandes externes.

La commande type indique le type d’une commande spécifique :

$ type echo
echo is a shell builtin
$ type man
man is /usr/bin/man

Insertion des guillemets (Quoting)

En tant qu’utilisateur de Linux, vous devrez créer ou manipuler des fichiers ou des variables de différentes manières. C’est facile lorsque vous travaillez avec des noms de fichiers courts et des valeurs uniques, mais cela devient plus compliqué lorsque, par exemple, des espaces, des caractères spéciaux et des variables sont impliqués. Les shells offrent une fonction appelée "quoting" qui encapsule ces données en utilisant différents types de guillemets (" ", ' '). Dans Bash, il existe trois types de guillemets :

  • Guillemets doubles

  • Guillemets simples

  • Caractères d’échappement

Par exemple, les commandes suivantes n’agissent pas de la même manière en raison des types de guillemets :

$ TWOWORDS="two words"
$ touch $TWOWORDS
$ ls -l
-rw-r--r-- 1 carol carol     0 Mar 10 14:56 two
-rw-r--r-- 1 carol carol     0 Mar 10 14:56 words
$ touch "$TWOWORDS"
$ ls -l
-rw-r--r-- 1 carol carol     0 Mar 10 14:56  two
-rw-r--r-- 1 carol carol     0 Mar 10 14:58 'two words'
-rw-r--r-- 1 carol carol     0 Mar 10 14:56  words
$ touch '$TWOWORDS'
$ ls -l
-rw-r--r-- 1 carol carol     0 Mar 10 15:00 '$TWOWORDS'
-rw-r--r-- 1 carol carol     0 Mar 10 14:56  two
-rw-r--r-- 1 carol carol     0 Mar 10 14:58 'two words'
-rw-r--r-- 1 carol carol     0 Mar 10 14:56  words
Note

La ligne avec TWOWORDS= est une variable Bash que nous avons créée nous-mêmes. Nous introduirons les variables plus tard. Ceci est juste destiné à vous montrer comment les guillemets affectent la sortie des variables.

Guillemets doubles

Les guillemets doubles indiquent au shell de prendre le texte entre les guillemets ("...") comme des caractères normaux. Tous les caractères spéciaux perdent leur signification, sauf le $ (signe de dollar), \ (barre oblique inversée) et ` (guillemet inverse). Cela signifie que les variables, la substitution de commandes et les fonctions arithmétiques peuvent toujours être utilisées.

Par exemple, la substitution de la variable $USER n’est pas affectée par les guillemets doubles :

$ echo Je suis $USER
Je suis tom
$ echo "Je suis $USER"
Je suis tom

Le caractère espace, en revanche, perd sa signification en tant que séparateur d’arguments :

$ touch nouveau fichier
$ ls -l
-rw-rw-r-- 1 tom students 0 Oct 8 15:18 fichier
-rw-rw-r-- 1 tom students 0 Oct 8 15:18 nouveau
$ touch "nouveau fichier"
$ ls -l
-rw-rw-r-- 1 tom students 0 Oct 8 15:19 nouveau fichier

Comme vous pouvez le voir, dans le premier exemple, la commande touch crée deux fichiers individuels, la commande interprète les deux chaînes de caractères comme des arguments individuels. Dans le second exemple, la commande interprète les deux chaînes comme un seul argument, elle ne crée donc qu’un seul fichier. Il est toutefois préférable d’éviter le caractère espace dans les noms de fichiers. À la place, on peut utiliser un trait de soulignement (_) ou un point (. ).

Guillemets simples

Les guillemets simples n’ont pas les exceptions des guillemets doubles. Elles révoquent toute signification particulière de chaque caractère. Prenons l’un des premiers exemples ci-dessus :

$ echo Je suis $USER
Je suis tom

En appliquant les guillemets simples, vous obtenez un résultat différent :

$ echo 'Je suis $USER'
Je suis $USER

La commande affiche maintenant la chaîne exacte sans substituer la variable.

Caractères d’échappement

Nous pouvons utiliser des caractères d’échappement pour supprimer les significations spéciales des caractères de Bash. Revenons à la variable d’environnement $USER :

$ echo $USER
carol

On voit que par défaut, le contenu de la variable est affiché dans le terminal. Cependant, si nous devions faire précéder le signe du dollar d’une barre oblique inversée (\), la signification particulière du signe du dollar serait alors annulée. Cela empêchera Bash d’étendre la valeur de la variable au nom d’utilisateur de la personne qui exécute la commande, mais interprétera le nom de la variable littéralement :

$ echo \$USER
$USER

Si vous vous souvenez bien, nous pouvons obtenir des résultats similaires en utilisant les guillemets simples, qui affichent le contenu littéral de ce qui se trouve entre les guillemets simples. Cependant, le caractère d’échappement fonctionne différemment en demandant à Bash d’ignorer toute signification particulière que le caractère qu’il précède pourrait posséder.

Exercices Guidés

  1. Séparez les lignes ci-dessous en composantes : commande, option(s)/paramètre(s) et argument(s) :

    • Exemple: cat -n /etc/passwd

      Commande :

      cat

      Option :

      -n

      Argument :

      /etc/passwd

    • ls -l /etc

      Commande :

      Option :

      Argument :

    • ls -l -a

      Commande :

      Option :

      Argument :

    • cd /home/user

      Commande :

      Option :

      Argument :

  2. Trouvez les types de commandes suivantes :

    Exemple:

    pwd

    Commande interne

    mv

    Commande Externe

    cd

    cat

    exit

  3. Résolvez les commandes suivantes qui utilisent les guillemets :

    Exemple:

    echo "$HOME est mon répertoire personnel"

    echo /home/user est mon répertoire personnel

    touch "$USER"

    touch 'touch'

Exercices d’Exploration

  1. Avec une seule commande et en utilisant l’expansion des accolades dans Bash (voir la page de manuel pour Bash), créez 5 fichiers numérotés de 1 à 5 avec le préfixe jeu (jeu1, jeu2, …​).

  2. Supprimez les 5 fichiers que vous venez de créer avec une seule commande, en utilisant un caractère spécial différent (voir Pathname Expansion dans les pages de manuel Bash).

  3. Existe-t-il d’autres moyens de faire interagir deux commandes entre elles ? Quels sont-ils ?

​

Résumé

Dans cet atelier, vous avez appris :

  • Les concepts du shell Linux

  • Qu’est-ce que le shell Bash

  • La structure de la ligne de commande

  • Une introduction à l’insertion des guillemets

Commandes utilisées dans les exercices :

bash

Le shell le plus populaire sur les ordinateurs Linux.

echo

Affichage de texte sur le terminal.

ls

Listage du contenu d’un répertoire.

type

Montrer comment une commande spécifique est exécutée.

touch

Créer un fichier vide ou mettre à jour la date de modification d’un fichier existant.

hostname

Afficher ou modifier le nom d’hôte d’un système.

Réponses aux Exercices Guidés

  1. Séparez les lignes ci-dessous en composantes : commande, option(s)/paramètre(s) et argument(s) :

    • Exemple: cat -n /etc/passwd

      Commande :

      cat

      Option :

      -n

      Argument :

      /etc/passwd

    • ls -l /etc

      Commande :

      ls

      Option :

      -l

      Argument :

      /etc

    • ls -l -a

      Commande :

      ls

      Option :

      -l -a

      Argument :

    • cd /home/user

      Commande :

      cd

      Option :

      Argument :

      /home/user

  2. Trouvez les types des commandes suivantes :

    cd

    Commande interne

    cat

    Commande externe

    exit

    Commande interne

  3. Résolvez les commandes suivantes qui utilisent des guillemets :

    touch "$USER"

    tom

    touch 'touch'

    Crée un fichier nommé touch

Réponses aux Exercices d’Exploration

  1. Avec une seule commande et en utilisant l’expansion des accolades dans Bash (voir la page de manuel pour Bash), créez 5 fichiers numérotés de 1 à 5 avec le préfixe jeu (jeu1, jeu2, …​).

    Des plages peuvent être utilisées pour exprimer les nombres de 1 à 5 dans une même commande :

    $ touch jeu{1..5}
    $ ls
    jeu1  jeu2  jeu3  jeu4  jeu5
  2. Supprimez les 5 fichiers que vous venez de créer avec une seule commande, en utilisant un caractère spécial différent (voir Pathname Expansion dans les pages de manuel Bash).

    Comme tous les fichiers commencent par jeu et se terminent par un seul caractère (un nombre de 1 à 5 dans ce cas), ? peut être utilisé comme caractère spécial pour le dernier caractère du nom de fichier :

    $ rm jeu?
  3. Existe-t-il d’autres moyens de faire interagir deux commandes entre elles ? Quels sont-ils ?

    Oui, une commande peut, par exemple, écrire des données dans un fichier qui est ensuite traité par une autre commande. Linux peut également collecter la sortie d’une commande et l’utiliser comme entrée pour une autre commande. C’est ce qu’on appelle piping et nous en apprendrons davantage à ce sujet dans une 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.

Prochaine leçon

2.1 Bases sur la ligne de commande (2.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.