Aller au contenu

Introduction aux commandes Linux

Mise à jour :

La maîtrise des commandes linux est essentielle pour quiconque souhaite exploiter ou administrer efficacement des serveurs Linux. Que vous soyez étudiant, développeur, administrateur système, ou simplement passionné de technologie, comprendre comment utiliser ces commandes enrichira vos compétences Linux.

A une époque pas si lointaine Linux se distinguait de Windows par la présence d’une interface en ligne de commande (CLI) pouvant effectuer des opérations complexes, automatiser des tâches sans faire appel à une interface graphique. Apprendre à utiliser la ligne de commandes Linux est donc crucial pour maximiser l’efficacité et la productivité dans un environnement Linux.

Pour chacune des commandes Linux de base, je fournirai des conseils pratiques, des astuces et des exemples concrets pour vous aider à appliquer ces nouvelles connaissances.

Conseils d’apprentissage

Pour bien apprendre, je vous conseille d’avoir un serveur Linux à disposition pour tester ces commandes. Le mieux est d’en virtualiser une sur votre poste de travail avec un outil comme Vagrant.

Qu’est-ce qu’un script shell ?

Les scripts shells sont des programmes écrits dans le langage propre au shell qui sont essentiellement utilisés pour automatiser des tâches répétitives. Les scripts shell sont écrits dans des fichiers textes et peuvent être exécutés. Mais savez-vous ce qu’est un shell Linux ? Non alors lisez ce guide.

Qu’est-ce qu’une commande linux ?

Pour rappel, une commande Linux est un programme qui s’exécute en ligne de commande. Une ligne de commande est une interface qui traite des lignes de texte en instructions pour votre ordinateur.

Les commandes linux peuvent posséder une ou plusieurs options. Les options peuvent débuter par un ou deux tirets. Par exemple l’option -h ou --help dans la plupart des commandes, affiche son aide en ligne.

Terminal window
ls --help
Utilisation : ls [OPTION]... [FICHIER]...
Afficher des renseignements sur les FICHIERs (du répertoire actuel par défaut).
Trier les entrées alphabétiquement si aucune des options -cftuvSUX ou --sort
ne sont utilisées.
Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
-a, --all ne pas ignorer les entrées débutant par .
-A, --almost-all ne pas inclure . ou .. dans la liste
--author avec -l, afficher l'auteur de chaque fichier
-b, --escape afficher les caractères non graphiques avec des

Un argument, appelé aussi paramètre, est l’entrée que nous donnons à une commande pour qu’elle puisse s’exécuter. De plus souvent, il s’agit d’un répertoire, un fichier.

Obtenir de l’aide sur une commande

Avec l’option -h out —help

Nous l’avons vu plus haut, le premier moyen pour obtenir de l’aide sur une commande linux est d’utiliser l’option -h ou --help :

Terminal window
ls --help
Utilisation : ls [OPTION]... [FICHIER]...
Afficher des renseignements sur les FICHIERs (du répertoire actuel par défaut).
Trier les entrées alphabétiquement si aucune des options -cftuvSUX ou --sort
ne sont utilisées.
Les arguments obligatoires pour les options longues le sont aussi pour les
options courtes.
-a, --all ne pas ignorer les entrées débutant par .
-A, --almost-all ne pas inclure . ou .. dans la liste
--author avec -l, afficher l'auteur de chaque fichier
-b, --escape afficher les caractères non graphiques avec des
protections selon le style C
--block-size=TAILLE avec -l, dimensionner les tailles selon TAILLE avant
de les afficher. Par exemple, « --block-size=M ».
Consultez le format de TAILLE ci-dessous...

Avec la commande man

Le second moyen est d’utiliser la commande man suivi du nom de la commande :

Terminal window
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
--author
with -l, print the author of each file
-b, --escape
print C-style escapes for nongraphic characters
--block-size=SIZE
with -l, scale sizes by SIZE when printing them; e.g., '--block-size=M'; see SIZE format below ...

Pour avancer dans les pages, il suffit d’appuyer sur la touche espace.

Il existe un outil du nom de tldr qui affiche des versions raccourcies des pages man.

Avec l’outil tldr

Le projet tldr-pages est une collection de pages d’aide simplifiées pour la plupart des outils de ligne de commande.

L’outil tldr peut être installé avec pip. Par exemple pour l’installer sur une distribution de la famille debian :

Terminal window
sudo apt install python3-pip
pipx install tldr --user
installed package tldr 3.2.0, installed using Python 3.10.12
These apps are now globally available
- tldr
done! 🌟

Un exemple avec la commande ls :

Terminal window
tldr ls
ls
Liste le contenu d'un répertoire.
Plus d'informations : https://www.gnu.org/software/coreutils/ls.
- Liste les fichiers, un par ligne :
ls -1
- Liste tous les fichiers, ainsi que les fichiers cachés :
ls -a
- Liste tous les fichiers, avec les noms de répertoires suivis d'un `/` :
ls -F
...

Comment trouver l’explication d’une commande

Si vous retrouvez des commandes dans des forums, des sites comme Stack OVerflow, et que vous ne comprenez pas la commande qui est indiquée alors le site explainshell est fait pour vous :

Exemple d'explication de commandes
linux

Enchainer des commandes avec les pipe

Un pipe (tube ou tuyau en anglais) est un outil qui permet de connecter la sortie standard d’une commande avec l’entrée standard d’une autre commande. Cela permet de chaîner plusieurs commandes, le résultat de l’une formant les données d’entrée de la suivante.

Pour créer un pipe entre 2 commandes, il suffit d’écrire les deux commandes séparées pour un caractère | (que l’on appelle le pipe).

Exemple :

Terminal window
ls -R $HOME | less

L’enchainement de ces deux commandes liste le contenu de votre répertoire utilisateur et envoie la sortie vers la commande less pour en paginer le résultat. Vous verrez d’autres exemples dans les commandes qui vont suivre.

Les groupes de commandes Linux à connaître

Au fur et à mesure de votre apprentissage des commandes Linux, vous remarquerez qu’elles se regroupent souvent par catégories ou par groupes de fonctionnalités similaires. Ces groupes de commandes sont essentiels pour naviguer efficacement dans un environnement Linux et automatiser diverses tâches. Dans cette section, Je vais vous donner un aperçu de ces groupes, en expliquant brièvement leurs fonctions.

1. Navigation et manipulation de fichiers

Ce groupe de commandes vous permettra de naviguer dans le système de fichiers, de manipuler des fichiers et des répertoires, et de travailler avec les permissions des fichiers. Il inclut des commandes comme ls, cd, cp, mv, rm, et bien d’autres, qui sont essentielles pour interagir avec le système de fichiers de manière efficace. Vous en apprendrez plus dans le guide de navigation et manipulation de fichiers.

2. Manipulation de fichiers avancées

Les commandes de manipulation de fichiers avancées vous permettent de effectuer des opérations plus complexes sur les fichiers et les répertoires. Cela inclut la recherche de fichiers avec find, la recherche de texte dans des fichiers avec grep, la modification de fichiers avec sed. Vous en apprendrez plus dans le guide de navigation et manipulation de fichiers.

2. Gestion des processus

Les commandes liées à la gestion des processus vous permettent de contrôler les applications en cours d’exécution sur votre système. Cela inclut l’observation des processus avec ps, l’arrêt ou la mise en arrière-plan des processus avec kill, bg, et fg, ainsi que l’utilisation de top et htop pour surveiller la consommation des ressources en temps réel. Un guide complet sur ce sujet est disponible dans La gestion des processus.

3. Gestion du réseau

Les commandes réseau permettent d’inspecter et de configurer les paramètres réseau de votre machine. Vous apprendrez à tester la connectivité réseau avec ping, à explorer les connexions ouvertes avec netstat et ss, et à configurer des interfaces réseau avec ip et ifconfig. Pour aller plus loin, vous pouvez consulter le guide de gestion du réseau.

4. Gestion des archives

Le traitement des archives est une autre tâche fréquente sous Linux, et plusieurs commandes permettent de compresser et d’extraire des fichiers. Les commandes comme tar, zip, gzip et bzip2 vous permettront d’archiver et de compresser vos données efficacement. Pour un guide approfondi, consultez La gestion des archives.

5. Gestion de la mémoire

La gestion de la mémoire sous Linux implique l’utilisation de commandes comme free, vmstat, et top pour observer et gérer l’utilisation de la RAM et du swap. Ce groupe de commandes est essentiel pour les administrateurs systèmes qui cherchent à optimiser les performances du serveur. Un guide complet est prévu dans La gestion de la mémoire (en cours d’écriture).

6. Guides détaillés

Certaines commandes plus avancées, comme awk, grep, sed, xargs, et rsync, offrent des fonctionnalités puissantes pour manipuler et analyser des données ou pour automatiser des tâches complexes. Ces outils vous permettront de réaliser des scripts shell sophistiqués et de manipuler les fichiers et flux de données de manière très précise. Chacune de ces commandes sera détaillée dans des guides dédiés comme La commande awk de A à Z ou La commande rsync de A à Z.

Conclusion

Vous avez découvert les commandes de base de Linux. Vous pouvez maintenant utiliser le terminal pour naviguer dans le système de fichiers, manipuler des fichiers et des répertoires, rechercher des fichiers et bien plus encore. Ces commandes sont essentielles pour travailler efficacement dans un environnement Linux et sont souvent utilisées par les administrateurs système, les développeurs et les utilisateurs avancés. En maîtrisant ces commandes, vous pourrez effectuer des tâches courantes de manière plus rapide et efficace. Vous pouvez également explorer d’autres commandes avancées et des outils disponibles dans Linux pour améliorer votre productivité et votre compréhension du système.