0% ont trouvé ce document utile (0 vote)
10 vues146 pages

Utilisation Linux 19

Le document présente une introduction à Unix/Linux, expliquant leur nature en tant que systèmes d'exploitation multitâches et multi-utilisateurs, ainsi que leur historique depuis le projet MULTICS jusqu'à la création de Linux par Linus Torvalds. Il aborde également les différentes distributions Linux, les modes d'utilisation (console et graphique), et les commandes de base en mode console. Enfin, il décrit le fonctionnement des shells et les commandes essentielles pour interagir avec le système.

Transféré par

ibarisara2022
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)
10 vues146 pages

Utilisation Linux 19

Le document présente une introduction à Unix/Linux, expliquant leur nature en tant que systèmes d'exploitation multitâches et multi-utilisateurs, ainsi que leur historique depuis le projet MULTICS jusqu'à la création de Linux par Linus Torvalds. Il aborde également les différentes distributions Linux, les modes d'utilisation (console et graphique), et les commandes de base en mode console. Enfin, il décrit le fonctionnement des shells et les commandes essentielles pour interagir avec le système.

Transféré par

ibarisara2022
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

Unix/Linux

Objectifs :
Expliquer ce que c'est Unix/Linux
Utiliser des commandes en mode console

Enseignants: Mr TALL, Mr ZOUGMORE & Mr KAFANDO 1


Avant propos
● Un système d'exploitation
– Ensemble de programmes assurant la gestion
de l'ordinateur et des périphériques.
– Se situe entre le matériel et les applications
ou logiciels

2
Système d'exploitation Unix/Linux
● Unix
– SE multitâche, multiulisateur, multiplateforme
– Écrit en langage C
– Peut être libre et gratuit
– 2 grandes familles au début:
● Unix BSD (Berkeley Software Distribution) de
l'université de Californie à Berkeley
● et System V de AT&T (opérateur de services
mobile basé à Dallas au Texas)
– Posix: un standard (famille de normes
techniques) à respecter pour être qualifié de
système Unix
● Linux
– Un Unix libre répandu
3
Historique Unix
● Débute en 1964 avec un projet du
laboratoire Bell Labs d'AT&T, MIT,
General Electric nommé MULTICS

MULTICS:Multiplexed Information and Computing Service


devait répondre à de nouveaux besoins:
Utilisable par plusieurs personnes à la fois
Multi-tâches
sécurisé

Multics était développé sur un gros système GE-645 de


General Electric, équipé de deux processeurs sachant
traiter chacun 435 000 instructions par seconde, trois
unités de mémoire de 1 Mo chacune et 136 Mo de stockage

4
Historique Unix
GE-645

5
Historique Unix
● 1969
– Retrait de Bell labs du projet
– Suite des travaux par ken Thompson
● Développement d'un jeu space travel
● Création avec l'aide de Dennis Ritchie et Rudd
Canaday d'un SE nommé UNICS
– UNICS: Uniplexed Information and Computing
System
● Amélioration des concepts de MULTICS tel la
communication entre programmes d'où le
remplacement de cs de UNICS par X pour
donner naissance à UNIX

6
Historique Unix
● 1974
– Diffusion de Unix par AT&T à des fins
éducatives sous une licence peu restrictive
– Plusieurs versions se succèdent
● 1978
– Sortie de la version V7 de Unix
– AT&T rend plus restrictive la licence de Unix
V7
– Naissance de 2 grandes familles:
● BSD basé sur Unix v6 moins restrictive que v7
● System V, produit de la branche commerciale
de AT&T
7
Historique Linux
● 1984
– MS-DOS répandu
– Unix plus puissant mais moins connu
– Projet GNU de richarch stallman

Qui est-ce ?
 Informaticien au labo d’IA du MIT (Massachusetts Institute of
Technology)
 Frustré de n’avoir pas la possibilité d’obtenir le code source
de son imprimante Xerox
 Crée la FSF (Free Software Foundation) en 1985 pour diffuser
les idées du logiciel libre

8
– But: écrire un SE entièrement libre
d’accès, d’utilisation, de modification et
de redistribution
– GNU veut dire GNU’s not Unix
– écrire des applications nécessaires à un
SE mais celles-ci devraient être libres

9
Historique Linux
● Historique (en 1991)
– Linus Torvalds

Jeune étudiant finlandais à l’université de


Helsinki âgé de 21 ans en 1991
– Motivation
● Compréhension du 80386


l
Processeur 32 bits gérant entre autres la
mémoire

virtuelle et la commutation de tâches.

l
Livré

avec MS DOS mais remplacé par Minix par
Torvalds
● Emulateur de terminal pour se connecter à son
serveur de l’université

10
– Naissance d’un noyau de SE selon les normes POSIX
– Intentionnellement freax mais finalement Linux (nom du
dossier qui contenait le code source du noyau)
– Le manchot nommé Tux en est le symbole

11
Historique Linux
● Gnu/linux
– 2 projets complémentaires
● Gnu : les programmes de base (editeur de
texte, programme de copie, de
suppression, etc)
● Linux:noyau, le coeur de l'OS
– Rigoureusement c'est Gnu/Linux mais par
abus de langage on dit Linux

12
Historique Linux
● Gnu/linux
– 2 projets complémentaires
● Gnu : les programmes de base (editeur de
texte, programme de copie, de
suppression, etc)
● Linux:noyau, le coeur de l'OS
– Rigoureusement c'est Gnu/Linux mais par
abus de langage on dit Linux

13
Licence GPL
● GPL (General Public License)
– 4 libertés ou droits garantis à l'utilisateur
● Exécution sur n'importe quelle architecture,
n'importe quel os et pour n'importe quel
usage
● Etude et modification du programme
● Redistribution des copies
● Obligation de faire bénificier la communauté
des versions modifiées
– Un logiciel sous licence GPL peut être vendu

14
Distributions Linux

une solution prête à être installée comprenant :
– le noyau Linux,
– des paquets ou programmes GNU
– une sélection de logiciels produits par d’autres
développeurs.

Il en existe une très grande variété selon :
– La convivialité (facilité de mise en œuvre)
– L’intégration (taille du parc de logiciels valides distribués)
– La notoriété (communauté informative pour résoudre les
problèmes)
– L’environnement de bureau (KDE,GNOME,..)

15
Distributions linux
● Il en existe une grande variété selon:
– Le type de paquet utilisé pour distribuer un logiciel (deb
et RPM)
– Le mainteneur de la distribution (une Entreprise ou une
communauté)
– L'orientation (serveur, bureautique, parefeu, embarqué)

Quelques principales distributions
– Slackware depuis juillet 1993 maintenue par quelques
personnes
– Debian depuis août 1993 maintenue par une
communauté de développeurs
– Red hat: depuis 1993 maintenue par l'entreprise Red hat
16
Distribution Linux
● Autres distributions
● Ubuntu
● Fedora
● Maegia
● Ipcop
● Elastix
● Kali linux
● Etc (voir [Link] )

17
Les modes d'utilisation de Linux
● Console
– Pas d'utilisation de souris
– Utilisation de commandes
● Graphique
– À l'image de windows, il y a des fenêtres et
on peut cliquer sur des boutons pour
déclencher des actions

18
Les modes d'utilisation de Linux
● Graphique
– Non intégré au système d'exploitation
– Mode graphique géré par un programme nommé
X Window System ou X
– xorg est le programme principal X de Linux

–X :programme de base du mode graphique sous linux


Une interface (API) pour les applications, afin qu'elles
–affichent à l'écran et reçoivent l'entrée du clavier
et de la souris.

–Il est implémenté selon l'architecture client/serveur

19
● Les clients de x sont entre autres
– Les environnements de bureau
● Gnome : un des plus célèbres. Contrôle du système
par un menu situé en haut
● Kde: possède une barre de tâches comme sous
windows
● Xfce: alternative légère à gnome et kde
– La différence se situe entre autres au niveau
● Des bibliothèques de composants (QT pour KDE et
GTK+ pour Gnome et Xfce)
● Des thèmes utilisés et de l'apparence des
composants (boutons, barres de défilements, etc)
● Disposition de certains éléments (barres de
tâches,etc)

20
● Les clients de x sont entre autres
– Les gestionnaires de session: chargés de la
connexion des utilisateurs, locaux ou
distants, de leur authentification
● Kdm: version proposée par kde

● Gdm: version proposée par gnome

● Il est possible d'avoir plusieurs environnements de


bureau sur la même machine. Le choix se fait lors de
la connexion

21
Mode graphique/ quelques
logiciels
● Bureautique
– LibreOffice : suite bureautique
– GIMP: logiciel de retouche d'images
– Blender:modélisation 3D (lien tuto:
[Link]
la-3d-avec-blender/)
● Développement
– Eclipse : environnement de programmation java,c,c++,
etc
– Code blocks :environnement de programmation c,c++
● Lecteur vidéos et audio
– Amarok,vlc
22
Mode quelques/quelques
logiciels
● Navigateur
– Iceweasel
– firefox
● virtualisation
– virtualbox
– kvm
● Jeux
– [Link]
vid%C3%A9o_libres
– [Link]

23
Mode quelques/quelques
logiciels
● Divers
– Tomboy: prise de note
– espeak: synthèse vocale
– Cheese: webcam
– Gedit: éditeur de texte

24
Quelques possibilités/Capture
d'écran
● Avec le bouton prt sc ou impr
● Stocke l'image dans le répertoire
/home/nom_user/Pictures
● Combinaison alt+ touche prt sc ou impr
pour ne capturer que la fenêtre active
● Maj + prt sc ou impr permet de
sélectionner la zone à capturer
● Crtl+Maj+Alt+prt sc ou impr pour faire une
capture animée

25
Mode graphique/ quelques
possibilités
● Nouvel onglet avec l'explorateur de fichier
– Ouverture de plusieurs répertoires dans
des espaces différents
– Ctrl + t pour effectuer cela
● Sélection rapide fichier: sélection d'un
élément quelconque ensuite saisie du nom
du fichier concerné
● Zoom : ctrl + pour agrandir et ctrl – pour
diminuer la taille des éléments d'un
répertoire

26
Mode graphique/ quelques
possibilités
● Bureaux virtuels: pour une meilleure
organisation des fenêtres ouvertes
– Fenêtre toujours visible
– Ctrl + Alt+ flèche bas/haut: déplacement entre
bureaux virtuels
– ctrl+shift+alt+flèche bas/haut: déplacement de
la fenêtre active dans un bureau virtuel
● Accès rapide à un répertoire
– Ajout du répertoire dans les favoris

27
Mode graphique/ quelques
possibilités
● Navigation entre répertoires ouverts
– Alt + flèche gauche: pour aller au dossier
précédent
– Alt + flèche haute: pour aller au dossier parent
● Prévisualisation d'un fichier: sélection fichier+
touche espace

28
Le mode console
● Pas très ergonomique mais très puissant
exemple: compter le nombre de fichiers jpg dans un dossier
et stocker le résultat dans un fichier
● Plusieurs consoles
– 6 en mode texte par défaut
– Acessibles via Ctrl + alt + fn avec n compris
en 1 et 6
● Nb :ctrl + alt+f7 pour revenir au mode graphique
– Une en mode graphique avec toutes les
commodités.
● Les consoles sont également désignées par le
terme terminal (explication dans la diapo suivante)

29
Terminal
● Un terminal est orginellement une véritable machine
ne disposant que du nécessaire pour saisir des
instructions (le clavier) et visualiser les résultats
(écran, imprimante)
● Émulé sur les systèmes Unix/Linux

30
Shell
● Un interpréteur de commandes
● Signifie coquille qui entoure le noyau
(kernel)
● Moyen d'utiliser le noyau à l'aide de
commandes
● Interface entre l'utilisateur et le noyau

31
shell
● Plusieurs
– Bourne Shell(sh) : courant sur les Unix
– C-Shell (csh): reprend la structure du
langage C
– Korn Shell (ksh):évolution de sh
– Z-Shell: évolution de ksh
– Bourne Again Shell (Bash): shell de
référence sous linux
● La liste des shells se trouve dans /etc/shells
● Fonctionne au sein d'un terminal

32
shell

● Les entrées au clavier apparaissent sur une ligne


appelée invite de commande ou prompt
● Prompt fournit des informations sur le terminal et la
position dans le système de fichiers
● Exemple:isis@isispc:/chemin$/#
– isis : nom du l'utilisateur connecté
– isispc: nom de la machine
– Chemin : répertoire dans lequel on se trouve
– $: droits de l'utilisateur connecté limités
– #: utilisateur (root) qui a tous les pouvoirs

NB: Le chemin ~ signifie le répertoire


33
Personnel de l'utilisateur connecté
shell
● Syntaxe générale des commandes
– Commande [paramètres] [arguments]
● Paramètres: options de la commande
– -p1 -p2 -p3 : syntaxe pour indiquer plusieurs
paramètres
– -p1p2p3: autre syntaxe plus courte
– -p1p2 -p3: au cas où p3 nécesseriterait un
argument
– --parametre: pour les paramètres longs
● Arguments: les entités sur lesquelles la
commande doit exécuter son action
– Fichier
– Texte
– Les [ ] pour signifier que paramètres et
arguments peuvent être optionnels
34
shell
● Chainer des commandes
– cmd1;cmd2;cmd3 : résultats des 3
commandes dans l'ordre
– Exemple: date;pwd;cal
● Afficher du texte
– echo la commande à utiliser
– Syntaxe: echo texte ou echo 'texte' ou echo
“texte”

35
shell
– Quelques caractères particuliers
● Syntaxe: echo -e “texte \carac”

\n:passage à la ligne
\t:tabulation horizontale
\b: retour d'un caractère en arrière
\\:afficher antislash

36
Shell
● Commandes externes
– Fichiers binaires chargés en mémoire et lancer en
tant que processus
– Situées dans /bin, /sbin, /usr/bin et /usr/sbin
● Commandes internes
– Commndes intégrées au programme shell
● “type” commande pour distinguer si une commande
– est interne : nom_cmd is a shell builtin
– ou externe: chemin vers le fichier binaire
● Alias: raccourcis des commandes propres au shell

37
shell
● Raccourcis
– Crtl-c: interruption du programme. Il se termine
– Crtl-z : Mets en pause le programme en cours
d'exécution
– Crtl-l: efface le terminal
– Crtl-d: quitte le shell

ctrl+a: ramène le curseur au debut de la commande


ctrl+e: ramène le curseur à la fin de la commande
ctrl+w: supprime le premier mot situé à gauche du curseur
ctrl+k: supprime tout ce qui est à droite du curseur
ctrl+u: supprime tout ce qui est à gauche du curseur
ctrl+y: colle tout ce qui a été supprimé par les 3 commades
tout juste au dessus
alt+shift+c: met une lettre en majuscule
alt+shfit+u: met un mot en majuscule
alt+shift+b: se déplace mot par mot (sens arrière)
alt+shift+f: se déplace mot par mot (sens avant) 38
shell
● Rappel de l'historique
– Les flèches haut et bas de direction
– La commande history (tire son contenu
dans .bash_history de taille 1000 par
défaut peut aller au delà en changeant
HISTSIZE dans ~/.bashrc export
HISTSIZE=1500 par exemple)

39
shell
● Rappel de l'historique
– !debut_ou_tout_cmd: rapel et exécute la
dernière commande commençant par début
– Commande fc -l : affiche les 15 dernières
commandes par défaut (pour en avoir plus fc -
l -n)
– Exécution d'une commande rappelée avec fc
● “fc – s num_cmd”

– La combinaison ctrl + R et on saisit des


caractères pour retrouver la commande
voulue

40
Gestion des fichiers
● OS orienté fichier
● Données:image, texte, audio, etc

● Périphériques: clavier,souris, DD,etc

● Moyens de communication :sockets, tubes

nommés,etc
● Hierrarchique
● Part d'un élément de base racine ou root

directory représentée par “/”


● Décrit une arborescence de répertoires et

de sous répertoires

41
Gestion des fichiers/différents types
● Fichiers ordinaires
– Appelés aussi regular files, ordinary files
– Fichiers classiques contenant des données
(image, texte,vidéo,audio, programme binaire
compilé,script)
– Pas d'extension
– Pour les différencier “ls -F” ou “file
nom_fichier”
● Catalogues
– Répertoires, dossiers ou directory
– Contiennent des regular files, des dossiers,
fichiers spéciaux

42
Catalogues de bases
● /: la racine contient tous les autres dossiers
● /bin: contient des programmes susceptibles d'être utilisés
par tous les utilisateurs de la machine
● /boot: contient les fichiers permettant le démarrage de
linux
● /sbin : contient des programmes système importants
● /usr: contient des fichiers/programmes partagés par les
utilisateurs
● /etc: contient les fichiers de configuration
● /home: répertoire des utilisateurs

43
Catalogues de base
● /lib: contient des bibliothèques partagées (d'extension
so) utilisées par les programmes
● /dev: contient les fichiers qui représentent les
périphériques
● /media:contient les périphériques montés
● /opt: contient des fichiers de paquets optionnels
● /proc: contient des informations système
● /var: contient des données fréquemment réécrites
● /tmp: contient des fichiers temporaires
pour plus de détails: man hier

44
Gestion des fichiers/différents
types
● Fichiers spéciaux
– Se trouvent principalement dans /dev
– Servent d'interface pour les périphériques

45
Gestion des
fichiers/Nommenclature
● Longueur: avant 14 caractères maitenant 255
caractères
● Sensible à la casse
– Osiris # osiris# oSiris # OsiriS # OSIRIS
● Quelques caractères à éviter
– Espace
– &
– ()
– /, \, |, ?

46
Gestion des fichiers/chemin
● Emplacement défini au sein du système de fichiers
● C'est la liste des répertoires et des sous-répertoires
empruntés pour accédér à un fichier
● Plusieurs types
– Absolu: démarre de la racine (/), décrit tous les
répertoires à travers jusq'à l'endroit voulu
– Relatif: accès à un autre emplacement depuis
le répertoire courant

47
Gestion des fichiers/chemin
● Quelques entrées particulières
– “.”: le répertoire courant actif
– “..”: répertoire précédent
– “~”: répertoire personnel de l'utilisateur
● Quelques commandes
– cd:change directory pour se déplacer dans un
dossier
● Syntaxe: cd nom_dossier ou cd .. pour
remonter d'un niveau
– pwd :print working directory: pour afficher le
chemin absolu du répertoire courant
● Syntaxe: pwd

48
Commandes d'aide
● cmd --help: donne l'aide de la commande
● whatis cmd: dit à quoi sert la commande
● apropos mot: recherche des pages de manuel du mot
● man nom_commande:pour avoir de l'aide concernant
une commande. L'aide est découpée en sections (ci-
dessous)

NAME: nom de la commande concernée


SYNOPSIS: toutes les façons d'utiliser la commande
DESCRIPTION: description de la commande
AUTHOR: auteur ou auteurs
REPORTING BUGS: une adresse où écrire en cas de bug du programme
COPYRIGHT: type de licence
SEE ALSO: suggestion de commandes similaires
OPTIONS : pour les options
49
Et bien d'autres...
Commandes de base/lister les fichiers et les
répertoires
● “ls”: liste en lignes ou en colonnes le contenu d'un
repertoire
– -l : fournit des informations détaillées
– De la droite vers la gauche

Type de fichier: d pour dossier – pour fichier regulier p:tube nommé


Droits:1er triplet pour le proppriétaire 2nd triplet pour le groupe
et le dernier pour les autres
Nombre de liens physiques ou nombre de fichiers si c'est un dossier
Nom du propriétaire
Nom du groupe souvent identique au nom du propriétaire
Taille du fichier: en octects
Date de dernière modification
Nom du fichier ou dossier

50
– -h: affiche la taille des fichiers en ko,Mo,Go
– -a: affiche les fichiers cachés (commencent
par un point)
– -F: rajoute un caractère à la fin du nom pour
spécifier le type : / pour un répertoire, *
pour un exécutable, @ pour un lien
symbolique, etc.

51
Commandes de base/lister les fichiers et les
répertoires

● “ls”: liste en lignes ou en colonnes le contenu d'un


repertoire
– -R: si la commande rencontre des répertoires,
elle rentre dans les sous-répertoires, sous-
sous-répertoires, etc., de manière récursive.
– -S:affiche selon un ordre décroissant de la taille
des fichiers
– -t La sortie est triée par date de modification du
plus récent au plus ancien. Cette date est
affichée.

52
Commandes de base/lister les
fichiers et les répertoires
● La commande ls permet de lister en lignes ou en colonnes le
contenu d'un repertoire
– -c: affiche / tri (avec -t) par date de changement d’état
du fichier.
– -u: affiche / tri (avec -t) par date d’accès du fichier.
– -r: l'ordre alphabétique de sortie est inversé
– -i: affiche l'inode du fichier
– -1: l'affichage est sur une colonne

53
Commandes de base/ Gérer les fichiers/
● Création avec la commande touch
– touch nom_fichier
NB

La création de fichiers vides n’est pas à l’origine le principal
● usage de touch. Si vous relancez la même commande sur
le fichier, vous remarquez que la date de modification a changé.
● Copie
– cp fichier_a_copier fichier_copie_cree
– cp fichier_a_copier dossier_où_copier
– cp fichier_a_copier dossier_où_copier/fichier_copie_cree
– -i:demande de confirmation pour chaque fichier
– -r:copie un répertoire et tout son contenu
– -p: les permissions et les dates sont préservées
– -f:forcer la copie

54
Commandes de base/ Gérer les fichiers/

– -b:Permet comme l'option i de s'assurer que la copie n'écrase pas


un fichier existant : le fichier écrasé est sauvegardé, seul le nom
du fichier est modifié et cp ajoute un tilde(~) à la fin du nom de
fichier
– l : Permet de faire un lien en "dur" entre le fichier source et sa
copie
– s : Permet de faire un lien "symbolique" entre le fichier source et
sa copie

55
Commandes de base/ Gérer les
fichiers
● Déplacer et renommer un fichier
– -mv fichier_a_renommer fichier_renomme
– -mv fichier_a_deplacer dossier_où_deplacer
– -mv fichier_a_deplacer_et_renommer dossier_où_deplacer/
fichier_renommé
– -b: option pour effectuer une sauvegarde des
fichiers cibles déjà existants
– -u : option pour éviter d'écraser le fichier de
destination s'il existe déjà avec une date
plus récente
– -i: option pour demande de confirmation

56
Commandes de base/Gérer les
fichiers
● Suppression
● - rm fichier_a_supprimer
● -i:option pour demander une confirmation avant
● -r:option pour supprimer un répertoire et ses
sous-répertoires
● -f : option pour forcer la suppression

57
Commandes de base/gérer répertoire
● Création
– -mkdir nom_repertoire
– -mkdir nom_rep1 nom_rep2 nom_rep3 : crée 3
répertoires en même temps
– -mkdir -p nom_rep1/nomp2: crée une
arborescence
● Copie, déplacement,suppression
– Commandes déjà mentionnées
– rmdir pour supprimer des répertoires vides
● rmdir rep1 rep2: supprime les deux répertoires
● rmdir -p rep/rep/rep2: suppression de rep et ses
sous répertoires

58
Commandes de base/liens
● Sorte de raccourci
● Fichier spécial contenant comme information le
chemin vers un autre fichier
● 2 types de liens
– Soft ou lien symbolique
● Création: ln -s nom_fichier
nom_lien_symbolique
– Hard ou lien physique
● Création: ln nom_fichier nom_lien_dur

59
Commandes de base/liens

Lien physique permet d'avoir deux noms de fichiers différents


qui partagent le même contenu(inode) . Le fichier est le même
seulement il est accessible de deux manières. Si on supprime
seulement le fichier le lien physique permet de retrouver le contenu.

Lien symbolique: lien vers un nom de fichier. On pointe vers le nom


de fichier et non vers le contenu. La suppression du fichier rend le lien
symbolique invalide c'est à dire qu'il pointe vers nulle part

60
Wildcards:caractères de
substitution
Caractères permettant de filtrer l'affichage de la sortie de
certaines commandes Sur les fichiers

Caractères Rôle
* Remplace une chaine 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)
[!...] Inversion de la recherche
[^...] Idem

61
Quelques exemples avec les
wildcards
● Soit le contenu suivant
$ls
afic afic2 bfic bfic2 cfic cfic2 dfic dfic2
afic1 afic3 bfic1 bfic3 cfic1 cfic3 dfic1 dfic3
● tous les fichiers commençant par a
$ls a*
afic afic1 afic3
● les fichiers de 4 caractères commençant par a
$ls a???
afic
● Au moins 3 caractères et commençant par b
$ls b??*
bfic bfic1 bfic2 bfic3

62
Quelques exemples avec les
wildcards
● Soit le contenu suivant
$ls
afic afic2 bfic bfic2 cfic cfic2 dfic dfic2
afic1 afic3 bfic1 bfic3 cfic1 cfic3 dfic1 dfic3
● Tous les fichiers finissant par 1 ou 2
$ls *[12]
afic1 afic2 bfic1 bfic2 cfic1 cfic2 dfic1 dfic2
● Fichiers commençant par les lettres de a à c, possédant au moisns un
second caractère ayant la terminaison 1 ou2
$ls [a-c]?*[12]
afic1 afic2 bfic1 bfic2 cfic1 cfic2
● Tous les fichiers ne finissant pas par 3
$ls *[!3]
afic afic1 afic2 dfic1 dfic2 bfic bfic1 bfic2 cfic cfic1 cfic2 dfic

63
Connaitre taille d'un dossier
● du(disk usage): donne des informations sur la taille
qu'occupe les dossiers sur le disque
● Sysntaxe :
– du : la taille totale du dossier courant et de ses sous
dossiers
– du nom_dossier: taille du dossier spécifié
● Options
– -h: taille en ko,Mo,Go
– -s: juste le grand total de l'ensemble des fichiers du
dossier concerné
– -a: taille des dossiers et des fichiers

64
Commande de base/recherche de fichier

● Commande locate: recherche de fichier selon un


modèle donné dans une base de données de fichiers
construite par updatedb (mise à jour quotidienne par
défaut)
● Syntaxe: locate mot_a_rechercher

● Limites observées:
– Parfois trop de résultats
– Fichiers crées récemment pas souvent trouvés à moins
d'exécuter d'abord updatedb

65
Commandes de base/recherche de fichiers
● Commande find
– recherche des fichiers au sein du système de fichier à
l'aide de critères et donne la possibilité d'agir sur les
résultats
– Syntaxe: find chemin critères options
– Commande récursive
– Critères de recherche
● -name: sélection par noms de fichiers

– Ex:find . -name “fic*” liste tous les fichiers


commençant par fic du répertoire courant
● -type: sélection par type de fichier
– Ex: find . -name “er*” -type d Voir types
ci-dessous

66
Commandes de base/recherche de fichiers

b:fichier spécial en mode bloc


c:fichier spécial en mode caractère
d:répertoire
f:fichier ordinaire
l:lien symbolique
p:tube nommé(pipe)
s:connexion réseau

67
Commandes de base/recherche de fichier
● Commande find
– Critères de recherche
● -user et -group: sélection selon le propriétaire ou le
groupe d'appartenance
– Ex:find . -type f -user u1 : recherche les
fichiers ordinaires appartenant à l'utilisateur u1
● -size: sélection par taille de fichier

– Ex: find . -size +100k : recherche des fichiers


de plus de 100kiloctets
● Le signe “-” pour signifier moins de

Voir tailles
Sans opérateur pour signifier ci dessous
exactement
● -empty à la place de -size 0 pour rechercher les
répertoires vides et les fichiers de taille 0

68
Commandes de base/recherche de fichier

B:bloc par défaut de 512octets


C:caractère ASCII, donc 1octet
W:un mot donc 2octets
K:1ko(1024octets)
M:1MO(1000ko)
G:1GO(1000MO)

69
Commandes de base/recherche de fichiers
● Commande find
– Critères de recherche
●-atime:sélection selon la date du dernier accès(access
time). Un accès peut être la lecture du fichier, mais aussi
le simple fait de le lister
● -mtime: selon la date de dernière

modification(modification time). Il s'agit de la modification


du contenu
● -ctime: selon la date de changement (date de dernière

modification d'inode i-e modificaition du nom de fichier,


changement de répertoire, changement des droits, de
taille,etc)

le jour est la période de ces critères.


0->aujourd'hui,1->hier,2->avant-hier
À noter
les signes “+” ou “-” pour signifier plus de ou moins de 70
min à la place de time pour rechercher selon n minutes
Commandes de base/recherche de fichiers
● Commande find
– Critères de recherche
● -perm:selon les autorisations d'accès. Les droits
doivent être précisés en base de 8(valeur octale) et
complets.
“-” signifie au moins les droits désirés
“+” signifie au moins l'un des droits désirés
– Exemple: find -type d -perm -111: recherche dans le
répertoire courant tous les répertoires où tout le
monde (user,group,others) ont le droit de pénétrer
● -links:selon le nombre de liens physiques. Un fichier
normal possède 1 seul et un répertoire 2 (l'entrée
dans le catalogue dont il fait partie et dans le point)
– Exemple : find -tye f -links +2

71
Commandes de base/recherche de fichiers

● Commande find
– Critères de recherche
● -inum: selon le numéro d'inode. Utile pour les
recherches des liens portant sur le même inode
– Exemple : find . -inum num_inode
en rappel num_inode s'obtient avec la commande ls
-i

72
Commandes de base/recherche de fichiers
● Commande find
– Des commandes en options
●-ls:affichage du résultat avec des informations détaillées
– La sortie de la commande correspond à ls -sli
– Exemple:find -size +50000k -ls
● -exec:permet d'exécuter une commande sur chaque

occurence du résultat de la recherche


– La commande se termine par un \; il doit avoir une
espace avant \
– Pour passer une occurrence trouvée comme paramètre
on utilise {}
– Exemple: find -type f -name “*.mp3” -exec rm -f {} \;

73
Commandes de base/recherche de fichiers

● Commande find
– Des commandes en options
● -ok:idem à exec sauf qu'il y a une demande de

confirmation
– Il est possible de combiner les critères de recherche
avec “!” pour négation “-a ou -and” pour et puis “-o ou -
or” pour ou
● Ex:find . ! -name “*.pdf”: tous les fichiers sauf

ceux d'extension pdf


● Ex:find . \( -name “[24]” -a -type d \) : tous les

répertoires qui se terminent par 2 ou 4

74
Commande de base/afficher un
fichier
● cat:affiche tout le fichier
– Syntaxe: cat nom_fichier
● Less: affiche le fichier page par page
– Syntaxe: less nom_fichier
● La différence
– cat affiche de façon rapide. Difficile de lire si le
fichier est très long
– less par contre permet de lire le fichier
progressivement et offre d'autres possibilités
● More:similaire à less

75
Voir possibilités de more ou de less ci dessous
Commande de base/afficher un
fichier
Espace ou page down:fait défiler le fichier page par page

Entrée ou flèche bas: fait défiler le fichier ligne par ligne

d:affiche les 11 lignes suivantes

b ou page up:retourne en arrière d'une page

y:retourne d'une ligne arrière

u:retourne de 11 lignes arrière

q:arrête la lecture.

=indique la position dans le fichier

h:affiche l'aide pour retrouver les commandes ci-dessus

/”texte”: permet de rechercher le texte spécifié


n:permet de voir les occurences suivantes de la recherche
N: permet de voir les occurences précédentes de la recherche 76
Afficher le début et la fin du fichier

● Head: affiche les premières lignes


– Syntaxe : head nom_fichier : 10 1ères lignes
affichées
– head -n chiffre nom_fichier : affiche autant de lignes que
la valeur de chiffre
● Tail:affiche les 10 dernières lignes
– Option -n pour le nombre de lignes voulues
– Option -f pour suivre le fichier de façon
dynamqiue. ctrl+c pour quitter

77
Affichage trié d'un fichier

● La commande sort permet de trier le contenu


d'un fichier à la lecture
– Syntaxe:
● sort nom_fichier: tri par ordre croissant ou par ordre
alphabétique
● sort -r nom_fichier: tri par ordre décroissant ou par
ordre alphabétique inversé
– D'autres options
● -k num_champ si plusieurs champs
● -f: sans distinction de la casse

78
Afficher sans doublons
● La commande uniq permet d'afficher le contenu d'un
fichier sans des doublons adjacents
– Syntaxe:uniq nom_fichier
– Syntaxe: uniq -c nom_fichier
pour compter le nombre de fois que l'élément
est répété
– Syntaxe:uniq -d nom_fichier
pour afficher uniquement une occurrence
des éléments doublés

79
Afficher sans doublons
Soit le fichier fic suivant
Esi
Esi
Esi
Isea
Iut
Iut
$uniq fic va afficher
Esi
Exemple Isea
Itu
$uniq -c fic va afficher
3 Esi
1 Isea
2 Iut
$uniq -d fic va afficher
Esi
Iut

80
Afficher une partie d'un fichier
● La commande cut permet de conserver une partie de
chaque ligne
– Syntaxe cut -c -x ou x- nom_fichier
-c: pour signifier caractère
-x:pour dire jusqu'au xème caractère
x-:pour dire à partir du xème caractère
● On peut conserver une partie en fonction d'un
délimiteur
– Syntaxe:cut -d délimiteur -f x nom_fichier
-d:indique le délimiteur(espace,virgule,etc)
-f x:indique le numéro du ou l'intervalle de champs

81
Exemple cut
Soit le contenu d'un fichier fic
Drabo,wilfried,27,homme
Ouedraogo,boureima,28,homme
Sanou,jessica,27,femme
c'est un fichier de 4 champs:nom,prénom,age,sexe
$cut -d , -f 1 fic n'affichera que les noms
$cut -d , -f 2-4 fic affichera les ages, les prénoms et les sexes
$cut -d , -f 1,3 fic affichera les noms et les ages
$cut -d , -f 3- fic affichera tout à partir du champ age
$cut -d , -f -3 fic affichera tout jusq'au champ age

82
Affichage filtré des données d'un fichier

● Grep:rechercher un mot dans un fichier et


afficher les lignes contenant le mot
– Syntaxe : grep texte_recherché nom_fichier
– grep -i texte_recherché nom_fichier: ignore la casse
– grep -n texte_recherché nom_fichier: indique les numéros de
lignes retournées
– grep -v texte_recherché nom_fichier: recherche inversée
– grep -c texte_recherché nom_fichier: nombre de fois où le mot a
été retrouvé
– grep -r texte_recherché nom_dossier: recherche dans tous les
fichiers et sous-dossiers du dossier spécifié

83
Compter lignes, mots, caractères d'un fichier

● Wc:word count pour dire compteur de mots mais il peut servir


à compter également les lignes et les caractères
– Syntaxe:wc nom_fichier
– Résultat: n1 n2 n3
n1:nombre de lignes,n2:de mots et n3: d'octets
– Pour avoir
● uniquement le nombre de lignes :wc -l nom_fichier

● uniquement le nombre de mots:wc -w nom_fichier

● uniquement le nombre d'octets:wc -c nom_fichier

● uniquement le nombre de caractères:wc -m nom_fichier

84
Editeur de texte vi
● 3 modes de fonctionnement
– Mode commande: les saisies représentent des
commandes. On y accède en appuyant sur Echap
– Mode saisie: saisie de texte classique
– Mode ligne de commande:permet de saisir des
commandes spécialisées validées par Entrée. Echap+:
(deux points) pour ce mode
● Saisie
– A : insertion en fin de ligne
– a:insertion après le caractère courant
– O:ajout d'une ligne au dessus de celle courante
– o:ajout d'une ligne en dessous de celle courante
– I(grand i):insertion en début de ligne
– i:insertion avant le caractère courant

85
Editeur de texte vi
● Quitter et sauver
– :q:quitte si le fichier n'a pas été modifié sinon erreur
– :q!:quitte sans sauver
– :w:sauve le fichier. Un nom peut être précisé à la suite
– :wq ou :x :sauve et quitte
– 1,10w fic: sauve les lignes 1 à 10 dans un fichier nommé fic
● Déplacement
– h: vers la gauche -j:vers le bas
– l: vers la droite -k:vers le haut
– 0:début de ligne -:0:début de fichier
– $:fin de ligne -:$:fin de fichier (dernière ligne)
– w:mot suivant -b:mot précédent
– <n>G:saute à la nième ligne. Si n positif avance sinon recule

86
Editeur de texte/vi

● Correction
– X:efface le caractère devant le curseur
– x:efface le caractère courant
– r<n>:remplace le caractère courant par “n”
– :s/chaine_à_remplacer/chaine_de_remplacement
pour une seule ligne
– :%s/chaine_à_remplacer/chaine_de_remplacement
pour tout le document
– dw:efface depuis le curseur jusqu'à la fin du mot
– dG:efface tout jusqu'à la dernière ligne
– dd:efface ou coupe la ligne actuelle
– <n>dd:efface ou coupe n lignes
– u:annule l'action

87
Editeur de texte/vi

● Copie
– yy ou <n>yy: copie 1 ou n lignes
● Coller
– p en mode commande: colle les lignes coupées par dd ou
copiées par yy. Le collage se fait en dessous de la position
du curseur

88
Commandes de base/retrouver des exécutables

● Commande whereis
– recherche dans les chemins de fichiers binaires,
de manuels et de sources
– Quelques paramètres possibles
● -b:pour uniquement les binaires

● -m:pour les manuels

● -s:pour les sources

– Syntaxe: whereis nom_programme

89
Commandes de base/retrouver des exécutables

● Commande which
– recherche une commande dans le PATH
(chemin des exécutables) et fournit la peremière
qu'elle trouve
– Il arrive que des commandes de même nom
existent dans plusieurs chemins
● -a est l'option pour permettre à which de

continuer la recherche

90
Gestion disques/partitions
● Commande df: pour l'obtention de statistiques
d'occupation de chaque sytème de fichier monté
● Syntaxe: df
– df point_de_montage
– df -h: pour afficher les tailles en Ko,Mo ou Go
– df -T: pour afficher les systèmes de fichier

91
Gestion des utilisateurs
● Linux est OS multi-utilisateurs
● Un super utilisateur appelé root
● La différence avec un autre utilisateur c'est la présence
de # à la place de $
● Possible de créer autant d'utilisateurs
● Pour basculer à root
– sudo su sous ubuntu
– su les autres distrib
● Pour exécuter une commande en tant que
root
– sudo commande
92
Gestion des utilisateurs
● adduser permet l'ajout d'un utilisateur
– Syntaxe:#adduser nom_utilisateur
– Résultat:demande de renseigner un mot de
[Link] de remplir des informations
facultatives (nom,prénom,etc)
● delsuser permet de supprimer un utilisateur
– Synataxe:deluser nom_utilisateur
– deluser --remove-home nom_utilisateur
supprime le répertoire home et les fichiers
personnels de l'utilisateur
● passwd pour changer le mot de passe
– Syntaxe: passwd nom_utilisateur

93
Gestion des utilisateurs

● chown: changer le propriétaire d'un fichier.


– #chown nom_user nom_fichier
● chgrp: changer le groupe propriétaire d'un
fichier
– #chgrp nom_groupe nom_fichier
● #chown nom_user:nom_groupe nom_fichier
change à la fois le groupe propriétaire et le
propriétaire du fichier
● Avec l'option -R, chown modifie tous les sous-
dossiers d'un dossier

94
Gestion des droits
● Un droit: permission
● 3 types de droits:
– Voir le fichier: r (dit la lecture)
– Modifier le fichier :w (dit l'écriture ou modification)
– Exécuter un fichier ou traverser un répertoire:x
● Si un droit existe, il doit apparaître sinon c'est un tiret
● Chaque fichier est distingué par un triplet de droits
– Le 1er: droits du propriétaire
– Le 2nd: droits des autres membres du groupe
– Le 3eme: droits des autres utilisateurs de la machine

95
Gestion des droits
● chmod: commande pour modifier les droits
● Quelques éléments utiles à connaitre:
– u:user (propriétaire)
– g:group (groupe)
– o:other(autres)
– +:ajout de droit
– -:retrait de droit
– =:affectation de droit
– exemple: chmod o-r nom_fichier: retrait de lecture aux autres
utilisateurs de la machine
chmod g+w,o-w nom_fichier: ajout de droit d'écriture
au groupe et retrait du dit droit chez les autres
chmod u=rwx,g=r,o=- nom_fichier: tous les droits
au propriétaire, juste la lecture au groupe et rien aux autres
● L'option -R: pour agir récursivement

96
Gestion des droits
● Autre méthode de changer les droits avec chmod
● Un triplet de droits est codé sur 3 bits
– rwx:111
– r-x:101
● Syntaxe chmod 700 nom_fichier
– 7:111
– 0:000
– 0:000
implique seul l'utilisateur a tous les droits sur
le fichier

97
Archivage et compression
● Archivage:réunion de fichiers dans un seul
dossier appelé archive
– Commande à utiliser: tar
● Compression:réduction de la taille d'une
archive
– Commandes à utiliser
● gzip
● bzip2: compression meilleure que gzip
mais lentement

98
Archivage et compression
● Démarche
– Archiver (2 étapes)
● Placer tous les fichiers souhaités dans un dossier
● tar -cvf nom_archive.tar nom_dossier
– -c : signifie "créer" une archive tar.
– -v : signifie afficher le détail des opérations.
– -f : signifie assembler l'archive dans un fichier.

D'autres options

–-x: extraire les fichiers
–tar -xvf nom_archive.tar
-t:afficer le contenu de l'arvhive sans lextraire

tar -tf nom_archive.tar
-r:ajouter un fichier supplémentaire à l'archive 99
tar -rvf nom_archive.tar fichier_supp_à_ajouter
Archivage et compression
– Compresser (1 étape)
● gzip nom_archive.tar//résultat=nom_archive.[Link]
● bzip2 nom_archive.tar//résultat=nom_archive.tar.bz2

● Décompression
– Un fichier [Link]
● gunzip nom_archive.[Link]
– Un fichier tar.bz2
● bunzip2 nom_archive.tar.bz2

100
Archivage et compression
● Un seul fichier
● gzip nom_fichier compressé en nom_fichier.gz
● Zcat ou zmore ou zless nom_fichier.gz pour lire le contenu
● unzip et unrar
● Unzip : décompresser un .zip
● unzip nom_archive.zip
● unzip -l nom_archive.zip: juste voir le contenu
● Unrar : décompresser un .rar
● Unrar e (sans tiret) nom_archive.rar: extraction
● unrar l (sans tiret) nom_archive.rar: listage seul

Si les programmes n'existent pas il faut les installer


Pour compresser
Utiliser zip -r nom_archive.zip nom_dossier
-r pour la compression de tous les fichiers du dossier sinon seul le 101
dossier vide sera compressé
Archivage et compression
Avec tar uniquement
● compression
– tar -zcvf nom_archive.[Link] nom_dossier
archiver et compresser avec gzip
– tar -jcvf nom_archive.tar.bz2 nom_dossier
archiver et compresser avec bzip2
● Décompression
– tar -zxvf nom_archive.[Link]
décompression avec gunzip
– tar -jxvf nom_archive.tar.bz2
décompression en bunzip2

102
Exécution d'une commande à une heure
donnée
● at:permet de programmer l'exécution d'une
commande à un moment donné
– Utlisation de at
● at période
● Au prompt at> sasir commande(s)
● Crtl+d pour terminer

Expression période

HH:MM
exemple at 16:30
HH:MM tommorow
Exemple at 16:30 tommorow
HH:MM mm/dd/yy où mm:mois, dd:jour, yy:année
Exemple: at 16:30 12/31/2015
now +x minutes où x: valeur numérique minutes:minutes
À la place de minutes on peut avoir days ou weeks ou months ou years
Exemple : at now +15 minutes
103
Exécution d'une commande à une heure
donnée
● atq :liste des commandes programmées
– atq
● atrm: supression commande programmée
– atrm num_job

104
Exécution d'une commande de façon répétée
à un moment donné
● contrab:outil permettant de programmer
l'exécution régulière d'une commande à un
moment donné
– Utlisation de contrab
● contrab -e:modifie la contrab
● contrab -l:affiche la contrab actuelle
● contrab -r:supprime la contrab
● La contrab est un fichier de 6 champs

105
Exécution d'une commande de façon répétée
à un moment donné
● contrab:outil permettant de programmer
l'exécution régulière d'une commande à un
moment donné
– Utlisation de contrab
● contrab -e:modifie la contrab
● contrab -l:affiche la contrab actuelle
● contrab -r:supprime la contrab
● La contrab est un fichier de 6 champs

106
Exécution d'une commande de façon
répétée à un moment donné

Voir contrab

# m h dom mon dow command


#dièse: signifie que la ligne est ignorée
m:minutes(0-59)
h:heures(0-23)
dom:day of month (1-31)
mon:month(1-12)
dow:day of week (0-6,0 étant dimanche)
command:commande à exécuter

*:exécuté à tout moment


v1,v2,v3:exécuté quand v1 ou v2 ou v3. Pas d'espace entre les v
v1-v2:exécuter pour les valeurs de v1 à v2
*/v:exécuté tous les multiples de v

107
Flux de redirection
● Par défaut le résultat d'une commande
s'affiche sur la console
● Le résultat peut être redirigé dans un
fichier
● Le résultat peut servir d'entrée à une autre
commande

108
Flux de redirection
● Rédiriger dans un autre fichier
– >:redirige dans un fichier et l'écrase s'il existe déjà.
– >>:redirige à la fin d'un fichier et le crée s'il n'existe
pas.
Exemple:ls -l >ficresult
● Servir d'entrée d'une autre commande
– |:permet de saisir une autre commande à la suite de
la précédente
Exemple: cat /etc/passwd | grep users

109
Flux de redirection
● Rédiriger dans un autre fichier (autres possibilités)
– 2>: redirige les erreurs dans un fichier (s'il existe
déjà il sera écrasé).
Exemple:cut -d , -f 1 fic>sanserreur 2>erreur
– 2>>: redirige les erreurs à la fin d'un fichier (s'il
n'existe pas, il sera créé).
Exemple:cut -d , -f 1 fic>sanserreur 2>>erreur
– 2>&1 : redirige les erreurs et la sortie standard dans
le même fichier.
Exemple:cut -d , -f 1 fic>toutmessage 2>&1

110
Gestion de processus
● w:pour savoir qui fait quoi
– Syntaxe:w
– Résultat:
● 1ère ligne (de gauche à droite)
– Heure: l'heure actuelle
– Uptime:durée de fonctionnement de l'ordinateur
– Load average:charge de l'ordinateur
● 1ère valeur: charge moyenne depuis une minute

● 2ème valeur:charge moyenne depuis 5 minutes

● 3ème valeur:charge moyenne depuis 15 minutes

on dira surchargé si le load average atteint 1 pour mono


processeur,2 pour un dual et 4 pour un quad core

111
Gestion de processus
● w:pour savoir qui fait quoi
– Syntaxe:w
– Résultat:
● 2ème ligne (de gauche à droite)
– USER : le nom de l'utilisateur
– TTY: le nom de la console
– FROM: l'adresse IP depuis laquelle est connecté USER
– LOGIN@:l'heure à laquelle l'utilisateur s'est connecté
– IDLE: un temps d'inactivé de l'utilisateur
– JCPU:le temps total de tous les processus de la console
– PCPU:le temps utilisé par la commande
– WHAT: la commande en cours d'exécution

112
Gestion des processus

● ps:lister statiquement les processus en cours


lancés par l'utilisateur
– Syntaxe:ps
– Résultat: sur 4 colonnes
● PID:numéro du processus
● TTY:nom de la console d'où le processus est lancé
● TIME:durée du traitement du processus
● CMD: commande lancée

113
Gesetion des processus

ps avec des options

ps -ef: affichage de tous les processus lancés par tous les utilisateurs sur
toutes les consoles

ps -u nom_user :tous les processus lancés par un utilisateur

ps -ejH:affichage des processus en arbre

114
Gestion des processus
● top:liste dynamiquement les processus en
cours d'exécution
– Syntaxe:top
– Taper h pour l'aide
– Taper q pour quitter
– Taper u pour filter selon un utilisateur
– Taper f pour ajouter ou supprimer des
colonnes dans la liste

115
Arrêtrer un processus
● ctrl +c: combinaison de touches pour arrêter
un processus lancé en console
● Kill:commande pour terminer un processus
– kill pid (processus identifier)
– kill pid1 pid2 ….
– kill -9 num_pid: force le processus à terminer
– killall nom_processus: arrête toutes les
instances du processus

116
Autres commandes

● loganame:permet de savoir sous quel nom on est logué


● clear:efface l'écran de la console
● exit: déconnexion de l'utilisateur courant
● free:afficher des informations sur la mémoire
● Setxkbmap fr:passer le clavier en azerty
● Setxkbmap us: passer le clavier en qwerty
● lsb_release -d: description de la distribution
● Init 6: redemarrer la machine
● Init 0: eteindre la machine

117
Script shell

● Fichier exécutable permettant de lancer


successivement plusieurs commandes
● Procédure
– Editer un fichier en entrant des commandes
– Rendre exécutable le fichier
– Lancer le script
● Utilisation:
– Automatisation de certaines tâches

118
Script shell
● Écriture d'un script

● #!/bin/bash: 1ère ligne à écrire. Elle sert à


indiquer le shell à utiliser

● Introduire après les commandes à


exécuter

119
Script shell
Commentaires

● Lignes qui ne seront pas exécutées


● Commençent par un dièse (#)
exemple:#ceci est un commentaire

Donner les droits d'exécution au script


● chmod +x nom_fichier_script.sh
● Exécution du script

● ./nom_fichier_script.sh

120
Script shell
● Débuggage d'un script
● bash -x nom_fichier_script.sh
● Exécuter le script n'imorpte où

● Copier ou déplacer le script dans le PATH


(variable système qui indique les répertoires des programmes)
– echo $PATH: pour voir les répertoires
– cp nom_fichier_script.sh dans un des
répertoires du PATH
– Utiliser simplement nom_fichier_script.sh sans le
“./” au début

121
Script shell
Manipuler des variables

● Déclaration de variable
– Soit nom_variable='valeur'
● Exemple:msg='bonjour la classe'
– Soit nom_variable=“valeur”
● Exemple:msg2=“bonjour, il est l'heure”. Notez la
présence de l'aspostrophe
● Afficher la valeur d'une variable
– Soit echo $nom_variable
– Soit echo “la variable vaut $nom_variable”

122
Script shell
Manipuler des variables

● Autre déclaration possible

● nom_variable=`nom_commande`
la variable va contenir le résultat de la commande
les quotes utilisés sont applés back quotes. S'obtiennent avec
Alt Gr +7 du clavier azerty ou touche 1 du clavier qwerty
– Exemple:
msg4=`logname`
echo “je suis loggué en tant que :$msg4”

123
Script shell
● Récupérer une valeur saisie depuis le prompt

● read: commande permettant de récupérer une/des


valeur(s) saisie(s)

#!/bin/bash
read nom_variable
echo $nom_variable

#!/bin/bash
read nom_variable1 nom_variable2
echo $nom_variable1 $nom_variable2 124
Script shell
● Afficher un message de prompt
#!/bin/bash
echo “saisir votre nom par exemple”
… suite des instructions...
ou

#!/bin/bash
read -p “saisir votre nom par exemple” nom
echo $nom

125
Script shell
● Limiter nombre de caractères à saisir
#!/bin/bash
read -p “votre nom en 3 carcatères svp” -n 3 nom
echo -e “\n $nom”
● Limiter le temps de saisie

#!/bin/bash
read -p “votre nom en 3 secondes” -t 3 nom

echo “en 3●secondes il est


Cacher le dit saisi
texte “

#!/bin/bash
read -p “votre mot de passe svp” -s passe
echo “le mot de passe saisie est $passe” 126
Script shell
● Effectuer des calculs
#!/bin/bash
let “a=10”
let “b=20”
let “c=a+b”
echo “la somme de $a et de $b =$c”
● Les opérateurs utilisables sont:
– L'addition : +
– La soustraction : - D'autres affectations possibles
let a=10
– La multiplication : * let “a=a+10”
– La division entière : / let “a+=10”
– La puissance : **
– Le modulo : % (renvoie le reste de la division)
127
Script shell
● Récupérer des paramètres sur le prompt
● On utilise des variables crées automatiquement
– $# : contient le nombre de paramètres
– $0 : contient le nom du script exécuté
– $1...$9 : contient le premier paramètre …. contient le 9ème
paramètre

#!/bin/bash
echo "le nom du fichier est $0, il y a $# paramètres entrés"
echo "Le paramètre 2 est $2 "

./nom_script.sh param1 param2 param3 param4


Le nom du fihchier est nom_script.sh, il y a 5 paramètres entrés
Le paramètre 2 est param2

128
Script shell

Si il ya plus de 9 paramètres, il faut décaler les paramètres dans le


fichier script avec la commande shift:
-----------------------------------------------------
#!/bin/bash
echo “le paramètre 1 est $1”
shift
echo “le paramètre 1 est maitenant $1”

------------------------------------------------------
Si on lance le script comme suit: ./nom_script.sh para1 para2 para3

on devrait avoir comme résultat


Le paramètre 1 est para1
Le paramètre 1 est maintenant para2

129
Script shell
● Les tableaux
● déclaration
– nom_tableau=('val1' 'val2' 'val3'... 'valn')
il y a des espaces entre les valeurs
● Accès à une case du tableau
– ${nom_tableau[num_case]} en considérant que les
cases sont numérotées à partir de 0
● Accès à tous les éléments du tableau
– ${nom_tableau[*]}: utile quand on veut afficher tous les
éléments en même temps
● Affectation d'une valeur à une case du tableau
– nom_tableau[num_case]='valeur'

130
Script shell
Exemple sur les tableaux

#!/bin/bash
tab=('10' '20' '30')
tab[5]='18'
echo “valeur3=${tab[2]} et valeur5=${tab[5]}”
echo “toutes les valeurs du tableau sont :${tab[*]}”

131
Script shell
Conditions

● Condition simple: si
– Syntaxe: if [ condition ]
then
ensemble instructions
fi
– Autre écriture: if [ condition ]; then
ensemble instructions
fi
– NB: il doit avoir des espaces à l'intérieur des crochets de la
condition.c'est [ condition ] et non [condition]

132
Exemple avec if

#!/bin/bash
read -p “entrez un nombre” nombre
let result=$nombre % 2
if [ $result -eq 0 ]; then
echo “$nombre est un nombre pair”
fi

133
Script shell
Conditions

● Alernative complète :si sinon


● Syntaxe:if [ condition ];then
ensemble instructions
else
ensemble instructions
fi
● Imbrication de condition
● Syntaxe:if [ condition ];then
ensemble instructions
elif [ autre condition ];then
ensemble instructions
else
ensemble instructions
fi

134
Exemple avec if else
#!/bin/bash
read -p “entrez un nombre” nombre
let result=$nombre % 2
if [ $result -eq 0 ]; then
echo “$nombre est un nombre pair”
else
echo “$nombre est un nombre impair”
fi

Exemple avec imbrication de if


#!/bin/bash
read -p “entrez un nombre” nombre
if [ $nombre -eq 0 ]
then
echo “$nombre est nul”
elif [ $nombre -ge 0 ]
echo “$nombre est positif”
else
135
echo “$nombre est négatif”
fi
Script shell
Conditions

● Les tests possibles


● Sur les chaines de caractères

Test Signification
$chaine1=$chaine2 Teste l'égalité entre 2 chaines
$chaine1==$chaine2
$chaine1!=chaine2 Vérifie l'inégalité entre les 2 chaines
-z$chaine Teste si la chaine est vide
-n$chaine Teste si la chaine est non vide

136
Sur les nombres
Test Signification
$n1 -eq $n2 Teste l'égalité entre 2 nombres
$n1 -ne $n2 Vérifie l'inégalité entre 2 nombres
$n1 -lt $n2 Teste si n1 est strictement inférieur à n2
$n1 -le $n2 Teste si n1 est inférieur ou égal à n2
$n1 -gt $n2 Teste si n1 est strictement supérieur à n2
$n1 -ge $n2 Teste si n1 est supérieur ou égal à n2

137
Sur les fichiers
Test Signification
-e $nom_fic Teste l'existence du fichier
-d $nom_fic Teste si le fichier est un répertoire
-f $nom_fic Teste si le fichier est un fichier
-L $nom_fic Teste si le fichier est un lien symbolique
-r $nom_fic Teste si le fichier est lisible
-w $nom_fic Teste si le fichier est modifiable
-x $nom_fic Teste si le fichier est exécutable
$nom_fic1 -nt nom_fic2 Vérifie si nom_fic1 est plus récent nom_fic2
$nom_fic1 -ot nom_fic2 Vérifie si nom_fic1 est plus ancien nom_fic2

138
Script shell
● Conditions
● Plusieurs conditions peuvent être posées
– Et : vérifie si toutes les conditions sont varies.
● Symbole: &&

● Syntaxe: if [ cond1 ] && [ cond2 ]... && [ condn ]

– Ou:vérifie si l'une des conditions est vraie


● Symbole: ||

● Syntaxe: if [ cond1 ] || [ cond2 ]... || [ condn ]

● Inverser un test
– Symbole:! #!/bin/bash
– Syntaxe: if [ ! cond ] if [ ! -e $1 ]
then
touch $1 exemple
else
echo “le fichier $1 existe
déjà” 139
fi
Exemple sur les conditions multiples

#!/bin/bash
read -p "entrez une note" note
if [ $note -ge 14 ] && [ $note -lt 16 ];then
echo "mention assez bien"
elif [ $note -ge 12 ] && [ $note -lt 14 ]
then
echo "mention passable "
elif [ $note -ge 16 ] && [ $note -le 20 ]
then
echo "mention très bien"
else
echo "ajourné"
fi

140
Script shell
● Conditions
● Tester plusieurs conditions à la fois
● L'instruction à utiliser: case
● Syntaxe: case $variable in valeur 1)
ensemble instructions
;;
valeur 2)
ensemble instructions
;;
…...
valeur n)
ensemble instructions
;;
*)
esac

141
Exemple avec les choix multiples

#!/bin/bash
case $1 in "/home")
echo "répertoire des utilisateurs"
;;
"/dev")
echo "répertoire des périphériques"
;;
"/etc")
echo"répertoire des fichiers de conf"
;;
*)
echo "répertoire non connu"
;;
esac
142
Script shell
● Les boucles
● Boucle tant que
– while [ condition ]
do
ensemble d'instructions
done
● Boucle pour
– For variable in 'val1' 'val2' 'val3'
do
ensemble d'instructions
done

143
Exemple sur avec la boucle tant que
#!/bin/bash
val_myst=100
val_pro=0
let essai=0
clear
while [ ! $val_pro -eq $val_myst ]
do
let essai+=1
read -p "devinez le nombre mystique" val_pro
if [ $val_pro -gt $val_myst ];then
echo "la valeur mystique est plus petite"
elif [ $val_pro -lt $val_myst ];then
echo "la valeur mystique est plus grande"
else
echo "bravo bien déviné le nombre mystère est $val_myst en $essai essais"
fi
done
144
Exemple sur avec la boucle pour

#!/bin/bash
let i=0
echo “les fichiers classés par date de dernier accès sont :”
for fic in `ls -tu`
do
let i+=1
echo “fichier $i est $fic”
done

145
Ressources consultées
● Livre: Linux préparation à la certification LPIC-
[Link]
● Livre : reprénez le contrôle à l'aide de [Link]
sur le site de openclassrooms
● Lien web:[Link]
consulté le 26/02/15
● [Link]

146

Vous aimerez peut-être aussi