Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Chapitre 2 :
Administration de base
de Linux
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
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.
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.
• 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.
• /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
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
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.
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.
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
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
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