0% ont trouvé ce document utile (0 vote)
36 vues100 pages

Administration Réseaux & Scripting 1 - Copie - Part Suite

Un système d'exploitation est un ensemble de programmes qui gère les ressources d'un ordinateur, en assurant la communication entre le matériel et les applications. Linux, un système multi-utilisateur et multitâche, est reconnu pour sa sécurité, sa stabilité et sa flexibilité, ce qui en fait un choix privilégié pour les serveurs et l'administration système. Le document explore également le démarrage de Linux, le rôle du shell, et les commandes essentielles pour la gestion des fichiers et des processus.

Transféré par

mariagemariagee5
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
36 vues100 pages

Administration Réseaux & Scripting 1 - Copie - Part Suite

Un système d'exploitation est un ensemble de programmes qui gère les ressources d'un ordinateur, en assurant la communication entre le matériel et les applications. Linux, un système multi-utilisateur et multitâche, est reconnu pour sa sécurité, sa stabilité et sa flexibilité, ce qui en fait un choix privilégié pour les serveurs et l'administration système. Le document explore également le démarrage de Linux, le rôle du shell, et les commandes essentielles pour la gestion des fichiers et des processus.

Transféré par

mariagemariagee5
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ADMINISTRATION

RESEAUX & SCRIPTING


Pr. BOUGHANJA
C ’est quoi un système
d’exploitation?
Chapitre 1: Introduction
aux Systèmes
d’Exploitation & Linux
Qu’est-ce qu’un système d’exploitation ?

Un système d’exploitation est un ensemble de programmes permettant la gestion des ressources


disponibles d’un ordinateur
Parmi cette gestion des ressources, le système d’exploitation est amené à :
■ Intercepter les accès aux périphériques.
■ Offrir aux applications une gestion correcte des tâches. Le système d’exploitation est responsable
de l’ordonnancement des processus pour l’occupation du processeur.
■ Protéger les fichiers contre tout accès non autorisé.
■ Collecter les informations sur les programmes utilisés ou en cours d’utilisation
Qu’est-ce qu’un système d’exploitation ?

■ un Système d’Exploitation joue le rôle de


l'intermédiaire entre les applications
(l'utilisateur) telles que les applications de
bureautique et le matériel de l'ordinateur tel que
le processeur, la RAM et les périphériques
(souris, clavier, microphone, etc.)
Système d’exploitation
Critère Windows Linux
Cout Payant (licence nécessaire) Gratuit

Sécurité Plus vulnérable aux malwares Très sécurisé, peu de virus

Stabilité Besoin de redémarrage Fonctionne sans redémarrage


fréquents
Performance Consomme plus de ressources Léger et rapide

Administration Interface GUI Interface CLI


Personnalisation Limitée Très flexible (peut être
modifié)
Utilisation Bureautique Serveurs, programmation,
cloud
Historique

Linux est né au début des années 90. Linux est un


système :
■Multi-utilisateurs
■Multitâches
Architecture
Le système est organisé en couches :
Noyau : La couche la plus basse niveau qui communique avec le
matériel. Le noyau s’occupe de :
■La gestion de la mémoire,
■L’accès aux périphériques (Disque Dur, Lecteur De Cd-
rom, Clavier, Souris, …),
■La gestion du réseau, etc.
Shell : Interprète les ordres de l’utilisateur et les fait exécuter par
le noyau. Les ordres peuvent être passés soit directement au
clavier, soit en utilisant des outils graphiques de plus haut
niveau
Applications : Interagissent avec l’utilisateur ou avec d’autres
applications et communiquent avec le shell ou avec le noyau.
Les Caractéristiques des systèmes

Multiutilisateurs: plusieurs
Multitâche: exécution simultanée utilisateurs de travailler à partir
de plusieurs programmes. de plusieurs terminaux (écran et
clavier) sur un seul ordinateur.

Multiprocesseur: capable de Multiplateforme: pouvant


travailler avec des ordinateurs s’adapter à différents types de
multiprocesseurs ou avec des plateformes lors de la
processeurs compilation

Ouvert: permettant de partager


des données et des services avec
d’autres systèmes d’applications
Comment est maintenu le projet Linux ?
Les contributeurs: développeurs

Les mainteneurs : valident, améliorent et intègrent les


modifications
C ’est quoi une distribution
Linux?
Les distributions GNU/LINUX

Une distribution Linux est un ensemble cohérent de logiciels assemblés autour du noyau Linux
et prêt à être installé. Il existe des distributions associatives ou communautaires (Debian,
CentOS) ou commerciales (RedHat, Ubuntu).

■ Linux ne désigne en réalité que le noyau sans interface graphique

Linux = (Le Noyau)

GNU/Linux désigne un système d'exploitation constitué du noyau Linux associé à un ensemble


de logiciels et d'utilitaires du projet GNU, permettant ainsi de créer un système complet et
fonctionnel.
Pourquoi Linux est devenu
incontournable en administration
système?
Pourquoi Linux?
Linux domine le monde des serveurs et cloud:
■ 90% des serveurs web tournent sous linux(Apache, ngnix, etc.).
■ Les grands fournisseurs cloud comme AWS, Google cloud et Azure utilisent linux.
Exemple: facebook, google, et Amazone gèrent des millions de serveurs sous linux
Sécurité et fiabilité supérieures:
■ Pas besoin d’antivirus: linux est moins vulnérable aux malwares
■ Moins de failles: mise a jours fréquentes
■ Accès restreint par défaut: les droit utilisateurs sont mieux contrôlés.
Pourquoi Linux?
Un système open source:
■ Pas de licence a payé
■ Transparence et flexible: possibilité de modifier le code source selon ses besoins
■ Large communauté: support rapide grâce aux forums et développeurs du monde entiers.
Performance et stabilité optimales
■ Moins gourmand en ressources: fonctionne même sur des machines anciennes.
■ Uptime élevé: un serveur linux peut tourner des année sans redémarrer
■ Optimisation avancée: contrôle totale sur les services et les ressources
Pourquoi Linux?
Automatisation et scripting avancés:
■ Bash, python, puissance du scripting pour automatiser les taches
■ Administration a distance facilitée: SSH permet de gérer les serveurs sans interface
graphique.
■ Gestion fine des processus: cron, systemd, facilitent l’administration
Exemple: gestion automatiser des sauvegardes.
Linux est partout:
■ Cloud computing: kubernetes et docker tournent principalment sous linux
■ IoT embarqué: comme rasberry Pi, routeurs qui fonctionne sous lunx
Exemple: tesla utilise un SE basé sur linux pour les AV
Le système d’Exploitation
Est-ce que vous avez des idées
par rapport au démarrage du
système?
Démarrage de Linux

SYSTEMD
BIOS MBR GRUB KERNEL
/INIT
BIOS

0. Bouton de marche (démarrage électrique de la machine/assimiler en VM dans notre cas)


1. CPU lance le bios (frimware)
 Via le bootstrap processor (exécution du bios et chargement du grub)
 Se rend au bios entry point(bios->post)
 Stocké dans la mémoire ROM
 Read only (Garder la même configuration ou cas d’un arrêt électrique)
 Configuration du bios stocké dans CMOS de la carte mère
 Mémoire volatile
 Batterie CMOS (complementery metal oxide semicondictor)
MBR

2. BIOS – POST (Power On Self Test): vérification du bon fonctionnement de la mémoire


- Le signale du Bip lors du démarrage signifie le bon fonctionnement (Le cas ou il y a
plusieurs bips sonores détection d’un problème).
3. BIOS – Boot Device => on lance à partir de quel device?
- CD, USB, etc.
4. BIOS – Master boot record ( premier secteur d’amorçage)
- table des partitions: qui a pour le but le lancement du grub
5. BootLoader (GRUB)
- Sélection du noyau

Fichier non éditable


Less /etc/default/grub:
On peux modifier plusieurs chose
Accéder à la configuration: dans le démarrage de linux.
on peut même modifier le mot de passe du root

Exemple: GRUB_CMDLINE_LINUX_DEFAULT cette ligne pour modifier le type de démarrage de linux


Les ligne à savoir dans le fichier: /boot/grub/grub.cfg

Menuentry: Il décrit notre système


d’exploitation

Activation d'une
partition comme
partition de
démarrage.

Chargement de noyau

Il s’agit d’un périphérique bloc en lecture seule, il contient un systèmes


de fichiers installé par le chargeur.
GRUB

Grub - décompression

VM: prise en charge de la mémoire virtuelle


Z: compression
KERNEL

7. Lancement du Kernel
– Activation de la mémoire
– Initialisation des pages/tables mémoire
– Détection CPU
– Initialisation de la prise en compte hardware
SYSTEMD
/INIT
8. Initialisation FS:
 Montage de Root FS
 PID=1 init
 PID=0 scheduler (ordonnancement des processus)
9. Extraction du systemd: vous pouvez voir l’ensemble des fichiers dans /usr/bin/systemd ou
/usr/lib/systemd/system
10. Init historique:
 Nom serveur
 Timezone
 Check disk
 Montage FS
 Suppression fichier tmp
 Configuration interfaces réseau
 Démarrage démons et réseau
Processus init

Le lancement du système commence par le boot-> init, une fois que le chargement du noyau en
mémoire est achevé, il lance le premier processus : /bin/init. L’init est considéré comme le père
de tous les processus qui seront créés après par l’appel system fork().
• Quel fichier sera exécuté à un instant donné pour assurer le chargement du système ?
• Quel est le runlevel, c’est-à-dire le niveau d'exécution par défaut ?
• Comment effectuer le lancement des services pour un runlevel donné?
Services et Démons

Un daemon (ou "démon« (en anglais daemons ou encore «Deferred Auxiliary Executive
Monitor»). ) est un processus en arrière-plan sous Linux qui fonctionne sans interface
utilisateur. Il est souvent lancé au démarrage et tourne en continu pour gérer des
services comme le réseau, les logs, ou la planification des tâches.
■ Le chargement des modules dans le noyau (gestion des périphériques).

systemctl list-units --type=service --state=running


Les runlevels
Un runlevel est un niveau d'exécution qui définit l'état du système et les services qui doivent
être lancés ou arrêtés. Chaque runlevel est associé à un chiffre, généralement compris entre
0 et 6.

Pour vérifier le niveau d’exécution courant :


Arrêt du système

Les opérations de maintenance, diagnostics, modifications de logiciels, etc., nécessitent parfois l’arrêt du
système. Cet arrêt peut être planifié, périodique ou impromptu et demander une réactivité immédiate.
Tous les systèmes Unix, y compris ceux fonctionnant sur PC doivent être mis hors service en utilisant les
commandes décrites dans cette section. Ceci garantit l’intégrité du disque et la terminaison propre des
différents services du système. Arrêt programmé du système :
• utilisateurs prévenus de l’arrêt ;
• intégrité des systèmes de fichiers assurée ;
• est arrêté ;
• est redémarré.
Commandes de mise hors service :
• shutdown: La commande shutdown éteint le système;
• halt: provoque un arrêt immédiat du système;
• reboot: provoque un redémarrage immédiat du système .
Résumé

SYSTEMD
BIOS MBR GRUB KERNEL
/INIT

• Upgrade • Debug • Services


• Nombre de cores • Kernel • Timers
• Boot device • Password root
• Disk • fstab
• Secure boot
TP 1
Analyse et Gestion du Démarrage de Linux
Le Shell
Généralités
Les systèmes Linux actuels possèdent des utilitaires graphiques dédiés
au travail d’un administrateur. Toutefois, il est important d’être capable
d’utiliser l’interface en mode ligne de commandes.
• Universalité → Commandes communes à toutes les distributions.
• Dépannage → Accès à un shell même si le système ne démarre pas.
• Administration distante → SSH pour gérer les serveurs à distance.
• Automatisation → Gestion via des scripts.
• Contrôle total → Gestion des fichiers, des ressources et des
utilisateurs.
Shell

Le shell, interface de commandes en français, permet aux utilisateurs d’envoyer des


ordres au système d’exploitation. Il existe plusieurs types de Shell disponibles et
configurables sur une plate-forme ou selon le choix préférentiel de l’utilisateur :
■ sh, le shell aux normes POSIX ;
■ csh, shell orienté commandes en C ;
■ bash, Bourne Again Shell, shell de Linux
Shell

■ Sh, le shell aux normes POSIX : Utilisé pour les scripts basiques avec une syntaxe
minimale pour assurer la portabilité avec les différents distribution Linux.
Let’s Practice

■ Créer un petit compteur « compteur.csh » utilisant la syntaxe orientée C


■ Sauvegardez le fichier.
■ Rendez-le exécutable
■ Exécuter le script.
Shell

■ csh, shell orienté commandes en C : inspiré du langage C, ce shell est orienté vers
les développeurs et facilite la manipulation de boucles et conditions en C
Let’s Practice
1. Exercice pour sh (Shell POSIX)
■ Créer un script « Welcome.sh » portable qui affiche un message de bienvenue avec le nom
de l'utilisateur connecté.
■ Sauvegardez le fichier.
■ Rendez-le exécutable
■ Exécuter le script.
Shell

■ bash, Bourne Again Shell, shell de Linux : Utilisé largement dans les scripts
d’administration système
Let’s Practice

■ Créer un script « salut.sh » qui demande un nom et salue l'utilisateur.


■ Sauvegardez le fichier.
■ Rendez-le exécutable
■ Exécuter le script.
Shell
Une fois que l’utilisateur est connecté sur une console, le shell affiche l’invite de
commandes (prompt). Il se comporte ensuite comme une boucle infinie, à chaque saisie
d’instruction :
• Affichage de l’invite de commande ;
• Lecture de la commande ;
• Analyse de la syntaxe ;
• Substitution des caractères spéciaux ;
• Exécution de la commande ;
• Affichage de l’invite de commande ;
• Etc.
L’utilisation d’une commande respecte généralement cette séquence :
Shell
Le nom de la commande est toujours en minuscules, Un espace sépare chaque élément.

Option courtes

Regroupement d’options

Arguments d’une commande


Shell
Les commandes générales:
Il est impossible pour un administrateur, quel que soit son niveau,
de connaître toutes les commandes et options dans les moindres
détails.
La commande man affiche le manuel détaillé d'une commande ou
d'un programme sous Linux, tandis que whatis fournit une brève
description de cette commande.

La commande shutdown permet de stopper électriquement,


immédiatement ou après un certain laps de temps, un serveur
Linux.
N.B: -h arrêt du système électriquement.
-r redémarrage du système.
Commandes usuelles pour

les utilisateurs Linux


Commandes Usuelles
Commandes fondamentales
•ls → Lister les fichiers
•pwd → Afficher le chemin courant
•cd → Changer de répertoire
•mkdir → Créer un dossier
•rm, rmdir → Supprimer un fichier/dossier
•cp, mv → Copier et déplacer des fichiers
Gestion des fichiers
•cat, less, more → Lire un fichier
•echo → Afficher du texte
•touch → Créer un fichier vide
•nano, vi → Modifier un fichier texte
Exercice
Créer une arborescence, y naviguer, copier et supprimer des fichiers

~/test/

└── linux/
├── fichier1.txt
├── fichier2.txt
Filtres sur les fichiers (Globbing & Redirections)
Globbing:
Définition: C'est une méthode utilisée par le shell pour faire correspondre plusieurs fichiers en utilisant
des caractères spéciaux :

• * → Remplace zéro ou plusieurs caractères


• Exemple: ls *.txt liste tous les fichiers .txt
• ? → Remplace un seul caractère
• Exemple: ls file?.txt trouve file1.txt, file2.txt.
• [abc] → Correspond à un seul caractère parmi ceux listés
• Exemple: ls file[12].txt trouve file1.txt, file2.txt
Filtres sur les fichiers (Globbing & Redirections)
Redirections :
Définition: Permettent d'envoyer ou de capturer des flux (texte, erreurs...) entre commandes et fichiers

 > → Redirige la sortie standard vers un fichier (remplace le contenu).


 Exemple: echo "Hello" > file.txt (écrit Hello dans file.txt).
 >> → Ajoute la sortie standard à un fichier sans écraser.
 Exemple : echo "World" >> file.txt (ajoute World à file.txt).
 < → Utilise un fichier comme entrée d'une commande.
 Exemple : sort < names.txt (trie les lignes de names.txt).
 2> → Redirige la sortie d'erreur vers un fichier.
 Exemple : ls nonexistentfile 2> error.log.
 | (Pipe) → Envoie la sortie d’une commande comme entrée d'une autre.
 Exemple : ls | grep "txt" (filtre uniquement les fichiers .txt).
Exercice
Exécuter les commandes suivantes:
• mkdir -p ~/test_globbing
• cd ~/test_globbing
• touch file1.txt file2.txt file3.log file4.txt error.log notes.md

1. Lister tous les fichiers .txt


2. Lister tous les fichiers qui commencent par file et ont un seul chiffre après (file1.txt,
file2.txt, mais pas file10.txt)
3. Lister les fichiers file1.txt et file2.txt
4. Écrire du texte dans file1.txt en écrasant son contenu
5. Ajouter du texte à file2.txt sans écraser
6. Trier les fichiers de type .txt et enregistrer le résultat dans sorted_files.txt
7. Vérifier si un fichier inexistant.txt existe et envoyer l'erreur dans error.log
8. Afficher le contenu des fichiers modifiés
Résumé de commandes
Principales commandes

Commande Description Options courantes


ls Liste les fichiers et répertoires -l, -a, -h
cd Change le répertoire courant
cp Copie des fichiers ou répertoires -r, -i, -u
mv Déplace ou renomme des fichiers ou -i, -u
répertoires
rm Supprime des fichiers ou répertoires -r, -f, -i
mkdir Crée un répertoire -p
rmdir Supprime un répertoire vide
touch Crée un fichier vide ou met à jour l'horodatage
Pwd Afficher le nom de répertoire courant
TP2:
Manipulation des commandes usuelles sous Linux
Traitement du texte et
commandes avancées
La commande uniq
La commande uniq est une commande, utilisée avec la commande sort très puissante, notamment
pour l’analyse de fichiers de logs. Elle permet de trier et d’afficher des entrées en supprimant les
doublons.
Exemple:
Soit le fichier suivant:

Avant l’utilisation de la commande Après l’utilisation de la commande


La commande uniq
A l’inverse, pour n’afficher que les lignes apparaissant au moins deux fois dans le fichier, il faut utiliser
l’option -d :

Pour afficher que les lignes en double ou plus et supprime celles qui apparaissent une seule fois.-D :
La commande uniq
Sans argument, la commande uniq ne va pas afficher les lignes identiques qui se suivent du fichier
prenoms.txt :

Pour n’afficher que les lignes n’apparaissant qu’une seule fois, il faut utiliser l’option -u :
La commande uniq
Enfin, pour compter le nombre d’occurrences de chaque ligne, il faut utiliser l’option -c :
La commande xargs
La commande xargs est un utilitaire sous Linux qui permet de construire et d'exécuter des lignes de
commandes à partir de l'entrée standard. Elle est souvent utilisée pour passer des arguments à
d'autres commandes, surtout lorsqu'il y a un grand nombre d'arguments ou lorsque les arguments
contiennent des espaces.

Supprimer des fichiers listés dans un fichier :


cat *.txt | xargs rm
Cette commande lit les noms de fichiers dans *.txt et les passe à rm pour les supprimer.
→ Suppression des fichier .txt
La commande xargs
Il est possible de spécifier une commande à lancer par xargs. Dans l’exemple qui suit, xargs va exécuter la
commande ls -ld sur l’ensemble des dossiers qui seront spécifiés depuis l’entrée standard :

Supprimer des fichiers listés dans un fichier :


cat *.txt | xargs rm
Cette commande lit les noms de fichiers dans *.txt et les passe à rm pour les supprimer.
→ Suppression des fichier .txt
La commande xargs
Dans l’exemple qui suit, xargs va exécuter la commande ls -ld sur l’ensemble des dossiers qui seront spécifiés
depuis l’entrée standard :

Comment cela fonctionne :


•Entrée de Commande : En lançant xargs ls -ld, vous demandez à xargs d'exécuter la commande ls -ld sur
chaque argument (dans ce cas, chaque chemin de dossier) que vous fournirez à partir de l'entrée standard.
•Saisie des Dossiers : Vous entrez les chemins des dossiers, un par ligne (par exemple /bin, /root), puis
vous terminez l'entrée en appuyant sur CTRL+D. Cela indique à xargs que vous avez terminé d’entrer les
arguments.
La commande awk
La commande awk est un outil en ligne de commande utilisé pour analyser et traiter des textes. Il permet de
rechercher, transformer et formater des données dans des fichiers ou des flux d'entrée.
awk 'motif { action }' fichier
Il permet des opérations complexes comme :
•Filtrage de données spécifiques.
•Transformation de données.
•Calculs mathématiques.
•Gestion des formats complexes.
•La génération de rapports.
•L’analyse de logs.
•La gestion de fichiers complexes (extraction, tri).

21/11/2024 61
La commande awk
Exemple:
Afficher des colonnes spécifiques :
awk '{print $1, $3}' fichier.txt #afficher 1, 2 ligne
Rechercher et afficher des lignes contenant un motif :
awk '/success/' fichier.txt #afficher la ligne contenant success
Spécifier un séparateur de champs :
awk -F',' '{print $1, $2}' fichier.csv #option –F pour les séparation ‘,’
Utiliser des conditions :
awk '{if ($3 > 50) print $1, $2}' fichier.txt # lignes où val de la 3ème colonne>50
Calculer la somme d'une colonne :
awk '{somme += $2} END {print somme}' fichier.txt #somme des val de la 2ème colonne
Afficher une ligne spécifique:
awk 'NR == 5' fichier.txt #afficher 5ème ligne

21/11/2024 62
La commande awk
fichier.txt
Formater la sortie :
awk '{printf "Nom: %-10s Âge: %-3s\n", $1, $2}' fichier.txt

Ajouter une ligne d'entête:


awk 'BEGIN {print "Nom, Âge"} {print $1 "," $2}' fichier.txt

Extraire un fichier trié:


awk '!seen[$0]++' fichier.txt

21/11/2024 63
Récap:
Option Description Exemple
-F Définit le séparateur de champs dans le fichier (par awk -F',' '{print $1, $2}' fichier.csv
'séparateur' défaut : espace ou tabulation).
print Affiche les champs ou toute la ligne. awk '{print $1, $3}' fichier.txt
/motif/ Rechercher les lignes contenant un motif spécifique awk '/motif/' fichier.txt
(supporte les expressions régulières).
NR Numéro actuel de la ligne en cours de traitement. awk 'NR == 5' fichier.txt
$n Représente le nᵉ champ d'une ligne. awk '{print $2}' fichier.txt
BEGIN Exécute une action avant de lire le fichier. awk 'BEGIN {print "Début"} {print
{action} $1}' fichier.txt
END Exécute une action après avoir lu tout le fichier. awk 'END {print "Fin du fichier"}'
{action} fichier.txt
if (condition) Ajoute une condition pour traiter ou afficher des awk '{if ($3 > 50) print $1}'
données. fichier.txt
Relational Opérateurs de comparaison : <, <=, ==, !=, >=, > awk '{if ($1 == "Nom") print $2}'
Operators fichier.txt
21/11/2024 64
Récap:
Option Description Exemple
Logical Opérateurs logiques : && (et), || (ou), ! (non). awk '{if ($2 > 10 && $3 < 20) print $0}'
Operators fichier.txt
somme += $n Effectue des calculs sur les champs d'une colonne (ici, somme awk '{somme += $2} END {print somme}'
cumulée). fichier.txt
length($n) Renvoie la longueur d'un champ ou d'une chaîne de caractères. awk '{print $1, length($1)}' fichier.txt
printf Permet de formater l'affichage des données (similaire à printf en awk '{printf "Nom: %-10s Age: %3d\n",
C). $1, $2}' fichier.txt

tolower($n) / Convertit un champ en minuscules ou majuscules. awk '{print tolower($1)}' fichier.txt


toupper($n)

substr($n, start, Extrait une sous-chaîne d'un champ. awk '{print substr($1, 1, 3)}' fichier.txt
length)

match($n, Recherche un motif dans un champ et renvoie l'index de départ. awk '{if (match($1, "abc")) print $1}'
"motif") fichier.txt
ORS / OFS Définit les séparateurs de sortie (par défaut : \n pour ORS, awk 'BEGIN {OFS=";"} {print $1, $2}'
espace pour OFS). fichier.txt
getline Lit la prochaine ligne ou entrée, souvent utilisé dans des awk '{getline nextline; print $1, nextline}'
conditions complexes. fichier.txt
Exercice:
Tout d’abord, crée un dossier de travail et un fichier contenant du texte
/home/utilisateur/
└── test_shell/
Ajoute du texte dans un fichier data.txt avec des lignes dupliquées

1. Supprime les doublons en triant le fichier avant


2. Affiche le nombre d’occurrences de chaque ligne
3. Crée plusieurs fichiers pour tester. Listez ces fichiers et les supprimer en une seule
4. Vérifie que les fichiers ont bien été supprimés
5. Affiche uniquement les noms des personnes
6. Calcule la moyenne des âges
7. Affiche les lignes où l’âge est supérieur à 30
8. Trouver les personnes uniques dans data.txt et stocker le résultat dans unique_names.txt.
9. Lire le fichier unique_names.txt avec xargs et afficher chaque nom suivi de son âge multiplié par 2.
TP 3
Utilisation des commandes avancées sous Linux
Chapitre 4.

Éditeur de texte VI
Éditeur de texte VI

Visual (VI) est un éditeur de texte très populaire sous Linux malgré une ergonomie qui semble limitée.
C’est en effet un éditeur entièrement en mode texte : chacune des actions se faisant avec une touche du
clavier ou des commandes dédiées.
Ses fonctionnalités sont :
• Insertion, suppression, modification de texte ;
• Copie de mots, lignes ou blocs de texte ;
• Recherche et remplacement de caractères.
Les commandes

La commande vi ouvre l’éditeur de texte VI. Avec la Syntaxe suivante:


Option de la commande VI:

L'option -c de la commande vi permet d'exécuter une commande directement après l'ouverture d'un fichier.
Exemple:

Dans cette exemple il va ouvrir le fichier prenom.txt et ce positionner directement à la ligne ou ce trouve le mot « Xavier »
Exemple

Avant: Après:

•5d : Supprime la ligne 5.


•wq : Enregistre les modifications et quitte.
Éditeur VIM

L’éditeur vim reprend l’interface et les fonctions de VI avec de nombreuses améliorations. Parmi ces
améliorations, l’utilisateur dispose de la coloration syntaxique, très utile pour éditer des scripts shell.
Pour sortir de VI, il faut, depuis le mode Commandes, taper sur : puis saisir :
• q pour sortir sans sauvegarder ;
• w pour enregistrer son travail ;
• wq ou x pour sortir et sauvegarder.
Pour forcer la sortie sans confirmation, il faut ajouter ! aux commandes précédentes.
N.B: Il n’y a pas de sauvegarde automatique, il faut donc penser à sauvegarder son travail régulièrement.
Mode opératoire
Dans VI, il existe 3 modes de travail :

Le mode Commandes:
C’est le mode par défaut au démarrage de VI. Pour y accéder à partir d’un des autres modes, il suffit de
taper sur la touche ECHAP. Toutes les saisies sont interprétées comme des commandes et les actions
correspondantes sont exécutées. Ce sont essentiellement des commandes permettant la modification de
texte (copier, coller, …).
Le mode Insertion:
C’est le mode de modification du texte. Pour y accéder à partir du mode Commandes, il faut taper sur des
touches particulières qui effectueront une action en plus de changer de mode. La saisie du texte ne
s’effectue pas directement sur le fichier mais dans une zone tampon de la mémoire. Les modifications ne
sont effectives que lors de l’enregistrement du fichier.
Le mode Ex:
C’est le mode de modification du fichier. Pour y accéder, il faut d’abord passer en mode Commandes, puis
saisir la commande Ex commençant fréquemment par le caractère :. La commande est validée en appuyant
sur la touche ENTREE.
Déplacer le curseur

En mode Commandes, il existe plusieurs façons de déplacer le curseur. La souris n’étant pas active, il est
possible de le déplacer caractère par caractère, mais des raccourcis existent pour aller plus vite. VI reste en
mode Commandes après le déplacement du curseur. Le curseur est placé sous le caractère désiré.
Cmd
G
Déplacer le curseur Description
Déplace le curseur à la dernière ligne du
Exemple
Appuyer sur 'G' amènera le curseur à la fin du document.
fichier.
gg Déplace le curseur à la première ligne du Appuyer sur 'gg' amènera le curseur au début du document.
fichier.
:n Déplace le curseur à la ligne `n` (remplacez Pour aller à la ligne 10, tapez ':10' puis appuyez sur 'Entrée'.
`n` par le numéro de ligne).

Ctrl + f Avance d'une page. Appuyer sur 'Ctrl + f' fera défiler le document d'une page vers le bas.
Ctrl + b Recule d'une page. Appuyer sur 'Ctrl + b' fera défiler le document d'une page vers le haut.
Ctrl + d Avance de la moitié d'une page. Appuyer sur 'Ctrl + d' fera défiler le document de la moitié de la page
vers le bas.
Ctrl + u Recule de la moitié d'une page. Appuyer sur 'Ctrl + u' fera défiler le document de la moitié de la page
vers le haut.
$ Déplace le curseur à la fin de la ligne. Si le curseur est au début de la ligne, appuyer sur '$' déplacera le
curseur à la fin de cette ligne.

0 Déplace le curseur au début de la ligne. Appuyer sur '0' amènera le curseur au début de la ligne courante.
^ Déplace le curseur au premier caractère Si la ligne commence par des espaces, appuyer sur '^' déplacera le
non vide de la ligne. curseur au premier caractère.
Cmd
h
Déplacer le curseurSi le curseur est sur le 'e' dans 'exemple', appuyer sur 'h'
Description
Déplace le curseur vers la gauche
Exemple

(caractère précédent). déplacera le curseur sur le 'x'.


j Déplace le curseur vers le bas (ligne Si le curseur est sur la première ligne, appuyer sur 'j' déplacera
suivante). le curseur à la première position de la ligne suivante.
k Déplace le curseur vers le haut (ligne Si le curseur est sur la deuxième ligne, appuyer sur 'k'
précédente). déplacera le curseur à la première position de la ligne
précédente.
l Déplace le curseur vers la droite Si le curseur est sur le 'e' dans 'exemple', appuyer sur 'l'
(caractère suivant). déplacera le curseur sur le 'm'.
w Déplace le curseur au début du mot Si le curseur est sur 'ex', dans 'exemple de texte', appuyer sur
suivant. 'w' déplacera le curseur sur 'de'.
b Déplace le curseur au début du mot Si le curseur est sur 'de', dans 'exemple de texte', appuyer sur
précédent. 'b' déplacera le curseur sur 'exemple'.
e Déplace le curseur à la fin du mot Si le curseur est sur 'ex', dans 'exemple de texte', appuyer sur
suivant. 'e' déplacera le curseur sur 'mple'.
Récap des commandes
Categories Commande Description et Exemple
h/j/k/l Déplace le curseur : h(gauche), j(bas), k(haut), l(droite). Ex: 'j' pour
Navigation descendre.
gg Aller au début du fichier. Ex: Tapez 'gg' pour aller à la première ligne.
G Aller à la fin du fichier. Ex: Tapez 'G' pour atteindre la dernière ligne.
Insertion i Insérer avant le curseur. Ex: 'iBonjour' insère 'Bonjour' à la position
actuelle.
x Supprimer le caractère sous le curseur. Ex: Placez le curseur et tapez
'x'.
Modificatio dd Supprimer une ligne. Ex: 'dd' sur une ligne la supprime entièrement.
n yy Copier une ligne. Ex: Tapez 'yy' pour copier.
p Coller après le curseur. Ex: 'p' colle ce qui a été copié.
Recherche /mot Rechercher un mot. Ex: '/test' pour trouver 'test' dans le fichier.
:w Enregistrer le fichier. Ex: ':w' pour sauvegarder.
Fichiers :q Quitter le fichier. Ex: ':q' pour sortir de Vim.
Visual v Sélection en mode caractère. Ex: 'v' puis déplacement avec les
Mode touches fléchées.
Ex :%s/ancien/nouvea Remplacer 'ancien' par 'nouveau'. Ex: :%s/chat/chien/g remplace
u/g 'chat' par 'chien'.
Arborescence
de fichiers
Arborescence de fichiers
Sous Linux, l’arborescence des fichiers se présente sous la forme d’un
arbre inversé, appelé arborescence hiérarchique unique, dont la racine
est le répertoire « / ».
• Le répertoire courant est le répertoire où se trouve l’utilisateur.
• Le répertoire de connexion est le répertoire de travail associé à
l’utilisateur. Les répertoires de connexion sont, en standard, stockés
dans le répertoire /home.
Arborescence de fichiers

 /root est le répertoire d’accueil du super-


utilisateur (administrateur);
 /bin contient généralement les programmes
utiles au démarrage;
 /etc contient les fichiers de configurations;
 /dev contient les fichiers relatifs aux devices
(périphériques);
 /home contient les répertoires des utilisateurs;
 /lib contient les librairies du système;
 /usr contient les programmes ajoutés au
système.
Notion de chemin
Le chemin défini un nom unique:
• Deux fichiers ou répertoires ne peuvent pas porter le même nom si ils sont dans
un même répertoire.
• Les noms des fichiers et répertoires différencient les caractères Majuscules
Notion Spécial
Les chemins des répertoires de référence:
Répertoire Notion
Racine /
Personnel ~
Courant .
Parent ..
 Commande c'est le nom d'un programme qui exécute une action.
 Options ce sont des paramètres optionnels. Ils peuvent être négligé. L'ajout
d'options modifie le comportement de la commande (le résultat). Les options sont
encadrées par les caractères < options >.
 Paramètres ce sont des arguments que la commande évalue
Organisation d’un système de fichiers
Linux répond à la norme FHS (Filesystems Hierarchy Standard) qui définit le nom des dossiers et
leurs rôles.
/ la racine, elle contient les répertoires principaux
/bin Contient les exécutables essentiels au système, employés par tous les utilisateurs.

/boot Contient les fichiers de chargement du noyau, dont le chargeur d'amorce.


/dev Contient les points d'entrée des périphériques.
/etc Contient les fichiers de configuration nécessaires à l'administration du système (fichiers passwd, group, inittab, ld.so.conf,
lilo.conf, ...).
/home Contient les répertoires personnels des utilisateurs. Dans la mesure où les répertoires situés sous /home sont destinés à
accueillir les fichiers des utilisateurs du système, il est conseillé de dédier une partition spécifique au répertoire /boot afin de
limiter les dégâts en cas de saturation de l'espace disque.
/lib Contient les bibliothèques standards partagées entre les différentes applications du système.
/mnt Permet d'accueillir les points de montage des partitions temporaires (cd-rom, disquette, ...).
/proc Regroupe un ensemble de fichiers virtuels permettant d'obtenir des informations sur le système ou les processus en cours
d'exécution.
/root Répertoire personnel de l'administrateur root. Le répertoire personnel de l'administrateur est situé à part des autres
répertoires personnels car il se trouve sur la partition racine, afin de pouvoir être chargé au démarrage, avant le montage de la
partition /home.
/tmp contient les fichiers temporaires
/usr Hiérarchie secondaire
/usr/bin contient la majorité des fichiers binaires et commandes utilisateurs
/usr/lib contient la plupart des bibliothèques partagées du système
/usr/local contient les données relatives aux programmes installés sur la machine locale par le root
/usr/src contient des fichiers de code source
/var contient des données versatiles telles que les fichiers de bases de données, les fichiers journaux (logs), les fichiers du spouleur
d'impression ou bien les mails en attente.
Opérations sur les fichiers
Notion d’inode

Définition: Un inode (Index Node) est une structure de données utilisée par le système de fichiers
Linux pour stocker des informations sur un fichier.
Chaque fichier a un inode qui contient :
 L’identifiant unique du fichier.
 Les permissions et le propriétaire.
 La taille du fichier.
 La date de création/modification.
 L’emplacement sur le disque.
Types de fichiers
Comme dans tout système, afin de pouvoir se retrouver dans l’arborescence et la gestion des fichiers, il
est important de respecter des règles de nommage des fichiers.
• Les fichiers sont codés sur 255 caractères ;
• Tous les caractères ASCII sont utilisables ;
• Les majuscules et minuscules sont différenciées ;
• Pas de notion d’extension.
Détails du nom d’un fichier:
Types de fichiers
• Ce sont des fichiers textes, programmes (sources), exécutables
(après compilation) ou fichiers de données (binaires, ASCII) et
Ordinaires
multimédias

Répertoires • Les fichiers de type répertoire contiennent des références à


d’autres fichiers

Spéciaux • Ils ne contiennent pas de données mais spécifient le mode


d’accès pour communiquer avec le périphérique
Communications • Il s’agit des fichiers tubes (pipes) entre processus et des
fichiers sockets communication inter processus distance
Lien ou locale.
• Possibilité de donner plusieurs noms logiques à un même fichier
physique. Un nouveau point d’accès au fichier est par conséquent
créé.
Lien physique vs lien symbolique
Un lien physique est un nom supplémentaire pour un même inode. Ainsi, le nombre de références
s’accroît de un à chaque nouveau lien physique créé.
ln fichier1.txt fichier5.txt

Un lien symbolique vers un fichier ou un répertoire crée un nouvel inode qui pointe vers le même bloc de
données.
ln -s fichier1.txt fichier4.txt

N.B:
Lien physique : même inode = même fichier. Supprimer l’original ne supprime pas les liens.
Lien symbolique : pointeur vers le fichier d’origine. Supprimer l’original rend le lien cassé.
Attributs des fichiers
Linux est système d’exploitation multi-utilisateurs où l’accès aux fichiers est contrôlé. Ces contrôles
sont fonctions :
• Des permissions d’accès au fichier ;
• Des utilisateurs (ugo)
Il existe 4 droits d’accès aux fichiers :
• read (lecture) ;
• write (écriture) ;
• execution (exécution) ;
• - aucun droit.
Les types d’utilisateurs associés aux droits d’accès des fichiers sont :
• user (propriétaire) ;
• group (groupe propriétaire) ;
• others (les autres) ;
Attributs des fichiers
Gestion des attributs
L’affichage des droits se fait à l’aide de la commande ls -l

La commande chmod permet de modifier les autorisations d’accès à un fichier.


Attributs des fichiers

Droit 777
TP 4
Gestion de fichiers
Gestion des groupes
Toute entité (personne physique ou programme particulier) devant interagir avec un système UNIX
est authentifié sur cette machine par un utilisateur ou user. Ceci permet d'identifier un acteur sur un
système UNIX. Un utilisateur est reconnu par un nom unique et un numéro unique (la
correspondance nom/numéro est stockée dans le fichier /etc/passwd). Chaque utilisateur est
membre d’au moins un groupe : c’est son groupe principal.
Fichiers important a savoir:
Fichier /etc/group : contient les informations de groupes (séparées par :).
Fichier /etc/gshadow : contient les informations de sécurité sur les groupes (séparées par :)
Gestion des utilisateurs

Un utilisateur se définit comme suit dans le fichier /etc/passwd :


1:Login ; 2:Mot de passe ; 3:UID ; 4:GID du groupe principal ; 5:Commentaire ; 6:Répertoire de connexion.
Il existe trois types d’utilisateurs :
• root : Administrateur du système ;
• utilisateur système : Utilisé par le système pour la gestion des droits d’accès des applications ;
• utilisateur ordinaire : Autre compte permettant de se connecter au système.

Fichiers modifiés, ajout de lignes :

• /etc/passwd
• /etc/shadow
Commandes usuelles pour les utilisateurs
su:
Définition: su (substitute user ou switch user) est une commande Unix permettant d’exécuter un
interpréteur de commandes en changeant d’identifiant de GID et de UID.
N.B: Cette commande est surtout utilisée pour obtenir les privilèges d’administration à partir d’une session
d’utilisateur normal, c’est-à-dire, non privilégiée.

Programme sudo
Définition: sudo (abréviation de substitute user do, en anglais : «exécuter en se substituant à l’utilisateur») est
une commande qui permet à l’administrateur système d’accorder à certains utilisateurs (ou groupes
d’utilisateurs) la possibilité de lancer une commande en tant qu’administrateur, ou comme autre utilisateur, tout
en conservant une trace des commandes saisies et des arguments
- Visudo: configuration au niveau de ce fichier permet un utilisateur de devenir “sudoer”.
Commande chown/chgrp:

• Chown: est un appel système et une commande LINUX nécessitant les droits de root pour changer le
propriétaire d’un fichier ou dossier (de l’anglais change the owner).

• Chgrp: Permet de changer le groupe d’utilisateur possédant un fichier ou un dossier. Contrairement à chown la
commande n’est pas réservée au super-utilisateur, le propriétaire peut aussi effectuer un changement de
groupe s’il fait partie du groupe de destination.
Changer le propriétaire et groupe d’un fichier

Exemple:
Par exemple si on veut attribuer l’utilisateur milou et le groupe tintin au fichier myfile.txt

Les droits: À chaque fichier est associée une liste de permissions qui déterminent ce que chaque utilisateur a le
droit de faire du fichier(r,w,x).

Représentation symbolique Représentation Octal


La commande umask
Les permissions standards sont :
• 666 pour les fichier, et 777 pour les répertoire.

Umask est un masque de création de fichier qu’il faut soustraire des permissions standards pour obtenir les
droits de tout nouveau fichier ou dossier créé par l’utilisateur.

Valeur Umask par défaut


Fichier
Permissions maximales : 666 (rw-rw-rw-)
Exemple: Umask appliqué : -022 (----w--w-)
Soit la valeur par défaut de 022. Calculez les permissions Résultat final : 644 (rw-r--r--)
dans le cas de la création d’un nouveau fichier et d’un Dossier
nouveau dossier
Permissions maximales : 777 (rwxrwxrwx)
Umask appliqué : -022 (----w--w-)
Résultat final : 755 (rwxr-xr-x)
La commande chmod

Chmod est la commande qui permet de changer les permissions des fichiers et des dossiers.

Au en mode symbolique selon la syntaxe en utilisant :


• Les catégories d’utilisateur : u, g, o, a
• Des opérateurs d’ajout/suppression : -, +, =
• Des droits : r, w, x

Opérations sur les utilisateurs et les groupes

Les commandes les plus utilisées pour la gestion des utilisateurs et des groupes:
• Créer un nouvel utilisateur avec useradd
• Définir un mot de passe avec passwd
• Créer de nouveaux groupes groupadd
• Ajouter un utilisateur à un groupe gpasswd
• Modifier les paramètres utilisateur et groupe Verrouiller un compte man usermod
• Lister les information sur l’expiration du mot de passe chage -l utilisateur
• Supprimer un compte et un groupe userdel
N.B: Pour toutes ces opérations vous devez disposer des droits root.
Gestionnaires de paquets
Un gestionnaire de paquets est un (ou plusieurs) outil(s) automatisant le processus d’installation,
désinstallation, mise à jour de logiciels installés sur un système informatique.
Un paquet est une archive comprenant les fichiers informatiques, les informations et procédures nécessaires à
l’installation d’un logiciel sur un système d’exploitation, en s’assurant de la cohérence fonctionnelle du système
ainsi modifié. Il permet de :
• Installation, mise à jour, et désinstallation ;
• Utilisation des paquets provenant de supports variés (CD d’installation, dépôts sur internet, partage
réseau, etc.) ;
• Vérification des sommes de contrôle de chaque paquet récupéré pour en vérifier l’intégrité ;
• Vérification des dépendances logicielles afin d’obtenir une version fonctionnelle d’un paquetage

On trouve deux grands types de système de paquets selon les grandes familles de distributions Linux :

• RPM : Redhat Enterprise Linux, Fedora, Centos, etc.


• DPKG: Debian, Ubuntu, Mint, Raspbian, etc.
Les paquets

Dpkg: Est utilisé pour installer, supprimer et fournir des informations à propos des paquets *.deb qui sont
supportés par les distributions basées Debian. C’est un outil de bas niveau, dpkg -i , dpkg -r permettent
d’installer ou de désinstaller des fichiers .deb. Pour ces tâches, on préfère utiliser des outils plus avancés
comme apt-get
Rpm: est l’autre système de base. Il permet d’installer, mettre à jour, désinstaller, vérifier et rechercher des
paquets, avec les droits de l’utilisateur root
Dpkg
rmp

Vous aimerez peut-être aussi