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.
ls --helpUtilisation : 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 --sortne sont utilisées.
Les arguments obligatoires pour les options longues le sont aussi pour lesoptions 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
:
ls --helpUtilisation : 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 --sortne sont utilisées.
Les arguments obligatoires pour les options longues le sont aussi pour lesoptions 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 :
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
:
sudo apt install python3-pippipx install tldr --user installed package tldr 3.2.0, installed using Python 3.10.12 These apps are now globally available - tldrdone! ✨ 🌟 ✨
Un exemple avec la commande ls
:
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 :
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 :
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.