Вы находитесь на странице: 1из 43

Linux : Dcouverte et Utilisation

11 dcembre 2014

Abdelkader BELAHCENE
abelahcene@gmail.com

Table des matires


Introduction

Avantages du Logiciel Libre (Open Source) . . . . . . . . . . . . . . . . . . . .

Bref Apercu sur Linux

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Prise en Main

1.1

L'accs a la machine

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2

Gestionnaire Graphique

1.3

Utilisation de Terminal Graphique . . . . . . . . . . . . . . . . . . . . . .

1.4

Utilisation d'diteur de Texte

1.5

Quelques Outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.6

Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .

Concepts de Base

6
6

12

2.1

Le Systme des Fichiers

. . . . . . . . . . . . . . . . . . . . . . . . . . .

12

2.2

Commandes de Base Utilisateur . . . . . . . . . . . . . . . . . . . . . . .

12

2.3

Environnement Utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . .

14

2.4

Autres Commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

2.5

Divers

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

2.6

Un Peu de Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

2.7

Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

Petite Administration

30

3.1

Installation

30

3.2

Gestion du Disque

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

3.3

Fichiers Systmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

3.4

Les Processus

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

3.5

Installation de Logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34

3.6

Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Introduction aux Rseaux

37

4.1

Communications Travers les Rseaux . . . . . . . . . . . . . . . . . . .

37

4.2

Cration de sous Rseaux

. . . . . . . . . . . . . . . . . . . . . . . . . .

37

4.3

Le Serveur ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

4.4

Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

Introduction 1
L'objet de cette partie est de faire une prsentation rapide du systme linux, et des outils
essentiels non seulement pour l'utilisation et mais aussi une petite administration d'une
machine tournant sous linux.
Je veux dans ce document dpasser un peu, la simple utilisation de la machine, et
montrer quelque soit peu, comment regler certains problemes. C'est un peu comme un
conducteur de voiture, qui doit connaitre les rudiments de la mechanique et de l'lcricit
auto. Imaginer un conducteur qui, pour changer un roue, il doit appeler une tierce
personne ! ! ?
Bien entendu pour la panne mcanique, il faut voir un spcialiste ! !
Avant de parler du systme linux, pour donnons un aperu sur les logiciels libres et
montrer leur importance. Linux est l'exemple le plus frappant de logiciel libre.
Ce document s'adresse aussi bien aux personnes qui ont dj utilis et/ou administr
une machine sous Linux mais qui veulent remettre un peu les choses en place et mieux
comprendre surtout la distribution Debian et derives et un peu aussi RedHat.
Une bonne partie est rserve a la programmation shell, sans laquelle il n' y a pas
d'administration.

www.tldp.org, www.debian.org,
www.linuxtoday.com, www.linux.org, www.linuxquestions.org, www.opensource.
org, sourceforge.net

Pour la document et sites utiles voir essentiellement :

Avantages du Logiciel Libre (Open Source)


L'arrive fulgurante ces dernires annes, sur le march international, des logiciels libres
et gratuits, fait rapidement changer les relations entre dveloppeurs de logiciels et utilisateurs. Il y a actuellement un engouement mondial aux logiciels libres. Les raisons sont
multiples politiques, conomiques et strategiques. Il sut de regarder quelques articles
pour s'en convaincre, voir par exemple :
 France : http ://www.liberation.fr/page.php ?Article=216428 (article du 18 Juin
2004)
 USA : http ://www.nsf.gov/od/lpa/news/03/pr03132.htm

1. abelahcene@gmail.com

Table des matires

Page 4

Ou encore des articles plus rcents, comme par exemple (Avril 2009) solutions-linux-2009l open-source-arme-anticrise-2857.html sur le site

http://www.indexel.net/actualites/
http:

ou le rapport du Lieutenant colonel Xavier Guimard de la gendarmerie francaise

//gendarmerie.defense.gouv.fr

Nous donnons ci-aprs les avantages essentielles :


1. Libert d'utilisation et de choix de logiciels (ou libre choix de l'outil)
2. Libert de modication (complter amliorer et redistribuer )
3. Libert d'aider son prochain (travail coopratif ) grace aux innombrables forums
lies a chaque logiciel et sites d'aide.
4. Libert de choisir son fournisseur
5. Abandonner le piratage des logiciels avec tous les inconvnients qui y sont lis
(virus, espionnage, illgalit...).
Le logiciel libre ore une opportunit importante de formation, surtout pour les tudiants
et dveloppeurs. Il leur permet de comprendre le fontionnement des logiciels, comment
ils sont ecrits et de les adapter a leur besoins. Bien sur gratuitement ce qui convient
parfaitement aux etudiants aux ressources generalement limitees.
De plus des groupes de developpeurs peuvent se former facilement autour d'un theme et
aider ainsi a la creation de petites entreprises et de ne pas dependre de grands editeurs
qui n'encouragent pas du tout le transfert de la technologie et du savoir.
Voici une partie du message (traduit) envoy par Richard Stallman en Sept 1983 la
communaut internationale :
Newsgroups : net.unix-wizards,net.usoft
Organization : MIT AI Lab, Cambridge, MA
From : RMS%MIT-OZ@mit-eddie
Sujet : nouvelle implmentation Unix
Unix libre ! partir de cette correspondance, je vais crire un systme
complet compatible avec Unix logiciel appel GNU (pour Not Unix Gnu) , et
de le cder gratuitement tous ceux qui peuvent l'utiliser. Contributions de
temps, d'argent , de programmes et de matriel sont grandement ncessaires
... .... .....
Pourquoi je dois crire GNU Je considre que la rgle d'or exige que
si j'aime un programme , je dois le partager avec d'autres personnes
qui aiment a . Je ne peux pas en bonne conscience signer un accord de
non-divulgation ou d'un accord de licence du logiciel . Alors que je peux
continuer utiliser les ordinateurs sans violer mes principes, j'ai
dcid de mettre sur pied un ensemble suffisant de logiciels libres,
afin que je serai en mesure de me passer de tout logiciel qui n'est
pas libre. Comment participer ? Je demande des fabricants d'ordinateurs
des dons de machines et d'argent. Je demande aux individus de faire des
dons de programmes et de travail. Un fabricant d'ordinateur a dj oert de
fournir une machine ....... Pour plus d'informations , contactez-moi.

LinuxIntro

Belahcene

11 dcembre 2014

Table des matires

Page 5

Bref Aperu sur Linux


Initialement parler de linux c'tait parler du noyau du systme, car au fait seul le noyau
est linux, aprs abus de langage tous les logiciels installs sur linux font le  systme
linux .
Le noyau est le coeur du systme qui gre les priphriques : les disques durs, la mmoire
les imprimantes etc..,. Le reste des logiciels sont programmes qui tournent autour de ce
noyau pour accomplir la tache adquate. Par exemple le programme de navigation rseau
refox ne fait pas parti du systme linux, c'est une application qui permet de connecter
un utilisateur a travers le rseau (carte rseau et autres priphriques) grer par linux.
L'interface graphique non plus ne fait pas partie de linux , c'est aussi une application
qui utilise les ressources de la carte vido et autres grs par le noyau pour prsenter les
images et autres graphiques.
Linux fait parti de la classe des systmes UNIX, dvelopps et utilise depuis les annes
70, avec en plus l'avantage d'tre libre.
Pourquoi, donc utiliser Linux :
1. D'abord c'est un systme open source, avec tous les avantages prcits.
2. Ensuite il hrite de plus d'une quarantaine d'annes d'expriences de part le
monde des dveloppeurs sous Unix/Linux.
3. Enn il a la robustesse des grands systmes et la facilit d'utilisation des systmes
orients  bureau . En un mot un grand systme dans une petite machine.
4. Aprs tout cela vous ne payez pas un sou pour l'obtenir.

LinuxIntro

Belahcene

11 dcembre 2014

1 Prise en Main
1.1 L'accs a la machine
Le systme linux tant un systme multi-utilisateur, pour y accder on doit entrer un
nom et mot de passe utilisateur.
Par dfaut 6 terminaux texte, le 7ieme est un accs graphique, on accde avec Ctrl+Alt+F1
(ou F2, ..F6, F1 F6 sont les cls de contrle en haut du clavier).
Parfois il est utile de travailler sans faire tourner les applications graphiques, comme
dans les cas suivants :
1. Lorsque des programmes trs gourmands en consommation mmoire et/ou en
puissance de calcul (CPU), on rcupre les ressources de la machine en arrtant
tous les programmes inutiles et surtout l'interface graphique.
2. Si la machine est utilise comme serveur (ftp, web, dns ...) o le graphisme n'est

pas requis .
3. Pour faire de la maintenance ou de la rparation du systme.
Il est recommand de se loger toujours en simple utilisateur, et de basculer si ncessaire
pour faire de l'administration, avec la commande  su  ou d'utiliser la procdure  sudo 
(voir section (3)).
Si on veut accder au terminal texte, il sut basculer avec Ctrl+Alt+F1 (ou F2, ...F6)
entrer le login et le password. Pour revenir au graphisme utiliser Ctrl+Alt+F7. On peut
aussi avoir plus d'une interface graphique. C'est une mulation de terminaux graphiques.

Exercice 1.

On obtient ainsi un utilisateur en mode texte sur terminal 2 et un utilisateur

2 sur le terminal 8 (Ctrl+Alt+F8), avec videmment l'utilisateur U1 sur le terminal 7


(Ctrl+Alt+F7). Au fait on peut avoir ces terminaux sur plusieurs terminaux physiques.

1.2 Gestionnaire Graphique


Actuellement les gestionnaires graphiques les plus utiliss et les plus courants sont Gnome
et Kde. Il existent beaucoup d'autres, plus lgers et moins puissants mais consommant
moins de ressources utiles aux machines mmoire limite, par exemple Xfce, Fvwm,
Flubox.

1. Les gros problmes viennent souvent du graphisme

1.3.

Utilisation de Terminal Graphique

Page 7

Une fois l'utilisateur log, une interface graphique est ouverte, assez habituelle, avec

les menus et fentres. Nous donnons un rapide descriptif de l'interface GNOME . La

disposition des menus est lgrement dirente du gestionnaire KDE , mais les mme
fonctionnalits existent.
Reprer le menu des applications du bureau. Remarquer d'abord que le bureau possde plusieurs bureaux virtuels, qui sont utiles pour garder ouvertes plusieurs fentres
d'applications en parallles sont qu'elles soient visibles en mme temps.
Le bureau complet peut tre personnaliser, voir les outils dans le menu des prfrences.

1.3 Utilisation de Terminal Graphique


Bien que sur l'interface graphique on utilise les outils graphique pour travailler, la ligne de
commande est indispensable, aussi terminal est requis. Plusieurs outils existent, chercher
dans la liste des accessoires l'outil par defaut, par exemple sous gnome c'est gnometerminal. Dans la fentre terminal on peut ouvrir plusieurs onglet de terminaux
Par quelques exemples, nous montrons l'importance de la ligne de commande, elle permet
de direr les taches :

Exemple 2.

Supposer vouloir tlcharger un document volumineux et que la connexion

soit limite, on dcide alors de le faire de nuit, disons vers 2 heures du matin ! ! !, ce qui
est dicile faire travers un navigateur. Une solution simple est de le faire avec la
commande

wget 4

en dir grce la commande

at 2 :00.

De mme avec la ligne de commande on peut raliser trs simplement des taches rptitives :

Exemple 3. Supposer que vous vouliez convertir une liste d'images (disons 120 images ! ! !)
gif en image png, ce que vous pouvez faire avec les visionnaire graphique d'images (imagemagick par exemple), seulement vous tes oblig d 'ouvrir les images une a une et de
les exporter dans le nouveau format, avec la commande il sut de faire une boucle :

for i in $(ls *.gif) ; do


convert $i.gif $i.jpeg 5
done
Schma d'une commande : cmd options paramtres, les options commencent par -
par exemple

2.
3.
4.
5.
6.

ls -l /home liste le rpertoire /home avec l'option format long (-l) 6

GNOME http://www.gnome.org
KDE http://www.kde.org
taper man wget pour avoir l'aide sur wget
nous verrons une amlioraton du script
attention au signe  - , car ls l /home liste les rpertoires l et /home

LinuxIntro

Belahcene

11 dcembre 2014

1.4.

Utilisation d'diteur de Texte

Page 8

1.4 Utilisation d'diteur de Texte


7

Pour crire un texte il faut utiliser un diteur de texte . Un diteur de texte rend dlement le texte qui est tap sans ajout de caractres supplmentaire pour le formatage.
Pour voir la dirence entre un traitement de texte et un diteur, tapez une phrase
dans  write  par exemple d'openoce, sauvegarder le chier ch1.doc et la mme
phrase dans l'diteur gedit, la sauvegarder dans ch2.txt, ensuite faire cat ch1.txt et
cat ch2.doc.
Un diteur est utile pour administration ou dveloppement par exemple pour crire un
programme en shell, en C, pascal, php, html, latex.

vi editeur s'ouvrant dans un terminal, trs utile si on n a pas de graphisme. il a


deux mode de fonctionnement : mode commande, taper i pour insrer du texte,
chappe pour revenir au mode commande. taper :x pour sauvegarder et quitter.

nano il est plus facile utiliser que vi, la barre des commandes s'ache en bas,
utiliser la touche ctrl avec les lettres indiques. Les commandes courantes :
Ctrl+x puis Return : enregister, Ctrl+x : quitter, Ctrl+w : Chercher, Ctrl+k :
Couper, Ctrl+u : Coller

emacs diteur tres puissant, mais aussi gestionnaire de chier, il s'ouvre dans un
terminal, mais aussi en graphique. Retenir que pour crer un chier taper le nom
dans la barre en bas de feuille. Il comprend un grand nombre de langages (C, C++,
java, html, php ...), met les couleurs sur les mots cles. On peut selectionner avec
la souris et coller avec le bouton du milieu. Pour les raccourcis, surtout utile pour
editeur Texte sans graphique, la plupart sont donns dans le menu graphique. On
peut utiliser TAB pour autoCompletion dans la ligne de commande.
Vous pouvez meme jouer sous emacs, par exemple Alt+x mpuz, jouer au puzzle.
Retenir :

Ctrl+x Ctrl+f : Cration de chier

Ctrl+x Ctrl+s : Sauvegarde

Ctrl+g : Annuler la commande

Ctrl+k : Supprime une ligne

Ctrl+(espace) : dbut selection

Alt+w : Copier dans pressePapier

Ctrl+y : Coller du pressePapier.

Ctrl+x+2 : Divise la fenetre horizontal.

Alt+x+c-mode : edit en mode C

Alt+o+i : mettre en italic

Ctrl+x+r+d : Supprime le rectangle


Ctrl+x+r+r

: copie rectangle dans t

Ctrl+x+r+g

: recupere rectangle depuis t

gedit un diteur graphique simple d'utilisation, install par dfaut sur l'environnement gnome. Il y a beaucoup d'autres diteurs par exemple kate, kedit etc...,
l'utilisateur a le libre choix.

7. Ne pas confondre avec traitement de texte

LinuxIntro

Belahcene

11 dcembre 2014

1.5.

Quelques Outils

Page 9

mc Midnight Commander, est un gestionnaire de chier, qui souvre dans un terminal


et en meme temps editeur. Utiliser la touche Inser pour selectionner les chiers,
voir les commandes en bas de fenetre, les numros concernent les cls, par exemple
F5 pour copier, F8 pour supprimer.

geany
Bien qu'il existe des outils  composer  qui font interface et  facilitent  le dveloppement sur certains langages, il reste important de matriser l'instruction ou la commande
du langage avant d'utiliser l'interface. Pour tre plus prcis voyant l'exemple suivant :

Exemple 4. Par exemple au lieu d'crire la commande html : <title> C'est ma


page web </title> qui met un titre une page Web, on peut sur un diteur mozilla
 composer , par exemple, utiliser le bouton de titre correspondant.

L'inconvnient lie cette apparente facilit (est ce rellement une facilit ! !) est que
les connaissances du dveloppeur dans le langage concern (ici html) se restreignent
l'apprentissage de l'outil composer au lieu du langage de base lui mme, ajouter
cela la dpendance totale l'outil. De plus l'outil permet rarement d'exploiter toutes les
possibilits des langages et ajoute parfois des codes inutiles.

1.5 Quelques Outils


Pour dcouvrir l'environnement des outils, programmes et logiciels installs, faire le tour
sur les menus applications. Au fait quand on installe Linux un on installe avec le systme
des centaines de logiciels avec et on peut complter a n'importe quel moment. Pour se
xer les ides, au monte ou sont crites ces lignes, la distributions  debian  : site ociel
Debian

www.debian.org

a une trentaine de CD, pas moins de 25 000 logiciels libres et

gratuits tlchargeable gratuitement partir du site, presque la moitie sur le site de


Redhat/Fedora. On peut videmment la complter avec d'autres logiciels se trouvent
sur d'autres sites de Linux

10

Libreoce suite de bureautique base suite la suite staroce de sun contient : le


traitement de texte, le tableur, le Prsentateur. Cette suite remplace en mieux la
suite msOce (compatible) . D'autres outils ont les mme fonctionnalits, mais
les suites ne sont pas compltes c'est le cas du traitement de texte abiword ou du
tableur gnumeric. On outre la compatibilit msoce n'est pas assure.

Firefox est un navigateur internet, bas sur le netscape (qui n'est pas open source),
qui permet de visualiser le rendu avec excution du code html. D'autres navigateurs par exemple sont netscape, konqueror, opera, amaya.

nautilus Navigateur de rpertoires et chiers

10. voir par exemple Open Source www.sourceforge.org

LinuxIntro

Belahcene

11 dcembre 2014

1.6.

Exercices

Page 10

Lyx/Latex 11 Traitement de texte scientique, avec gnration automatique des rfrences , table des matires et des gures et prise en charge totale des symbole
mathmatiques.

totem Visionnaire de vido, kaeine ou xine sont d,autres lecteurs de lms.


evince visionnaire des chiers de format ps ou pdf. xpdf, gpdf, kpdf oui acroread
sont d'autres lecteurs de format pdf ou/et PostScript.

xg outil pour dessiner des graphiques en mode vectoriel 12 , qui peuvent tre sauvegards en dirents format ps, eps, gif, jpeg etc...

gimp visionnaire, manipulateur et traitement d'images (genre photoshop).


gnuplot traceur de courbes pour des fonctions ou tableau de coordonnes.
ksnapshot capteur d'images, de fentre ou encore de tout l'cran.
kuickshow visionneur d'images et des diapos
gnomeBaker graveur de CD/DVD ou k3b
qcad outil de conception de dessin d'architecture (genre autocad)
scilab calcul mathmatique et scientique (genre matlab), ou octave.
graphviz permet la visualisation d'un chier avec code spcial trs simple en gure
graphique.
La navigation sur les chiers, il sut de cliquer sur l'icne home, pour voir les dirents
rpertoires et chiers.

1.6 Exercices
Certaines commandes ne fonctionnent pas avec un terminal distant, avec des
clients leger par exemple, par exemple choix du clavier ou bien basculement
vers terminal texte (Ctrl+Alt+F1).
1. Passer au terminal 1, (Ctrl+Alt+F1), se loger en utilisateur U1, passer au terminal 2, (Ctrl+Alt+F2), se loger en utilisateur U2. Lancer la commande startx, voir
les erreurs, puis

13

startx  :1.

Utiliser Ctrl+Alt+F7 et Ctrl+Alt+F8 passer

d'une cran un autre.


2. Personnalisez votre bureau :
a) ajouter des boutons de fermeture de la barre des menus
b) changer nombre de bureaux virtuels
c) insrer un bouton de clavier avec (fr, us, ar)
d) ajouter un raccourci pour le terminal

12. Le chier est forme de commandes qui reconstruit le dessin


13. Pour les commandes voir la section (3)

LinuxIntro

Belahcene

11 dcembre 2014

1.6.

Exercices

Page 11

e) ajouter un raccourci pour evince


f ) ajouter un bouton a une application non listee dans le menu (par exemple
cheese).
3. Personnaliser le terminal, emacs et gedit.
4. La commande gksu permet a l'utilisateur de creer un lanceur de commande d'administration en fournissant le mot de passe, dans une boite de dialogue graphique.
Ajouter un bouton lanceur de terminal pour root.
5. Utiliser mc pour copier et deplacer des chiers de votre repertoire vers le ash
par exemple.
6. Changer la rsolution de l'cran. Changer les ecrans de veilles screensaver.
7. Utiliser Emacs : ouvrir plusieurs fentres en horizontal, en vertical, couper, copier
et coller du texte avec et sans souris.
8. Ouvrir dans emacs un chier, rendre les noms en minuscule, essayer la commande
Ctrl+Alt+% puis remplacer \(\w+\)

\(\w+\) avec \,(upcase \2),\1. Le \1 et

\2 se referrent vers les premier et second mot. \w est le mot.


9. Ajouter un programme au dmarrage automatique, par exemple minbar.
10. Ecrire un chier d'une cinquantaine de lignes avec nano. Acher son contenu
dans gedit. Donner son contenu avec cat.

LinuxIntro

Belahcene

11 dcembre 2014

2 Concepts de Base
2.1 Le Systme des Fichiers
Tout le systme (les disques durs, cdrom, disquettes, ash ou supports distants sur
d'autres machines ! !) est rattach la racine note par le symbole / , tout le reste est
sous rpertoire de la racine. Le systme se prsente sous la forme d'arborescence (parmi
ses rpertoires) il y a :

/bin

contient les commandes de bases (binaire), par exemple ls, cat, mkdir,..

/sbin

contient les commandes du super utilisateur (administrateur) : ifcong, fdisk,

reboot..

/usr

contient les programmes et logiciels. Dans /usr/sbin par exemple : adduser, atd,

chroot

/etc

contient les congurations des services et systme : par exemple repertoire

apache2, chier vsftpd.conf

/home
/dev

contient les rpertoires des utilisateurs :

contient les noms priphriques. par exemple [sh]da pour les disques, tty pour

terminal, stdout pour sortie standard.

/var

contient les chiers variables. Par exemple repertoires des erreurs /var/log.

/proc

Est un rpertoire virtuel, n'a pas d'existence sur disque, contient les informa-

tions sur les processus. Faire par exemple cat /proc/meminfo, pour des informations sur la mmoire.

2.2 Commandes de Base Utilisateur


Ouvrir un terminal et manipuler les commandes de cette section

Les commandes sont toujours crites en minuscule, linux est sensible la casse. cd est
dirent de CD. Le format gnrale d'une commande est commande [opt] paramtres
Les options sont prcdes par le signe  -  par exemple

cp -r essai *.c

monRep

Copie rcursive le rpertoire essai et tous les chiers d'extension C dans le rpertoire
monrep. cp : est la commande, -r est l'option, essai , *.c , monRep sont les paramtres.

1. voir le document dbutant-linux.pdf pour plus de dtails sur les commandes

12

2.2.

Commandes de Base Utilisateur

Page 13

2.2.1 Commandes les plus Courantes


cd /usr/bin changement de rpertoire, aller dans /usr/bin
man ls donne l'aide sur la commande, (man pour manual). On peut aussi utiliser
xman ou dans konqueror man :ls

ls help donne une aide rapide, rsum de la commande, ou encore apropos


ls

Liste le rpertoire courant,

ls -lrt /etc Donne la liste des chiers et rpertoire de /etc avec les dtails (option
-l) trie par temps (-t) en ordre inverse (-r)

mkdir monRep Cre le rpertoire monRep, dans le rpertoire courant.


cat le.txt Donne le contenu du chier le.txt. 

zcat 

permet de decompress le

chier a la vole.

tail -15 le.txt Donne les 15 (les 10, si rien n'est indiqu) dernires lignes du chiers
le.txt, la commande head est pareille mais pour le dbut du chier.

cp f1.txt f2.txt Fait une copie de f1.txt, appel f2.txt


mv f1.txt f3.txt le chier f1.txt est renomm f3.txt
rm ch*.txt supprime tous les chiers commenant par ch d'extension txt.
ps aux liste tous les processus 2 qui tournent sur la machine.
kill -9 2345 tue le processus dont le numro est 2345, (s'il vous appartient).
more ch.txt donne le contenu de ch.txt page par page.
ls -l > f1.txt le symbole > redirige la sortie de ls vers le chier f1.txt avec crasement. Si on utilise  >>  il y aura ajout la n (append).

ln f1.txt f2.txt cre un lien hard f2.txt au chier f1.txt, le meme chier a 2 noms,
la modication de f2.txt modie aussi f1.txt. L'option -s, cre un lien symbolique,
le lien conteient alors le nom du premier et non pas son contenu. Essayer ln -s

f1.txt f3.txt pour voir la dirence. Essayer 3 aussi ls -il f1.txt f2.txt f3.txt.
cat /etc/passwd

grep -v bash Le symbole|, pipe, permet de rcuprer la sor-

tie d'une commande pour l'envoyer en entrer dans la suivant. Ici le contenu du
chier passwd est rcuprer puis ltr avec

grep pour garder les lignes ne conte-

nant pas le mot  bash .


astuce : Shift+PgUp (PgDown) permet de remonter ou descendre dans le
terminal (simulation de l'ascenseur) valable aussi en mode texte.

echo message renvoie l'cho message sur cran.


echo $HOME donne le contenu de la variable d'environnement HOME. 4

2. Un processus est un programme en excution.


3. -i : ache les inodes, emplacement physique
4. attention au $, qui doit prcder toute variable shell.

LinuxIntro

Belahcene

11 dcembre 2014

2.3.

Environnement Utilisateur

Page 14

wc ch.txt donne le nombre de lignes, de mot et de caractres du chier ch.txt.


locate localise un chier, cherche dans la base de donnes des chiers, pour faire la
mise jour de la base lancer updatedb

nd /usr -name konqueror : cherche le mot konqueror dans le rep /usr
gzip ch.txt Compresse le chier ch.txt et sera ch.txt.gz. pour l'inverse utiliser

gunzip.

tar -czvf dir.tgz ladir archive et compresse les chiers de la rpertoire ladir sous le
nom dir.tgz, avec x : pour extraire et t pour lister ou bien tester

di f1.txt f2.txt donne la dirence entre les chiers f1.tx et f2.txt. essayer les commandes suivantes di -crB f1.c f2.c > monPatch puis patch f1.c monPatch. Permet
de retrouver le chier f2.c a partir de f1.c grace au patch.

su switch user, on peut aussi utiliser le sudo voir chiers /etc/sudoers


df disk free, donne la taille des partitions montes, option -h : human reading (lecture
approprie)

du /home disk used, donne la utilise par le rpertoire /home. On peut aussi utiliser
l'option -h

tty donne le terminal en cours d'utilisation. Le premier est /dev/pts/0, ensuite


/dev/pts/1, etc...., on peut faire sortir le rsultat d'une commande dans un autre
terminal. Par exemple si on est dans terminal 1, alors

ls > /dev/pts/2

sort le

rsultat dans le deuxime terminal

history Donne la liste des commandes deja utilises. !Num permet de relancer la
commande de numero Num. On peut aussi personnaliser les commandes a aches.

ctrl z : mettre en pause le process en cours


bg : passer le processus qui est en pause en arriere plan
fg : reprendre un process en premier plan (si plusieurs tournent en mme temps, fg
%n)

nohup permet de garder le processus actif, apres femeture du terminal. Tester les 4
cas dans un terminal ensuite fermer le terminal et voir ce qui se passe : gedit,
puis gedit &, nohup gedit et enn nohup gedit &.

2.3 Environnement Utilisateur


Tout utilisateur a un espace de travail et un ensemble de variables d'environnement (en
lettres capitales) qui lui est propre. La commande env donne le contenu des variables
courantes, et echo donne le contenu de la variable par exemple echo $PATH

donne le

contenu de la variable PATH.

5. le $ est obligatoire

LinuxIntro

Belahcene

11 dcembre 2014

2.4.

Autres Commandes

$HOME

Page 15

Contient le rpertoire maison (Home) de l'utilisateur. taper la commande

echo $HOME pour voir votre rpertoire maison (d'accueil).

$PATH

Contient la liste des rpertoires de recherche d'une commande. Cette variable

par dfaut est dirente pour un administrateur

$LANG

et un simple utilisateur .

Contient la langue utilise, par exemple fr_FR, le francais de France (fr_be

de belgique, ar_dz : arabe algrien).

$PWD

Contient le rpertoire courant.

En plus des variables d'environnement l'utilisateur a aussi un ensemble de chiers cachs


(prcds par  . , pour les lister ajouter l'option  -a  pour  all  comme

ls -al) qui

personnalisent son comportement.

.bashrc : Donne le comportement a utiliser au login ou a l'ouverture d'un terminal.


On peut mettre dans ce chier les changement a rendre permanent. Les change-

export PATH=$PATH :/opt/bin/, ajoute au chemin prcdent le rpertoire /opt/bin, mais ce changement est

ment fait a chaud sont valable uniquement pour la session.

valable uniquement pour la session, mettre la meme commande dans .bashrc le


rend valable pour toutes les sessions.

.bash_history :

Contient l'historique des commandes excutes, priodiquement mis

jour. les lments les plus anciens sont supprims. La mme information peut
tre obtenue avec la commande

history (qui utilise ce chier en entre).

echo $HISTFILE $HISTFILESIZE - ache le nom et la taille du chier d'historique des commandes.

cat $HISTFILE | more - ache le contenu du chier d'historique page par page.
tail -n 24 $HISTFILE - ache les 24 dernires lignes du chier d'historique.

.xxxx :

o xxxx est le nom d'un logiciel, est un rpertoire qui dnit le comporte-

ment du logiciel.

Par exemple .mozilla est le rpertoire de sauvegarde du com-

portement du browser mozilla pour le dit utilisateur, qui peut tre completement
dirent d'un autre utilisateur, ou encore .gconf dtermine l'interface graphique
gnome

2.4 Autres Commandes


tree -d -L 2 / >tree.txt 9 permet de sortir l'arborescence du systme et de stocker
le rsultat dans le chier tree.txt.

a2ps -1 tree.txt -o tree.ps 10 Convertit le chier texte tree.txt en format PostScript (ps)

6. /usr/local/sbin :/usr/local/bin :/usr/sbin :/usr/bin :/sbin :/bin :/usr/bin/X11


7. par defaut : /usr/local/bin :/usr/bin :/bin :/usr/bin/X11 :/usr/games
8. ind :Si le comportement ne convient plus aprs maints changement, dtruire le rpertoire concern,
le rpertoire par dfaut sera recre.

LinuxIntro

Belahcene

11 dcembre 2014

2.4.

Autres Commandes

Page 16

grep unmot chier.txt ltre toutes les lignes du chier.txt qui contiennent le mot
 unmot . avec l'option -v on obtient l'inverse, c'est a dire celles qui ne contiennent
pas  unmot .

at 10 :00 10 la commande at excute les instructions donnes dans le sous-shell,


ouvert pres le retour a la ligne. Pour quitter le sous-shell (prompt >), taper
Ctrl+D.

crontab mycron.txt permet des planication de taches rptes, dclares dans le


chier mycron.txt. Le chier mycron.txt doit contenir les dates et les actions a
executer sous forme : minutes heure jour mois jourSemaine, suivi de la commande.
La ligne suivante 20 4 15 * * tar czf mesProg.tgz *.c permet de faire l'archivae
des chiers C tous les 15 du mois 4 heures 15. Faire man 5 crontab pour avoir
des dtails.

man 5 crontab pour voir le format du chier crontab.


top donne l'utilisation des ressources mmoire et cpu, en rel
di f1 f2 donne la dirence entre les chiers f1 et f2.  di3  donne la dirence
entre 3 chiers.

ps2pdf convertit le chier du format ps en format pdf.  pdf2ps  fait l'inverse.


convert f1.gif f2.jpg convertit 11 le chier image de format gif en image jpeg. Les
extensions dtermine le type de conversion a faire. Cet outil fait partie du logiciel
imagemagick.

setxkbmap ar choisit la map du clavier arabe sur l'environnement graphique. En


mode texte utiliser kbd-cong.

su - cpte1 bascule vers utilisateur cpte1,  -  pour avoir l'environnement de cpte1.


Si aucun argument n'est donn, l'utilisateur administrateur est pris par dfaut.

sudo permet a un utilisateur d'excuter des commandes systmes. Voir le chier de


conguration /etc/sudoers pour plus de dtail. L'avantage de cette commande
est de donner certains privilges aux utilisateurs dclars dans le chier, de faire
donc de la maintenance sans avoir a connatre le mot de passe root.

cpio

-o < listFich > rep.cpio

Cette commande cree (option -o ) une archive

(symbole >) rep.cpio qui contient la liste des chiers enregistre dans listFich (
symbole < ). l'option -i permet de desarchiver, avec cpio -i < rep.cpio.

import -window root -quality 98 ecran.png permet la suvegarde du bureau, sous


le nom ecran.png

racourcis_clavier Ctrl+L eace le terminal, Ctrl+r recherche de commande ans


l'historique, Shift+PgUp utilise ascenceur

screen : multiplexeur de terminaux. Vous ouvrez un terminal et vous le nommez,


vous lancez une tache (un script qui va qui prend du temps), et vous vous dconnectez. Plus tard, vous pouvez reprendre la tache en rouvrant le screen, vous

11. Installer imagemagick

LinuxIntro

Belahcene

11 dcembre 2014

2.5.

Divers

Page 17

retrouvez votre tche comme si tout tait rest ouvert.


Crer un screen : screen -S monScreen, (lancer un programme assez long pour
le tester)
Le dtacher (cela veut dire qu'il n'est plus ach mais reste actif avec ctrl a puis
d)
Le rattacher un screen dtach, screen -r monScreen
la liste des screens actifs : screen -ls , kill permet d'arreter les processus attachs

Permission d'un chier

Nous donnons ici un groupe de commandes trs utiles aussi

pour convertir les chiers, traiter les donnes etc...


A chaque chier ou rpertoire, sont associes des proprits, de type, de permissions,
de date et d'appartenance.

-rw-r--r-- 1 bela bela 2204 2008-07-20 09:11 .bashrc


Dans la ligne prcdente, le dernier champ est le nom du chier  .bashrc , avec les
informations de date de cration 2008-07-20 a 09 :11, ensuite la taille 2204 octets, le
propritaire est bela, de groupe bela. Enn le premier champ donne les permissions :
rw- : read/write pour le propritaire, ( - : pas de permission d'excution), r : read
pour le groupe et r : read pour les autres. La commande chmod permet de changer ces
permissions.

chmod g-x,o+w tata permet de changer les permissions, ici par exemple on ajoute
w, permission d'criture aux autres (other), g-x : enlve permission d'excution
au groupe.
ou bien avec des valeurs par exemple

chmod 765 tata

veut dire

rwxrw-r-x

pour tata.

usermod : modie un utilisateur (options : -l pour changer le nom, -g pour lui assigner un groupe, -G pour lui assigner plusieurs groupes (spars par des virgules),
-a en complment de -g ou -G, ajouter des nouveaux groupes au lieu de tout rednir). Par exemple, ajouter le groupe video l'utilisateur bela, sans supprimer
les groupes auxquels il appartenait avant : usermod -aG video bela.

2.5 Divers
Crer un lien sur Bureau
Un lien sur le bureau ressemble a ceci, on garde l'essentiel

[Desktop Entry]
Name=JusteEssai
Exec=guvcview
Icon=/usr/share/pixmaps/guvcview/guvcview.png
Type=Application
Categories=Video;AudioVideo;
StartupNotify=true

LinuxIntro

Belahcene

11 dcembre 2014

2.6.

Un Peu de Shell

Page 18

Imprimer joliment une page de manuel


Les commandes suivantes impriment une page de manuel sur une imprimante/un chier
PostScript.

man -Tps some-man-page | lpr man -Tps some-man-page | mpage -2 | lpr

Graver une image


Graver une image iso avec la commande cdrecord

cdrecord -v speed=20 dev=/dev/sr0 pfSense-Installer.iso


Copie partielle de chier
Copier les pages 99 a 102 du chier doc1.ps dans doc2.ps

psselect -p99-102 doc1.ps doc2.ps

Modier taille d'une Image


La nouvelle taille devient 800 par 600 pixels, en jpeg progressif de qualite 80% pour la
premiere image.
La deuxieme cree une image de police 72, pour le mot Salam alaykoum.

convert img1.png -interlace line -quality 80 -resize 800x600 img1R.png convert -pointsize 72 label :"salam ala

2.6 Un Peu de Shell


La programmation shell est indispensable pour une administration saine et robuste. Le
shell est une interface entre l'utilisateur ou administrateur et le noyau qui fait fonction
l'ensemble des lments de la machine.
Avec le shell on peut aussi bien planier des taches que rpter de faon automatiques
des travaux longs et fastidieux. A travers les exemples, nous dcouvrons les dirents
aspect et la puissance du Shell.
On peut aussi bien lancer les actions en interactif (au fait c est ce qu'on fait toujours a
travers le  terminal ) que les lancer partir d'un chier enregistr.

LinuxIntro

Belahcene

11 dcembre 2014

2.6.

Un Peu de Shell

Page 19

Au fait il y a plusieurs interprteur shell, Bash est celui install par dfaut, il y a
quelques dirences entre eux. Il y a aussi le csh, le sh, le ksh. Pour plus d'information

voir les excellents documents [ ] ou [ ] tlechargeables depuis Documentation Linux

http://www.tldp.org

Il faut dire aussi que si le programme devient trop complexe, ou on veut une interface
graphique ou encore un programme rapide, il faut alors utiliser un outil plus puissant,
comme le langage C , C++, java ou encore php. Le choix du langage dpend de l'objectif
assign.
Le shell bash est un interpreteur qui excute les commandes une a une aprs traduction
de l'instruction en langage interne. Ce qui permet d'excuter une partie d'un script
jusqu' la premire erreur s'il y a.
Au contraire un langage compil comme le C par exemple, toutes les commandes sont
traduites (compiles) en langage interne, c'est le rsultat, le programme machine qui
s'excute. Toute les erreurs e compilation ou de manque de librairie ou de ressource
sont dtectes la phase de compilation et dition de lien. Les quelques scripts suivants
largement comments, donnent un rapide aperu sur le Bash.
Un script est un ensemble de commandes regroupes dans un chier. La premire
commande doit tre un appel l'interprteur qui excute le contenu du chier. Dans

# !/bin/bash pour appeler l'interprteur bash. Pour le perl par exemple cas
# !/usr/bin/perl et # !/usr/bin/awk pour appeler awk.

notre cas

Le caractre  #  dbute un commentaire sauf s'il pert sa spcicit, voir les exemples.
Pour excuter les scripts donns en exemple, copier le contenu dans un chier, par
exemple exemple1.sh, l'extension n'est obligatoire, mais conseille pour savoir que ce
chier est un script shell. Mettre le bit excution a vrai, chmod +x exemple1.sh, sinon il
faut l'excuter en invoquant le shell. Dans le premier cas il sut de faire

./exemple1.sh

pour l'excuter, dans le deuxime cas il faut excuter la commande bash avec le chier
comme argument :

bash exemple1.sh

2.6.1 Les Entres-Sorties


Par dfaut la lecture des entres se fait partir du clavier et les sorties se font sur
cran, mais elles peuvent tre rcupres d'un ou envoyes vers un chier. Il sut alors
d'utiliser la redirection et ventuellement les dlimiteurs de bloc  { } . Rappelons que
l'utilisation d'une variable doit tre prcde de  $ 

Exemple 5. Les variables sont prcdes d'un $, la sortie standard est eectue avec la
commande echo. On peut aussi utiliser la commande formatte printf . Notons que le
symbole  \  dsactive la specit d'un caractre spcial, ici la  # .

Listing 2.1  Aectation et variables

1 #!/bin/bash

LinuxIntro

Belahcene

11 dcembre 2014

2.6.

2
3
4
5
6
7
8
9
10
11
12
13
14

Un Peu de Shell

Page 20

a=23
# Simple affectation, pas d'espace avant et apres =
echo "Valeur de a est $a "
# $a est remplace
echo 'Valeur de a est $a '
# $a n'est pas remplace
b=$a
# b reoit valeur de a
echo "Valeur de b est $b "
a=$(echo Bonjour..)

#
#
#
#

a=`ls `
echo $a
echo "$a"

Exemple 6.

# a reoit le rsultat
de la commande dans $( )
autre faon de faire
tabulation et retour supprimes
Ici conservs

Un script peut avoir des paramtres en entre, ils sont rcuprs dans les

variables $0 (nom du script lui mme) $1, $2, ..., $9 (pour les arguments 1, 2, ...9). Les
variables $#, $* contiennent le nombre et la listes des arguments, alors que $$ contient
le PID du script en excution et $ ? contient le rsultat de la dernire commande, 0 pour
vrai. Nous voyons aussi comment les sorties sont rediriges. La lecture du chier se fait
ligne par ligne, chaque ordre

read lit une ligne complte.

Listing 2.2  Parametres d'entree

1
2
3
4
5

echo
echo
echo
read
echo

"valeur de a: $a # n
'Valeur de a: $a' \#
"Entree 2 valeurs :
A B #ou read A puis
"Vous avez donner les

est pas un commentaire"


ce n est pas un commentaire
"
read B
nombres: $A et $B"

2.6.2 Les Tests et les Boucles


le test if :
Le test peut tre ralis avec le classique if/then ou avec un raccourci  [[, ]] . La
convention unix veut que la valeur 0 est retourn si le rsultat est vrai. Le  if  de
l'exemple suivant peut tre omis. les comparaisons entre nombres sont  -lt , -gt, -eq,
-ge, -le , pour les comparaisons de chane de caractres il faut utiliser  <, <=, >,
>=, = 

if [[ $a -lt $b ]] ; 12 then echo "$a plus petit que $b"


else echo "a plus grand que ou egal b";
fi
Le test [[ $a -lt $b ]] peut tre crit aussi (($a < $b)), attention au signe  < , de plus
les espaces dans la premire expression ne sont pas ncessaire pour la deuxime.

12. le  ;  est obligatoire pour sparer les commandes sur la mme ligne

LinuxIntro

Belahcene

11 dcembre 2014

2.6.

Un Peu de Shell

Page 21

boucles
Les travaux rptitifs sont raliss par des boucles ; la plus courante est  for , bien que
d'autres commandes (while, until) existent.

for arg in liste ; do Cmds ; done, excute les  Cmds  pour tous les lments de
 liste 

for planete in mercure mars venus jupiter


do echo "$planete"; done
Cette commande donne la liste des planetes : mercure mars venus jupiter. Dans la
partie list on peut avoir le rsultat de n'importe quelle commande. Par exemple les
commandes suivantes donne le meme rsultat (la commande seq donne une squence
de nombres) :

for i in 5 8 11 14 17 20; do echo " valeur de i= $i"; done


for i in $(seq 5 3 20); do echo " valeur de i= $i"; done
On peut aussi crire les expressions a-la-Langage-C, ainsi la boucle  for  prcdente
peut tre crite : (noter les doubles parenthses, et pas de  $  avant les variables)

for ((i=5;i<20;i+=3)); do echo " valeur de i= $i"; done


Boucle while

a=0; N=12 ; P=Salam


while [[ $a -lt $N ]]
do
echo $P
let a=$a+1;
done
Le if multiple ( case) :
Le choix des commandes a executer se fait en fonction du contenu de la variable. Dans
notre exemple, si

val

cascontient saghir alors la premiere est execute, si elle vaut

kabir on execute la deuxieme sion la deniere par defaut.

case $val in
saghir) echo " petit nombre" ;;
kabir) echo " grand nombre" ;;
*)
echo " nombre moyen " ;;

Exemple 7.

Excuter le programme suivant :


Listing 2.3  exemples de case

1
2
3
4
5
6
7
8

#!/bin/bash
echo -e "
read a
while [[
do
if [[
elif

LinuxIntro

entrer un
$a

-ne

entier , 0 pour finir"


0 ]]

$a -gt 30 ]]; then Type="grand";


[[ $a -lt 10 ]] ; then Type="petit";

Belahcene

11 dcembre 2014

2.6.

Un Peu de Shell

Page 22

9
else Type="moyen";
10
fi
11
case $Type in
12
"petit")
13
echo " petit nombre" ;;
14
"grand")
15
echo " grand nombre" ;;
16
*)
17
echo " nombre moyen " ;;
18
esac
19
read a
20
if [[ $a -eq 0 ]] ; then exit; fi
21 done

2.6.3 Les Expressions Rgulires


Une expression rgulire est une chane de caractres ou mta caractres qui sont interprts par le shell de faon particulire, nous avons dj vu  # , qui signie commentaire, mais il peut perdre cette particularit si on le dsactive. L'utilisation la plus
courante de ces caractres est dans les recherches et manipulations de chane de caractres, particulirement avec grep .

* (toile) remplace 0 ou plusieurs fois le caractre prcdant. 124* est mis pour 12,
124,1244, ...

. (point) remplace au moins une fois le caractre prcdant, sauf retour chariot. 124.
est mis pour 124, 1244, ...

^ (caret) indique dbut de ligne. A l'intrieur de  [,] , il inverse le sens de l'expression.

$ indique n de ligne
\< indique le dbut du mot
\> indique la n de mot
[] regroupe un ensemble de caractres a  matcher  13 . [xy] replace tout mot contenant x ou y, de mme [d-g] remplace les mots contenant une des lettres d, e, f,
g ou encore [A-Rf-t] les lettres de A R et f t. Alors que le produit [0-4][0-9]
donne 00,01..49. Cependant [^b-n] remplace toutes les lettres sauf de b n.

\ (backslash) est utilis pour rendre normal un caractre spcial  \$  est le caractre  $ , de mme  \\  est le caractre  \  lui mme. Ainsi  \[xyzcat
/etc/inittab | grep '\<respawn'\]  ne remplace pas toutes les chanes contenant
x, y, ou z, mais uniquement la chane  xyz .

13. Attention : les caractres sont pris individuellement

LinuxIntro

Belahcene

11 dcembre 2014

2.6.

Un Peu de Shell

Page 23

2.6.4 grep
Une commande trs utile et trs utilise est la commande grep. Elle a t dj prsente,
ici nous donnons plus de dtails sur les options. Se rappeler la caret  ^  signie dbut
de ligne et  $  la n de ligne.

-i Ignorer la casse,
-w Forcer l'appariement du mot complet,
-n Acher le numro de ligne
-r Recherche recursive dans les sous rpertoires, prciser le rpertoire
-v inverser le ltre
-H prciser le nom des chiers ( -h : cacher les noms)inverser le ltre
-N N est un nombre, donne les N lignes avant et N lignes aprs la ligne slectionne.
-AN N ligne apres ( A pour After, B pour Before)

Exemple 8.

Les commandes suivantes donnent respectivement les lignes qui com-

mencent par le caractre #, les lignes qui nissent par vt100 et les lignes qui contiennent
les mots commenant par respawn, du chier /etc/inittab

cat /etc/inittab | grep '^#'


cat /etc/inittab | grep 'vt100$'
cat /etc/inittab | grep '\<respawn'

Exercice 9.

Donner les lignes utiles du chier /boot/grub/grub.cfg, sans les lignes vides,

ni les lignes commentes. Le rsultat est enregistr dans le chier menuNew.lst, les lignes
sont numrotes. Le caractre pipe  |  permet de faire des ltres successifs.

2.6.5 awk
La commande awk est constitue de 3 parties :  BEGIN  pour regrouper les commandes
a executer une seule fois au debut  END  pour regrouper les commandes a excuter
une seule fois a la n , et le corps du script excut a chaque ligne.
Une ligne est clate en champs, reprs par des variables $1,$2... pour les champs 1,2,....
Le  espace  est le sparateur par dfaut, la variable  FS : Field Separator  garde le
sparateur, mais on peut le changer.
Chaque partie est mise entre des accolades  {,} , On utilise l'ordre  print  pour
crire l'cran. Les commandes suivantes sont quivalentes et donnent le nom (premier
champ) et le rpertoire maison (le champ 6) de l'utilisateur, le sparateur ici est  : .

LinuxIntro

Belahcene

11 dcembre 2014

2.6.

Un Peu de Shell

Page 24

Variables Prdnies
Les sparateurs par dfauts sont le espaces, mais on peut les changer en dcalarant dans
les variables associes de meme que le numero de ligne et de champ peut etre connus :

FS Field separator, separateurs en entree


OFS Output eld Separator, sparateur en sortie
ORS Output Record Separator, changement de ligne (enregistrement)
NR Numero de la ligne courante
NF nombre de champs

awk 'BEGIN {FS=":"} {print $1 "\t" $6}' /etc/passwd


awk -F: {print $1 "\t" $6}' /etc/passwd
La commande awk accepte les commandes shell et les expressions rgulires. On retrouve
aussi les instructions -la-C, voir exemple suivant.
Le programme peut aussi etre mis dans un chier et s'executer soit avec :
 awk -f nonScript
 ./nomScript si la premiere ligne est

#!/usr/bin/awk -f

Dans ce dernier cas il faut rendre le script executable.

Exemple 10.

Donner les caractres, leur code en dcimal et en hexadcimal pour les

caractres alphabtiques. Remarquer $i en sortie de echo est rcupre comme $1 entre


une (il y a un seul champ est une seule ligne ) de awk :

echo -e "
Dec
Hex
Char\n"
for i in $(seq 55 70)
do
echo $i | awk '{printf("%6d %6x %6c\n", $1, $1, $1)}'
done
On peut recrire la commande comme suit :

echo $i $i $i | awk '{printf("%6d %6x %6c\n", $1, $2, $3)}'


Que se passe t il so on ecrivait plutot ? :

echo -e $i"\n"$i"\n" $i | awk '{printf("%6d\n", $1)}'


Selection de ligne selon un pattern
Nous pouvons aussi slectionner des lignes repondant un critre ou expression rguliere ;

Exemple 11.

La premiere commande donne : la taille des chiers sans les rpertoires

(qui dbutent la ligne par d) de /etc selon le format dsir. La deuxieme donne l'occupation du disk, contenant la suite de caractre /dev/ . Noter ici le symbole \ devant
/, pour rendre ce dernier ordinaire.

LinuxIntro

Belahcene

11 dcembre 2014

2.6.

Un Peu de Shell

Page 25

ls -lh /etc | awk '!/^d/ { print "Taille de "$8" est "$5}'


df -h | awk '/\/dev\//{ print "periph: ",$1," Montage",$6,
"Occupation: "$5}'
Tester les commandes suivantes (les mettre dans un chier f.awk) :

BEGIN { print "donner un nombre "; }


{
print "son carre est: " $1 * $1 ;
print "Encore un nombre (0 pour finir)";
if ( $1 == 0) exit;
}
END { print "Salam" }
Tester la commande :

awk '{ if ( $1 < 20 ) print }'

data.txt

Sur le chier data.txt contenant

14
16
25
12
65

15 569
25 363
1256 33
22 333
256 364

Oprations de Control
On peut aussi faire des calculs et utiliser les operations de control (boucles et tests). Le
programme du listing fait la moyenne, executer ./moyenne.awk note.dat

./moyenne.awk note.dat
#le fichier note.dat contient
ammar
13 12 15
smail
15 12 14
kaci
15 8
9
houda
11 12.5 13
ali
16 11 14
Listing 2.4  operations de control

1
2
3
4
5
6
7
8
9
10
11
12
13
14

#!/usr/bin/awk -f
BEGIN{
xmin=1000; xmax=0 ;
OFS=" ----->\t";
# Separateur de Champs
ORS="\n------------------\n" # Separateur de Lignes
}
{
n++; x += $2; y += $2^2;
if ($2 < xmin) xmin=$2
if ($2 > xmax) xmax=$2
}
END {
x /= n;
print "Nombre de donnees\t", n

LinuxIntro

Belahcene

11 dcembre 2014

2.6.

Un Peu de Shell

15
16
17
18 }

Page 26

print "Moyenne \t\t", x


print "Min \t\t\t", xmin
print "Max \t\t\t" , xmax

Exercice 12.

Modier cette exemple pour acher en plus des notes tudiants leurs

moyennes (par etudiant) et en n la moyenne globales (de toutes les notes de tous les
etudiants).
Tester les instructions if et for avec le listing :
Listing 2.5  Les boucles

1
2
3
4
5
6
7
8
9
10
11
12
13

BEGIN {
# s'execute uniquement au debut
# Affiche les carrees
# comme en C standard
# val est lu en argument
# Lancer le script avec :
#
gawk -v val=7 -f boucle.awk
for (i=1.5; i <= val; i += 0.5) {
printf ("Le carre de %.2f est %.4f\n",i,i*i);
if ( i==5 ) print " 5 est trouv";
}
#contient uniquement le bloc BEGIN
}

Les commandes suivantes donnent dans l'ordre : Les lignes dont la deuxieme note est
12, les lignes entre celle contenant kaci et celle contenant ali, la suivante donne les lignes
dont le premier champ contient la chaine ma. L'expression $1 ~ /ma/ cherche la chaine
dans le champ 1.
Celle d'apres donne les lignes dont le champe 2 est >= 12 ET le champ 3 >= 11
enn la derniere donne les noms pour la colonne 2 est >13 OU colonne 3 >13

gawk
gawk
gawk
gawk
gawk

'$3 == 12 { print $0
'/kaci/,/ali/ { print
'$1 ~ /ma/ { print $0
'$2 >= 12 && $3 >= 11
'$2 > 13 || $3 > 13

} ' note.dat
}' note.dat
}' note.dat
{ print $0 }' note.dat
{ print $1 }' note.dat

Le script suivant ache aussi le moyenne pour les etudiants selectionns. Le symbole
 { doit suivre directement la condition ($2 >13|| $3 >13) qui pose le condition pour
le traitement de la ligne

#!/usr/bin/awk -f
BEGIN {
moy=0 }
($2 >13|| $3 >13){
moy += $2+$3+$4;
print $0 " moy=
moy=0
}

LinuxIntro

", moy/3

Belahcene

11 dcembre 2014

2.7.

Exercices

Page 27

Les commandes suivantes donnent les processus gourmands en ressource CPU (> 1%)
apartenant a root et son inverse (n' appartiennant pas a root). La awk recoit la liste
des processus partir de ps. Noter les parentheses necessaires apres le point  ! , qui
intervient sur ($1 ~"root")

ps aux | awk '($1 ~"root" && $3>0.5) {print $2 }'


ps aux | awk '( !($1 ~"root") && $3>0.5) {print $2 }'

2.6.6 sed
Une autre commande trs utile, sed (stream editor : diteur de texte par ot), est souvent
utilise pour des remplacements des mots ou expression dans les chiers. principaux
paramtres, (l'option -n rend la commande silencieuse).

X,Yi message chier insert le mot message dans chier avant toutes les lignes de
numro X au numero Y.

X,Yp/ imprime les lignes X Y, si  Y  est omis la sortie se fait jusqu' la n


X,Yd/ supprime les lignes X Y
X,Ys/exp1/exp2/g remplace exp1 par exp2 pour toutes les lignes de X Y. avec
 g  toutes les occurrences de la ligne sont concernes.

sed

6,13s/GNU/gnu/g
menuNew.lst
## remplace GNU par gnu dans les lignes 6 13
3,7d;10,$d menuNew.lst ## supprime les lignes 3 7
et les lignes de 10 juqu'a la fin
y/a.s/A,S/ note.dat remplace les a par A, . par , et s par S

sed
sed

2.7 Exercices
1. Crer un chier ch1.txt avec nano, utiliser les copier/coller pour le remplir.
Donner le nombre de caractres de ce chier.
2. Excuter les commandes suivantes quand cela est possible, sinon dites pourquoi :
a) Vrier le contenu du chier ch1.txt en utilisant gedit et cat.
b) Crer un rpertoire temp1, copier le chier ch1.txt dans temp1. aller dans
temp1 modier ch1.txt.
c) Copier ch1.txt dans votre bureau, copier le dans /etc.
d) Lister le contenu du rpertoire /home, avec les options, de tri selon le temps,
le temps inverse, la taille. lister les chiers cachs de votre rpertoire maison.
e) Vrier dans quel rprtoire vous etes. Faire 2 copies du chier ch1.txt :
ch2.txt et ch3.txt. Les dplacer vers votre repertoire maison.
f ) Supprimer les chiers ch2.txt et ch3.txt ainsi que le rpertoire temp1.

LinuxIntro

Belahcene

11 dcembre 2014

2.7.

Exercices

Page 28

3. Utiliser les racourcis de rpertoire pour vous dplacer vers /etc, /home , /usr/bin
et votre rpertoire maison.
4. Copier ch1.txt dans ch2.txt avec quelques modications, donner ensuite la diffrence entre les 2 chiers.
5. Donner le nombre de chiers et rpertoires de /etc.
6. Lancer la commande top (taper q pour en sortir) . Quelle est le CPU, la taille
de la mmoire totale, tendue et utilises de votre machine.
7. Crer un rpertoire temp1, y copier les chiers de conguration (extension conf )
de /etc. Crer une archive compresse conf.tgz, pour tous ces chiers. des-archiver
dans un rpertoire temp2. Procder de 2 manires : archiver puis compresser, et
archiver et compresser en une seule fois.
8. Quelle est votre chemin (PATH), complter-le avec le rpertoire courant ? Rendre
permanent votre nouveau PATH, donner un message chaque connexion (nouveau shell).
9. Donner la liste de repertoires /etc dans un autre terminal. Donner le nombre de
terminaux ouverts ( nombre de processus bash).
10. Changer les permissions de ch1.txt et ch2.txt, de 2 manires. ch1.txt uniquement accessible en lecture/criture votre groupe, che2.txt accessible en lecture
tout le monde.
11. On veut imprimer le chier /boot/grub/menu.lst avec une police de caractere
soigne, on le convertit au format postscript (ps) puis en format pdf.
12. Dans 3 minutes, sauvegarder vos processus dans le chier myProc.txt.
13. Toutes les 3 minutes ajouter un chier, par exemple ch1.txt un autre chier
par exemple ch1New.txt. Ensuite il faut arreter le planning.
14. On veut plannier l'utilisation d'un logiciel dont l'utilisation simultane est limite, et donc on cre des groupes. Le logiciel est utilis tour de role, par exemple
le groupe P1 de 8h 12h, le groupe P2 de 12H 17h , le groupe P3, la nuit 17H
au matin 8H. Proposer une gestion d'utilisation. Modier ensuite la gestion pour
lever la restriction le week end (vendredi samedi). Voir la commande chgrp.
15. Archiver les chiers conf (extension .conf ) de 12 a 15 heures toutes le 2 minutes
entre la minute 8 et 25.
16. Lancer le capteur d'images, sauvegarder votre bureau, puis une fenetre et enn
une partie de la fenetre. Lancer quickshow (visionneur d'images et diaporama),
lancer diaporama sur les images a rcuprer de votre machine.
17. Ecrire un script bash qui ache 10 fois le mot Salam. Refaire pour un nombre
de fois a lire du clavier. Refaire avec nombre comme argument du script.
18. Que fait la commande :

for i in $(cat list.txt ); do wget -c


http://www.geogebra.org/book/intro-en/WS_HO_4/Tiling/$i; done

LinuxIntro

Belahcene

11 dcembre 2014

2.7.

Exercices

Page 29

19. Ecrire un script qui ache N fois une phrase lue au clavier. Refaire la question,
les entrees se font d'un chier donn en argument du script.
20. Ecrire un scipt qui lit 4 nombres a partir d'un chier et les crit dans un autre.
Les noms de chier sont donns en arguments.
21. Faire des copies de vos chiers shell (extension .sh), avec ajout de .bak. par
exemple che1.sh aura pour copie ch1.sh.bak. Refaire l'opration sans .sh, c'est
a dire la copie sera che1.bak. (ind : voir basename)
22. Que donnent les commandes suivantes :

ls /etc/[mt]* -ld
ls /etc/[m-t]* -ld

ls /etc/[^mt]* -ld
ls /etc/[^m-t]* -ld

23. Tester l'existence de toutes les machines de votre rseau 192.168.10.0. Utiliser
ping option -c 2 (2 paquets).
24. Sauvegarder dans le chier ps.txt la liste de tous les processus. Sauvegarder dans
mesProcess.txt vos processus. Quel est leur nombre.
25. Donner les lignes utiles du chier Rcuprer le chier /etc/inittab dans un autre
sans les commentaires ni lignes vides. Le rsultat est enregistr dans le chier
inittabNew, les lignes seront numrotes. (ind : Le caractre pipe  |  permet de
faire des ltres successifs).
26. Compter les utilisateurs de refox, si l'un deux utilise plus de 1.5% de CPU
l'arreter.
27. Tous les soirs a 22 :30, arreter les processus qui tournent depuis plus de 6h.
28. tous les matins a 8h nettoyer votre repertoire tmp, de tous les chiers .bak si leur
taille depassent 1MB.
29. Ecrire un script (utiliser awk) qui arretent les processus qui consomment plus
de 2% CPU, si le processus n'appartient pas a root. Refaire pour les utilisateurs
ordinaires (UID > 999)

LinuxIntro

Belahcene

11 dcembre 2014

3 Petite Administration
Mme si on est un simple utilisateur de la machine, on est souvent amen faire ne
serait ce qu'une petite administration. Par exemple on installe un logiciel, on congure
la carte rseau, on sauvegarde le systme, ces taches ncessitent la permission du super
user, ou administrateur. Aussi il est trs recommand d'avoir quelques notions de bases.
Dans la plus part des cas on peut utiliser une interface graphique, mais parfois il est
prfrable d'utiliser la ligne de commande. Dans ce chapitre nous essayons de faire le tour
des questions essentielles, savoir les systmes de chiers, les processus, l'installation
des logiciels.

3.1 Installation
Disons deux mots sur l'installation d'une distribution, par exemple Centos/Redhat ou
Debian/ubuntu.
Les choses essentielles retenir pour l'installation standard sont
1. Choix du clavier et de la langue
2. Partionnement du disk : l'installateur excute un partitionneur gparted ou fdisk.
3. Adresse de la carte rseau, s'il y a pas de DHCP, mettre manuellement une adresse
la carte.
4. Entrer un mot de passe d'administrateur et un compte d'utilisateur.
Le reste est fait de facon automatique (dtection de carte video, carte son, rseau...).
Si vous avez un probleme de carte video, ce qui est actuellement rare, sauf si votre
materiel est tres recent par rapport au software. Dans ce cas vous pouvez utiliser un
CD-Live, recuperer ensuite le chier /etc/X11/xorg.conf et copier dans le repertoire de

la distribution installe .
Si vous avez un ordinateur portable et que ce dernier redmarre brutalement
pendant la procdure d'installation, ditez l'entre Install en appuyant sur
la touche Tab, puis tapez

noacpi noapic nolapic l'cran d'accueil au lieu

de simplement valider, ce qui dsactivera l'ACPI (un systme d'conomie


d'nergie qui est bogu sur certaines cartes mres).

1. L'installation peut se faire meme si le graphisme ne fonctionne pas

30

3.2.

Gestion du Disque

Page 31

Figure 3.1  rsultat de fdisk et df


3.2 Gestion du Disque
Ci-aprs nous donnons les commandes les plus utilises pour l'administration d'un machine seule ou dans un rseau local. Il est bien entendu que toute les commandes utilisateur sont aussi valables pour l'administrateur.

fdisk cette commande est dangereuse et est rserve au super user. Elle gre le
partionnnement du disk. On peut aussi utiliser  parted  qui permet de redimensionner une partition.

mkfs -t vfat /dev/hda2 cre un systme de chier et formatte la partition /dev/hda2


en format vfat. Avec dirents types de systme reconnus, donns en options, ext2,
ext3, vfat..., on peut aussi utiliser mkfs.vfat.

LinuxIntro

Belahcene

11 dcembre 2014

3.3.

Fichiers Systmes

Page 32

mount -t vfat /dev/hdc1 /media/disk : montage de la partition 1 du disk 3 sur le


rpertoire /mnt/hd1, Si le point de mount est dclare dans /etc/fstab, l'utilisateur
peut le monter, s'il lui est permis, autrement il faut tre administrateur.
quota permet de xer des tailles limites aux usagers, et empcher ainsi qu'un utilisateur
ne remplisse le disque.

3.3 Fichiers Systmes


Nous voyons ici chiers systmes importants :

/etc/inittab Le processus de dmarrage lit ce chier pour dterminer quel est le


niveau de fonctionnement du systme.
A chaque niveau correspond un ensemble de services lancer qui sont enregistrs dans le
rpertoire correspondants. Par exemple niveau 1 correspond au fonctionnement  single ,
un seul utilisateur, pas de  muli-user , le graphisme n'est pas lanc, la carte rseau
est dsactiv, voir le services dans /etc/rc1.d, pour niveau 2 , 3 ou 5 voir les rpertoires /etc/rc2.d, rc3.d ou rc5.d. Le niveau 0 est l'arrt, le niveau 6 est le redmarrage
 reboot . Lire les commentaires du dbut de ce chier.
Les services qui tournent automatiquement au dmarrage : dans le niveau 2 sont dans
/etc/rc2.d
Tous les programmes commenant par S sont excuts au dmarrage, et ceux qui commencent par K sont arrts.
Comment arrter (ou lancer) un service chaud : /etc/init.d/vsftpd stop (ou start)
Comment supprimer (ou ajouter) un service de la liste de dmarrage.
Supprimer le lien de rm /etc/rc2.d/S20vsftpd (ou ajouter le lien avec S au dbut du
nom) par exemple : cd /etc/rc5.d ;

ln -s ../init.d/ssh S96ssh

cre un lien au service

ssh porle faire dmarrer automatiquement.

/etc/fstab Contient les systmes de chiers et partitions monter au dmarrage et


rendre accessible l'utilisateur et au systme.
On peut empcher un utilisateur d'accder un priphrique donn, par exemple la
ligne suivante :

/dev/hdb /media/cdrom0 iso9660 user


Signie le priphrique  hdb  ici le cdrom, est monte sur le rpertoire /media/cdrom0,
avec la permission a tout utilisateur pour le faire, le type du device est un iso9660
(cdrom). Si on supprime le mot  user , il faudrait alors tre administrateur pour faire
le montage. Ceci est valable pour les disques durs , les ash disk, etc...

/etc/hosts Ce chier contient le numero des cartes et les nomes des machines associes. On peut aussi bien identier la machine avec sont nom ou sa carte rseau.

/etc/passwd Contient la liste de tous les utilisateurs y compris les utilisateurs systmes. Le mot de passe n'et pas stock dans ce chier, la ligne suivante :

LinuxIntro

Belahcene

11 dcembre 2014

3.4.

Les Processus

Page 33

bella:x:1004:1002:,:/home/bella:/bin/bash
Signie que l'utilisateur bella, dont le mot de passe crypte est ailleurs (ici dans /etc/shadow), a pour UID et GID (User et Group IDentier) 1004 et 1002, son rpertoire
maison est /home/bella, et a le droit d'utiliser le shell bash, c'est dire il peut se loger
et travailler sur la machine.

/etc/network/interfaces (sous Redhat : /etc/syscong/network-script/ifcfg-eth0)


Ce chier contient les informations de conguration de la carte rseau. Nous le
verrons en dtail, voir 4 page 37 dans le chapitre rseau.

ifcong eth0 192.168.10.10 Congurer la carte rseau ethernet eth0 et lui aecte
l'adresse indique

/etc/X11/xorg.conf Dans ce chier se trouve la conguration du graphisme, les


dclarations de la souris du clavier et de la carte vido. La commande Xorg congure permet de refaire la conguration et de rcrire le chier xorg.conf.
Version recente de xorg, la detection se fait de facon automatique au demar-

xrandr
current ache les informations sur l'ecran actuel, et xrandr size 1024x768
rage su serveur X. Utiliser plutot la commande xrandr par exemple :
xe l'achage a la resolution 1024 par 768 pixels.

3.4 Les Processus


Un processus est un programme en excution, c'est dire charg en mmoire et donc
en excution ou en attente de l'tre. Contrairement ce qui pourrait paratre, mme
si l'utilisateur ne lance aucune application, il y beaucoup de processus en excution en

mme temps . Pour avoir une ide, excuter la commande


avoir les dtails sur les processus, ou encore la commande

ps aux par exemple pour


top. Ces commandes sont

dtailles plus loin. Ds qu'un processus est lanc il reoit un identiant PID (Processus
IDentication).
Pour arrter un programme en excution ou un processus il sut de donner son PID
la commande kill. Par exemple

kill -9 345, dtruit compltement le programme dont le

numro est 345, si la permission est accorde.


Linux est un systme mutli-utilisateur, plusieurs utilisateurs peuvent y travailler en
mme temps sur la mme machine ou distance. Il est dconseill de se loger en super
utilisateur (compte administrateur ou root), si un moment donn, nous avons besoin
de lancer une commande d'administrateur, il sut d'utiliser le su mis pour switch
user, qui permet de passer momentanment en root.
Par exemple pour crer un compte il faut tre super user, voici un exemple :

2. La conguration peut se faire par outil graphique videmment


3. c'est un abus de langage, en realite une seule instruction machine est excute la fois, moins
d'avoir un multiprocesseurs

LinuxIntro

Belahcene

11 dcembre 2014

3.5.

Installation de Logiciel

Page 34

bela@pc1020:$ su Password: -------> donner le mot de passe de root


pc1020:~# adduser cpte1
Adding user `cpte1'... directory `/home/cpte1'.
Enter new UNIX password: ------> mot de passe cpte1
Retype new UNIX password:
password updated successfully Changing the user information

3.5 Installation de Logiciel

3.5.1 Logiciel Prcompil type deb


Installation avec dpkg
L'installation de logiciel sous debian se fait par la commande dpkg (Debian PacKaGe),
tout comme sous redhat on utilise rpm (Redhat Package Manager). Un autre outil plus
puissant apt-get sera tudie a la section suivante. faire dpkg help ou man dpkg pour
avoir les direntes options.

dpkg -i

apache2_2.2.8-3_all.deb

Permet d'installer  -i  le logiciel apache2. Le paquet doit tre donne compltement,


avec sa version. Les options les plus courantes en plus de -i, sont (concerne les paquets
installes) :
 -l : ache des informations sur le paquet (uniquement le nom : par exemple
apache2)
 -L : le contenu du logiciel, liste des chiers
 -r : supprime le paquet (remove)
Remarque 13. dpkg ne rsoud pas les dpendances, c'est dire, si un logiciel A dpend

de B, si B n'est pas installe, dpkg vous informe que A ncessite B, mais n'essaiera pas
d'installer B, B doit tre install manuellement.

Installation avec apt-get


La distribution debian a un outil extrmement puissant et utile pour l'installation des
logiciels, il permet de faire la rsolution automatique des dpendances, c'est dire lorsqu'un logiciel ncessite l'installation d'un autre, ce dernier est alors install a moins qu'il
ne soit pas prsent, dans ce cas l'installation n'est pas ralise.

Utilisation de Synaptic
Le logiciel synaptic est une interface a la commande apt-get, en plus d'installation ou de
la suppression de logiciel, cet outil donne aussi des informations concernant les paquets.
Au fait il utilise les chiers sources.list pour charger la liste des dpts, les chiers

LinuxIntro

Belahcene

11 dcembre 2014

3.6.

Exercices

Page 35

Packages pour les info sur les paquets et aptget.conf pour les info sur le proxy par
exemple.
De mme que pour la commande apt-get on peut utiliser synaptic travers un proxy.
Dans Paramtres->Prfrences->Rseau congurer la proxy et ajouter le login/motdepasse s'il est requis.

3.5.2 Logiciel Prcompil type RPM


Installation avec rpm
Les distributions compatible Redhat, comme Fedora, Centos, mandriva... utilisent un
proche de apt, Yum. Installer un paquet individuel, tout comme dpkg, ncessite de
donner le paquet du type rpm, et utiliser la commande rpm, mais les dpendances ne
sont pas rsolues, pour ce faire utiliser yum.
Installer apache2 se fait avec :

rpm -i

apache2_2.2.8-3_all.rpm

les options -i pour installer, -U pour une mise jour , -q pour une requete (query) suivie
de l pour lire l'entete, suivie de L pour donner la liste des chiers.

3.6 Exercices
1. Lister le chier passwd, remarquer les informations de root, de user et de ftp. Que
reprsente la dernire colonne.
2. Crer un rpertoire windC, y monter la partition windows qu'il faudra reperer,
(voir fdisk). Crer un rpertoire usb1, y monter le ash disk. De meme pour le
cdrom, dans un rpertoire Cd.
3. Autoriser l'utilisateur a faire le montage de cette partition en lecture seulement.
4. Arrter les services atd et cron, tester ensuite si les programmes at et crontab
fonctionnent. Redmarrer les de nouveau et vrier at et crontab.
5. On veut lancer automatiquement au dmarrage un programme, par exemple minbar, donner la procdure.
6. Monter puis dmonter des partitions et dire quelles sont leur taille et type.
7. Comment retrouver le mot de passe root avec le CD de Dmarrage ?
8. Comment retrouver le grub (le menu dmarrage) dtruit par l'installation de
wind$XP ? Le chier /boot/grub/menu.lst contient les infos sur le menu de dmarrage, voir les commentaires sur le chier. fdisk -l permet de lister les partitions.

9. Crer un usager user1, regarder groupes secondaires, en particulier peut il monter
automatiquement un ash disk ou couter le son.

LinuxIntro

Belahcene

11 dcembre 2014

3.6.

Exercices

Page 36

10. Crer un autre usager user3, permettre a l'utilisateur user1 l'accs et la lecture
du rpertoire /home/user3 mais pas l'utilisateur user2. Ind : regarder les permissions et le groupe du rpertoire.
11. Permettre aux utilisateurs du groupes gr1 d'utiliser refox pour naviguer de 13
heures 14 heures et pour le groupe gp2 de 16 heures 17 heures, tous les jours
sauf vendredi.
12. Donner le nom, les paramtres et le PID du script en excution.
13. Crer deux usagers u1 et u2 dans le groupe gr1 (a crer), autoriser uniquement
le passage (en lecture seule) d'un utilisateur un autre de ce groupe.
14. crire un bash script qui permet de rcuprer dans votre rpertoire les chiers
de /etc/init.d, de les archiver et compresser, crer un rpertoire de travail et les
dsarchiver dans celui-ci.
15. Arrter tous les processus dont le PID est suprieur a 500 ;
16. crire un script qui convertit tous les noms de chiers de minuscule vers majuscule
d'un rpertoire donn. Voir la commande tr.
17. Installer le logiciel source tk-1.1.9-i386.bz2.

LinuxIntro

Belahcene

11 dcembre 2014

4 Introduction aux Rseaux


A tous les niveaux des couches sont dnis des protocoles de communication.

Dnition 14.

Un protocole est un ensemble de rgles et de procdures respecter

pour pouvoir changer des informations entre machines / logiciels des donnes sur un
rseau

Le modle ISO dcoupe la communication en 7 couches qui ne sont pas toujours trs
nettement distinctes, le modle simpli se rduit 4 couches.
 Application : web, ftp, trai-

 Routage de rseau : choix du

tement par l'applicatif

chemin

 Transport : vrication de

 Rseau physique transmis-

l'information

sion de bits.

Remarque 15. A chaque niveau sur une machine correspond sur la machine distante la

mme couche qui joue le mme rle. Par exemple la couche transport vrie la validit
de l'information et fait corriger les erreurs de transmission.

4.1 Communications Travers les Rseaux


Nous rsumons en bref la communication entre les ordinateurs dans un rseau et les
direntes couches intervenant.
La gure 4.1 montre comment les couches interviennent dans une communication entre
par exemple client ftp et serveur ftp.
Chaque couche de rseau, ajoute sa propre entte qui sera traite par la couche correspondante sur la machine distante. Ainsi par exemple la couche d'application, ici serveur
ftp, ajoute concernant le port et autre information de l'application que la couche application du correspondant doit ouvrir pour voir le port concerne et le reste de l'information
pour savoir qu'elle est l'application qui la prendre en charge, ici serveur ftp.

4.2 Cration de sous Rseaux


La commande ifcong (sans paramtre) : donne la conguration d'une carte rseau : le
numro ou addresse IP : (4 octets : 192.168.10.10). Chaque machine dans le rseau est

37

4.2.

Cration de sous Rseaux

Page 38

Ordinateur B

Ordinateur A
Protocole FTP

Serveur FTP

Client FTP

Terminal
Protocole TCP
TCP

TCP

Protocole IP
IP

IP

Linux Kernel
TM

3Com CoreBuilder 5000

Pro. Ethernet

mgt

fb

fb

fb

fb

tpl6

tpl6

fb

Switching Hub

fb

fb

fb

5302m

5302m

Pilote Ethernet

Pilote Ethernet

cmgt cmgt

Carte Reseau

Figure 4.1  Communication Client Serveur


identie par un numro. Une machine M1 voit M2 si elles sont dans le meme rseau
(ou sous rseau) : la sparation en sous est faite par le mask. par exemple 255.255.255.0
creer des sous reseau de 254 machines au maximum.
Les informations de reseau sont stockes dans le chier

/etc/network/interfaces.

Pour changer manuellement il sut de modier ce chier et puis de relancer le serveur


avec la commande

/etc/init.d/networking restart
Ou bien utiliser la commande network-admin gw 192.168.10.1 qui fait
automatiquement la conguration.

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.10.10
netmask 255.255.255.0
gateway 192.168.10.1
Une adresse dynamique est donne automatiquement par un serveur DHCP, utile voire
indispensable si on a peu d'adresse et/ou on veut contrler les adresses. La conguration
precedante, xe l'adresse de eth0, en static,
Les adresses statiques sont donnes soit chaud (utiliser par exemple ifcong) ou permanentes (utiliser les chiers de conguration ou un outil qui crit dans le chier /etc/network/interfaces .

LinuxIntro

Belahcene

11 dcembre 2014

4.2.

Cration de sous Rseaux

Page 39

Remarque 16. Une adresse IP est lie a une carte rseau (ou modem.. ) et non pas une

machine qui peut avoir plusieurs cartes et donc plusieurs adresses.


Une carte peut avoir plusieurs adresses, on utilise des alias, par exemple, la carte eth0
physique a deux adresses correspondant aux cartes logiques eth0 et eth0 :1

ifconfig eth0 192.168.10.10


ifconfig eth0:1 192.168.75.35
Le masque permet d'eclater un rsaux en plusieurs sous rseaux. Le masque est une
suite de 32 bits qui jouent le role de ltre. Pour que deux cartes reseaux puissent
communiquer, il faut qu'elle aie la mme partie addresse correpondant au masque (i.e :
les bits a 1 du masque).

m1 : 192.168.10.10
m2 : 192.168.10.125
m3 : 192.168.10.155
m4 : 192.168.10.225
masque 24 bits: m1, m2 , m3 et m4 meme reseau
masque 25 bits :
bit 25 de M1 est 0 car 10 s'ecrit 00001010
bit 25 de M2 est 0 car 125 s'ecrit 01111101
bit 25 de M3 est 1 car 155 s'ecrit 10011011
bit 25 de M4 est 1 car 225 s'ecrit 11100001
M1 et M2 dans un meme S/reseau
M3 et M4 dans un autre S/reseau
masque de 26 bits: chacune est dans un rseau a part.

Exemple 17.

Exemples de rseau avec 254 machines et de deux sous rseaux de 126

machines chacun, ce dernier cas ncessite un bit supplmentaire pour le masque. Deux
bits suplmentaires sont ncessaires pour faire 4 sous-rseaux , etc...

Masque

Adr. Rseau

Adr.Machines

Adr. Diusion

24 bits

192.168.10.0

192.168.10.1 254

192.168.10.255

25 bits

192.168.10.0

192.168.10.1 126

192.168.10.127

192.168.10.128

192.168.10.129 254

192.168.10.255

Remarque 18. Les commandes suivantes ajoutes au chier interface, personnalise le

routage, voir le chier exemple :


/usr/share/doc/ifupdown/examples/network-interfaces.gz. Les regles sont lues dans
l'ordre, si la premiere n'est pas verie on passe a la deuxieme, la regle par default doit
etre la derniere. Dans l'exemple suivant, on n'utilise le gw 192.168.1.200, que si le
reseau est dierent de 192.168.1.128 ;

up route add -net 192.168.1.128 netmask 255.255.255.128 gw 192.168.1.2


up route add default gw 192.168.1.200

Exemple 19.

Les machines d'adresse 192.168.10.10 et 192.168.10.175 peuvent se co-

muniquer avec le masque 255.255.255.0, car la partie controle est 192.168.10, le dernier
octet etant a 0 , n est pas concerne. Par controle elle ne peuvent le faire avec le masque
255.255.255.128, en eet le premier bit (128 en binaire est : 1000 0000) du quatrieme
octet est aussi controle, dans ce cas 10 a le premier bit a 0, par contre 175 son bit est
1.

LinuxIntro

Belahcene

11 dcembre 2014

4.2.

Cration de sous Rseaux

Page 40

4.2.1 Conguration de Passerelle


Pour changer de rseaux, il est ncessaire d'utiliser une passerelle. Imaginer une passerelle
comme un couloir dans une maison, il permet de passer d'une chambre a une autre, ce
qui veut aussi dire que chaque chambre a un acces sur le couloir. Ainsi la passerelle doit
avoir une adresse dans le premier reseau et une autre dans le deuxieme.

Exemple 20.

Considrons 2 sous rseaux avec les adresses 192.168.10.0 et 192.168.20.0

avec le masque 255.255.255.0. La machine d'un sous reseau ne peut acceder directement
a une machine d'un autre. La passerelle doit avoir 2 cartes avec les adresses par exemple
192.168.10.1 et 192.168.20.1, le role de cette passerelle et de faire suivre  forwarding 
les paquets d'une carte a une autre.
Ajout de passerelle chaud dans le noyau sans sauvegarder pour prochain boot ou
relance du service networking :

route add default gw 192.168.10.1


Lancer la commande

route -n pour voir le resultat de la commande precedante.

Destination Passerelle Genmask Indic Metric Ref Use Iface


192.168.10.0 0.0.0.0
255.255.255.0 U 0 0 0 eth0
0.0.0.0
192.168.10.1
0.0.0.0
UG 0 0 0 eth0

La premiere ligne signie que l'acces au reseau 192.168.10.0 se fait dirctement a travers
la carte reseau eth0. La deuxieme, veut dire, par defaut , tout ce qui n est pas dans le
reseau precendent est envoye a travers la carte eth0 a la machine passerelle 192.168.10.1.
Pour rendre permanente toutes ces informations les stocke dans le chier /etc/network/interfaces. Editer ce chier pour voir les informations enregistrees a l'installation.
Pour rendre actif le  Forwarding  mettre a 1 (par defaut elle est a 0) la variable
/proc/sys/net/ipv4/ip_forward, a chaud avec la commande ,

sysctl -w net.ipv4.ip_forward=1
De faon permanente mettre dans le chier

net.ipv4.ip_forward=1

/etc/sysctl.conf

4.2.2 Filtrage des adresses


Pour que le  Forwarding  se fasse correctement il faut que la passerelle soit declaree
sur les machines clientes qui communiquent, c'est a dire dans les deux sens. Comme
les machines en communications (A et B) ne sont pas dans le meme reseau, A ne peut
connaitre B qu'a travers une passerelle, de meme B ne connait A qu'a travers une
passerelle. Dans l'exemple de la gure (4.2). La machine 1 communique avec la machine
2 du fournisseur 2 a travers le passerelle locale puis le fournisseur1. Ce dernier declare
sa passerelle fournisseur 2, et non pas notre rseau locale.
Comment alors la machine 2 pourra t elle trouver le chemin vers la machine 1 et lui
repondre ? On utilise alors le  Masquerading . C'est a dire on masque l'adresse de la
machine 1 par l'adresse de la passerelle qui, elle est connue du fournisseur 1, puisque la
passerelle et le fournisseur 1 sont dans le mme rseau. On dit qu'on translate (

-t nat

) les adresses. Voir pour des dtails les rewalls. Retenons pour l'instant la commande
utiliser :

LinuxIntro

Belahcene

11 dcembre 2014

4.2.

Cration de sous Rseaux

Page 41

Reseau Local
Machine1

Fournisseur1

11111
00000
00000
11111
00000
11111
00000
11111

192.168.10.10

192.168.10.1

193.194.120.12

Fournisseur2

193.194.120.15

23.12.11.120

Passerelle

Figure 4.2  Passerelle


iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
On fait ici la translation d'adresse sur la carte en sortie eth1, en cachant les adresses
locales, c'est a dire tous les paquets sortant par eth1 prennent l'adresse de cette derniere.

iptables -t nat -L permet de


-F permet de vider les regles de translation.

La commande

lister les regles (-L) et

iptables -t nat

Notons que cette commande est lance a chaud sur le noyau, pour la rendre permamante
on peut utiliser un script qui la lance au demarrage. On peut utiliser la procedure
suivante :
1. On ecrit la commande dans un chier par exemple /etc/init.d/runIptable.sh
2. Le rendre executable chmod +x /etc/init.d/runIptable.sh
3. Creer un lien dans /etc/rc2.d vers ce chier :
 cd /etc/rc2.d ; ln -s ../init.d/runIptable.sh S90runIp
Au dmarrage

le noyau chargera la commande iptables.

L'adresse du DNS est stocke dans le chier de rsolution des adresses : /etc/resolv.conf

netselect -vv url1 url2 donne le site le plus proche parmi les arguments, ici entre
url1 et url2

1. On suppose ici que le niveau de fonctionnement est 2

LinuxIntro

Belahcene

11 dcembre 2014

4.3.

Le Serveur ssh

Page 42

4.3 Le Serveur ssh


Remplace le telnet avec la scurit dans le transfert de mot de passe, voir le chier
/etc/ssh/sshd_cong, pour modier si ncessaire les autorisation d'exporter de
graphique

for i in $(seq 210 223); do ping -c 2 192.168.10.$i; done


S'il est install, on trouve le script qui permet l'arrt/dmarrage dans /etc/init.d. Dans
les rpertoires /etc/rcS.d et /etc/rc2.d ou /etc/rc5.d (niveau de fonctionnement : /etc/inittab) on met les liens avec ln -s vers les scripts de dmarrage.
Dmonstration. /etc/init.d/ssh stop, puis start pour le relancer. Le supprimer de /etc/rc5.d/S77ssh

permet de l'enlever du dmarrage automatique. La commande

rm /etc/rc5.d/S77ssh
supprime le lien, pour ne pas le lancer au dmarrage. Pour l'arrter chaud

/etc/init.d/ssh stop
ln -s /etc/init.d/ssh /etc/rc5.d/S79ssh
S : start pour lancer, 79 indique l'ordre d'excution des services, n'a de l'importance que
s'il doit tre excut aprs un autre service.
Conguration du ssh server : pour autoriser le transfert du graphisme, mettre a yes le
X11Forwarding dans le chier /etc/ssh/sshd.cong, ou a no pour interdir le transfert du
graphisme.
A la premiere connection sur le serveur ssh, ce dernier presente son empreinte ou identite,
ainsi le client peut verier si necessaire que la cl publique

prsente par le serveur est

bien sa cl publique... sinon le client risque de se connecter un faux serveur qui aurait
usurp l'adresse IP du vrai serveur.
Essayer un acces sur le serveur puis lancer une commande qui ouvre une fentre par
exemple gedit

ssh user@192.168.10.170
Refaire la connection avec l'option -X, et ressayer de nouveau gedit. Une autre option
interessante est de lancer une commande a distance sans se loger comme par exemple

ssh -X user@192.168.10.170 "gedit --display=:0.0"


Ouvrir le chier /etc/ssh/sshd_cong, verier quelque option, par exemple ne pas
accepeter le login avec root  PermitRootLogin no  et ne pas admettre une connection
sans password,  PermitEmptyPasswords no .

ssh -l root 192.168.10.170 "echo -e 'l2009\nl2009'


> f.txt; passwd < f.txt "
Cette commande permet de changer le mot de passe root sur la machine 192.168.10.170,
le nouveau mot de passe est l2009.

2. voir notre document sur la securite des serveurs

LinuxIntro

Belahcene

11 dcembre 2014

4.4.

Exercices

Page 43

4.4 Exercices
1. Soient les sous rseaux 192.168.10.0, 192.168.142.0 et 192.168.20.0 et les machines
M1 :192.168.10.15, M2 :192.168.10.32, N1 :192.168.20.65 et N2 :192.168.142.20.
Est ce que les machines N1, N2, M1 et M2 se voient directement avec le masque
255.255.255.0.
2. Mme question pour le masque 255.255.128.0 ? Quel est le masque qui clate
le rseau 192.168.0.0 en 8 sous rseaux et quelles sont les plages d'adresses des
machines, de diusion et de rseaux.
3. Les connections peuvent elles se faire entre M1 :192.168.40.10/24, M2 :192.168.50.10/21
et M3 : 192.168.60.10/20. Expliquer.
4. Crer des alias votre carte rseau pour tre dans 2 rseaux dirents : 192.168.128.0
et 192.168.0.0, par exemple 192.168.10.10 et 192.168.210.10. Utiliser le chier de
congurations /etc/network/interfaces (sauvegarder le chier initial).
5. Faire de votre machine une passerelle, si vous avez une seule carte utilisez les
alias.
a) On suppose que vos voisins sont dans 2 sous-rseaux (M1 : 192.168.10.10/25
et M2 : 192.168.10.150/25) et ne peuvent se voir qu' travers votre passerelle.
Congurer votre machine passerelle.
b) on suppose que M2 ne declare pas de passerelle , faire en sorte que M1 puisse
acceder M2. M2 peut elle aller sur M1 ?
6. Congurer le serveur ssh de sorte qu'il n'y est pas d'accces root, que le temps d'essai ne depasse pas une minute. Activer l'acces sans password, refuser le transfert
de graphisme. Refaire en inversant ces autorisations.
7. Congurer le serveur ssh de sorte qu'il n y est pas d'accces root, que le temps
d'essai ne depasse pas une minute et pas admettre d'acces sans password, refuser
le transfert de graphisme. refaire en autorisant tout cela.

LinuxIntro

Belahcene

11 dcembre 2014

Вам также может понравиться