Utilisation Linux 19
Utilisation Linux 19
Objectifs :
Expliquer ce que c'est Unix/Linux
Utiliser des commandes en mode console
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
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
●
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
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
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
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
●
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”
40
Gestion des fichiers
● OS orienté fichier
● Données:image, texte, audio, etc
nommés,etc
● Hierrarchique
● Part d'un élément de base racine ou root
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)
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
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/
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
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
● 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
66
Commandes de base/recherche de fichiers
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
68
Commandes de base/recherche de fichier
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
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
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
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
q:arrête la lecture.
77
Affichage trié d'un fichier
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
83
Compter lignes, mots, caractères d'un 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
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
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
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
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
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
113
Gesetion des processus
ps -ef: affichage de tous les processus lancés par tous les utilisateurs sur
toutes les consoles
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
117
Script shell
118
Script shell
● Écriture d'un script
119
Script shell
Commentaires
●
● 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ù
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
●
● 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
#!/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
●
#!/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 "
128
Script shell
------------------------------------------------------
Si on lance le script comme suit: ./nom_script.sh para1 para2 para3
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
●
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
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: &&
● 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