Les commandes Linux essentielles
Mise à jour :
Dans la continuité de la présentation des commandes Linux, ce guide approfondit vos connaissances en vous proposant de nouvelles commandes essentielles et des astuces pratiques. Après avoir découvert comment obtenir de l’aide, enchaîner des commandes avec des pipes ou explorer les scripts shell, vous êtes prêt à maîtriser les outils qui vous permettront de naviguer, manipuler et gérer efficacement vos systèmes Linux au quotidien.
Avant de plonger dans les détails des commandes Linux, il est essentiel de comprendre comment les utiliser efficacement dès le départ. Ce guide vous accompagne pas à pas, en commençant par les bases : la navigation dans le système de fichiers, la manipulation des fichiers et répertoires, puis la gestion des permissions. Vous apprendrez également à visualiser rapidement le contenu des fichiers et à utiliser des outils performants pour rechercher des fichiers ou des informations précises dans votre système. Chaque chapitre vous apportera des exemples concrets, des options utiles et des mises en garde pour éviter les erreurs courantes.
Allez, c’est parti !
Navigation dans le système de fichiers
ls (list)
La commande ls
liste tous les fichiers et dossiers dans le répertoire actuel.
Elle peut être combinée avec diverses options pour afficher des informations
supplémentaires.
ls [OPTION]... [FILE]...
Les principales options à connaitre :
-l
: Utilise le format de sortie long, c’est-à-dire affichant les permissions, le propriétaire et groupe, la taille, la date en plus du nom.-1
: Affiche les fichiers sur une colonne.-a
: Affiche les fichiers cachés dont ceux commençant par le caractère.
.-h
: Affiche la taille dans un format lisible par un humain.-r
: Trie la sortie dans l’ordre inverse.-t
: Trie la sortie par date et non par ordre alphabétique.-c
: Trie sur la date de changement de statuts des fichiers.
Il est possible de combiner certaines options, pas celles définissant le format de sortie. Un exemple :
ls -alrthtotal 24Kdrwxrwxr-x 31 bob bob 4,0K oct. 26 14:47 ..-rw-rw-r-- 1 bob bob 540 oct. 26 15:10 Vagrantfiledrwxrwxr-x 6 bob bob 4,0K oct. 26 15:10 .vagrant-rw-rw-r-- 1 bob bob 54 oct. 26 15:51 Dockerfiledrwxrwxr-x 3 bob bob 4,0K oct. 26 15:51 .-rw-rw-r-- 1 bob bob 358 oct. 27 06:18 provision.yml
Cette commande affiche les fichiers, dont les fichiers cachés, sous le format long. Ils sont triés par date dans l’ordre inverse. La taille est affichée dans un format lisible par l’humain.
pwd (print working directory)
La commande pwd
affiche le répertoire de travail actuel, ce qui est essentiel
pour comprendre le contexte lors de la navigation dans le terminal.
pwd [OPTION]...
Exemple :
pwd/home/bob/Projets/perso/my-website
cd (change directory)
La commande cd
permet de naviguer entre les différents répertoires de votre
système. Elle est souvent utilisée en conjonction avec des chemins de
répertoires spécifiques.
cd [-L|-P] [directory] oucd -
La principale option à connaitre est -
qui permet de retourner dans le
répertoire précédent :
cd -~/Projets/perso/my-website
En retour, il affiche le répertoire de destination.
Manipulation de fichiers et de dossiers
cp (copy)
La commande linux cp
copie des fichiers ou des dossiers d’un emplacement à un
autre.
cp [OPTION]... [-T] SOURCE DEST oucp [OPTION]... SOURCE... DIRECTORY oucp [OPTION]... -t DIRECTORY SOURCE...
Les principales options à connaître :
-p
: Copie avec préservation des droits, des propriétés (groupe et utilisateur) et de l’horodatage.-r
: Copie récursive, c’est-à-dire avec tous les fichiers présents dans un répertoire.
cp -p tsconfig.json tsconfig.json.old
ls -al ts*
-rw-rw-r-- 1 bob bob 190 sept. 23 19:12 tsconfig.json-rw-rw-r-- 1 bob bob 190 sept. 23 19:12 tsconfig.json.old
mv (move)
La commande linux mv
est utilisée pour déplacer ou renommer des fichiers ou
des dossiers.
mv [OPTION]... [-T] SOURCE DEST oumv [OPTION]... SOURCE... DIRECTORY oumv [OPTION]... -t DIRECTORY SOURCE...
Les principales options à connaître :
-i
: Demande une confirmation avec d’effectuer l’opération-f
: Ne demande aucune confirmation avec d’effectuer l’opération- -
n
: Ne surcharge pas les fichiers existants
mv -v /tmp/test /tmp/test2renommé '/tmp/test' -> '/tmp/test2'
Ici le dossier /tmp/test
a été renommé en /tmp/test2
.
rm (remove)
La commande rm
permet de supprimer des fichiers ou des dossiers de manière
irrémédiable, donc à utiliser avec prudence.
rm [OPTION]... [FILE]...
Les principales options à connaître :
-i
: affiche un prompt de confirmation avant chaque effacement.-f
: n’affiche aucun prompt.-r
: destruction récursive, autrement dit destruction de tous les répertoires contenus dans le dossier.
rm -rf /tmp/test
Ici le dossier /tmp/test
a été détruit sans aucun prompt de confirmation.
mkdir (make directory)
La commande mkdir
permet de créer de nouveaux répertoires.
mkdir [OPTION]... DIRECTORY...
Les principales options à connaître :
-p
: Crée des répertoires récursivement (utile pour créer des répertoires imbriqués)
mkdir -p 700 $HOME/Projets/DevOps /tmp/test
Création de deux arborescences de répertoires si les répertoires parents n’existent pas.
rmdir (remove directory)
La commande rmdir
supprime un dossier vide. Très peu utilisé, la plupart des
admin sys
préférant la commande rm -r
.
chmod (change mode)
La commande linux chmod
modifie les
permissions d’un fichier ou d’un
répertoire.
chmod [OPTION]... MODE[,MODE]... FILE... ouchmod [OPTION]... OCTAL-MODE FILE... ouchmod [OPTION]... --reference=RFILE FILE...
Les principales options à connaître :
-R
: modification récursive, autrement dit modification des droits de tous les répertoires et fichiers contenus dans le dossier.-f
: n’affiche aucun prompt.
chmod 755 ~/bin/container-structure-test
Donne les droits d’exécution sur le fichier container-structure-test
présent
dans le répertoire de l’utilisateur exécutant cette commande.
chown (change owner)
La commande chown
permet de modifier le propriétaire d’un fichier ou d’un
dossier s’il a les permissions d’accès en écriture. Sinon il faudra demander
soit à son propriétaire actuel, soit le faire avec une élévation de
privilèges.
chown [OPTION]... [OWNER][:[GROUP]] FILE... ouchown [OPTION]... --reference=RFILE FILE...
Les principales options à connaître :
-R
: modification récursive, autrement dit modification les propriétaires de tous les répertoires et fichiers contenus dans le dossier.-f
: n’affiche aucun prompt.
chown $USER ~/bin/container-structure-test
Change le propriétaire sur le fichier container-structure-test
présent dans
le répertoire de l’utilisateur exécutant cette commande.
chgrp (change group)
La commande chgrp
change le groupe associé à un fichier ou un dossier.
chgrp [OPTION]... GROUP FILE... ouchgrp [OPTION]... --reference=RFILE FILE...
Les principales options à connaître :
-R
: modification récursive, autrement dit modification du groupe de tous les répertoires et fichiers contenus dans le dossier.-f
: n’affiche aucun prompt.
chown un-groupe ~/bin/container-structure-test
Cette commande change le groupe sur le fichier container-structure-test
présent dans le répertoire de l’utilisateur exécutant cette commande.
Visualisation de fichiers
cat
La commande cat
affiche le contenu d’un fichier dans le terminal sans
pagination.
cat [OPTION]... [FILE]...
Les principales options à connaître :
-n
: Affiche les numéros de ligne-v
: Affiche les caractères non imprimable (^M) utile pour voir si un fichier est au format DOS.
cat -vn /tmp/test.sh 1 #!/bin/bash 2 additionner() { 3 local resultat=$(( $1 + $2 )) 4 return $resultat 5 } 6 7 8 additionner 5 3 9 resultat=$? 10 echo "La somme est : $resultat" 11
less
La commande linux less
est utilisée pour afficher le contenu d’un fichier
texte ou la sortie d’une commande, en permettant de naviguer dans le texte de
manière interactive. less
est une amélioration de la commande more
, offrant
plus de fonctionnalités et une meilleure expérience utilisateur.
Une fois que vous avez ouvert un fichier avec less, vous pouvez naviguer dans le texte de différentes manières :
- Utilisez les touches fléchées [haut] et [bas]s pour faire défiler le texte ligne par ligne.
- Utilisez la barre [espace] pour faire défiler d’une page en avant.
- Utilisez la touche [b] pour faire défiler d’une page en arrière.
- Utilisez la touche [q] pour quitter et revenir au shell.
Pour tester less
utiliser la commande man qui utilise less comme paginateur.
man less
LESS(1) General Commands Manual LESS(1)
NAME less - opposite of more
SYNOPSIS less -? less --help less -V less --version less [-[+]aABcCdeEfFgGiIJKLmMnNqQrRsSuUVwWX~] [-b space] [-h lines] [-j line] [-k keyfile] [-{oO} logfile] [-p pattern] [-P prompt] [-t tag] [-T tagsfile] [-x tab,...] [-y lines] [-[z] lines] [-# shift] [+[+]cmd] [--] [filename]... (See the OPTIONS section for alternate option syntax with long option names.)
DESCRIPTION Less is a program similar to more(1), but it has many more features. Less does not have to read the entire input file before starting, so with large input files it starts up faster than text editors like vi(1). Less uses termcap (or terminfo on some systems), so it can run on a variety of terminals. There is even limited support for hardcopy terminals. (On a hardcopy terminal, lines which should be printed at the top of the screen are prefixed with a caret.)
Commands are based on both more and vi. Commands may be preceded by a decimal number, called N in the descriptions below. The number is used by some commands, as indicated.
COMMANDS In the following descriptions, ^X means control-X. ESC stands for the ESCAPE key; for example ESC-v means the two character sequence "ESCAPE", then "v".
h or H Help: display a summary of these commands. If you forget all the other commands, remember this one.
SPACE or ^V or f or ^F Scroll forward N lines, default one window (see option -z below). If N is more than the screen size, only the final screenful is displayed. Warning: some systems use ^V as Manual page less(1) line 1 (press h for help or q to quit)
Les fonctionnalités de less
less
permet de rechercher un terme spécifique dans le texte :
- Appuyez sur la touche [/] suivi du terme que vous souhaitez rechercher appuyez
sur [Entrée].
less
vous amènera à la première occurrence du terme trouvé et vous pourrez naviguer à travers les occurrences suivantes en appuyant sur [n] pour suivant ou [N] pour précédent.
less
possède de nombreuses autres fonctionnalités utiles, telles que la
possibilité de marquer des lignes, de copier du texte, de sauter à une ligne
spécifique, etc. Vous pouvez obtenir une liste complète des commandes en
appuyant sur la touche h
pour obtenir de l’aide.
head et tail
Les commandes head
et tail
sont utilisées pour afficher les premières
(têtes) ou les dernières (queues) lignes d’un fichier texte. Par défaut, head
affiche les 10 premières lignes d’un fichier, tandis que tail
affiche les 10
dernières lignes. Vous pouvez spécifier le nombre de lignes à afficher en
utilisant l’option -n.
Exemples :
head -n 20 fichier.txt # Affiche les 20 premières lignes du fichiertail -n 5 fichier.log # Affiche les 5 dernières lignes du fichier de journal
Ces commandes sont couramment utilisées pour visualiser les en-têtes ou les résumés de fichiers volumineux comme les fichiers de logs de services.
Recherche de fichiers et de dossiers
find
La commande find
est un utilitaire puissant en ligne de commande sur les
systèmes Unix et Linux qui permet de rechercher des fichiers et des répertoires
en fonction de divers critères, tels que le nom, la taille, la date de
modification, les permissions, etc. find
est extrêmement flexible et utile
pour localiser des fichiers dans le système de fichiers.
find chemin [options] [expression]
chemin
: Le chemin de départ à partir duquel vous souhaitez commencer la recherche.options
: Des options facultatives pour personnaliser la recherche.expression
: Des critères de recherche spécifiques, tels que le nom du fichier, la taille, la date, etc.
Voici quelques exemples d’utilisation courants de la commande find
:
1. Rechercher un fichier par nom : Pour rechercher un fichier spécifique par
son nom, utilisez l’option -name
suivie du nom du fichier entre guillemets.
Par exemple, pour trouver tous les fichiers nommés mon_fichier.txt
dans le
répertoire courant et ses sous-répertoires, vous pouvez utiliser :
find . -name "mon_fichier.txt"
2. Rechercher des fichiers par extension : Vous pouvez rechercher des
fichiers par extension en utilisant -name
avec un modèle d’extension. Par
exemple, pour trouver tous les fichiers avec l’extension .log
dans le
répertoire courant et ses sous-répertoires :
find . -name "*.log"
3. Rechercher des fichiers par taille : Vous pouvez rechercher des fichiers
en fonction de leur taille en utilisant l’option -size
. Par exemple, pour
trouver tous les fichiers de plus de 1 Mo dans le répertoire courant et ses
sous-répertoires :
find . -size +1M
4. Rechercher des fichiers par date de modification : Vous pouvez rechercher
des fichiers en fonction de leur date de modification en utilisant l’option
-mtime
. Par exemple, pour trouver tous les fichiers modifiés il y a moins
de 7 jours :
find . -mtime -7
5. Rechercher des répertoires vides : Pour trouver tous les répertoires
vides dans un chemin donné, vous pouvez utiliser l’option -type d
où d
signifie répertoire. Par exemple, pour rechercher des répertoires vides dans
le répertoire courant :
find . -type d -empty
6. Exécuter une action sur les fichiers trouvés : Vous pouvez exécuter une
action (comme supprimer, déplacer, renommer, etc.) sur les fichiers ou
répertoires trouvés en utilisant l’option -exec
. Par exemple, pour
supprimer tous les fichiers avec l’extension .tmp
dans le répertoire
courant et ses sous-répertoires :
find . -name "*.tmp" -exec rm {} \;
L’argument {}
est remplacé par chaque fichier trouvé et \;
indique la fin
de la commande à exécuter.
Ces exemples illustrent quelques-unes des nombreuses possibilités offertes par
la commande find
. Elle est extrêmement polyvalente et peut être utilisée pour
répondre à une grande variété de besoins de recherche de fichiers et de
répertoires dans un système de fichiers Unix ou Linux.
J’ai ecrit un guide dédié à la commande find
pour vous aider à mieux
comprendre son fonctionnement et ses options. Vous pouvez le trouver
ici.
locate
La commande locate
permet de rechercher rapidement des fichiers et des
répertoires dans tout le système de fichiers en utilisant une base de données
d’index pré-générée. Contrairement à la commande find
, qui effectue une
recherche en temps réel, locate
interroge la base de données d’index, ce qui
rend les recherches beaucoup plus rapides. Cependant, cela signifie que locate
n’est pas en temps réel et ne reflète pas immédiatement les changements dans le
système de fichiers.
La base de données locate
est mise à jour périodiquement par un processus
système (généralement via une tâche planifiée). Si vous souhaitez mettre à jour
la base de données manuellement pour refléter les modifications récentes du
système de fichiers, vous pouvez utiliser la commande updatedb
en tant
qu’utilisateur root
:
sudo updatedb
Voici comment utiliser la commande locate
:
Syntaxe de base de la commande locate
:
locate [options] motif
motif
: Le motif de recherche que vous souhaitez utiliser pour trouver des fichiers et des répertoires.options
: Des options facultatives pour personnaliser la recherche.
Exemples d’utilisation courante de la commande locate
:
1. Rechercher un fichier par nom : Pour rechercher un fichier spécifique par
son nom, utilisez simplement locate
suivi du nom du fichier ou d’un motif.
Par exemple, pour trouver tous les fichiers ayant example
dans leur nom :
locate example
2. Rechercher un fichier par expression régulière : Vous pouvez également
utiliser des expressions régulières avec locate
pour des recherches plus
avancées. Par exemple, pour trouver tous les fichiers dont le nom commence
par file
et se termine par un nombre de 1 à 3 chiffres :
locate '^file[0-9]{1,3}$'
3. Limiter la recherche à un répertoire spécifique : Par défaut, locate
recherche dans tout le système de fichiers. Si vous souhaitez limiter la
recherche à un répertoire spécifique, vous pouvez spécifier le chemin en tant
qu’argument. Par exemple, pour rechercher tous les fichiers avec le nom
example
dans le répertoire /home/utilisateur
:
locate /home/utilisateur/example
4. Utiliser des options pour personnaliser la recherche : locate
offre
différentes options pour personnaliser la recherche, telles que l’ignorance
de la casse (-i
), la recherche récursive (-r
), l’affichage du nombre de
résultats (-c
), etc.
grep
La commande grep
permet de rechercher des lignes de texte dans des fichiers ou
des flux de données en utilisant des expressions régulières ou des motifs de
recherche. grep
est un outil extrêmement puissant pour extraire des
informations spécifiques à partir de fichiers texte ou de la sortie d’autres
commandes.
Voici la syntaxe de base de la commande grep
:
grep [options] motif [fichiers...]
motif
: Le motif de recherche que vous souhaitez trouver dans le texte.fichiers
: Une liste facultative de fichiers dans lesquels vous souhaitez effectuer la recherche. Si vous n’indiquez pas de fichiers,grep
lira l’entrée standard (généralement le texte fourni via la ligne de commande ou une autre commande) pour effectuer la recherche.
Voici quelques exemples d’utilisation courante de la commande grep
:
1. Rechercher un motif dans un fichier : Pour rechercher un motif spécifique
dans un fichier, utilisez simplement grep
suivi du motif et du nom du
fichier. Par exemple, pour trouver toutes les occurrences du mot exemple
dans le fichier fichier.txt
:
grep "exemple" fichier.txt
2. Rechercher un motif dans plusieurs fichiers : Vous pouvez rechercher un
motif dans plusieurs fichiers en spécifiant une liste de fichiers après le
motif. Par exemple, pour trouver toutes les occurrences du mot erreur
dans
les fichiers fichier1.txt
, fichier2.txt
et fichier3.txt
:
grep "erreur" fichier1.txt fichier2.txt fichier3.txt
3. Utilisation d’expressions régulières : grep
prend en charge les
expression régulière pour des
recherches plus avancées. Par exemple, pour trouver toutes les lignes
commençant par Erreur
(en ignorant la casse) dans un fichier :
grep -i "^Erreur" fichier.txt
4. Recherche récursive dans des répertoires : Vous pouvez effectuer une
recherche récursive dans un répertoire en utilisant l’option -r
(ou -R
).
Par exemple, pour rechercher le motif recherche
dans tous les fichiers de
tous les sous-répertoires du répertoire courant :
grep -r "recherche" .
5. Affichage du numéro de ligne : grep
peut afficher le numéro de ligne de
chaque correspondance à l’aide de l’option -n
. Par exemple, pour afficher
toutes les occurrences du mot important
dans un fichier avec les numéros de
ligne correspondants :
grep -n "important" fichier.txt
6. Utilisation avec des pipelines : grep
est souvent utilisé avec des
pipelines pour traiter la sortie d’autres commandes. Par exemple, pour
rechercher tous les fichiers contenant le mot erreur
dans un répertoire
donné et les afficher :
find /chemin/vers/repertoire -type f -exec grep -l "erreur" {} \;
Pour plus d’informations sur les options et les fonctionnalités de cette
commande, vous pouvez consulter mon guide dédié à la commande grep
ici.
Exercices pratiques : mettre en application vos connaissances
Vous avez parcouru les principales commandes Linux permettant de naviguer dans les répertoires, de manipuler des fichiers et d’ajuster les permissions. Pour progresser efficacement, rien ne vaut la pratique concrète.
Je vous invite à vous rendre sur le dépôt GitHub suivant, où vous trouverez une série de travaux pratiques spécialement conçus pour vous entraîner à manipuler le système de fichiers Linux :
👉 Travaux pratiques : TP-01 Navigation dans les fichiers ↗
Ces exercices couvrent notamment :
- La navigation entre répertoires avec
cd
,pwd
- La liste des fichiers avec différentes options
ls
- La création et suppression de répertoires (
mkdir
,rmdir
) - Les copies et déplacements de fichiers (
cp
,mv
) - Des manipulations plus poussées pour vous familiariser avec les options avancées
Pourquoi pratiquer ?
L’apprentissage des commandes Linux repose sur la répétition et l’expérimentation. En travaillant sur ces TP :
- Vous gagnez en confiance avec la ligne de commande
- Vous découvrez des cas d’usage concrets
- Vous développez des réflexes indispensables en environnement professionnel
Clonez le dépôt ou suivez directement les consignes en ligne, puis lancez-vous !
Contrôle de connaissances
Pourquoi ce contrôle ?
Cet contrôle va vous permettre de valider vos connaissances sur le sujet abordé dans le guide. Il comporte des QCM, des questions vrai/faux et des réponses ouvertes à un mot.
🕒 Le chronomètre commence dès que vous cliquez sur Démarrer le test. Vous devrez terminer l’examen avant la fin du temps imparti.
🎯 Pour réussir, vous devez obtenir au moins 80% de bonnes réponses.
💡 Je ne fournis pas directement les réponses aux questions. Cependant, si certaines sont complexes, des pistes d’explication pourront être proposées dans le guide ou après l’examen.
Bonne chance ! 🚀
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 complémentaires pour améliorer votre productivité et votre efficacité dans l’utilisation de Linux.