Apprendre les commandes Linux de base
Cette documentation est en cours d'écriture, donc soyez indulgent pour le moment. Je compte ajouter du contenu régulièrement pour le rendre de qualité.
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 de d'une interface en ligne de commande (CLI) pouvant effectuer des opérations complexes, automatiser des tâches sans faire appel à une interface graphique.
Pour chacune des commandes Linux, 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.
Quelques définitions
Qu'est-ce qu'un émulateur de terminal ?
Sur un environnement graphique, un terminal est un programme qui permet à l’utilisateur d'interagir avec le shell.
Qu'est-ce qu'un shell ?
Le shell est un programme qui reçoit les commandes saisies par l'utilisateur à partir de son clavier pour les envoyer au système d’exploitation qui se chargera de les exécuter.
Il comprend un interpréteur en ligne de commande qui accepte l’entrée de l’utilisateur via le clavier, l’évalue, met en route les programmes en conséquence et renvoie le résultat à l’utilisateur sous forme d’une sortie texte. Chaque shell a par ailleurs son propre langage de programmation permettant d’écrire ce qu'on appelle des scripts shell.
Les principaux Shell Linux
Voici une liste des principaux shells disponibles sur les systèmes Linux :
- sh (Bourne Shell) : L'un des shells Unix originaux sur lequel Bash est basé. Moins fréquemment utilisé aujourd'hui mais important historiquement.
- Csh (C Shell) et Tcsh (TENEX C Shell) : Inspirés par le langage de programmation C, ces shells offrent des syntaxes et des fonctionnalités différentes de celles de Bourne Shell et ses dérivés.
- Bash (Bourne-Again Shell) : Le shell le plus courant sur Linux, connu pour sa flexibilité et sa compatibilité avec le shell Bourne.
- Dash (Debian Almquist Shell) : Une version légère du shell Almquist (ash), utilisée par défaut dans Debian et ses dérivés pour les scripts de démarrage du système.
- Ksh (Korn Shell) : Un shell amélioré par rapport à Bourne Shell, avec des fonctionnalités supplémentaires telles que l'édition de ligne en ligne de commande.
- Zsh (Z Shell) : Un shell avancé avec de nombreuses améliorations par rapport à Bash, notamment en termes de complétion de commandes et d'interface utilisateur.
- Fish (Friendly Interactive Shell) : Connu pour sa convivialité et ses fonctionnalités interactives, comme les suggestions automatiques et une coloration syntaxique riche.
Chacun de ces shells a ses propres caractéristiques et avantages, et le choix dépend souvent des besoins spécifiques de l'utilisateur et de la familiarité avec la syntaxe du shell.
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. Nous apprendrons le script shell bash
dans la
prochaine section (en cours d'écriture)
Qu'est-ce qu'une commande linux ?
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 --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
:
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 :
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-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
:
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 :
Les commandes de base Linux
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 -alrth
total 24K
drwxrwxr-x 31 bob bob 4,0K oct. 26 14:47 ..
-rw-rw-r-- 1 bob bob 540 oct. 26 15:10 Vagrantfile
drwxrwxr-x 6 bob bob 4,0K oct. 26 15:10 .vagrant
-rw-rw-r-- 1 bob bob 54 oct. 26 15:51 Dockerfile
drwxrwxr-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]
# ou
cd -
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
# ou
cp [OPTION]... SOURCE... DIRECTORY
# ou
cp [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
# ou
mv [OPTION]... SOURCE... DIRECTORY
# ou
mv [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/test2
renommé '/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.
Sans maîtrise cette commande peut avoir des conséquences irrémédiables, surtout
si avec les options -rf
associés avec l'élévation de privilèges.
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...
# ou
chmod [OPTION]... OCTAL-MODE FILE...
# ou
chmod [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.
Sans maîtrise cette commande peut avoir des conséquences irrémédiables, surtout
si avec les options -rf
associés avec l'élévation de privilèges.
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...
# ou
chown [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.
Sans maîtrise cette commande peut avoir des conséquences irrémédiables, surtout
si avec les options -rf
associés avec l'élévation de privilèges.
chgrp (change group)
La commande chgrp
change le groupe associé à un fichier ou un dossier.
chgrp [OPTION]... GROUP FILE...
# ou
chgrp [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.
Sans maîtrise cette commande peut avoir des conséquences irrémédiables, surtout
si avec les options -rf
associés avec l'élévation de privilèges.
Visualisation et édition 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 fichier
tail -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.
Les éditeurs de texte
nano
et vi
sont deux éditeurs de texte qui permettent de modifier des
fichiers directement depuis le terminal. Ils offrent des fonctionnalités
d'édition de texte, mais ils ont des interfaces et des fonctionnalités
différentes. Voici une description de ces deux éditeurs, ainsi que leurs
principales différences :
nano
nano
est un éditeur de texte simple et convivial pour les débutants. Il est
souvent recommandé pour les utilisateurs novices en raison de sa simplicité
d'utilisation. L'interface de nano
est relativement intuitive et affiche des
raccourcis clavier courants en bas de l'écran pour aider les utilisateurs à
naviguer et à effectuer des opérations. Pour ouvrir un fichier avec nano
, vous
pouvez simplement taper nano
suivi du nom du fichier. Les principales commandes
de nano
sont généralement affichées à l'écran, ce qui facilite leur utilisation.
Par exemple, pour enregistrer un fichier, vous appuyez sur [Ctrl] + [O], puis vous
appuyez sur Entrée, et pour quitter, vous appuyez sur [Ctrl] + [X]. nano
est un
choix solide pour les tâches d'édition de texte simples et rapides, mais il peut
manquer certaines des fonctionnalités plus avancées offertes par vi
.
vi
vi
(ou vim
) est un éditeur de texte très puissant et extensible. Il est
extrêmement populaire parmi les utilisateurs expérimentés en raison de ses
nombreuses fonctionnalités et de sa polyvalence. L'interface de vi
peut
sembler déroutante pour les débutants, car elle utilise un mode de
fonctionnement avec des modes, y compris le mode commande et le mode édition.
Cela signifie que pour effectuer des opérations, vous devez basculer entre ces
modes. Pour ouvrir un fichier avec vi
vous pouvez taper vi
suivi du nom du
fichier. vi
offre une large gamme de commandes pour effectuer des opérations
d'édition, de navigation et de recherche. Par exemple, pour insérer du texte,
vous devez d'abord basculer en mode insertion en appuyant sur [i], puis vous
pouvez taper votre texte. Pour enregistrer un fichier, vous devez basculer en
mode commande en appuyant sur Esc, puis vous pouvez saisir :w
et appuyer sur
Entrée. vi
est extrêmement puissant et flexible, mais il peut nécessiter une
certaine période d'apprentissage pour maîtriser ses fonctionnalités.
Je vous conseille de visionner la video de xavki.
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.
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
expressions régulières 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" {} \;
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.
Contrôle de taches avec les commandes fg, bg et jobs
Un tache est un processus géré par le shell. Chaque tache se voit attribuer un ID de tâche. Une tache étant un processus, chaque tache est associée à un PID. Il existe trois types d'états de job :
- Premier plan : lorsque vous entrez une commande dans une fenêtre de terminal, la commande tourne jusqu'à ce qu'elle se termine. C'est un travail au premier plan.
- Arrière-plan : Lorsque vous saisissez le caractère
&
à la fin d'une ligne de commande.. L'invite du shell s'affiche immédiatement après que vous ayez appuyé sur [Retour]. Ceci est un exemple de travail en arrière-plan. - Arrêté : Si vous appuyez sur [Ctrl] + [Z] pour une tâche qui est au premier plan ou si vous entrez la commande d'arrêt pour une tâche en arrière-plan, la tâche s'arrête. Ce travail est appelé travail arrêté.
La commande jobs
La commande linux jobs
retourne la liste des id de jobs et leur état :
jobs
[1] + suspended sleep 5000
La commande fg
La commande fg %id
passe une tache au premier plan.
La commande bg
La commande bg %id
passe une tache en arrière-plan.
Démonstration
Lançons une commande simplement la commande sleep 5000
et appuyez sur les
touches [Ctrl] + [Z]. Le shell nous retourne un ID :
sleep 5000
^Z
[1] + 865006 suspended sleep 5000
On récupère l'id du job ainsi que son PID
. Pour lancer directement une commande
en arrière-plan, on aurait dû le faire au moyen de la commande sleep 5000 &
.
Si on tape la commande jobs
:
jobs
[1] + suspended sleep 5000
Shell nous retourne la tache 1 qui est arrêtée. Passons-la en arrière-plan :
bg %1
[1] + 865006 continued sleep 5000
La tâche passe en arrière-plan. Repassons-la au premier plan :
[1] + 865006 running sleep 5000
Le shell attend désormais la fin de la commande pour nous rendre la main.
Plus loin
Nous avons vu dans ce chapitre, ce que nous allons appeler des commandes basiques plus utiliser dans des tâches dites d'exploitation. Dans le chapitre suivant, nous allons voir des commandes permettant d'administrer des serveurs Linux.