Vous êtes sur la page 1sur 21

Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes

Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux


Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

Chapitre 2 :
Administration de base
de Linux

Dr. F.Z. Filali


fatimazohra.fillali@univ-mosta.dz 1
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

Sommaire
1. Administration système ................................................................................................................... 4
1.1. Privilèges d’administrateur du système ..................................................................................... 4
1.2. Fonctionnalités administratives ................................................................................................. 4
1.3. Utilisation du compte root......................................................................................................... 5
1.3.1. Utilisation du root à partir du Shell (commande su) ............................................................ 5
1.3.2. Accès administratif avec sudo ............................................................................................ 6
1.4. Commandes administratives ..................................................................................................... 6
1.5. Fichiers de configuration administratives .................................................................................. 6
1.6. Fichiers logs administratives ..................................................................................................... 7
2. Le Shell Linux ................................................................................................................................ 8
2.1. Présentation du Shell ................................................................................................................ 8
2.2. Utilisation du Shell ................................................................................................................... 8
2.2.1. Invite de commande ........................................................................................................... 8
2.2.2. Syntaxe des commandes ..................................................................................................... 9
2.2.3. Types de commandes ......................................................................................................... 9
2.3. Historiques des commandes ...................................................................................................... 9
3. Rappel sur les commandes de base ................................................................................................ 10
3.1. Affichage du texte avec echo .................................................................................................. 10
3.2. Lister les fichiers et les répertoires .......................................................................................... 10
3.3. Gérer les fichiers et répertoires ............................................................................................... 10
3.3.1. Créer des fichiers vides .................................................................................................... 10
3.3.2. Créer des répertoires......................................................................................................... 11
3.3.3. Supprimer des répertoires ................................................................................................. 11
3.3.4. Copier des fichiers............................................................................................................ 11
3.3.5. Déplacer et renommer un fichier....................................................................................... 11
3.3.6. Supprimer un fichier ou une arborescence ........................................................................ 12
3.3.7. Les liens symboliques....................................................................................................... 12
3.4. Caractères de substitution (Wildcards) .................................................................................... 12
3.5. Rechercher des fichiers ........................................................................................................... 13
3.5.1. Critères de recherche ........................................................................................................ 13
3.5.2. Les options de recherche .................................................................................................. 13
3.6. Retrouver des exécutables ....................................................................................................... 13
3.6.1. whereis ............................................................................................................................. 13
3.6.2. which ............................................................................................................................... 14
3.7. Edition du texte avec vi........................................................................................................... 14
Dr. F.Z. Filali
fatimazohra.fillali@univ-mosta.dz 2
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

3.7.1. Commandes de saisie ....................................................................................................... 14


3.7.2. Commandes pour quitter et sauvegarder ........................................................................... 14
3.7.3. Commandes de déplacement ............................................................................................ 15
3.7.4. Commandes de modification ............................................................................................ 15
3.7.5. Commandes de recherche ................................................................................................. 15
3.7.6. Commandes de copier/coller ............................................................................................ 15
3.8. Redirections ............................................................................................................................ 15
3.8.1. Redirections en sortie ....................................................................................................... 16
3.8.2. Redirections en entrée ...................................................................................................... 16
3.8.3. Les canaux standards ........................................................................................................ 16
3.8.4. Ouverture de canaux ......................................................................................................... 16
3.8.6. Pipelines / tubes ............................................................................................................... 17
3.9. Les filtres et utilitaires ............................................................................................................ 17
3.9.1. Quelques filtres Linux ...................................................................................................... 17
4. Références et lectures supplémentaires .......................................................................................... 21

Objectifs
• Comprendre l’administration système
• Savoir travailler avec la ligne de commande.
• Savoir effectuer des manipulations de base sur le système de fichier.
• Savoir travailler avec un éditeur de texte.
• Savoir mettre en place des redirections et tubes.

Dr. F.Z. Filali


fatimazohra.fillali@univ-mosta.dz 3
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

1. Administration système
De nos jours, le système d’exploitation Linux est omniprésent dans le monde des serveurs.
L’infrastructure de l’Internet est assurée principalement par Linux. Les parcs de serveurs des grandes
entreprises comme Google, Facebook ou Amazon fonctionnent tous sous Linux.
Un serveur linux, étant multi-tâche et multi-utilisateur, peut assumer une multitude de rôles en
entreprise : serveur de fichiers, serveur de bases de données, serveur web, serveur de messagerie,
passerelle/pare-feu, proxy filtrant, etc. Chacune de ces configurations parfois très spécifique nécessite
une bonne maîtrise des bases de l’administration d’un système Linux.
La personne désignée pour gérer toutes les ressources d’un système Linux est appelée administrateur
système et même s’il n’y a qu’un seul utilisateur, l'administration système est toujours configurée pour
être distincte des autres.
Pour effectuer la plupart des tâches administratives, on doit être connecté en tant qu'utilisateur root
(également appelé superutilisateur) ou pour obtenir temporairement une autorisation root. Les
utilisateurs réguliers qui ne disposent pas de droit root ne peuvent pas modifier et consulter certaines
informations de configuration pour un système Linux. En particulier, les fonctionnalités de sécurité
telles que les mots de passe.
1.1. Privilèges d’administrateur du système
Séparer le rôle d’administrateur système de celui d’autres utilisateurs a plusieurs effets. Un rôle
administratif distinct empêche les autres utilisateurs de causer des dommages au système lorsqu'ils s'en
servent simplement pour écrire un document ou naviguer sur Internet.
En tant qu’administrateur système d'un système Linux, vous vous connecter généralement en tant
que compte d'utilisateur normal, puis vous demandez des privilèges administratifs lorsque vous en avez
besoin. Cela se fait souvent avec l'un des éléments suivants :
• Commande su : Souvent, su est utilisé pour ouvrir un shell en tant qu'utilisateur root. Une fois
ouvert, l'administrateur peut exécuter plusieurs commandes, puis quitter pour revenir à un shell
en tant qu'utilisateur normal.
• Commande sudo : avec sudo, un utilisateur normal dispose des privilèges root, mais
uniquement lorsque l'utilisateur exécute la commande sudo. Après avoir exécuté cette
commande avec sudo, l'utilisateur est immédiatement renvoyé à un shell et agira à nouveau en
tant qu'utilisateur normal.
• Interfaces graphiques : de nombreuses fenêtres d'administration graphiques, qui peuvent être
lancées à partir du menu Système ou Applications, peuvent être ouvertes par un utilisateur
ordinaire. Lorsqu'un privilège root est requis, vous êtes invité à entrer le mot de passe root.
1.2. Fonctionnalités administratives
Les tâches pouvant être effectuées uniquement par l'utilisateur root sont celles qui affectent le
système dans son ensemble ou qui ont une incidence sur la sécurité ou le fonctionnement du système.
Les fonctionnalités communes qu'un administrateur système est censé gérer sont :
• Gestion des systèmes de fichiers : Lorsqu’on installe Linux, la structure de répertoires est
configurée pour rendre le système utilisable. Toutefois, si on souhaite ultérieurement ajouter de
l'espace de stockage ou modifier la structure du système de fichiers, on doit disposer de
privilèges d'administrateur. En outre, l'utilisateur root est autorisé à accéder aux fichiers
appartenant à tout utilisateur. En conséquence, l’utilisateur root peut copier, déplacer ou modifier
les fichiers de tout autre utilisateur, privilège nécessaire pour effectuer des copies de sauvegarde
du système de fichiers afin de les sauvegarder.

Dr. F.Z. Filali


fatimazohra.fillali@univ-mosta.dz 4
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

• Installation des logiciels : On doit disposer de privilèges root pour pouvoir installer des
logiciels. Les utilisateurs normaux peuvent toujours installer certains logiciels dans leurs propres
répertoires et peuvent lister des informations sur les logiciels systèmes installés.
• Gestion des utilisateurs : Seul l'utilisateur root peut ajouter et supprimer des comptes
d'utilisateurs et des comptes de groupe.
• Gestion du réseau : En général c’est à l'utilisateur root de configurer et de démarrer et
d'interrompre les interfaces réseau.
• Gestion des services : La configuration de serveurs Web, de serveurs de fichiers, de serveurs de
noms de domaines, de serveurs de messagerie et de dizaines d'autres serveurs nécessite le
privilège root, tout comme le démarrage et l'arrêt de ces services. Les services sont souvent
exécutés en tant qu'utilisateurs non root et le contenu, tel que les pages Web, peut être ajouté aux
serveurs par des utilisateurs non root.
• Gestion de sécurité : La configuration des fonctions de sécurité, telles que les pares-feux et les
listes d'accès des utilisateurs, est généralement effectuée par l'utilisateur root. Il appartient
également à l’utilisateur root de surveiller l’utilisation des services et de s’assurer que les
ressources du serveur ne sont ni épuisées ni utilisées à mauvais escient.
1.3. Utilisation du compte root
Chaque système Linux dispose d’au moins un compte d'utilisateur administratif (l'utilisateur root)
et éventuellement un ou plusieurs comptes d'utilisateur standard. Dans la plupart des cas, on se connecte
en tant qu'utilisateur normal et on passe à l'utilisateur root pour effectuer une tâche administrative.
L'utilisateur root a le contrôle complet du fonctionnement du système Linux. Cet utilisateur peut
ouvrir n’importe quel fichier ou exécuter n’importe quel programme. L'utilisateur root installe
également des packages logiciels et ajoute des comptes pour les autres utilisateurs du système.
Pour vous familiariser avec le compte d'utilisateur root, on peut se connecter en tant qu'utilisateur
root. Il est recommandé d'essayer cela à partir d'une console virtuelle. Pour ce faire, appuyez sur Ctrl +
Alt + F2. A l'invite de connexion, taper root (appuyez sur Entrée) et entrer le mot de passe. Ça ouvrira
une session de connexion pour root. Une fois terminé, taper exit, puis appuyez sur Alt + F7 pour revenir
à la connexion de bureau régulière.
Une fois connecté en tant que root, le répertoire de base de l'utilisateur root est généralement /root.
Le répertoire de base et les autres informations associées au compte utilisateur racine se trouvent dans
le fichier /etc/passwd.
1.3.1. Utilisation du root à partir du Shell (commande su)
Bien qu’on puisse devenir superutilisateur en se connectant en tant que root, cela n’est parfois pas
pratique. On devrait aussi être capable de se connecter via le réseau pour effectuer une modification.
Sur un système Linux, le système n'autorise pas les utilisateurs root à partir du réseau (pratique courante
pour les systèmes Linux hautement sécurisés).
La solution consiste à utiliser la commande su. A partir de n'importe quelle fenêtre ou shell de
Terminal, on tape la commande suivante :
$ su
L’invite de l’utilisateur régulier ($) passe à l’invite de superutilisateur (#). Ainsi, on est autorisé à
exécuter toute commande et à n’importe quel fichier du système. Cependant, une chose que la
commande su ne fait pas est le faire de lire dans l’environnement de l’utilisateur root. Par conséquent,
on peut taper une commande disponible et obtenir le message Commande non trouvée. Pour résoudre
ce problème, on utilise la commande su avec l'option (-) :
$ su -
On peut également utiliser la commande su pour devenir un utilisateur autre que root. Par exemple,
pour obtenir les autorisations d’un utilisateur nommé user1 :
Dr. F.Z. Filali
fatimazohra.fillali@univ-mosta.dz 5
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

$ su - user1
Lorsqu’on a terminé avec les autorisations de superutilisateur, il faut quitter le shell actuel, en en
appuyant sur Ctrl + D ou en tapant exit.
1.3.2. Accès administratif avec sudo
Un utilisateur particulier peut également recevoir des autorisations administratives pour des tâches
particulières sans recevoir le mot de passe root. Le service sudoers est le moyen le plus courant d’offrir
un tel privilège.
Avec sudoers, octroyer des privilèges root complets ou limités à tout utilisateur implique simplement
de l’ajouter à /etc/sudoers et de définir les privilèges qu’on souhaite lui attribuer. Ensuite, l'utilisateur
peut exécuter n'importe quelle commande dont il a le privilège d'utiliser en faisant précéder cette
commande par la commande sudo.
Exemple :
sudo ls /bin/
Définition de privilèges sudo pour un utilisateur (sudoers)
En tant qu’utilisateur root, éditer le fichier /etc/sudoers, pour y ajouter la ligne suivante afin de
permettre à un utilisateur user d’avoir les privilèges root complets sur l’ordinateur :
user ALL = (ALL) ALL
1.4. Commandes administratives
Seul l'utilisateur root est censé utiliser de nombreuses commandes administratives. Lorsqu’on se
connecte en tant que root (ou on utilise su - à partir du shell pour devenir root), la variable $PATH est
définie pour inclure certains répertoires contenant des commandes pour l'utilisateur root. Ceux-ci
incluent les suivants :
• /sbin : Contient les commandes nécessaires au démarrage du système, y compris les commandes
permettant de vérifier les systèmes de fichiers (fsck) et de démarrer/arrêter les services système
(service).
• /usr/sbin : Contient des commandes telles que la gestion des comptes d'utilisateurs (tels que
useradd) et la vérification des processus gardant les fichiers ouverts (tels que lsof). Les
commandes qui s'exécutent en tant que processus démon sont également contenues dans ce
répertoire. (Ces commandes se terminent par d, telles que sshd, pppd et cupsd.)
Certaines commandes administratives sont contenues dans des répertoires utilisateur normaux (tels
que /bin et /usr/bin).
1.5. Fichiers de configuration administratives
Les fichiers de configuration sont un élément principal pour l'administration Linux. Presque tout ce
qu’on configure pour un ordinateur particulier - comptes d'utilisateurs, adresses réseau ou préférences
de l'interface graphique - est stocké dans des fichiers en texte brut.
Les deux emplacements principaux des fichiers de configuration sont le répertoire de base (où sont
conservés les fichiers de configuration personnels) et le répertoire /etc (qui contient les fichiers de
configuration du système).
Les répertoires (et sous-répertoires) contenant des fichiers de configuration utiles sont :
• $HOME : Tous les utilisateurs stockent dans leurs répertoires personnels des informations qui
déterminent le comportement de leurs comptes de connexion. De nombreux fichiers de
configuration se trouvent directement dans le répertoire de base de chaque utilisateur
(/home/nom_user) et commencent par un point (.).
• /etc : Ce répertoire contient la plupart des fichiers de configuration de base du système.

Dr. F.Z. Filali


fatimazohra.fillali@univ-mosta.dz 6
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

• /etc/cron* : les répertoires de cet ensemble contiennent des fichiers qui définissent la manière
dont l'utilitaire crond exécute les applications quotidiennement (cron.daily), horaire
(cron.hourly), mensuel (cron.monthly) ou hebdomadaire (cron.weekly).
• /etc/cups : Contient les fichiers utilisés pour configurer le service d'impression CUPS.
• /etc/default : Contient les fichiers qui définissent les valeurs par défaut pour divers utilitaires.
Par exemple, le fichier de la commande useradd définit le numéro de groupe par défaut, le
répertoire de base, la date d'expiration du mot de passe et le shell utilisés lors de la création d'un
nouveau compte d'utilisateur.
• /etc/httpd (ou /etc/apache2) : contient divers fichiers utilisés pour configurer le comportement
du serveur Web Apache (en particulier le processus httpd daemon).
• /etc/init.d : contient les copies permanentes des scripts d'exécution de style System V. Ces
scripts sont souvent liés à partir des répertoires /etc/rc?.d pour que chaque service associé à un
script soit démarré ou arrêté pour le niveau d'exécution particulier. Le ? est remplacé par le
numéro de niveau d'exécution (0 à 6).
• /etc/mail : Contient les fichiers utilisés pour configurer votre agent de transport de courrier
sendmail.
• /etc/postfix : Contient les fichiers de configuration de l'agent de transport de courrier postfix.
• /etc/ppp : Contient plusieurs fichiers de configuration utilisés pour configurer le protocole PPP
(Point-to-Point Protocol) afin que l’ordinateur puisse se connecter à Internet.
• /etc/rc?.d : Il existe un répertoire distinct pour chaque état système valide: rc0.d (état d'arrêt),
rc1.d (état mono-utilisateur), rc2.d (état multi-utilisateur), rc3.d (état multi-utilisateur plus
réseau), rc4.d (état défini par l'utilisateur), rc5.d (multi-utilisateur, réseau, ainsi que l'état de
connexion à l'interface graphique) et rc6.d (état de redémarrage).
• /etc/security : Contient des fichiers qui définissent diverses conditions de sécurité par défaut
pour l’ordinateur, définissant ainsi le mode d'authentification. Ces fichiers font partie du
paquetage pam (pluggable authentication modules).
• /etc/skel : Tous les fichiers contenus dans ce répertoire sont automatiquement copiés dans le
répertoire personnel de l'utilisateur lorsque celui-ci est ajouté au système. Par défaut, la plupart
sont des fichiers point (.), Tels que .kde (un répertoire permettant de définir les paramètres par
défaut du bureau KDE) et .bashrc (permettant de définir les valeurs par défaut utilisées avec le
shell bash).
• /etc/sysconfig : Contient des fichiers de configuration système importants créés et gérés par
divers services (y compris iptables, samba et la plupart des services de réseau). Ces fichiers sont
essentiels pour les distributions Linux, telles que Fedora et RHEL, qui utilisent des outils
d’administration à interface graphique, mais ne sont pas du tout utilisés sur d’autres systèmes
Linux.
1.6. Fichiers logs administratives
L’une des fonctions importantes de linux est l’utilisation des traces (logs). Afin de surveiller le
système par exemple, pour voir si des personnes tentent d'accéder à l’ordinateur de manière illégale.
Dans tous les cas, on peut utiliser des fichiers journaux pour aider à localiser le problème.
L'utilitaire principal pour consigner les messages d'erreur et de débogage sous Linux est le démon
rsyslogd. (Certains systèmes Linux plus anciens utilisent les démons syslogd).
La journalisation est effectuée en fonction des informations contenues dans le fichier
/etc/rsyslog.conf. Les messages sont généralement dirigés vers les fichiers journaux qui se trouvent
généralement dans le répertoire /var/log. Voici quelques fichiers de log courants :
• boot.log : Contient des messages de démarrage sur les services au démarrage.
• messages : Contient de nombreux messages d'information généraux sur le système.
• secure : contient des messages liés à la sécurité, tels que l'activité de connexion ou tout autre
acte authentifiant les utilisateurs.
Dr. F.Z. Filali
fatimazohra.fillali@univ-mosta.dz 7
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

• XFree86.0.log ou Xorg.0.log : selon le serveur X utilisé, contient des messages concernant la


configuration de la carte vidéo, de la souris et du moniteur.
2. Le Shell Linux
2.1. Présentation du Shell
L’interpréteur de commandes, ou interprète, permet d’exécuter des instructions qu’on saisit clavier
ou au sein d’un script et en retourne les résultats. Cet interpréteur est un programme appelé Shell. C’est
une interface fonctionnant en mode texte entre le noyau Linux et les utilisateurs (avancés), voire les
applications.
Il existe plusieurs shells, chacun disposant de spécificités propres :
• sh (Thompson Shell) : qui n’existe plus.
• sh (Bourne Shell) : qui a remplacé le précédent. C’est le Shell le plus connu et le plus courant
sur les Unix.
• bash (Bourne Again Shell) : C’est le Shell de référence sous Linux, il représente une autre
implémentation du Bourne Shell.
• ksh (Korn Shell) : est une évolution du Bourne Shell.
• csh (C Shell) : reprend la structure du langage C.
• zsh (Z Shell) : une évolution du Korn Shell.
• tcsh (Tenex C Shell) : est un shell Unix basé sur le C shell (csh).
• ash (A Shell ou Almquist Shell) : c’est un Shell dérivé du Bourne Shell. Il est petit et rapide, et
utilisé généralement des les systèmes embarqués.
• dash (Debian Almquist Shell) : est une solution de remplacement du ash pour le système
Debian.
Remarque :
La liste des shells actuellement présents sur votre installation Linux est présente dans le fichier
/etc/shells.

2.2. Utilisation du Shell


2.2.1. Invite de commande
Le Shell attend des entrées au clavier sur une ligne appelée l’invite de commande ou prompt. L’invite
(prompt) fournit des informations sur le terminal et la position dans le système de fichiers.
Exemple :
user@serveur:/home/public>
Dans cette invite, on retrouve quatre informations :
• user : c’est le nom de connexion, ou login de l’utilisateur, actuellement connecté au terminal
• serveur : c’est le nom d’hôte (hostname), le nom logique de la machine raccordée au terminal
• /home/public : c’est la position actuelle du shell dans le système de fichiers
• > : c’est la terminaison standard du bash pour un utilisateur sans privilèges.
Cette invite nous informe que c’est l’utilisateur sans privilèges d’administration user qui utilise le
terminal (est connecté) sur la machine serveur et qu’il est actuellement positionné dans /home/public.
Le caractère de terminaison peut avoir d’autres significations :
• un $ indique que l’utilisateur n’a pas de pouvoirs particuliers, comme le >.
• un # indique que l’utilisateur est l’administrateur root qui a tous les pouvoirs.
Remarque :
Le chemin peut varier :
user@serveur:~> : le caractère tilde ~ indique qu’on est dans le répertoire personnel(/home/user).
Dr. F.Z. Filali
fatimazohra.fillali@univ-mosta.dz 8
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

2.2.2. Syntaxe des commandes


Les commandes ou instructions GNU ont très souvent une syntaxe avec la structure suivante :
Commande [paramètres] [arguments]
Une commande peut avoir ni paramètres, ni arguments. Dans ce cas elle exécute l’action par défaut
pour laquelle elle est programmée, ou affiche un message d’erreur si ceux-ci sont nécessaires.
Un paramètre est une option de la commande. C’est souvent une simple lettre ou un simple chiffre
précédé d’un tiret (par exemple -l, -p, -s, …). Si la commande accepte plusieurs paramètres :
• On les saisit les uns après les autres en les séparant par des espaces (par exemple : -l -r -t), ou,
• On écrit qu’un seul tiret puis tous les paramètres (par exemple -lrt).
Les arguments sont les entités sur lesquelles la commande doit exécuter son action. Leur type
dépend de la commande. Ce peut être un fichier, du texte, des nombres, …
Exemples
$ date -u : affiche la date et l’heure actuelle en UTC (Coordinated Universal Time).
$ pwd : affiche le répertoire de travail courant.

2.2.3. Types de commandes


Il existe deux types de commandes :
• Les commandes externes sont des programmes binaires présents en tant que fichiers sur le disque
dur. Quand on exécute la commande, ce fichier est chargé en mémoire et lancé en tant que
processus.
• Les commandes internes sont internes au shell et exécutées au sein de celui-ci. Ces commandes
font partie du programme shell, le bash. Les commandes cd ou pwd sont deux exemples de
commandes internes. Quand on les exécute, le shell exécute les fonctions définies en son sein
correspondant à celles-ci.
On peut distinguer une commande interne d’une commande externe à l’aide de la commande interne
type.
Exemples :
$ type date
date is hashed (/usr/bin/date)
$ type pwd
pwd is a shell builtin
2.3. Historiques des commandes
On peut rappeler une commande qu’on a déjà exécutée en naviguant dans l’historique des
commandes avec les touches [Flèche en haut] et [Flèche en bas].
Plus on tape des commandes, plus l’historique s’agrandit. Le shell conserve ainsi un grand nombre
d’entrées dans l’historique (le nombre de lignes conservées peut être modifié). Cet historique est
conservé dans un fichier caché du répertoire personnel appelé .bash_history.
On peut voir le contenu de l’historique avec la commande history. On peut aussi afficher l’historique
avec la commande fc avec l’option -l.
Exemples :
$ history
$ fc -l 5

Dr. F.Z. Filali


fatimazohra.fillali@univ-mosta.dz 9
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

3. Rappel sur les commandes de base


3.1. Affichage du texte avec echo
Pour afficher du texte dans un Shell, on peut utiliser la commande echo. Cette commande accepte
presque tous les arguments sous forme de texte.
Exemple : Pour afficher un texte simple :
$ echo Ceci est un exemple de texte à afficher
On peut placer le texte entre guillemets ou simples apostrophes pour clarifier et regrouper le texte à
afficher. On peut aussi modifier le texte pour y rajouter des séquences de caractères ayant une action
particulière avec l’option -e. Telles que :
\n : Passage à la ligne
\t : Tabulation horizontale
\c : Supprimer le saut de ligne final
\b : Retour d’un caractère en arrière
\\ : Afficher l’antislash (barre oblique inverse)
\nnn : Afficher le caractère spécifié en octal
Exemple :
$ echo -e "Exemple 1.\n C’est un exemple \t de texte à afficher"
3.2. Lister les fichiers et les répertoires
La commande ls permet de lister le contenu d’un répertoire (catalogue) en lignes ou colonnes. Elle
supporte plusieurs paramètres telles que :
-l : pour chaque fichier ou dossier, fournit des informations détaillées.
-a : les fichiers cachés sont affichés (ils commencent par un point).
Exemple :
$ ls -l
Total 32
drwxr-xr-x 2 user user 4096 Oct 15 14:14 Desktop

Le paramètre -l fournit plusieurs d’informations :
La ligne total indique la taille totale en kilo-octets du contenu du répertoire. Cette taille est celle de
l’ensemble des fichiers ordinaires du répertoire et ne prend pas en compte les éventuels sous-répertoires
et leur contenu. Elle affiche ensuite, la liste détaillée de tout le contenu :
• Le premier caractère représente le type de fichier (- : ordinaire, d : répertoire, l : lien
symbolique...) les autres, par blocs de trois, les droits pour l’utilisateur (rwx), les droits pour le
groupe (r-x) et les droits pour tous (r-x).
• Un compteur de liens.
• Le propriétaire du fichier, généralement celui qui l’a créé.
• Le groupe auquel appartient le fichier.
• La taille du fichier en octets.
• La date de dernière modification (parfois avec l’heure), suivant le paramètre ( t , c, u).
• Le nom du fichier.
3.3. Gérer les fichiers et répertoires
3.3.1. Créer des fichiers vides
Pour des tests ou durant des actions où on doit avoir besoin de créer des fichiers vides, on peut
utiliser la commande touch. Utilisée avec uniquement le nom d’un fichier en argument, elle crée un
fichier avec une taille nulle.
Dr. F.Z. Filali
fatimazohra.fillali@univ-mosta.dz 10
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

Exemple :
$ touch fichier1
3.3.2. Créer des répertoires
La commande mkdir (make directory) permet de créer un ou plusieurs répertoires, ou une
arborescence complète.
Par défaut la commande ne crée pas d’arborescence. Si on passe comme arguments rep1/rep2 et que
rep1 n’existe pas, la commande retourne une erreur. Dans ce cas, il faut utilise le paramètre -p.
Syntaxe : mkdir [-p] rep1 [rep2] ... [repn]
Exemples :
mkdir repertoire1
mkdir -p rep2/archives

3.3.3. Supprimer des répertoires


La commande rmdir (remove directory) supprime un ou plusieurs répertoires. Elle ne peut pas
supprimer une arborescence. Si des fichiers sont encore présents dans le répertoire, la commande
retourne une erreur. Le répertoire ne doit donc contenir ni fichiers ni répertoires et ceci même si les
sous-répertoires sont eux-mêmes vides.
Syntaxe : rmdir rep1 [rep2] ... [repn]
Exemple :
rmdir repertoire1
3.3.4. Copier des fichiers
La commande cp (copy) copie un ou plusieurs fichiers vers un autre fichier ou répertoire.
Syntaxe : cp fic1 [fic2 ... ficn] Destination
Avec cette commande fic1 (ou fic2, fi3, …) est recopié en Destination. Si Destination existe, il est
écrasé sans avertissement selon le paramètre passé et selon les droits. La commande peut prendre les
options suivantes :
-i : Demande de confirmation de copie pour chaque fichier.
-r (Récursif) : copie un répertoire et tout son contenu.
-p : Les permissions et dates sont préservées.
-f : Forcer la copie.

Exemples :
cp fichier /home/user/
cp -r rep1 /home/user/
3.3.5. Déplacer et renommer un fichier
La commande mv (move) permet de déplacer, de renommer un fichier, ou les deux. Elle fonctionne
comme la commande cp. Les paramètres -f et -i ont le même effet.
Syntaxe : mv fic1 [fic2 ... ficn] Destination
Exemples :
$ mv fichier1 fichier1.old : fichier1 est renommé en fichier1.old.
$ mv fichier2 rep1 : fichier2 est déplacé dans rep1.
$ mv fichier3 rep1/fichier3.old : fichier3 est déplacé dans rep1 et renommé fichier3.old.

Dr. F.Z. Filali


fatimazohra.fillali@univ-mosta.dz 11
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

3.3.6. Supprimer un fichier ou une arborescence


La commande rm (remove) supprime un ou plusieurs fichiers, et éventuellement une arborescence
complète, suivant les options. La suppression est définitive.
Syntaxe : rm [Options] fic1 [fic2...]
Les options sont :
• -i : La commande demandera une confirmation pour chacun des fichiers à supprimer.
• -r : La suppression est récursive (tous les niveaux inférieurs sont supprimés : les répertoires
comme les fichiers).
• -f : Force la suppression.
Exemples :
$ rm fichier1
$ rm -r rep1

3.3.7. Les liens symboliques


On peut créer des liens, qui sont un peu comme des raccourcis. Un lien est un fichier spécial
contenant comme information un chemin vers un autre fichier. C’est une sortie d’alias. Il existe deux
types de liens :
• Le lien dur (hard link).
• Le lien symbolique (soft link).
Il est possible de créer des liens symboliques vers n’importe quel type de fichier, quel qu’il soit et
où qu’il soit. La commande de création des liens symboliques ne vérifie pas si le fichier pointé existe.
Il est même possible de créer des liens sur des fichiers qui n’existent pas.
Syntaxe : ln -s fichier lien
Ce lien se comportera à l’identique du fichier pointé avec les mêmes permissions et les mêmes propriétés
:
• Si le fichier pointé est un programme, lancer le lien lance le programme.
• Si le fichier pointé est un répertoire, un cd sur le lien rentre dans ce répertoire.
• Si le fichier pointé est un fichier spécial (périphérique), le lien est vu comme périphérique...
Pour détacher le lien symbolique se détache du fichier pointé il faut le supprimer. La suppression
d’un lien symbolique n’entraîne que la suppression de ce lien, pas du fichier pointé. La suppression du
fichier pointé n’entraîne pas la suppression des liens symboliques associés (lien pointe dans le vide).
3.4. Caractères de substitution (Wildcards)
Lors de l’utilisation de commandes en rapport avec le système de fichier, il peut devenir intéressant
de filtrer la sortie de noms de fichiers à l’aide de certains critères, par exemple avec la commande ls. Au
lieu d’afficher toute la liste des fichiers, on peut filtrer l’affichage à l’aide de divers critères et caractères
spéciaux :
* : Remplace une chaîne de longueur variable, même vide.
? : Remplace un caractère unique quelconque.
[...] : Une série ou une plage de caractères.
[a-b] : Un caractère parmi la plage indiquée (de a à b inclus).
[!...] ou [^...] : Inversion de la recherche.
Exemples :
$ ls a*
$ ls a??
$ ls *[ier]
$ ls [a-f]?*[rs]
Dr. F.Z. Filali
fatimazohra.fillali@univ-mosta.dz 12
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

3.5. Rechercher des fichiers


Pour recherche des fichiers, on peut utiliser la commande find qui permet de rechercher des fichiers
au sein de l’arborescence du système de fichiers à l’aide de critères et donne la possibilité d’agir sur les
résultats retournés.
Syntaxe : find chemin critères options
La commande find étant récursive, il suffit d’indiquer un répertoire de base pour que toute
l’arborescence depuis ce répertoire soit recherchée.
3.5.1. Critères de recherche
Les paramètres permettent de définir les critères de recherche. Ces critères, s’ils sont plusieurs, peuvent
être combinés entre eux :
-name : permet une sélection par noms de fichiers. Il est possible d’utiliser les wildcards déjà vus. Le
critère est idéalement placé entre guillemets.
-type : permet une sélection par type de fichier. (D : Répertoire, F : Fichier ordinaire, L : Lien
symbolique, T : Tube nommé/pipe, …).
-user et -group : permettent une recherche sur le propriétaire et le groupe d’appartenance des fichiers.
Il est possible de préciser le nom (utilisateur, groupe) ou l’ID (UID, GID).
-size : permet de préciser la taille des fichiers recherchés. Elle travaille par défaut en blocs si on ne
précise rien.
Exemples :
$ find / -name "fic*"
$ find / -name "re*" -type d
$ find / -type f -user user -group users
$ find -size +100k
3.5.2. Les options de recherche
On retrouve plusieurs options permettant d’effectuer une action sur les fichiers trouvés :
• -ls : cette option affiche des informations détaillées sur les fichiers trouvés correspondant au
critère au lieu du simple nom de fichier.
• -exec : cette option -exec va exécuter la commande située juste après pour chaque occurrence
trouvée. -exec doit obligatoirement être la dernière option de la commande find. • La commande
exécutée par -exec doit se terminer par un point-virgule (;). Ce caractère spécial doit s’écrire \;
pour ne pas être interprété par le shell. Pour passer comme paramètre pour la commande le fichier
trouvé par find, il faut écrire {}.
• -ok : cette option est identique à l’option -exec mais, pour chaque occurrence, une confirmation
est demandée à l’utilisateur.
Exemples :
$ find -size +500k -ls
$ find / -type f -name "*.txt" -exec rm -f {} \; => effacer tous les fichiers finissant par .txt.
3.6. Retrouver des exécutables
3.6.1. whereis
La commande whereis recherche dans les chemins de fichiers binaires, du manuel et des sources les
fichiers correspondant aux critères fournis. On peut préciser quelques des paramètres :
-b : uniquement pour les binaires,
-m : uniquement pour les manuels,
-s : uniquement pour les sources.

Dr. F.Z. Filali


fatimazohra.fillali@univ-mosta.dz 13
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

Exemple :
$ whereis date
$ whereis -b passwd
3.6.2. which
La commande which recherche une commande dans le PATH (chemin des exécutables) et fournit
la première qu’elle trouve. Si des commandes de même nom existent dans plusieurs chemins, on peut
préciser le paramètre -a pour que which continue sa recherche.
Exemple :
$ which date
$ which -a passwd
3.7. Edition du texte avec vi
L’éditeur Unix par défaut se nomme vi (visual editor). L’éditeur vi sous Linux se nomme vim. Vim
respecte toute la syntaxe de vi, la réciproque n’étant pas vraie. Vi est petit : il occupe peu d’espace
disque, consomme peu de mémoire. Vi n’a pas de menus, pas d’interface graphique et n’est pas intuitif.
Cela nécessite de connaître par cœur un certain nombre de raccourcis-claviers pour pouvoir l’utiliser.
Syntaxe : vi [options] Fichier [Fichier2 ...]
Il y a trois modes de fonctionnement :
• Mode commande : les saisies représentent des commandes. On y accède en appuyant sur
[Echap]. Chaque touche ou combinaison de touches déclenche une action (suppression de lignes,
insertions, déplacement, copier, coller, etc.).
• Mode saisie : c’est la saisie de texte classique.
• Mode ligne de commande : une ligne en bas d’écran permet de saisir des commandes spéciales,
validée avec la touche [Entrée]. On y accède en appuyant, en mode commande, sur la touche «
: ».
Quand on lance vi, il est par défaut en mode commande. Pour commencer à taper du texte, il faut
taper une commande d’ajout ou d’insertion : a ou i. Pour quitter, on passe par le mode ligne de
commande et on tape [Echap] :q et [Entrée].
3.7.1. Commandes de saisie
Les commandes de saisie sont à effectuer en mode commande. Elles doivent être précédées d’un
appui sur [Echap] :
• a : Ajout après le caractère actuel.
• A : Ajout de texte en fin de ligne.
• i : Insertion devant le caractère actuel, comme dans un traitement de texte.
• I : Insertion de texte en début de ligne.
• : Ajout d’une ligne sous la ligne actuelle.
• : Insertion d’une ligne au-dessus de la ligne actuelle.
3.7.2. Commandes pour quitter et sauvegarder
Pour que la commande se tape en ligne de commande, on utilise « : ».
• ZZ : Sauve le fichier et quitte.
• :q! : Quitte sans sauver.
• :q : Quitte si le fichier n’a pas été modifié (apparition d’un message d’erreur sinon).
• :w : Sauve le fichier. Vous pouvez préciser un nom à la suite.
• :wq ou :x : Sauve et quitte.
• 1,10w fic : Sauve les lignes de 1 à 10 dans fic.

Dr. F.Z. Filali


fatimazohra.fillali@univ-mosta.dz 14
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

3.7.3. Commandes de déplacement


Les commandes de déplacement sont :
• h : Aller vers la gauche.
• l (petit L) : Aller vers la droite.
• k : Aller vers le haut.
• j : Aller vers le bas.
• 0 (zéro) : Début de ligne.
• :0 : Début de fichier (première ligne).
• $ : Fin de ligne.
• :$ : Fin de fichier (dernière ligne).
• w : Aller au mot suivant.
• b : Aller au mot précédent.
• G : Dernière ligne du fichier.
3.7.4. Commandes de modification
Ces commandes sont utilisées en mode saisie :
• x : Efface le caractère sous le curseur.
• X : Efface le caractère devant le curseur.
• r<c> : Remplace le caractère sous le curseur par le caractère <c>.
• dw : Efface depuis le curseur jusqu’à la fin du mot.
• d$ ou D : Efface depuis le curseur jusqu’à la fin de la ligne.
• dO : Efface depuis le début de la ligne jusqu’au curseur.
• df<c> : Efface tout jusqu’au caractère <c>.
• dG : Efface tout jusqu’à la dernière ligne, y compris la ligne actuelle.
• d1G : Efface tout jusqu’à la première ligne, y compris la ligne actuelle.
• dd : Efface la ligne actuelle.
• u : Undo. Annule la dernière action.
3.7.5. Commandes de recherche
La commande de recherche est le caractère /. La recherche démarre du caractère courant jusqu’à la
fin du fichier. Le caractère ? effectue la recherche en sens inverse. Contrairement à un éditeur de texte
classique, vi peut rechercher autre chose que des mots simples et fonctionne à l’aide de caractères
spéciaux et de critères.
Exemple :
/texte : recherche le mot texte.
La commande n permet de continuer la recherche dans le sens indiqué au début. La commande N
effectue la recherche en sens inverse.
3.7.6. Commandes de copier/coller
La commande v permet une sélection visuelle. Le texte est surligné et on peut déplacer le curseur
pour sélectionner le texte. Utiliser ensuite l’une des commandes suivantes :
• pour couper (déplacer), c’est la commande « d »
• le c fait presque la même chose, mais vi reste en mode d’édition
• pour coller le texte à l’endroit choisi, c’est la commande p (derrière le caractère) ou P (devant le
caractère).
3.8. Redirections
Les redirections sont l’une des plus importantes possibilités offertes par le Shell. Par redirection, on
entend la possibilité de rediriger l’affichage de l’écran vers un fichier, une imprimante ou tout autre
Dr. F.Z. Filali
fatimazohra.fillali@univ-mosta.dz 15
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

périphérique, les messages d’erreur vers un autre fichier, de remplacer la saisie clavier par le contenu
d’un fichier.
Tout flux de données en entrée ou en sortie de commande passe par un canal. Linux utilise des
canaux d’entrées/sorties pour lire et écrire ses données. Par défaut le canal d’entrée est le clavier, et le
canal de sortie, l’écran. Un troisième canal, le canal d’erreur, est aussi redirigé vers l’écran par défaut.
Il est possible de rediriger ces canaux vers des fichiers, ou du flux texte de manière transparente pour
les commandes Linux.
3.8.1. Redirections en sortie
On se sert du caractère > pour rediriger la sortie standard (celle qui va normalement sur l’écran). On
indique ensuite le nom du fichier où seront placés les résultats de sortie.
Le shell commence d’abord par créer le fichier puis exécute ensuite la commande. Si le fichier
n’existe pas, il sera créé. S’il existe, son contenu sera écrasé, même si la commande tapée est incorrecte.
Pour rajouter des données à la suite du fichier, donc sans l’écraser, on utilise la double redirection
>> . Le résultat de la commande est ajouté à la fin du fichier.
Exemples :
$ ls -l > liste.txt
$ date >> liste.txt
3.8.2. Redirections en entrée
Les commandes qui attendent des données ou des paramètres depuis le clavier peuvent aussi en
recevoir depuis un fichier, à l’aide du caractère <.
Exemple :
$ wc < liste.txt
3.8.3. Les canaux standards
On peut considérer un canal comme un fichier, qui possède son propre descripteur par défaut, et
dans lequel on peut lire ou écrire.
• Le canal d’entrée standard se nomme stdin et porte le descripteur 0.
• Le canal de sortie standard se nomme stdout et porte le descripteur 1.
• Le canal d’erreur standard se nomme stderr et porte le descripteur 2. On peut rediriger le canal
d’erreur vers un autre fichier.
On peut rediriger les deux canaux de sortie dans un seul et même fichier, en les liant. On utilise pour
cela le caractère >&.
Exemples :
$ rmdir repertoire1 2>erreur.log
$ ls -l > liste.txt 2 >&1
3.8.4. Ouverture de canaux
Les canaux standards sont au nombre de trois et numérotés de 0 à 2. La commande exec permet
d’ouvrir sept autres canaux numérotés de 3 à 9. On a donc en tout dix canaux.
On peut envisager dans le cadre de traitements de sortir certains résultats par le canal 3, d’autres par
le 4, et ainsi de suite. Les canaux ouverts le sont en entrée et en sortie. On peut ensuite fermer le canal
en le réunissant avec un pseudo-canal (canal de fermeture - ).
Exemples :
$ exec 3>res.log
$ ls -l >&3
$ exec 3>&-
Dr. F.Z. Filali
fatimazohra.fillali@univ-mosta.dz 16
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

3.8.6. Pipelines / tubes


Les redirections d’entrée/sortie permettent de rediriger les résultats vers un fichier. Ce fichier peut
ensuite être réinjecté dans un filtre pour en extraire d’autres résultats. Cela oblige à taper deux lignes :
une pour la redirection vers un fichier, l’autre pour rediriger ce fichier vers le filtre.
Les tubes ou pipes permettent de rediriger directement le canal de sortie d’une commande vers le
canal d’entrée d’une autre. Le caractère permettant cela est |. Il est aussi possible d’utiliser plusieurs
pipes sur une seule ligne.
Exemple :
$ ls -l > liste.txt devient $ ls -l | wc
$ wc < liste.txt
3.9. Les filtres et utilitaires
Un filtre (ou une commande filtre) est un programme sachant écrire et lire des données par les canaux
standards d’entrée et de sortie. Il en modifie ou traite éventuellement le contenu.
Un utilitaire sans être nécessairement un filtre permet un certain nombre d’actions sur des fichiers
ou leur contenu comme le formatage ou l’impression.
Exemples :
wc : (word count), compte le nombre de mot.
more : affiche les données page par page.
sort : tri des données.
grep : critères de recherche.
3.9.1. Quelques filtres Linux
1) Extraction de noms : La commande basename permet d’extraire le nom du fichier dans un chemin.
Exemple :
$ basename /home/user/liste.txt
2) Extraction de Chemins : La commande dirname effectue l’inverse, elle extrait le chemin d’un
fichier.
Exemple :
$ dirname /home/user/liste.txt
3) Rechercher des lignes : pour extraire des lignes d’un fichier selon divers critères, on peut utiliser
trois commandes : grep, egrep et fgrep qui lisent les données soit depuis un fichier d’entrée, soit depuis
le canal d’entrée standard.
Syntaxe :
1. grep [options] "modèle" [fichier1...]
2. egrep [options] "modèle" [fichier1…]
ou egrep -f fichier_critère Fichier_recherche
Cette commande étend les critères de recherche de grep (extended grep) et peut accepter un fichier
de critères en entrée. Elle est équivalente à un grep -E.
3. fgrep [options] [ -e liste_modèles] [modèle] [fichier]
La commande fgrep est un grep simplifié et rapide (fast grep) et équivaut à un grep -F. Elle accepte
aussi un fichier de critères de recherche. Elle diffère à la fois de grep et d'egrep en sens qu'elle
interprète le modèle comme une liste de chaînes fixes (au lieu d'expressions régulières), séparées par
des lignes.
Les options peuvent être :
▪ -v : effectue la recherche inverse : toutes les lignes ne correspondant pas aux critères sont
affichées.
▪ -c : ne retourne que le nombre de lignes trouvées sans les afficher.

Dr. F.Z. Filali


fatimazohra.fillali@univ-mosta.dz 17
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

▪ -i : ne différencie pas les majuscules et les minuscules.


▪ -n : indique le numéro de ligne pour chaque ligne trouvée.
▪ -l : dans le cas de fichiers multiples, indique dans quel fichier la ligne a été trouvée.
Le modèle se compose de critères de recherche ressemblant aux critères du vi (ex : [a-c]…).
Exemples de critères de recherche :
| : Ou logique, l’expression située avant ou après doit apparaître.
(...) : Groupement de caractères.
[...] : Un caractère à cette position parmi ceux indiqués.
. : Un caractère quelconque.
+ : Répétition, le caractère placé avant doit apparaître au moins une fois.
* : Répétition, le caractère situé avant doit apparaître de zéro à n fois.
? : Le caractère situé avant doit apparaître une fois au plus.
{ n } : Le caractère situé avant doit apparaître exactement n fois.
{ n , } : Il apparaît n fois ou plus.
{n,m} : Il apparaît entre n et m fois.
^ : En début de chaîne.
$ : En fin de chaîne.
Exemples :
$ grep -i "^b" fichier1 : affiche tous les mots qui commencent par b ou B dans le fichier1.
$ egrep "^[a-zA-Z]+$" fichier1 : recherche les lignes de fichier1 qui commencent par un mot
alphabétique et qui terminent également la ligne.
$ fgrep -f liste.txt fichier1 : recherche tous les mots présents dans liste.txt dans le fichier1.
4) Sélection de colonnes et de champs : La commande cut permet de sélectionner des colonnes et des
champs dans un fichier. En sachant qu’une colonne correspond à la position d’un caractère dans une
lignes (par exemple : le premier caractère est la colonne 1). Un champs est une suite de caractères
délimitée par une tabulation.
Syntaxe :
Colonnes : cut -cColonnes [fichier1...]
Champs : cut -fChamps [fichier1...]
Quelques options :
-c : permet de préciser le format de sélection des colonnes (unique : -cN°, place : -c1-N, une liste : -
c1,2,5 ou les trois combinées).
-f : permet de préciser le format de sélection des champs de la même façon que les colonnes.
-d : permet de sélectionner un autre caractère (espace, )
Exemples :
$ cut -c1-7 liste.txt : sélectionne les 7 premières colonnes de liste.txt.
$ cut -f1,4 liste.txt : sélectionne le 1 et 4 champs de liste.txt.
5) Décompte de lignes : La commande wc (word count) permet de compter les lignes, les mots et les
caractères.
Syntaxe : wc [options] fichier
Quelques options :
-l : compte le nombre de lignes
-c : compte le nombre d’octets
-w : compte le nombre de mots
-m : compte le nombre de caractères
Exemple :
$ wc liste.txt : affiche le nombre de lignes, le nombre de mots et le nombre de caractères.

Dr. F.Z. Filali


fatimazohra.fillali@univ-mosta.dz 18
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

6) Tri de lignes : La commande sort permet de trier des lignes. Par défaut le tri s’effectue sur tout le
tableau et en ordre croissant. Le tri est possible sur un ou plusieurs champs.
Syntaxe : sort [options] [-k pos1[,pos2]] [fichier1...]
Quelques options :
-d : tri dictionnaire (Dictionnary). Ne prend comme critère de tri que les lettres, les chiffres et les
espaces.
-n : Tri numérique, idéal pour les colonnes de chiffres.
-b : Ignore les espaces en début de champ.
-f : Pas de différences entre majuscules et minuscules (conversion en minuscules puis tri).
-k : Commence une clé (key) sur Pos1 (origine 1), et la termine sur Pos2 (fin de ligne par défaut).
-r : tri en ordre décroissant (Reverse).
-tc : Nouveau délimiteur de champ c.
Exemples :
$ sort -k 1 liste.txt : tri par ordre alphabétique sur le 1ér champs pour le fichier liste.txt.
$ sort -n -r -k 3 liste.txt : tri numérique sur la 3éme champs en ordre décroissant.
7) Suppression des doublons : La commande uniq permet de supprimer les doublons dans des flux en
entrée ou des fichiers triés.
Exemple :
$ cut -f4 /etc/passwd | uniq : affiche la liste des GID de façon unique.
8) Jointure de deux fichiers :
1. Jointure sur des champs communs : La commande join permet d’effectuer une jointure de deux
fichiers en fonction d’un champ commun.
Syntaxe : join [-tc] [-1 n] [-2 m] fichier1 fichier2
Quelques options :
-t : indique le séparateur,
-1 : le champ du premier fichier
-2 : le champ du second fichier sur lesquels effectuer la jointure.
Exemple :
join -1 4 -2 1 liste1.txt liste2.txt
2. Jointure ligne à ligne : La commande paste regroupe n fichiers en un. Pour cela elle concatène les
lignes de chacun des fichiers en une seule ligne : ligne1 de fichier1 avec ligne2 de fichier2, ligne3 de
fichier 3, …
Syntaxe : paste [-dSéparateur] fichier1 fichier2 …
Quelques options :
-d : préciser un délimiteur (par défaut : tabulation)
Exemple :
paste -d, fichier1 fichier2
9) Visualisation de texte
1. Pleine page : consiste à détourner un quelconque flux pour l’afficher sur l’écran ou l’imprimante.
Quelques commandes pour faire ça :
• Page par page : pg, more, less
• En bloc : cat
• À l’envers : tac
• En dump hexadécimal : hexdump
• Création d’une bannière : banner
• Formatage pour impression : pr
• Numéroter les lignes : cat -n ou nl
Dr. F.Z. Filali
fatimazohra.fillali@univ-mosta.dz 19
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

2. Début d’un fichier : on utilise la commande head pour voir le début d’un fichier.
Syntaxe : head [-c nbcar] [-n nblignes] [fichier1...]
3. Fin et attente de fichier : on utilise la commande tail pour voir les dernières lignes d’un fichier.
Syntaxe : tail [+/-valeur[b/c]] [-f] [fichier1...]
10) Duplication du canal de sortie standard : on utilise la commande tee qui permet de dupliquer le
flux de données puisque dans certain cas, il est nécessaire de placer le résultat d’une commande dans un
fichier et de filtrer ce même résultat avec une autre commande
Syntaxe : tee [-a] fichier
Exemple :
$ cat /home/user/liste.txt | tee res.txt | wc -l
11) Comparaison de fichiers : Les deux commandes permettant de comparer le contenu de deux
fichiers, ou d’un fichier et d’un flux sont les commandes diff et cmp. La commande diff indique les
modifications à apporter aux deux fichiers en entrée pour que leur contenu soit identique. La commande
cmp compare les fichiers caractère par caractère. Par défaut la commande s’arrête dès la première
différence rencontrée et indique la position de l’erreur.
Syntaxe :
diff [options] fichier1 fichier2
Options :
-b : permet d’ignorer les espaces (blank).
-e : permet de générer un script.
cmp [options] fichier1 fichier2
Options:
-l : détaille toutes les différences en trois colonnes.
-s : retourne uniquement le code d’erreur (non visible),
Exemples :
$ diff liste1.txt liste2.txt
$ cmp -l liste1.txt liste2.txt
12) Délai d’attente : La commande sleep permet d’attendre le nombre de secondes indiqués. Le script
est interrompu durant ce temps. Le nombre de secondes et un entier compris entre 0 et 4 milliards (136
ans).
Exemple :
$ sleep 10

Dr. F.Z. Filali


fatimazohra.fillali@univ-mosta.dz 20
Université Adbelhamid Ibn Badis de Mostaganem Master 2 : Réseaux et Systèmes
Faculté des Sciences Exactes et de l’Informatique Matière : Administration de Serveur Linux
Département de Mathématiques et de l’informatique Année universitaire : 2020/2021

4. Références et lectures supplémentaires

Livres :

• Rohaut S. (2009). Linux - maitrisez l'administration du système. ENI Editions. (2éme édition).
• Soyinka, W. (2020). Linux Administration: A Beginner’s Guide. McGraw Hill. (8éme edition).
• Frisch, A. (2009). Essential system administration: Tools and techniques for linux and unix
administration. O'Reilly Media, Inc. (3éme edition).
• Negus, C. (2012). Linux Bible. John Wiley & Sons. (8éme edition).
• Barrett, D. J. (2016). Linux Pocket Guide: Essential Commands. O'Reilly Media, Inc. (3éme
edition).
• Petersen, R. (2007). Linux: the complete reference. McGraw-Hill Professional. (7éme edition).

Sites Web:
• Debian Documentation : https://www.debian.org/doc/
• Fedora Documentation : https://docs.fedoraproject.org/en-US/docs/
• Terminal Linux en ligne : https://cocalc.com/doc/terminal.html
• Linux man pages online : https://man7.org/linux/man-pages/index.html
• 100 Essential Linux Commands for Every User :
https://linuxhint.com/100_essential_linux_commands/
• An A-Z Index of the Linux command line : https://ss64.com/bash/
• Top 50 Linux Commands With Examples: https://www.puttygen.com/linux-commands
• Les commandes Linux de base : https://www.sitedetout.com/tutoriels/commandes-linux-de-
base/
• Le Shell : http://www.linux-france.org/article/dalox/unix04.htm

Cours en ligne et vidéos :


• The Linux Foundation - Introduction to Linux : https://www.edx.org/course/introduction-to-
linux
• Udacity - Linux Command Line Basics: https://www.udacity.com/course/linux-command-line-
basics--ud595
• Edureka - Linux Administration Tutorial Part 1 :
https://www.youtube.com/watch?v=v_1zB2WNN14
• Edureka - Linux Administration Tutorial Part 2 :
https://www.youtube.com/watch?v=wtdFPppcup4

Dr. F.Z. Filali


fatimazohra.fillali@univ-mosta.dz 21

Vous aimerez peut-être aussi