SlideShare uma empresa Scribd logo
1 de 78
Baixar para ler offline
1
Encadré par :
Mme S.ELFILALI
Réalisé par :
NAJIHI Soukaina
AJANKAR Soukaina
BOUJADI Soukaina
ABOUNASR Meryem
2
Remerciements
Nous souhaitons adresser nos
remerciements les plus sincères à notre
chère professeure Mme Sanaa ELFILALI qui
nous a encadrées avec patience durant la
réalisation de ce travail. Ses conseils nous
ont été bien utiles ; Toujours disponible et
enthousiaste elle nous a beaucoup aidé. Et
nous tenons à associer à ces
remerciements toute personne ayant
contribué, de près ou de loin, à la réalisation
de ce travail.
3
Afin d’appliquer les méthodologies et les notions
enseignées par notre professeure Mme S.El FILALI . Nous devons
réaliser ce Travail qui a pour but d’approfondir les
connaissances acquises durant notre scolarité et de favoriser le
travail en groupe.
Le projet que nous devons réaliser est un tutorial contenant
tous ce qui concerne les Travaux pratiques.
Nous avons suivis une démarche bien détaillée afin de permettre
à l’étudiant de bien maitriser cette matière.
Notre rapport se structure de la façon suivante :
Tout d'abord, nous présentons l’énoncé des exercices. Puis, nous
présentons sa syntaxe, ainsi que son objectif et ensuite ses
solutions. Et enfin des notes nous expliquons comment nous
pouvons développer nos connaissances
4
Un terminal Unix ? Quoi qu'est-ce ?
C'est toute la base d'Unix : une fenêtre dans laquelle s'exécute un shell qui affiche
un prompt :
pubuntu@pubuntu:~$ par exemple. On tape une commande (ls -l -a par exemple),
on valide avec [Entrée] : le shell lance alors le programme (ici: ls), en lui passant
des paramètres (ici -l et -a). Le programme s'exécute, affiche des résultats (qu'il vaut
mieux lire, ce n'est pas pour rien qu'il les affiche), voire un message d'erreur
(remarque encore plus vraie), et (espérons-le) se termine. Le prompt s'affiche de
nouveau pour taper la commande suivante.
Comment le lance-t-on ?
Sous Unix (que ce soit Solaris en salle 106 ou Linux en salles 109 112 ou 002 ou
n'importe où en stage où ils travaillent sous Unix), il faut trouver un bouton ou un
item dans un menu qui ressemble à un écran noir, avec parfois un pingouin ou un
coquillage (shell) en superposition, appelé Term ou XTerm, ou Rxvt, ou Terminal,
Console...
5
Exercice 1 :
Objectifs :
Comment ca marche ?
 La commande « touch » :
La commande touch permet de créer des fichiers.
1) Dans votre répertoire courant, créez en une commande les fichiers
suivants: annee1Annee2 annee4 annee45 annee41 annee510 en utilisant
la commande touch
2) Lister tous les fichiers
 Se terminant par 5 ;
 Commençant par annee4 ;
 Commençant par annee4 et de 7 caractères ;
 Commençant par annee et se terminant par chiffre numérique ;
 Contenant la chaîne ann ;
 Commençant par a ou A.
3) Créer les répertoires Year et tmp dans votre répertoire courant, en une
commande déplacez les fichiers précédemment créés dans le répertoire
Year.
4) Copier les fichiers dont l'avant dernier caractère est un 4 ou 1 dans le
répertoire tmp en une seule commande.
5) Répéter la commande de la question 4 en utilisant l'option i
6) Répéter la commande de la question 4 en utilisant l'option f
7) en une seule commande vider le contenue de votre répertoire courant
(travail).
 Créé des fichiers et des répertoires.
 Lister des fichiers.
 Copier et déplacer des fichiers.
 Savoir les différentes options du cp.
 Vider le contenue du répertoire courant.
6
Syntaxe :
$touch [Nom du fichier]
Le signe > aussi permet de créer un fichier.
 La commande « ls » :
ls liste les répertoires et les fichiers précisés dans noms. Par défaut, la sortie est
envoyée à l'écran par ordre alphabétique. Les options déterminent les informations à
afficher et présentation de l'affichage. Sans options, ls n'envoie que le nom des
fichiers. Si noms n'est pas précisé, c'est le répertoire courant qui est listé.
Syntaxe :
$ ls [options] [noms]
-R Traitement récursif
-a Tous les fichiers (y compris ceux qui commencent par un
point)
-d Affiche le nom des répertoires sans leur contenu
-l Format long (avec beaucoup de détails)
-nom est le nom d'un fichier ou d'un répertoire (avec ou sans
méta caractères)
7
 La commande « cp » :
La commande cp copie le contenu de fichier1 dans fichier2 ;ou bien elle copie
source1 et source2 (etc...) dans répertoire .
Syntaxe :
cp [-i] [-p] fichier1 fichier2
cp [-i] [-p] [-r] source1 [source2...] répertoire
-i mode interactif, demande la confirmation avant écrasement.
-p conserve les dates du fichier source.
-r copies récursives de répertoires.
Source X représente le nom des fichiers ou répertoires à copier.
Attention ! Pour pouvoir copier un fichier/répertoire, vous devez avoir les
droits suivants :
=>droits de lecture du fichier à copier ;
=>droits d'exécution sur le répertoire contenant le fichier à copier ;
=>droits d'écriture sur le répertoire de destination.
 La commande « mkdir » :
La commande mkdir créé le répertoire spécifié sur la ligne de commande
(nouveau_répertoire ). Si l'un des répertoires intermédiaires n'existe pas, la
commande retourne un code d'erreur (exit statuts) sans créer le répertoire (sauf si
l'option -p est spécifiée).
Syntaxe :
mkdir [-p] nouveau_répertoire
-p permet de créer tous les répertoires intermédiaires qui
n'existeraient pas.
-répertoire représente le nom du répertoire à créer. C'est un
argument obligatoire.
Attention ! Pour pouvoir créer un répertoire, le répertoire d'origine doit
avoir les droits en écriture positionnés.
8
 La commande « rmdir » :
La commande rmdir supprime le répertoire spécifié sur la ligne de commande
(répertoire). Si il existe des fichiers ou des sous répertoires, la commande retournera
un code d'erreur (exit statuts).
Syntaxe :
rmdir [-p] [-s] répertoire
-p permet de détruire tous les sous-répertoires vides.
-s mode silencieux (aucun affichage).
répertoire représente le nom du répertoire à détruire. C'est un
argument obligatoire.
Attention ! Pour pouvoir supprimer un répertoire, le répertoire père doit
avoir les droits en écriture Positionnés.
 La commande « rm » :
La commande rm supprime les fichiers spécifiés sur la ligne de commande. Si vous
n'avez pas les droits d'écriture sur fichier1, alors rm vous demandera de confirmer
votre action ; la réponse oui (y) détruira quand même le fichier (sous réserve d'avoir
les droits d'écriture sur le répertoire).
Syntaxe :
rm [-f] [-i] [-r] fichier1 [fichier2...]
-i mode interactif, demande la confirmation avant chaque
suppression.
-f force la commande (aucune confirmation).
-r récursif (détruit tous les sous répertoires. ATTENTION)
La solution :
1) touch annee1 Annee2 annee4 annee45 annee41 annee510
2)
- $ls *5
- $ls annee4*
9
- $ls annee4?
- $ls annee[0-9]
- $ls *ann*
- $ls [a,A]* ou ls [aA]*
3) $mkdir -p Year tmp et $ mv [aA]* Year
4) $cp Year/* [41]? tmp
5) $cp -i *[1 4]? Year tmp
6) $cp -f *[1 4]? Year tmp
7) rm -r smis4
Exercice 2 :
Soit l’arborescence suivante :
/home/userxG
x
F1 F2
F11 F12 F13 F21 F22 F23
10
1) Dans votre répertoire personnel, crée en une seul commande les
répertoires. Ci-dessus en utilisant la commande mkdir avec l’option –P.
2) Créer le fichier ch1 dans le répertoire F22.
3) Copier ch1 dans F11 sous le nom ch2.
4) Lier ch2 à ch4 dans F13.
5) Modifier le fichier ch2 en utilisant la commande cat.
6) Afficher le contenue du fichier ch4 .
7) Supprimer le fichier ch2.
8) Quel est le nombre de liens pour chacun des fichiers suivants :ch1, ch4 .
9) Supprimer de deux façon les deux arborescences suivantes :F1 et F2
Objectifs :
Comment ca marche ?
 La commande « cat » :
La commande cat visualise et/ou concatène les fichiers spécifiés sur la ligne de
commande. Par défaut, cat lit sur l'entrée standard et affiche le résultat sur la sortie
standard.
Syntaxe :
$ cat [fichier...]
 Utiliser les commandes ln et savoir la différence
entre un lien dur et un lien symbolique.
 Utiliser la commande mkdir avec l’option –p.
 Utiliser la commande cat pour afficher ou modifier
le contenu d’un fichier
11
 La commande « cd » :
La commande cd permet de changer le répertoire de travail. Si répertoire n'est pas
précisé, alors le nouveau répertoire de travail sera le répertoire de connexion
($HOME).
Syntaxe :
$ cd [répertoire]
Remarque :
La commande cd, comme toutes les commandes utilisant des répertoires,
permet de spécifier deux types de chemins :

et
utilisent notamment le répertoire '..' (Répertoire père).
 Exemple :
cd ../rep1
 les chemins absolus : il faut spécifier toute l'arborescence depuis la
racine.
 Exemple :
cd /home/rep1
12
 La commande « ln » :
Création d’un lien sur un fichier ou un répertoire. Un lien est un moyen
d'accéder à un même fichier ou un répertoire sous plusieurs noms ou à partir
de plusieurs répertoires. Attention un lien n'est pas une copie: si vous
modifiez le fichier alors tous les liens sur ce fichier seront modifiés.
Il existe deux sortes de liens: le lien physique et le lien symbolique (avec
l'option -s). Le lien physique ne peut adresser que des fichiers, alors que le
lien symbolique peut aussi lier des répertoires.
Dans le cas de lien physique, pour effacer le fichier, vous devez effacer tous les
liens qui pointent sur ce fichier. Par contre pour des liens symboliques, vous pouvez
effacer le fichier sans effacer les liens, mais alors ceux-ci seront invalides.
Syntaxe :
ln [-s] source destination
13
Solution :
1)
La ligne de commande mkdir F1/F11 peut fonctionner et créer le sous répertoire
F11 à condition que F1 existe.
2)
On peut créer le fichier ch1 avec la commande cat en tapant
Ensuite on tape ctrl+d pour sortir
3)
Dans ce cas là le fichier ch1 sera copier et renommer
4)
14
Dans ce cas là les contenus sont identiques. Les noms de fichiers ch4 et ch2
renvoient au même endroit sur le disque dur. Si on refait la même question avec
l’option –s alors on aura un lien symbolique.
ln –s F1/F11/CH2 F1/F13/ch4
Le contenu semble être identique, cependant, a propos du ch4, le disque dur ne
contient comme information que le nom du fichier sur lequel le lien pointe (ch2).
Dans quel cas ne peut-on pas faire de lien physique ?
On ne peut pas faire de lien dur vers un répertoire. Dans ce cas, il faut donc utiliser
un lien symbolique
5)
6)
Les contenues de ch4 et ch2 sont identiques.
7)
8)
15
la commande ls affiche après les droits d’accès d'un fichier le nombre de « noms »
que ce fichier possède : chaque création d'un nouveau lien en dur incrémente
(augmente) donc ce nombre d'une unité.
9)
La suppression est récursive c’est-à-dire que les répertoires sont supprimés ainsi
que leurs sous répertoires, etc.
Ça fonctionne pas parce que le répertoire F2 n’est pas vide .pour ce faire on peut
soit vider le contenue du répertoire F2 soit utiliser la commande rm.
Exercice 4 :
1) Dans votre répertoire courant, créez en une commande les fichiers
suivant : annee1 Annee2 annee4 annee45 annee41 annee510 en utilisant
la commande touch.
2) Dans votre répertoire courant, créez le répertoire R
3) Dans votre répertoire courant, copier la liste des fichiers et leur
attribues dont l'avant dernier caractère est un 4 ou 1 dans le fichier ch1
dans R.
4) Afficher le contenue de ch1.
5) Copier la date du système dans le fichier ch1 dans R.
6) Afficher le contenue de ch1.
7) Ajouter au contenu du fichier ch1, la liste des fichiers et leur attribues
dont l'avant dernier caractère est un 4 ou 1.
8) Que se passe-t-il si vous taper les commandes suivantes :
ls –l [Aa]* > ch2
wc < ch2
16
ls -l [Aa]* | wc
wc (imprime le nombre de lignes, de mots et de caractères fournis à
l'entrée standard .
Objectifs :
Comment ca marche ?
 Les flux de redirections:
Sous les systèmes Unix, chaque processus possède trois sortes de flux de données:
 l'entrée standard, (identifiant 0) qui permet d'envoyer des données au
programme,
 la sortie standard (identifiant 1) qui est utilisée pour afficher les résultats d'un
programme,
 la sortie standard des erreurs, (identifiant 2) qui permet d'afficher les
messages correspondant aux erreurs survenues lors de l'exécution du
programme.
Par défaut les deux flux de sortie sont envoyés sur le terminal de l'utilisateur (écran)
et l'entrée prend ses données depuis le clavier.
 Savoir les différents types des flux de
redirections
 Utiliser la commande « ls » avec l'option -l
 Utilisation de la commande « wc »
17
Figure 1
Les trois flux standards peuvent être redirigés vers d'autres sources autres que le
clavier ou l'écran. Par exemple, on peut ordonner à un processus de diriger sa
sortie standard vers un fichier. Pour cela, les numéros des descripteurs (0
:l'entrée standard ,1 : sortie standard et 2 :sortie d'erreurs )de flux sont utilisés.
 Rediriger la sortie standard
Quand on exécute une commande, le shell affiche le résultat sur la console de
sortie (l'écran par défaut). On peut rediriger cette sortie vers un fichier en utilisant
le signe >.
! Si le fichier existe déjà, il est écrasé sans demande de confirmation.
 Concaténation
Ajouter les sorties d'un processus à la fin fichier et le crée s'il n'existe pas. en
utilisant le double signe >>.
 Rediriger la sortie d'erreur standard
La redirection du flux de sortie d'erreur standard utilise les même signes, (c'est-à-
dire > et >>) mais précédés de l'identifiant du flux 2 (voir figure 1).
18
Exemple:
 Rediriger l'entrée standard
Rediriger l'entrée standard permet d'entrer des données provenant d'un fichier au
lieu du clavier.
Autrement dit envoi le contenu d'un fichier à une commande.
Exemple cat < fichier (afficher le contenu de ce fichier)
 Les tubes (pipe )
Le pipe | permet de rediriger la sortie standard d'une commande vers l'entrée
standard d'une autre commande.
Syntaxe: Commande 1 | commande 2
Vous pouvez écrire pipe | en combinant les touches Alt Gr + 6
 ls -l affiche tous les attributs d’un fichier.
 La commande « wc » :
La commande wc compte le nombre de lignes, mots, ou caractères d'un fichier texte
.Fichier n'est passé en paramètre, c'est l’entrée standard qui sera lue. Si aucune
option n'est précisée, alors wc compte le nombre de lignes, mots, et caractères du
fichier.
19
Syntaxe:
wc [option] [fichier...]
-l précise que c'est le nombre de lignes qui doit être compté
-w précise que c'est le nombre de mots qui doit être compté
-c précise que c'est le nombre de caractères qui doit être compté
Solution :
Mon répertoire courant est exercice3
1) Avec la commandes touch j'ai crée les fichiers annee1 annee2 ….
2) Avec la commandes mkdir j'ai créé le répertoire R.
$ mkdir R
3) rediriger la sortie standard vers un fichier.
La sortie standard de la commande ls –l:
20
Maintenait je redirige cette sortie standard vers le fichier ch1
4) afficher le contenu de ch1.
5) Copie la date de système en ch1
6) le contenu de ch1 est écrasé et remplacé par la date de système.
7) Ajouter au contenu du fichier c'est-à-dire utiliser le signe >>.
8) ls –l [Aa]* > ch2 : copie la liste des fichiers et leur attributs commence par a ou
A dans le fichier ch2.
21
wc < ch2 : compte le nombre de lignes, mots, et caractères du fichier ch2
ls -l [Aa]* | wc : permet de rediriger la sortie standard de commande ls -l
[aA]* vers l'entrée standard de la commande wc.
C'est-à-dire compter le nombre de lignes, mots, et caractères de tous les fichiers et
leurs attributs commence par a ou A.
Conclusion de question 8:
La commande ls -l [Aa]* | wc est équivalent à les deux commandes
ls –l [Aa]* > ch2 et wc < ch2.
Exercice 4 :
1) Ouvrer vi et tapé le texte suivant :
Comment se connecter sous UNIX ?
Le premier concept important à garder en mémoire avant de travailler
avec UNIX ou sa version PC Linux est qu’il s’agit d’un système multi-
utilisateurs. L’accès à la machine UNIX doit donc être contrôlé. Pour être
enregistré sous UNIX, il faut avoir un compte utilisateur (login, password)
crée par l’administrateur système. L’administrateur est un super
utilisateur qui a les droits de gestion du système (login root ou su).
2) Enregistrer ce fichier sous le nom de fiche1.
3) Ajouter le texte suivant :
22
Objectifs :
Comment ca marche ?
 L’editeur de texte vi
Login : (Taper votre nom d’utilisateur)
Le système affiche alors le message :
password : (Vous devez alors rentrer votre mot de passe)
Trouver un bon mot de passe : Voici quelques conseils qui vous
permettront de trouver un mot de passe le plus sûr possible.
 Utiliser des majuscules et des minuscules.
 Utiliser des chiffres et des caractères spéciaux.
 7 à 8 caractères de long
 Concaténer des mots pour en créer un autre
4) Quitter vi en sauvegardant les modifications.
5) Rechercher toutes les lignes qui commence par le ou la.
6) Rechercher toutes les lignes qui contiennent des caractères écrits en
majuscule.
7) Rechercher dans tout le texte les occurrences d’utilisateur et remplacer
les par user.
8) Rechercher toutes les occurrences de * dans le texte.
 Savoir comment utiliser la commande vi.
 Utiliser la commande « grep » pour chercher et
afficher des lignes tout en utilisant ses options.
 Utilisation de la commande « sed » pour remplacer
une chaine par une autre.
23
 La commande «grep » :
La commande « grep » est une commande de recherche qui permet de
rechercher des lignes dans un fichier ou plusieurs.
Syntaxe :
$ grep[-civw] "modèle de critère" [fichier …]
-c (count) compte les lignes sans les afficher
-i considère les majuscules et minuscules de façon
identique
-v (reverse) cherche les lignes ne correspondant
pas au critère
-w (word) cherche modèle critère de comme un
mot isolé
24
 La commande «sed » :
Commande de substitution
La commande sed permet d'effectuer des substitutions suivant
La syntaxe :
sed [adresse]s/expr régulière/remplacement/options.
Attention ! Contrairement à ce que l'on pourrait attendre, cette
commande laisse passer toutes les lignes et ne sélectionne pas celles
qui ont satisfait l'expression régulière et donc subi la substitution.
Pour sélectionner, voir la commande de destruction.
Options
 Sans précision, la commande ne s'applique qu'à la 1ère occurrence de
chaque ligne.
 0...9 : indique que la substitution ne s'applique qu'à la nième occurrence
 g : effectue les modifications sur toutes les occurrences trouvées.
Exemple :
sed s/moi/toi/g fich.moi > fich.toi
le fichier fich.moi est parcouru, à chaque occurrence de "moi", ce mot est
remplacé par "toi" et le nouveau fichier est sauvegardé sous le nom fich.toi
Délimiteur :
Le slash / étant très utilisé au niveau du shell comme
séparateur de niveau de répertoire, il est possible d'utiliser à
la place tout autre caractère comme #
sed s#/home#/rep_perso#g /etc/passwd > /tmp/passwd.new
25
Destruction ou sélection
 Cette option permet de filtrer les lignes qui satisfont une expression régulière.
Ces lignes ne sont pas détruites dans le fichier d'origine, mais ne sont pas
transmise en sortie.
 Comment modifier alors le fichier à traiter ?
 cp fichier copie
 sed /.../d copie
 Par exemple, pour détruire toutes les lignes vide d'un fichier :
sed /^$/d
 Remplacement dans le VI :
La commande s/text_anc/texte_nouveau/g remplace les occurences de texte_anc par
texte_nouveau dans tout (à cause de g) le fichier courant.
Le point représente "tout caractère". L'astérisque désigne 0 ou n occurences.
L'accent circonflexe désigne le début de ligne. $ désigne la fin de ligne, [ ...] désigne un
intervalle et [^...] l'intervalle complémentaire, * désigne une répétition de caractères.
n1,n2s/chaine1/chaine2/g : idem pour les lignes de 1 à n2 ; ex. : 1,$s/avoir/être/g
 Recherche dans le VI :
Pour rechercher un mot dans un document, il vous suffit (en mode normal) de taper / suivi de
la chaîne à rechercher, puis de valider par la touche entrée. Il est alors possible d'aller
d'occurrence en occurrence grâce à la touche n.
La solution :
1) vi
2) : w fiche1
3) vi fiche1
4) : x
5) - Vi : / ^ [Ll] [ae]
26
-Terminal $grep “[Ll][ea]“ fiche1
6) – Vi :/ [A-Z]
-Terminal $grep “[A-Z]“ fiche1
7) – Vi : 0,$ S/utilisateur/User/gci
-Terminal $sed ’s/utilisateur/user/g’ fiche1
27
8) – Vi :/*
-Terminal $grep “*“ fiche1
Note
Il y a d’autre éditeur de texte les plus célèbre sont :
Nano, Im et Emacs
Entre ces trois le plus facile a utiliser c’est Nano
 Nano Le nom complet de Nano est GNU nano, en référence au projet
GNU. Il s'agit d'un logiciel qui s'inspire de pico un éditeur de texte plus
ancien qui se voulait lui aussi très simple d'utilisation. Pour démarrer le
logiciel, il vous suffit simplement de taper nano dans la console.
 Emacs est un éditeur pleine page extensible, qui a de nombreuses
facilités interactives, qui possède une barre de menus et qui est toujours
en mode insertion. Il existe un grand frère encore plus convivial :
xemacs
 Vim est un éditeur de texte plus évolue.
28
Exercice 5 :
1) Ouvrer vi et tapé le texte suivant:
Ali:13:022568779:Casablanca
Omar:55:022556378:Rabat
Adil:56:039884596:Tanger
Noureddine:80:022998766:Fes
Zakaria:89:023363398:Marrakech
Reda:79:022225262:Oujda
Mohamed:72:023055566:Eljadida
Boubker:72:022088089:Tanger
Khalid:79:022056595:Casablanca
Mustapha:89:022358856:Fes
Aziz:56:022569676:Eljadida
2) Sauvegarder ce contenu sous le nom carnet-adresse.
3) Ouvrir vi en éditant le fichier carnet-adresse et ajouter le texte suivant :
Saloua:80:022151113:Marrakech
Fatima:55:022198922:Rabat
Halima:13:022343533:Oujda
Nadia:56:022990939:Eljadida
Ilham:80:022897444:Fes
Fatiha:79:022568222:Oujda
Mina:13:023256978:Rabat
Khadija:56:055569955:Marrakech
Saadia:89:039568456:Casablanca
Imane:55:055562378:Tanger
Madiha:72:039256696:Oujda
4) Sauvegarder les modifications.
Le fichier carnet-adresse contient quatre champ : Le premier champ
représente le nom, le deuxième le code du département, le troisième le
numéro de téléphone et le dernier la ville. Attention le premier champ est
noté 0, le deuxième 1, ainsi de suite.
5) Compter le nombre ligne, mot et caractères du fichier carnet-adresse.
6) Créer le fichier carnet-adresseA qui contient les 10 lignes premières du
fichier carnet-adresse.
7) Ranger toutes les lignes par ordre alphabétique en effectuant un tri sur le
premier caractère du fichier carnet-adresse.
8) Effectuer un tri inversé sur le deuxième champ
9) Effectuer un tri sur le deuxième caractère du champ Numéro 4 (ville)
10) Créer en une seule commande le fichier carnet-adresse-tri qui contient les
10 premières lignes du tri sur le champ Numéro 4 (ville)
11) Extraire les 10 premiers caractères de chaque ligne du fichier carnet-
adresse.
12) Créer en une seule commande le fichier carnet-adresseB qui contient
29
deux champs de toutes les lignes.
13) Créer en une seule commande le fichier carnet-adresseC qui contient les
10 premiers caractères de toutes les lignes.
Objectifs :
Comment ca marche ?
 La commande «head» :
La commande head affiche les n premières lignes d'un fichier
Syntaxe :
head [-n] [fichier...]
-n nombre de lignes à afficher depuis le début/la fin de
fichier
+n affichage à partir de la ligne numéro n
-f attente de nouvelles lignes (sortie par Ctrl-c)
 La commande « sort » :
La commande sort trie les lignes des fichiers en arguments et affiche le résultat à
l'écran. Le clavier est lu si fichier est omis. Par défaut sort effectue un tri par ordre
alphabétique; mais les options
.
 Découvrir la commande “head” et ses options.
 Découvrir la commande “sort” et ses options.
 Découvrir la commande “cut” et ses options.
30
Syntaxe :
sort [-ufnr] [-o fic] [fichier...]
-u permet de n'afficher qu'une seule fois les lignes
multiples
-f ne différencie pas les minuscules et MAJUSCULES
-n effectue un tri numérique
-r ordre décroissant
-o fic enregistre la sortie dans fic
 La commande « cut » :
La commande cut de couper une partie d’un fichier et conserver uniquement une
partie de chaque ligne
Syntaxe :
cut [option] fichier
-c Extraire suivant le nombre de caractères
-f Extraire suivant le nombre de
champs
-dx Le caractère x est le séparateur de
champs
La solution :
1) vi  puis on tape i  pour passer au mode insertion
31
2) Premièrement on clique sur la touche Echap pour passer au mode commande
après on sauvegarde notre fichier par :w carnet-adresse
3) vi carnet-adresse
i
4):w où bien :wq pour sauvegarder et quitter le vi au meme temps .
5)wc carnet-adresse
6)head -10 carnet-adresse > carnet-adresseA
7)sort carnet-adresse
8)sort –t: –k1 –rn carnet-adresse
9)sort –t: –k3 carnet-adresse
10)sort –t: -k3 carnet-adresse | head -10 > carnet-adresse-tri
11)cut –c 1-10 carnet-adresse
12)cut –d: -f1,3 carnet-adresse > carnet-adresseB
13)cut –c 1-10 carnet-adresse > carnet-adresseB
Exercice 6 :
Le fichier carnet-adresse de l’exercice précèdent (exercice 2) contient quatre champ : Le
premier champ représente le nom, le deuxième le code du département, le troisième le
numéro de téléphone et le dernier la ville. Attention le premier champ est noté 0, le
deuxième 1, ainsi de suite.
1) Ouvrer vi et tapé le texte suivant
13:informatique
55:comptabilité
56:commerciale
80:stock
32
89:fabrication
72:direction
79:maintenance
2) Sauvegarder ce contenu sous le nom departement.
Le fichier departement contient deux champs :
Le premier champ représente le code du département, le deuxième le nom du département,.
3) Créer en une seule commande le fichier departement-trie en effectuant un tri sur le
champ N° 1 (code du département) du fichier departement.
4) Créer en une seule commande le fichier carnet-adresse-trie en effectuant un tri sur le
champ N° 2 (code du département) du fichier carnet-adresse.
5) Faire la jointure entre les fichiers :
a) departement et carnet-adresse
b) departement-trie et carnet-adresse
c) departement et carnet-adresse-trie
d) departement-trie et carnet-adresse-trie
6) Editer le fichier departement et copier / coller tous les lignes à la fin du fichier. Et
sauvegarder les modifications dans le fichier departement-doublant.
7) Applique la commande uniq sur le tri du fichier departement-doublant pour éliminer les
lignes dupliquées.
8) Editer le fichier departement est remplace respectivement informatique, comptabilité
par info, compta. Sauvegarder les modifications dans le fichier departement-comm.
9) Applique la commande comm sur les fichiers departement et departement-comm. Pour
visualiser les lignes communes et non communes.
33
10) Applique la commande comm sur les fichiers departement et departement-doublant.
Pour visualiser les lignes communes et non commun
 Objectifs :
Comment ça marche ?
 La commande join :
La commande join permet d’effectuer une jointure de deux fichiers en fonction
d’un champ commun.les deux fichiers doivent être triés sur les champs indiqués.la
numérotation des champs démarre à 0.
Syntaxe :
$ join [-j1|2]m –tx [-o list] fichier1 fichier2
-j -j1 m champ m du fichier 1
- j1 m champ m du fichier 1
-o indique les champs que l’on souhaite
afficher.
-tx le caractère x est le séparateur de champ.
le plus simple est de prendre un exemple. Soit fich1 un fichier qui contient
 Utiliser la commande uniq : sélection/rejet de
lignes consécutives en double
 Faire la jointure entre deux fichiers
 Utilisation d’une nouvelle commande comm :
sélection/rejet de lignes communes à deux
fichiers.
34
maroc 1 2
egypt 3 4
et fich2 un fichier qui contient
maroc 1991
egupt 1992
La commande join -j1 1 fich1 fich2 genèrera
maroc 1 1991
egypt 3 1992
 La commande uniq :
La commande uniq recherche les lignes uniques ou dupliquées, à noter toutefois
qu’elle ne détecte que si de telles lignes sont adjacentes(en gros, il vaut mieux trier
le fichier avant de l’envoyer à cette commande !)
Syntaxe :
$ uniq fichier1
Sans option, la commande uniq renvoie le fichier passé en
argument en ayant enlevé les répétitions de lignes. Voici les
options disponibles :
-u N’affiche que les lignes uniqs.
-d N’affiche que ce qui n’est pas uniq.
-c Compte les lignes en double.
35
Solution :
1) vi 
i
2)
3) On suppose qu’on a quitté le vi
On redirige directement la sortie de la commande vers le fichier département-tri
4)
36
5) a)
b)
c)
37
d)
Pour faire la jointure entre deux fichiers il faut que ces derniers soient triés et avoir
un champ commun donc la question d) est la seule qui est correcte
6)
6)
38
7)
39
8)
40
9)
10)
11)
Note
La commande join est un peu plus complexe : elle permet de fusionner des fichiers
à partir d'une clef commune. join va parcourir les deux fichiers ligne à ligne et
rechercher une clef présente
41
dans les deux fichiers. La sortie sera la fusion des deux fichiers lorsque la clef est
trouvée:
Si l'on a par exemple :
Fichier1 Fichier2 => column Fichier1 Fichier2 => Sortie
key1 a key1 b key1 a b
key2 c key2 d key2 c d
key3 y keyA z
=> les lignes 1 et 2 des fichiers sont fusionnées dans la sortie. Les lignes 3 n'ont pas
de correspondance et sont donc rejetées.
Exercice 7 :
1) Dans votre répertoire de travail personnel, créer un répertoire que vous
appellerez catalogue et les fichiers suivants : fich1, fich2, fich3, prog.c, f1.c,
f2.c.
2) Quels sont les droits d’accès attribués à ces fichiers.
3) Placez les valeurs de ces droits d’accès aux fichiers suivants
fich1 : rwxrw-r--
fich2 : r—r—r--
fich3 : --x--xr--
Utilisez les deux formes symbolique et octale.
4) Déplacez vous dans le répertoire catalogue et créez un fichier fich4 non
vide.
5) Comment appeler la commandes umask pour attribuer à tous les
42
nouveaux fichiers les droits d’accès ‘rw-r--r--‘.
6) Changer les modes d’accès de tous les fichiers qui ont une extension ’.c ‘
en ‘rw-r--r--‘.
7) Même chose en notation symbolique.
8) Supprimer le mode ‘x’ pour le groupe au niveau du fichier fich3.
9) Rajoutez le mode ‘w’ pour le propriétaire et enlevez ‘r’ aux autres du
fich3
10) Changer le propriétaire et le group de ce fichier.
Objectifs :
Comment ça marche ?
 Les droits d'accès aux fichiers
Dans un système GNU/Linux, tout fichier se voit attribuer des droits pour
3 identités :
 le propriétaire (user) c'est l'utilisateur qui a créé le fichier ou
l'utilisateur que root a désigné comme propriétaire.
->Savoir c'est quoi les droits d'accès aux fichiers.
-> Comment changer les droits d'accès d'un fichier avec
ces deux commandes
 Chmod
 Umask
(En utilisant mode symbolique et mode numérique)
->Comment changer l'utilisateur et le groupe d'un fichier
(En savoir une condition importante pour les faire.)
43
 le groupe (group):qui n'est pas forcément le groupe du
propriétaire.
 les autres (others):ceux qui ne font pas partie du groupe.
Attention! L'utilisateur propriétaire et le groupe
propriétaire du fichier peuvent être indépendants La commande ls
-l nous permet d'afficher les droits d'un fichier.
Type:
- pour un fichier normal
d pour un répertoire.
l un lien.
Les trois caractères d'un bloc sont les suivants, dans l'ordre :
 r (read) : droit de lire le fichier / lister le contenu du répertoire
 w (write) : droit d'écrire dans le fichier / modifier le répertoire
(créer/supprimer des fichiers)
 x (execute) : droit d'exécuter le fichier (programme ou script) / ou
de traverser le répertoire (changer le répertoire courant).
Si l'un des droits n'est pas accordé, un tiret est affiché à sa place.
44
Modifier les droits d'accès
La commande "chmod " (abréviation de change mode)
permet de modifier les droits associés à un fichier.
Syntaxe:
 mode symbolique
chmod [option] … [qui]op<permission(s)>……FILE
Option:
-c: n'affiche que les changements réalisés.
-f : supprime la plupart des messages d'erreur.
-v : liste les fichiers en cours de modification.
-R : modifie les modes des fichiers des sous-répertoires de manière récursive
 mode numérique
Chmod [option] … MODE FILE…..
 base octal basé sur des nombres de 0 à 7.
45
 Base binaire (base 2)
Exemple:
Quelques permissions habituelles
Modifier les droits d'accès par défaut
 Rappelons les règles simples de propriété qui s'appliquent à la création
d'un fichier ou d'un répertoire:
46
 son propriétaire est l'utilisateur qui l'a créé
 son groupe est le groupe primaire de ce même utilisateur
 Mais quelles sont les permissions attribuées par défaut à
l'utilisateur propriétaire, au groupe propriétaire et à tous les
autres?
Les permissions maximales accordées par un fichier est :666 (-rw-
rw-rw-) et pour le répertoire est 777 (-rwxrwxrwx).
On peut restreindre ces permissions lors de sa création. C'est le
rôle de la commande umask de fixer les permissions masquées,
autrement dit les droits non accordés aux fichiers et répertoires
lors de leur création.
Exemple : de calcul de permissions effectives, affectées lors de la
création d'un répertoire, par un utilisateur dont le masque de protection
est 027
777 = 111 111 111 permissions maxi = rwx rwx rwx
- 027 = 000 010 111 masque de protection
= 750 = 111 101 000 permissions effectives = rwx r-x ---
 Changer le propriétaire et le groupe
La commande chown (change owner) change le propriétaire des fichiers
(fichier ou répertoire).
La commande chgrp change le groupe des fichiers.
Syntaxe :
chown [-R] [-h] utilisateur nom [...]
chgrp [-R] [-h] groupe nom [...]
-R récursif sur tous les fichiers et sous-répertoires
contenus si nom est un répertoire
-h traitement sur les liens symboliques
Nom exprime le nom d'un fichier ou d'un répertoire
utilisateur représente soit le nom de l'utilisateur, soit
son UID (User IDentification).
47
groupe représente soit le nom du groupe, soit son GID
(Group IDentification).
$ cd [répertoire]
Remarque :
Seul le root qui a le droit d'utiliser chown et chgrp.
Pour passer root :taper en terminale sudo su
Après entrer votre password
Solution :
Mon répertoire courant est exercice7:
mkdir exercice7 
cd exercice7 
1) mkdir catalogue 
touch fich1 fich2 fich3 prog.c f1.c f2.c 
2) ls –l exercice7
3) Forme symbolique :
fich1 : rwx rw- r-- : $chmod u=rwx,g=rw-,o=r-- fich1 
fich2 : r-- r-- r-- : $chmod u=r-- ,g=r--,o=r-- fich2 
48
fich3 :--x --x r-- : $chmod u=--x,g=--x,o=r-- fich3 
Forme octale:
$chmod 764 fich1 
$chmod 444 fich2 
$chmod 114 fich3 
4) cd catalogue 
cat >> fich4 
Merci Madame El filali
Ctrl d pour sortir
5) umask 022 
Commentaire :
Si je crée un nouveau fichier s'appelle fich5, comme vous
remarquer les droits d'accès sont 'rw-r--r-- ' .
6) Mode octal:
chmod 644 *c 
Mode symbolique:
chmod u=rw-,g=r--,o=r-- *c 
7) chmod g-x fich3 
49
8) chmod u-x ,o-r fich3 
9) Exemple du nom des utilisateurs :
Exemple du nom des groupes:
 Commentaire :
Comme vous remarquez, vous n'avez pas le droit de changer
l'utilisateur (même chose pour groupe) si vous êtes un simple
utilisateur .Il est nécessaire de passer en mode root (super utilisateur)
50
# : Super utilisateur
Exercice 8 :
1) Dans votre répertoire personne1, créer l’arborescence suivante :
2) Dans le répertoire F0 créez les fichiers suivants: fich01, fich02, fich03.
3) Dans le répertoire F1 créez les fichiers suivants: fich11, fich12, fich13.
4) Dans le répertoire F2 créez les fichiers suivants: fich21, fich22, fich23.
5) Dans le répertoire F3 créez les fichiers suivants: fich31, fich32, fich33.
6) Dans le répertoire F4 créez les fichiers suivants: fich41, fich42, fich43.
7) Dans le répertoire F5 créez les fichiers suivants: fich51, fich52, fich53.
51
Objectifs :
8) Dans le répertoire F6 créez les fichiers suivants: fich61, fich62, fich63.
9) Dans le répertoire F7 créez les fichiers suivants: fich71, fich72, fich73.
10) Quels sont les droits d’accés attribués aux répertoires et aux fichiers
de chaque répertoire.
11) Utilisez soit cat soit vi pour emplir respectivement les fichiers fich01,
fich11... fich71 de chaque répertoire par « bonjour fcih01 », « bonjour
fich11 », … « bonjour fich71 »
12) Placez les valeurs de ces droits d’accès aux répertoires suivants :
F0 : _ _ _ _ _ _ _ _ _
F1 : _ _ _ r _ _ _ _ _
F2 : _ _ _ _ w _ _ _ _
F3 : _ _ _ _ _ x _ _ _ _
F4 : _ _ _ r _ x _ _ _
F5 : _ _ _ _ w x _ _ _
F6 : _ _ _ r w _ _ _ _
F7 : _ _ _ r w x _ _ _
13) Appliquez les commandes ls et cd à chaque répertoire qu’est ce que
vous remarquez.
14) Dans votre répertoire du travail éditez les fichiers F0/fich01, F1/fich11,
… F7/fich71. Qu’est ce que vous remarquez.
15) Placez les valeurs de ces droits d’accès aux répertoires suivants :
F0 : _ _ _ _ _ _ _ _ _
F1 : r _ _ r _ _ _ _ _
F2 : _ w _ _ w _ _ _ _
F3 : _ _ x _ _ x _ _ _
F4 : r _ x r _ x _ _ _
F5 : _ w x _ w x _ _ _
F6 : r w _ r w _ _ _ _
F7 : r w x r w x _ _ _
16) Appliquez les commandes ls et cd à chaque répertoire. Qu’est ce que
vous remarquez ?
17) Dans votre répertoire du travail éditez les fichiers F0/fich01, F1/fich11,
… F7/fich71. Qu’est-ce que vous remarquez ?
Le but est : quand on a le droit d’utiliser les
deux commandes « cd » & « ls » ?
52
Comment ça marche ?
mkdir -p une commande qui nous permet de créer une arborescence
(des répertoires qui sont fournis en argument).
chmod permet à un propriétaire ou à l’administrateur de modifier les
droits de ces fichiers.
ls affiche les attributs d’un fichier.
ls -l affiche tous les attributs d’un fichier.
cd changement de répertoire courant
53
 cat > nom_fichier cette commande nous aide
d’ajouter des infos à nos fichiers comme le fichier
« nom_fichier ».
Solution :
4) mkdir -p Rep/F0 Rep/F1 Rep/F2 Rep/F3 Rep/F4 Rep/F5
Rep/F6 Rep/F7
5) touch Rep/F0/fich01 Rep/F0/fich02 Rep/F0/fich03 
6) touch Rep/F1/fich11 Rep/F1/fich12 Rep/F1/fich13 
7) touch Rep/F2/fich21 Rep/F2/fich22 Rep/F2/fich23 
8) touch Rep/F3/fich31 Rep/F3/fich32 Rep/F3/fich33 
9) touch Rep/F4/fich41 Rep/F4/fich42 Rep/F4/fich43 
10) touch Rep/F5/fich51 Rep/F5/fich52 Rep/F5/fich53 
11) touch Rep/F6/fich61 Rep/F6/fich62 Rep/F6/fich63 
12) touch Rep/F7/fich71 Rep/F7/fich72 Rep/F7/fich73 
54
Vérifiant la création de fichier
13) ls –l
14) vi Rep/F0/fich01  i  “bonjour fich01” :x
vi Rep/F0/fich02  i  “bonjour fich02” :x
vi Rep/F0/fich03  i  “bonjour fich03” :x
vi Rep/F1/fich11  i  “bonjour fich11” :x
vi Rep/F1/fich12  i  “bonjour fich12” :x
vi Rep/F1/fich13  i  “bonjour fich13” :x
55
vi Rep/F2/fich21  i  “bonjour fich21” :x
vi Rep/F2/fich22  i  “bonjour fich22” :x
vi Rep/F2/fich23  i  “bonjour fich23” :x
vi Rep/F3/fich31  i  “bonjour fich31” :x
vi Rep/F3/fich32  i  “bonjour fich32” :x
vi Rep/F3/fich33  i  “bonjour fich33” :x
cat > Rep/F3/fich33  “bonjour fich33”  Ctrl+D
cat > Rep/F4/fich41  “bonjour fich41”  Ctrl+D
cat > Rep/F4/fich42  “bonjour fich42”  Ctrl+D
cat > Rep/F4/fich43  “bonjour fich43”  Ctrl+D
cat > Rep/F5/fich51  “bonjour fich51”  Ctrl+D
cat > Rep/F5/fich52  “bonjour fich52”  Ctrl+D
cat > Rep/F5/fich53  “bonjour fich53”  Ctrl+D
cat > Rep/F6/fich61  “bonjour fich61”  Ctrl+D
cat > Rep/F6/fich62  “bonjour fich62”  Ctrl+D
cat > Rep/F6/fich63  “bonjour fich63”  Ctrl+D
cat > Rep/F7/fich71  “bonjour fich71”  Ctrl+D
cat > Rep/F7/fich72  “bonjour fich72”  Ctrl+D
cat > Rep/F7/fich73  “bonjour fich73”  Ctrl+D
15) chmod 000 Rep/F0
chmod 040 Rep/F1
chmod 020 Rep/F2
chmod 010 Rep/F3
chmod 050 Rep/F4
chmod 030 Rep/F5
chmod 060 Rep/F6
chmod 070 Rep/F7
56
16) cd Rep /F0 entrée
ls Rep/F0 entrée
cd Rep /F1 entrée
ls Rep/F1 entrée
cd Rep /F2 entrée
ls Rep/F2 entrée
cd Rep /F3 entrée
ls Rep/F3 entrée
cd Rep /F4 entrée
ls Rep/F4 entrée
cd Rep /F5 entrée
ls Rep/F entrée
cd Rep /F6 entrée
ls Rep/F6 entrée
cd Rep /F7 entrée
ls Rep/F7 entrée
57
Les deux commandes « ls » et « cd » ne vont pas marcher parce qu’on a
changé les droits d’accès de chaque répertoire dans la question
précédente.
17) Pour cette question on n’a pas le droit d’éditer ces fichiers
F0/fich01, F1/fich11, …, F7/fich71.
18) chmod 000 Rep/F0
chmod 440 Rep/F1
chmod 220 Rep/F2
chmod 110 Rep/F3
chmod 550 Rep/F4
chmod 330 Rep/F5
chmod 660 Rep/F6
chmod 770 Rep/F7
19)
cd Rep /F0 
ls Rep/F0 
cd Rep /F1 
ls Rep/F1 
cd Rep /F2 
ls Rep/F2 
cd Rep /F3 
ls Rep/F3 
cd Rep /F4 
ls Rep/F4 
cd Rep /F5 
ls Rep/F 
cd Rep /F6 
ls Rep/F6 
cd Rep /F7 
ls Rep/F7 
58
Exercice 9:
1) Ouvrer vi et tapé le texte suivant
ali:13:022568779:Casablanca
omar:55:022556378:Rabat
adil:56:039884596:Tanger
noureddine:80:022998766:Fes
boubker:72:022088089:Tanger
khalid:79:022056595:Casablanca
aziz:56:022569676:Eljadida
2) Sauvegarder ce contenu sous le nom carnet-adresse.
3) Afficher les lignes commençant par les caractères
compris entre a et d.
4) Afficher les lignes contenant la chaîne de caractères
Casablanca.
Objectifs :
Comment ça marche ?
 La commande « grep » :
La commande grep permet de rechercher expression dans fichier .Elle affiche
les noms de fichiers ainsi que les lignes contenant expression.
Syntaxe :
grep [-ilsfv] expression [fichier...]
-i ne tient pas compte des minuscules et des
MAJUSCULES
-l n'affiche que le nom des fichiers (pas les
lignes)
Utilisation de la commande « grep » pour chercher
et afficher des lignes tout en utilisant ses options.
59
-s pas de message d'erreur sur les fichiers inaccessibles
-f fich spécifie un fichier contenant les expressions rechercher
-v affiche toutes les lignes, sauf celles qui contiennent l'expression.
expression chaîne de caractères (ou expression régulière non
abordée dans ce cours)
fichier nom des fichiers à traiter.
Solution :
1)Vi
2) :w carnet-adresse
3)sous le vi :
/ ^ [a-d]
Sous le terminal :
4)sous le vi :
/casablanca
Pour recherche
Signifier le début
60
Sous le terminal
grep casablanca carnet-adresse
Exercice 10 :
1) Dans votre catalogue de travail, créer un fichier grepo, qui contient le
texte suivant :
Janvier
Février
Mars
Avril
Mai
Juin
Juillet
Septembre
Novembre
Décembre
Août
Rechercher les lignes ayant les caractéristiques suivantes :
- Le caractère "vr" à un endroit quelconque.
- Le texte "mbre" en fin de ligne.
- Le caractère "a" en début de ligne qu’elle soit en minuscule ou
majuscules.
- La chaîne de caractère "mai" est seule dans la ligne qu’elle soit en
minuscule ou majuscules.
61
2) Copier le fichier /etc/passwd dans votre répertoire courant. Rechercher
dans ce fichier l’ensemble des lignes qui commencent par votre nom
d’utilisateur.
En déduire les informations qui concernent votre compte utilisateur.
3) Dans ce même fichier rechercher les lignes qui identifient les utilisateurs
ne faisant pas partie du même groupe que vous.
4) Donner la liste des utilisateurs dont le UID varie entre 500 et 599
5) Le nombre d’utilisateurs qui utilisent comme programme initial dans
passwd le /bin/bash
6) Donner la liste des utilisateurs dont le nom contient la lettre à qui se
répète 2 fois
7) tous les utilisateurs dont le champ commentaire n’est pas vide
8) La ligne de commande suivante retourne le nombre de lignes du fichier
Liste qui contiennent la chaîne de caractères em :
$ grep –c "em" liste
Donner la ligne de commande qui permet d’aboutir au même résultat sans
l’option –c.
Objectifs :
Solution :
 comprendre en détails le contenu du fichier
passwd.
 Effectue des recherches avec la commande grep.
62
1)
2) a-
b-
c-
d-
3)
63
Les informations de mon compte :
1. Username :pubunto
2. Mot de passe, encrypté :x
3. user id numérique :1000
4. group id numérique :1000
5. Nom complet ou autre description du compte :1000
6. Répertoire d'accueil :/home/pubuntu
7.Shell de login (programme lancé au login) :/bin/bash
4)
64
5)
6)
7)
65
8)
Note
 La base de données utilisateurs d'un
système UNIX est le fichier texte /etc/passwd
(appelé le fichier password), qui énumère
tous les usernames valides avec les
informations qui leur sont associées. Ce
fichier possède une ligne par username,
divisée en sept champs délimités par le
caractère `:' :
66
Exercice 11 :
Objectifs :
1) Afficher tous les fichiers qui commencent par ‘a’`majuscule ou
minuscule.
2) Afficher tous les fichiers qui se composent de 3 caractères dont le
dernier est ‘M’.
3) Sauvegarder tous les noms de fichiers se terminant soit par a, b ou c
dans un fichier F1.
4) Créer les fichiers suivants dans un répertoire :a1, a2, a3……a9 et
afficher les 5 premiers
5) Afficher tous les noms de fichiers répertoires commençant par une
lettre majuscule.
6) Afficher tous les noms de fichiers de l’utilisateur « webmaster1 » qui
appartient au groupe « webos ».
7) Afficher tous les fichiers normaux ayant pour taille plus de 150 Ko.
8) Afficher tous les fichiers dont les dernières modifications remontent à
moins de trois jours.
9) Afficher tous les répertoires ayant les autorisations d’accès ‘rwxr-xr-x ‘.
10) Supprimer tous les fichiers auxquels vous n’avez pas accédés depuis
plus de deux semaines.
11) Afficher tous les fichiers répertoires ou les fichiers dont le nom se
termine par le caractère ‘a’.
12) Afficher tous les fichiers qui n’appartiennent pas a l’utilisateur
« userxg1 ».
67
Comment ça marche ?
find :
La commande find permet de rechercher un fichier dans l'arborescence à partir du
point spécifié.
Syntaxe :
find répertoire option1 [option2...]
-name fich recherche sur le nom fich
-size n recherche sur la taille en blocs
-ctime n recherche sur la date de création
-exec cmd {} ; exécute la commande cmd sur les fichiers trouvés
-print affiche le résultat de la recherche
! négation du critère de recherche
Exemple :
$ find $HOME - name "vil*" -print
$ find . -print| cpio -ocvB / dev/streamer
$ find / -name "profile*" - exec pg ; ;
Remarque :
{ }
Pour bien maitriser les différentes utilités de la
commande find.
68
Après -exec, on peut utiliser n'importe quelle commande en la faisant suivre de
";". Par exemple : find source -perm 777 -type f -exec rm {};
Solution :
1) $find / -name "[a-A] *" -print
2) $find / -name "??M" -print
3) $find / -name "*[a b c] " > F1
4) $touch a1 a2 a3 a4 a5 a6 a7 a8 a9|find -name "a[1-5]"
5) $find / -type d - name "[A-Z] *"
6) $find / -user "webmasters1" -a -group "webos"
7) $find /-type f -size "+150K"
8) $find /-type f -mtime -3
9) $find /-type d -perm 755
10) $find /-type f -atime +15 -exec rm
69
11) $find /(-type d -o type f) -name "*a"
12) $find ! -user "user xg"
Note
Il y a une autre commande qu’on peut l’utiliser
pour effectuer une recherche rapide .cette
commande s’appelle locate (localiser)
Son utilisation est tres simple il suffit de d’ecrire
locate suiver par le nom du fichier que vous
voulez retrouver.
Pour rechercher un fichier sur tout le disque, la commande locate est très
rapide mais ne trouvera pas les fichiers qui viennent d'être créés dans la
journée. On peut mettre à jour la liste des fichiers qu'elle connaît en
appelant updatedb.(précédé par sudo)
_ find est une commande plus puissante mais plus lente qui va parcourir votre
disque à la recherche de vos fichiers. Elle peut s'utiliser avec trois paramètres, dans
l'ordre :
où chercher, que chercher et que faire avec.
70
Exercice 12 :
1) Ecrire un script shell qui donne le nombre de sous répertoire et
de fichier en partant du niveau courant.
2) Ecrire un script shell qui donne le nombre de sous répertoire et
de fichier contenus dans une arborescence dont le chemin sera
donné en paramètre.
3) Ecrire un script shell qui donne le nombre de sous répertoire et
de fichier contenus dans une arborescence dont le chemin sera
demandé à l‟utilisateur.
4) Même chose que pour la question 3 en vérifiant que le nom du
répertoire de départ est valide.
5) Ecrire un script shell qui donne poue une arboresence donné le
nombre de fichiers exécutables, de fichiers accessibles en lecture,
et de fichiers accessibles en écriture.
6) Faire un script qui crée un certain nombre de fichiers, ce
nombre étant passé en paramètre (fich00, fich01, fich02, …).
Faire un script shell qui donne les informations suivantes:
- Nom de l‟utilisateur
-Son groupe
-Son programme initial (son shell)
- Catalogue de travail En utilisant les fichiers /etc/passwd et
/etc/group.
Objectifs :
71
Comment ça marche ?
 Programmation Shell:
Le shell c'est un programme qui se trouve dans le répertoire /bin. Et ce que l’on
appel un « Interpréteur de commandes ».
dans la programmation shell on travaille avec un éditeur du texte de notre choix
(script).
La syntaxe générique d'une commande shell est :
commande [options [argument1 [argument2 [... ]]]]
- # ! / bin / bash : c’est pour initialiser le programme en Shell.
- chmod +x : ajouter le droit d’exécution en fichier.
- . / Nom du fichier : exécution le script.
Où bien sans rendre le script exécutable on peut utiliser la syntaxe
suivante $sh nom_script où $bash nom_script
En Bash la syntaxe plus générale de if est:
if test condition_1 # ou if [ condition_1 ]
then
commandes1
[ elif test condition_2 ; then commandes ]…
[ else commandes3 ]
fi # l'envers de if (fin de bloc)
la syntaxe plus générale de case :
 Comment utiliser la programmation Shell.
 savoir compter avec des scripts Shell par différentes
façons : Les nombres de fichiers Les nombres de
répertoires
72
Case $variable in
Valeur1)
Commande1;;
Valeur2)
Commande2;;
….….
*) # tous les autres cas
Commande;;
esac # (l'envers de case) ( Fin de bloc case )
la syntaxe de while
while condition
do
commandes
done
la syntaxe de until
Until condition
do
commandes
done
Solution :
1) sous vi :
Vi exo12-1
73
: wq
Sous terminal :
Chmod +x exo12-1
Rendre le fichier exécutable pour avoir le droit d’exécution du script
. /exo12-1
2) sous vi :
vi exo12-2
: wq
Sous terminal :
chmod +x exo12-2
. /exo12-2 $HOME
3) sous vi :
vi exo12-3
74
sous terminal :
sh exo12-3
4)sous vi :
75
5)vi exo12-5
#! /bin/bash
echo tapez un chemin valide
read chemin
nb-r=0
nb-w=0
nb-x=0
6)vi exo12-6
#! /bin/bash
for i in ‘seq 0 $1’  for (i=0 ;i<$1 ;i++)
do
touch fich 0 $i
done
7)vi exo12-7
76
#! /bin/bash
sort –t : +3 -4 –n / etc / passwd > passwd-tri
sort –t : +2 -3 –n/ etc / groupe > groupe-tri
joint –t : -j14 –j23 –o 1.1 2.1 1.7 1.6 passwd-tri groupe tri |grep ” ^$1 “
77
L'idée force était de familiariser le lecteur avec ce que
fait Linux quand il exécute une commande. Ce qui citer ici
ne gère pas toutes les fonctionnalités que bash prennent
en charge. La gestion des touches Tab, Page Haut/Bas,
comme on le voit dans bash peut être implémentée.
D'autres fonctionnalités comme la prise en charge de la
programmation shell, la modification des variables
d'environnement pendant la durée d'exécution, etc. sont
essentielles. Une étude attentive du code source
de bash n'est pas une tâche aisée en raison des diverses
complexités impliquées, mais elle vous aidera à
développer un interpréteur de commandes très complet.
78

Mais conteúdo relacionado

Mais procurados

Introduction aux réseaux locaux
 Introduction aux réseaux locaux Introduction aux réseaux locaux
Introduction aux réseaux locauxInes Kechiche
 
Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développementDonia Hammami
 
Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...
Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...
Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...Alaaeddine Tlich
 
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en EducationRapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en EducationMohamed Amine Mahmoudi
 
Soutenance De Stage
Soutenance De StageSoutenance De Stage
Soutenance De Stageguesta3231e
 
C2 Réseaux : medias - equipements
C2 Réseaux : medias - equipementsC2 Réseaux : medias - equipements
C2 Réseaux : medias - equipementsPRONETIS
 
IDS,SNORT ET SÉCURITÉ RESEAU
IDS,SNORT ET SÉCURITÉ RESEAUIDS,SNORT ET SÉCURITÉ RESEAU
IDS,SNORT ET SÉCURITÉ RESEAUCHAOUACHI marwen
 
L’ Administration des Réseaux en Pratique
L’ Administration des Réseaux en PratiqueL’ Administration des Réseaux en Pratique
L’ Administration des Réseaux en PratiqueAmadou Dia
 
Rapport de stage développement informatique
Rapport de stage développement informatique Rapport de stage développement informatique
Rapport de stage développement informatique MehdiOuqas
 
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Chapitre 6  - Protocoles TCP/IP, UDP/IPChapitre 6  - Protocoles TCP/IP, UDP/IP
Chapitre 6 - Protocoles TCP/IP, UDP/IPTarik Zakaria Benmerar
 
Les Topologies Physiques des réseaux informatiques
Les Topologies Physiques des réseaux informatiquesLes Topologies Physiques des réseaux informatiques
Les Topologies Physiques des réseaux informatiquesATPENSC-Group
 
Rapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed AmineRapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed AmineMohamed Amine Mahmoudi
 
Expose linux gestion des processus
Expose linux  gestion des processusExpose linux  gestion des processus
Expose linux gestion des processusFatima Zahra Fagroud
 

Mais procurados (20)

Introduction aux réseaux locaux
 Introduction aux réseaux locaux Introduction aux réseaux locaux
Introduction aux réseaux locaux
 
Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développement
 
16 - VLSM-CIDR.ppt
16 - VLSM-CIDR.ppt16 - VLSM-CIDR.ppt
16 - VLSM-CIDR.ppt
 
Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...
Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...
Mise en place d'une Plateforme de Supervision et de Détection d'Intrusion Sys...
 
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en EducationRapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
Rapport Mini Projet : élaborer un moteur de Recherche spécialisé en Education
 
Rapport projet
Rapport projetRapport projet
Rapport projet
 
Soutenance De Stage
Soutenance De StageSoutenance De Stage
Soutenance De Stage
 
C2 Réseaux : medias - equipements
C2 Réseaux : medias - equipementsC2 Réseaux : medias - equipements
C2 Réseaux : medias - equipements
 
IDS,SNORT ET SÉCURITÉ RESEAU
IDS,SNORT ET SÉCURITÉ RESEAUIDS,SNORT ET SÉCURITÉ RESEAU
IDS,SNORT ET SÉCURITÉ RESEAU
 
L’ Administration des Réseaux en Pratique
L’ Administration des Réseaux en PratiqueL’ Administration des Réseaux en Pratique
L’ Administration des Réseaux en Pratique
 
MEMOIRE DE STAGE
MEMOIRE DE STAGEMEMOIRE DE STAGE
MEMOIRE DE STAGE
 
La sécurité informatique
La sécurité informatiqueLa sécurité informatique
La sécurité informatique
 
Résumé vlsm et cidr
Résumé vlsm et cidrRésumé vlsm et cidr
Résumé vlsm et cidr
 
Rapport de stage développement informatique
Rapport de stage développement informatique Rapport de stage développement informatique
Rapport de stage développement informatique
 
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Chapitre 6  - Protocoles TCP/IP, UDP/IPChapitre 6  - Protocoles TCP/IP, UDP/IP
Chapitre 6 - Protocoles TCP/IP, UDP/IP
 
Les Topologies Physiques des réseaux informatiques
Les Topologies Physiques des réseaux informatiquesLes Topologies Physiques des réseaux informatiques
Les Topologies Physiques des réseaux informatiques
 
Rapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed AmineRapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
Rapport de stage d'initiation 2015 Mahmoudi Mohamed Amine
 
Expose linux gestion des processus
Expose linux  gestion des processusExpose linux  gestion des processus
Expose linux gestion des processus
 
Le modèle OSI
Le modèle OSILe modèle OSI
Le modèle OSI
 
Reseau informatique
Reseau informatiqueReseau informatique
Reseau informatique
 

Destaque

Sauvegardes de base de données
Sauvegardes de base de donnéesSauvegardes de base de données
Sauvegardes de base de donnéesSoukaina Boujadi
 
Le livre du C pour les_vrais_d%c3%a9butants_en_programmation
Le livre du C pour les_vrais_d%c3%a9butants_en_programmationLe livre du C pour les_vrais_d%c3%a9butants_en_programmation
Le livre du C pour les_vrais_d%c3%a9butants_en_programmationChingongou ­
 
Examen de Passage 2014 TDI V2
Examen de Passage 2014 TDI V2Examen de Passage 2014 TDI V2
Examen de Passage 2014 TDI V2Chingongou ­
 
Cours Base de données relationnelles
Cours Base de données relationnellesCours Base de données relationnelles
Cours Base de données relationnellesAymen Kasmi
 
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmation
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmationLe livre du_c_pour_les_vrais_d%c3%a9butants_en_programmation
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmationChingongou ­
 
Cours des bases de données
Cours des bases de données Cours des bases de données
Cours des bases de données yassine kchiri
 
Saludo Pascual CBC
Saludo Pascual CBCSaludo Pascual CBC
Saludo Pascual CBCChinca FMA
 
\"La incorporación de recursos informáticos para la articulación de Nivel Ini...
\"La incorporación de recursos informáticos para la articulación de Nivel Ini...\"La incorporación de recursos informáticos para la articulación de Nivel Ini...
\"La incorporación de recursos informáticos para la articulación de Nivel Ini...yamila
 
Le journalisme à l’épreuve du web
Le journalisme à l’épreuve du webLe journalisme à l’épreuve du web
Le journalisme à l’épreuve du webULg - UCLMons
 
Guia+Voluntariado+Y+GéNero+Completa
Guia+Voluntariado+Y+GéNero+CompletaGuia+Voluntariado+Y+GéNero+Completa
Guia+Voluntariado+Y+GéNero+Completaguestfc2c7
 
El Futuro que heredarán nuestros hijos...
El Futuro que heredarán nuestros hijos...El Futuro que heredarán nuestros hijos...
El Futuro que heredarán nuestros hijos...Juan Krishna Vedani
 
Clases CGC Unidad 1 versión 2011
Clases CGC Unidad 1 versión 2011Clases CGC Unidad 1 versión 2011
Clases CGC Unidad 1 versión 2011Illich Gálvez
 
Visita aspirantado
Visita aspirantadoVisita aspirantado
Visita aspirantadoChinca FMA
 
FMA Bodas Oro y Diamante
FMA Bodas Oro y DiamanteFMA Bodas Oro y Diamante
FMA Bodas Oro y DiamanteChinca FMA
 

Destaque (20)

Sauvegardes de base de données
Sauvegardes de base de donnéesSauvegardes de base de données
Sauvegardes de base de données
 
Le livre du C pour les_vrais_d%c3%a9butants_en_programmation
Le livre du C pour les_vrais_d%c3%a9butants_en_programmationLe livre du C pour les_vrais_d%c3%a9butants_en_programmation
Le livre du C pour les_vrais_d%c3%a9butants_en_programmation
 
Examen de Passage 2014 TDI V2
Examen de Passage 2014 TDI V2Examen de Passage 2014 TDI V2
Examen de Passage 2014 TDI V2
 
Cours Base de données relationnelles
Cours Base de données relationnellesCours Base de données relationnelles
Cours Base de données relationnelles
 
GP TDI
GP TDIGP TDI
GP TDI
 
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmation
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmationLe livre du_c_pour_les_vrais_d%c3%a9butants_en_programmation
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmation
 
TP 1 ACCESS
TP 1 ACCESSTP 1 ACCESS
TP 1 ACCESS
 
Cours des bases de données
Cours des bases de données Cours des bases de données
Cours des bases de données
 
Saludo Pascual CBC
Saludo Pascual CBCSaludo Pascual CBC
Saludo Pascual CBC
 
\"La incorporación de recursos informáticos para la articulación de Nivel Ini...
\"La incorporación de recursos informáticos para la articulación de Nivel Ini...\"La incorporación de recursos informáticos para la articulación de Nivel Ini...
\"La incorporación de recursos informáticos para la articulación de Nivel Ini...
 
Le journalisme à l’épreuve du web
Le journalisme à l’épreuve du webLe journalisme à l’épreuve du web
Le journalisme à l’épreuve du web
 
Guia+Voluntariado+Y+GéNero+Completa
Guia+Voluntariado+Y+GéNero+CompletaGuia+Voluntariado+Y+GéNero+Completa
Guia+Voluntariado+Y+GéNero+Completa
 
Banco de tiempo
Banco de tiempoBanco de tiempo
Banco de tiempo
 
Fb Final
Fb FinalFb Final
Fb Final
 
Derivada de la transformada
Derivada de la transformadaDerivada de la transformada
Derivada de la transformada
 
El Futuro que heredarán nuestros hijos...
El Futuro que heredarán nuestros hijos...El Futuro que heredarán nuestros hijos...
El Futuro que heredarán nuestros hijos...
 
Herramientas web 2
Herramientas web 2Herramientas web 2
Herramientas web 2
 
Clases CGC Unidad 1 versión 2011
Clases CGC Unidad 1 versión 2011Clases CGC Unidad 1 versión 2011
Clases CGC Unidad 1 versión 2011
 
Visita aspirantado
Visita aspirantadoVisita aspirantado
Visita aspirantado
 
FMA Bodas Oro y Diamante
FMA Bodas Oro y DiamanteFMA Bodas Oro y Diamante
FMA Bodas Oro y Diamante
 

Semelhante a Rapport des Travaux Pratiques UNIX

les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)Souhaib El
 
Petit precis des_commandes_unix_utiles_a_ubuntu
Petit precis des_commandes_unix_utiles_a_ubuntuPetit precis des_commandes_unix_utiles_a_ubuntu
Petit precis des_commandes_unix_utiles_a_ubuntuEl7fe Eternal
 
Cours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptxCours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptxKhalil BOUKRI
 
Notions sur le commandes linux
Notions sur le commandes linux Notions sur le commandes linux
Notions sur le commandes linux ImnaTech
 
Cmd dos sous windows
Cmd dos sous windowsCmd dos sous windows
Cmd dos sous windowsSelman Dridi
 
programmation_shell_2022 (1).pptx
programmation_shell_2022 (1).pptxprogrammation_shell_2022 (1).pptx
programmation_shell_2022 (1).pptxManalAg
 
[JK] BASH pour les utilisateurs de Windows
[JK] BASH pour les utilisateurs de Windows[JK] BASH pour les utilisateurs de Windows
[JK] BASH pour les utilisateurs de WindowsJoseph Konka
 
Administration linux
Administration linuxAdministration linux
Administration linuxJoeongala
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiationrobertpluss
 
Chap3 Communication Inter Processus.pptx
Chap3 Communication Inter Processus.pptxChap3 Communication Inter Processus.pptx
Chap3 Communication Inter Processus.pptxZohraQassimi
 
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEBATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEBFerjani Bassem
 

Semelhante a Rapport des Travaux Pratiques UNIX (20)

Tp n 3 linux
Tp n 3 linuxTp n 3 linux
Tp n 3 linux
 
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)
 
cours-Linux.PPT
cours-Linux.PPTcours-Linux.PPT
cours-Linux.PPT
 
s de base
s de bases de base
s de base
 
Petit precis des_commandes_unix_utiles_a_ubuntu
Petit precis des_commandes_unix_utiles_a_ubuntuPetit precis des_commandes_unix_utiles_a_ubuntu
Petit precis des_commandes_unix_utiles_a_ubuntu
 
Cours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptxCours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptx
 
Linux commandes
Linux commandesLinux commandes
Linux commandes
 
Notions sur le commandes linux
Notions sur le commandes linux Notions sur le commandes linux
Notions sur le commandes linux
 
Commande linux
Commande linuxCommande linux
Commande linux
 
Cmd dos sous windows
Cmd dos sous windowsCmd dos sous windows
Cmd dos sous windows
 
programmation_shell_2022 (1).pptx
programmation_shell_2022 (1).pptxprogrammation_shell_2022 (1).pptx
programmation_shell_2022 (1).pptx
 
Chapitre_Shell.pdf
Chapitre_Shell.pdfChapitre_Shell.pdf
Chapitre_Shell.pdf
 
[JK] BASH pour les utilisateurs de Windows
[JK] BASH pour les utilisateurs de Windows[JK] BASH pour les utilisateurs de Windows
[JK] BASH pour les utilisateurs de Windows
 
Administration linux
Administration linuxAdministration linux
Administration linux
 
Commande dos
Commande dosCommande dos
Commande dos
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiation
 
Chap3 Communication Inter Processus.pptx
Chap3 Communication Inter Processus.pptxChap3 Communication Inter Processus.pptx
Chap3 Communication Inter Processus.pptx
 
Tp n 6 linux
Tp n 6 linuxTp n 6 linux
Tp n 6 linux
 
Manip fichier
Manip fichierManip fichier
Manip fichier
 
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEBATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
 

Mais de Soukaina Boujadi

Mais de Soukaina Boujadi (14)

Rapport XMI To SVG
Rapport XMI To SVGRapport XMI To SVG
Rapport XMI To SVG
 
Conformiq
ConformiqConformiq
Conformiq
 
Composants hardware du mainframe
Composants hardware du mainframeComposants hardware du mainframe
Composants hardware du mainframe
 
Open erp le reporting avec jasper reports
Open erp  le reporting avec jasper reportsOpen erp  le reporting avec jasper reports
Open erp le reporting avec jasper reports
 
Comment lancer une entreprise
Comment lancer une entrepriseComment lancer une entreprise
Comment lancer une entreprise
 
Rapport comment lancer une entreprise
Rapport comment lancer une entrepriseRapport comment lancer une entreprise
Rapport comment lancer une entreprise
 
Présentation open bravo
Présentation open bravoPrésentation open bravo
Présentation open bravo
 
Concepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupérationConcepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupération
 
Rapport tp3 j2ee
Rapport tp3 j2eeRapport tp3 j2ee
Rapport tp3 j2ee
 
Rapport tp2 j2ee
Rapport tp2 j2eeRapport tp2 j2ee
Rapport tp2 j2ee
 
Rapport tp1 j2ee
Rapport tp1 j2eeRapport tp1 j2ee
Rapport tp1 j2ee
 
Rapport Sockets en Java
Rapport Sockets en JavaRapport Sockets en Java
Rapport Sockets en Java
 
Sécurité des réseaux sans fil WIFI
Sécurité des réseaux sans fil WIFISécurité des réseaux sans fil WIFI
Sécurité des réseaux sans fil WIFI
 
Programmation shell
Programmation shellProgrammation shell
Programmation shell
 

Último

Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
presentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxpresentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxNYTombaye
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxmmatar2
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 

Último (20)

DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
presentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptxpresentation sur la maladie de la dengue .pptx
presentation sur la maladie de la dengue .pptx
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptx
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 

Rapport des Travaux Pratiques UNIX

  • 1. 1 Encadré par : Mme S.ELFILALI Réalisé par : NAJIHI Soukaina AJANKAR Soukaina BOUJADI Soukaina ABOUNASR Meryem
  • 2. 2 Remerciements Nous souhaitons adresser nos remerciements les plus sincères à notre chère professeure Mme Sanaa ELFILALI qui nous a encadrées avec patience durant la réalisation de ce travail. Ses conseils nous ont été bien utiles ; Toujours disponible et enthousiaste elle nous a beaucoup aidé. Et nous tenons à associer à ces remerciements toute personne ayant contribué, de près ou de loin, à la réalisation de ce travail.
  • 3. 3 Afin d’appliquer les méthodologies et les notions enseignées par notre professeure Mme S.El FILALI . Nous devons réaliser ce Travail qui a pour but d’approfondir les connaissances acquises durant notre scolarité et de favoriser le travail en groupe. Le projet que nous devons réaliser est un tutorial contenant tous ce qui concerne les Travaux pratiques. Nous avons suivis une démarche bien détaillée afin de permettre à l’étudiant de bien maitriser cette matière. Notre rapport se structure de la façon suivante : Tout d'abord, nous présentons l’énoncé des exercices. Puis, nous présentons sa syntaxe, ainsi que son objectif et ensuite ses solutions. Et enfin des notes nous expliquons comment nous pouvons développer nos connaissances
  • 4. 4 Un terminal Unix ? Quoi qu'est-ce ? C'est toute la base d'Unix : une fenêtre dans laquelle s'exécute un shell qui affiche un prompt : pubuntu@pubuntu:~$ par exemple. On tape une commande (ls -l -a par exemple), on valide avec [Entrée] : le shell lance alors le programme (ici: ls), en lui passant des paramètres (ici -l et -a). Le programme s'exécute, affiche des résultats (qu'il vaut mieux lire, ce n'est pas pour rien qu'il les affiche), voire un message d'erreur (remarque encore plus vraie), et (espérons-le) se termine. Le prompt s'affiche de nouveau pour taper la commande suivante. Comment le lance-t-on ? Sous Unix (que ce soit Solaris en salle 106 ou Linux en salles 109 112 ou 002 ou n'importe où en stage où ils travaillent sous Unix), il faut trouver un bouton ou un item dans un menu qui ressemble à un écran noir, avec parfois un pingouin ou un coquillage (shell) en superposition, appelé Term ou XTerm, ou Rxvt, ou Terminal, Console...
  • 5. 5 Exercice 1 : Objectifs : Comment ca marche ?  La commande « touch » : La commande touch permet de créer des fichiers. 1) Dans votre répertoire courant, créez en une commande les fichiers suivants: annee1Annee2 annee4 annee45 annee41 annee510 en utilisant la commande touch 2) Lister tous les fichiers  Se terminant par 5 ;  Commençant par annee4 ;  Commençant par annee4 et de 7 caractères ;  Commençant par annee et se terminant par chiffre numérique ;  Contenant la chaîne ann ;  Commençant par a ou A. 3) Créer les répertoires Year et tmp dans votre répertoire courant, en une commande déplacez les fichiers précédemment créés dans le répertoire Year. 4) Copier les fichiers dont l'avant dernier caractère est un 4 ou 1 dans le répertoire tmp en une seule commande. 5) Répéter la commande de la question 4 en utilisant l'option i 6) Répéter la commande de la question 4 en utilisant l'option f 7) en une seule commande vider le contenue de votre répertoire courant (travail).  Créé des fichiers et des répertoires.  Lister des fichiers.  Copier et déplacer des fichiers.  Savoir les différentes options du cp.  Vider le contenue du répertoire courant.
  • 6. 6 Syntaxe : $touch [Nom du fichier] Le signe > aussi permet de créer un fichier.  La commande « ls » : ls liste les répertoires et les fichiers précisés dans noms. Par défaut, la sortie est envoyée à l'écran par ordre alphabétique. Les options déterminent les informations à afficher et présentation de l'affichage. Sans options, ls n'envoie que le nom des fichiers. Si noms n'est pas précisé, c'est le répertoire courant qui est listé. Syntaxe : $ ls [options] [noms] -R Traitement récursif -a Tous les fichiers (y compris ceux qui commencent par un point) -d Affiche le nom des répertoires sans leur contenu -l Format long (avec beaucoup de détails) -nom est le nom d'un fichier ou d'un répertoire (avec ou sans méta caractères)
  • 7. 7  La commande « cp » : La commande cp copie le contenu de fichier1 dans fichier2 ;ou bien elle copie source1 et source2 (etc...) dans répertoire . Syntaxe : cp [-i] [-p] fichier1 fichier2 cp [-i] [-p] [-r] source1 [source2...] répertoire -i mode interactif, demande la confirmation avant écrasement. -p conserve les dates du fichier source. -r copies récursives de répertoires. Source X représente le nom des fichiers ou répertoires à copier. Attention ! Pour pouvoir copier un fichier/répertoire, vous devez avoir les droits suivants : =>droits de lecture du fichier à copier ; =>droits d'exécution sur le répertoire contenant le fichier à copier ; =>droits d'écriture sur le répertoire de destination.  La commande « mkdir » : La commande mkdir créé le répertoire spécifié sur la ligne de commande (nouveau_répertoire ). Si l'un des répertoires intermédiaires n'existe pas, la commande retourne un code d'erreur (exit statuts) sans créer le répertoire (sauf si l'option -p est spécifiée). Syntaxe : mkdir [-p] nouveau_répertoire -p permet de créer tous les répertoires intermédiaires qui n'existeraient pas. -répertoire représente le nom du répertoire à créer. C'est un argument obligatoire. Attention ! Pour pouvoir créer un répertoire, le répertoire d'origine doit avoir les droits en écriture positionnés.
  • 8. 8  La commande « rmdir » : La commande rmdir supprime le répertoire spécifié sur la ligne de commande (répertoire). Si il existe des fichiers ou des sous répertoires, la commande retournera un code d'erreur (exit statuts). Syntaxe : rmdir [-p] [-s] répertoire -p permet de détruire tous les sous-répertoires vides. -s mode silencieux (aucun affichage). répertoire représente le nom du répertoire à détruire. C'est un argument obligatoire. Attention ! Pour pouvoir supprimer un répertoire, le répertoire père doit avoir les droits en écriture Positionnés.  La commande « rm » : La commande rm supprime les fichiers spécifiés sur la ligne de commande. Si vous n'avez pas les droits d'écriture sur fichier1, alors rm vous demandera de confirmer votre action ; la réponse oui (y) détruira quand même le fichier (sous réserve d'avoir les droits d'écriture sur le répertoire). Syntaxe : rm [-f] [-i] [-r] fichier1 [fichier2...] -i mode interactif, demande la confirmation avant chaque suppression. -f force la commande (aucune confirmation). -r récursif (détruit tous les sous répertoires. ATTENTION) La solution : 1) touch annee1 Annee2 annee4 annee45 annee41 annee510 2) - $ls *5 - $ls annee4*
  • 9. 9 - $ls annee4? - $ls annee[0-9] - $ls *ann* - $ls [a,A]* ou ls [aA]* 3) $mkdir -p Year tmp et $ mv [aA]* Year 4) $cp Year/* [41]? tmp 5) $cp -i *[1 4]? Year tmp 6) $cp -f *[1 4]? Year tmp 7) rm -r smis4 Exercice 2 : Soit l’arborescence suivante : /home/userxG x F1 F2 F11 F12 F13 F21 F22 F23
  • 10. 10 1) Dans votre répertoire personnel, crée en une seul commande les répertoires. Ci-dessus en utilisant la commande mkdir avec l’option –P. 2) Créer le fichier ch1 dans le répertoire F22. 3) Copier ch1 dans F11 sous le nom ch2. 4) Lier ch2 à ch4 dans F13. 5) Modifier le fichier ch2 en utilisant la commande cat. 6) Afficher le contenue du fichier ch4 . 7) Supprimer le fichier ch2. 8) Quel est le nombre de liens pour chacun des fichiers suivants :ch1, ch4 . 9) Supprimer de deux façon les deux arborescences suivantes :F1 et F2 Objectifs : Comment ca marche ?  La commande « cat » : La commande cat visualise et/ou concatène les fichiers spécifiés sur la ligne de commande. Par défaut, cat lit sur l'entrée standard et affiche le résultat sur la sortie standard. Syntaxe : $ cat [fichier...]  Utiliser les commandes ln et savoir la différence entre un lien dur et un lien symbolique.  Utiliser la commande mkdir avec l’option –p.  Utiliser la commande cat pour afficher ou modifier le contenu d’un fichier
  • 11. 11  La commande « cd » : La commande cd permet de changer le répertoire de travail. Si répertoire n'est pas précisé, alors le nouveau répertoire de travail sera le répertoire de connexion ($HOME). Syntaxe : $ cd [répertoire] Remarque : La commande cd, comme toutes les commandes utilisant des répertoires, permet de spécifier deux types de chemins :  et utilisent notamment le répertoire '..' (Répertoire père).  Exemple : cd ../rep1  les chemins absolus : il faut spécifier toute l'arborescence depuis la racine.  Exemple : cd /home/rep1
  • 12. 12  La commande « ln » : Création d’un lien sur un fichier ou un répertoire. Un lien est un moyen d'accéder à un même fichier ou un répertoire sous plusieurs noms ou à partir de plusieurs répertoires. Attention un lien n'est pas une copie: si vous modifiez le fichier alors tous les liens sur ce fichier seront modifiés. Il existe deux sortes de liens: le lien physique et le lien symbolique (avec l'option -s). Le lien physique ne peut adresser que des fichiers, alors que le lien symbolique peut aussi lier des répertoires. Dans le cas de lien physique, pour effacer le fichier, vous devez effacer tous les liens qui pointent sur ce fichier. Par contre pour des liens symboliques, vous pouvez effacer le fichier sans effacer les liens, mais alors ceux-ci seront invalides. Syntaxe : ln [-s] source destination
  • 13. 13 Solution : 1) La ligne de commande mkdir F1/F11 peut fonctionner et créer le sous répertoire F11 à condition que F1 existe. 2) On peut créer le fichier ch1 avec la commande cat en tapant Ensuite on tape ctrl+d pour sortir 3) Dans ce cas là le fichier ch1 sera copier et renommer 4)
  • 14. 14 Dans ce cas là les contenus sont identiques. Les noms de fichiers ch4 et ch2 renvoient au même endroit sur le disque dur. Si on refait la même question avec l’option –s alors on aura un lien symbolique. ln –s F1/F11/CH2 F1/F13/ch4 Le contenu semble être identique, cependant, a propos du ch4, le disque dur ne contient comme information que le nom du fichier sur lequel le lien pointe (ch2). Dans quel cas ne peut-on pas faire de lien physique ? On ne peut pas faire de lien dur vers un répertoire. Dans ce cas, il faut donc utiliser un lien symbolique 5) 6) Les contenues de ch4 et ch2 sont identiques. 7) 8)
  • 15. 15 la commande ls affiche après les droits d’accès d'un fichier le nombre de « noms » que ce fichier possède : chaque création d'un nouveau lien en dur incrémente (augmente) donc ce nombre d'une unité. 9) La suppression est récursive c’est-à-dire que les répertoires sont supprimés ainsi que leurs sous répertoires, etc. Ça fonctionne pas parce que le répertoire F2 n’est pas vide .pour ce faire on peut soit vider le contenue du répertoire F2 soit utiliser la commande rm. Exercice 4 : 1) Dans votre répertoire courant, créez en une commande les fichiers suivant : annee1 Annee2 annee4 annee45 annee41 annee510 en utilisant la commande touch. 2) Dans votre répertoire courant, créez le répertoire R 3) Dans votre répertoire courant, copier la liste des fichiers et leur attribues dont l'avant dernier caractère est un 4 ou 1 dans le fichier ch1 dans R. 4) Afficher le contenue de ch1. 5) Copier la date du système dans le fichier ch1 dans R. 6) Afficher le contenue de ch1. 7) Ajouter au contenu du fichier ch1, la liste des fichiers et leur attribues dont l'avant dernier caractère est un 4 ou 1. 8) Que se passe-t-il si vous taper les commandes suivantes : ls –l [Aa]* > ch2 wc < ch2
  • 16. 16 ls -l [Aa]* | wc wc (imprime le nombre de lignes, de mots et de caractères fournis à l'entrée standard . Objectifs : Comment ca marche ?  Les flux de redirections: Sous les systèmes Unix, chaque processus possède trois sortes de flux de données:  l'entrée standard, (identifiant 0) qui permet d'envoyer des données au programme,  la sortie standard (identifiant 1) qui est utilisée pour afficher les résultats d'un programme,  la sortie standard des erreurs, (identifiant 2) qui permet d'afficher les messages correspondant aux erreurs survenues lors de l'exécution du programme. Par défaut les deux flux de sortie sont envoyés sur le terminal de l'utilisateur (écran) et l'entrée prend ses données depuis le clavier.  Savoir les différents types des flux de redirections  Utiliser la commande « ls » avec l'option -l  Utilisation de la commande « wc »
  • 17. 17 Figure 1 Les trois flux standards peuvent être redirigés vers d'autres sources autres que le clavier ou l'écran. Par exemple, on peut ordonner à un processus de diriger sa sortie standard vers un fichier. Pour cela, les numéros des descripteurs (0 :l'entrée standard ,1 : sortie standard et 2 :sortie d'erreurs )de flux sont utilisés.  Rediriger la sortie standard Quand on exécute une commande, le shell affiche le résultat sur la console de sortie (l'écran par défaut). On peut rediriger cette sortie vers un fichier en utilisant le signe >. ! Si le fichier existe déjà, il est écrasé sans demande de confirmation.  Concaténation Ajouter les sorties d'un processus à la fin fichier et le crée s'il n'existe pas. en utilisant le double signe >>.  Rediriger la sortie d'erreur standard La redirection du flux de sortie d'erreur standard utilise les même signes, (c'est-à- dire > et >>) mais précédés de l'identifiant du flux 2 (voir figure 1).
  • 18. 18 Exemple:  Rediriger l'entrée standard Rediriger l'entrée standard permet d'entrer des données provenant d'un fichier au lieu du clavier. Autrement dit envoi le contenu d'un fichier à une commande. Exemple cat < fichier (afficher le contenu de ce fichier)  Les tubes (pipe ) Le pipe | permet de rediriger la sortie standard d'une commande vers l'entrée standard d'une autre commande. Syntaxe: Commande 1 | commande 2 Vous pouvez écrire pipe | en combinant les touches Alt Gr + 6  ls -l affiche tous les attributs d’un fichier.  La commande « wc » : La commande wc compte le nombre de lignes, mots, ou caractères d'un fichier texte .Fichier n'est passé en paramètre, c'est l’entrée standard qui sera lue. Si aucune option n'est précisée, alors wc compte le nombre de lignes, mots, et caractères du fichier.
  • 19. 19 Syntaxe: wc [option] [fichier...] -l précise que c'est le nombre de lignes qui doit être compté -w précise que c'est le nombre de mots qui doit être compté -c précise que c'est le nombre de caractères qui doit être compté Solution : Mon répertoire courant est exercice3 1) Avec la commandes touch j'ai crée les fichiers annee1 annee2 …. 2) Avec la commandes mkdir j'ai créé le répertoire R. $ mkdir R 3) rediriger la sortie standard vers un fichier. La sortie standard de la commande ls –l:
  • 20. 20 Maintenait je redirige cette sortie standard vers le fichier ch1 4) afficher le contenu de ch1. 5) Copie la date de système en ch1 6) le contenu de ch1 est écrasé et remplacé par la date de système. 7) Ajouter au contenu du fichier c'est-à-dire utiliser le signe >>. 8) ls –l [Aa]* > ch2 : copie la liste des fichiers et leur attributs commence par a ou A dans le fichier ch2.
  • 21. 21 wc < ch2 : compte le nombre de lignes, mots, et caractères du fichier ch2 ls -l [Aa]* | wc : permet de rediriger la sortie standard de commande ls -l [aA]* vers l'entrée standard de la commande wc. C'est-à-dire compter le nombre de lignes, mots, et caractères de tous les fichiers et leurs attributs commence par a ou A. Conclusion de question 8: La commande ls -l [Aa]* | wc est équivalent à les deux commandes ls –l [Aa]* > ch2 et wc < ch2. Exercice 4 : 1) Ouvrer vi et tapé le texte suivant : Comment se connecter sous UNIX ? Le premier concept important à garder en mémoire avant de travailler avec UNIX ou sa version PC Linux est qu’il s’agit d’un système multi- utilisateurs. L’accès à la machine UNIX doit donc être contrôlé. Pour être enregistré sous UNIX, il faut avoir un compte utilisateur (login, password) crée par l’administrateur système. L’administrateur est un super utilisateur qui a les droits de gestion du système (login root ou su). 2) Enregistrer ce fichier sous le nom de fiche1. 3) Ajouter le texte suivant :
  • 22. 22 Objectifs : Comment ca marche ?  L’editeur de texte vi Login : (Taper votre nom d’utilisateur) Le système affiche alors le message : password : (Vous devez alors rentrer votre mot de passe) Trouver un bon mot de passe : Voici quelques conseils qui vous permettront de trouver un mot de passe le plus sûr possible.  Utiliser des majuscules et des minuscules.  Utiliser des chiffres et des caractères spéciaux.  7 à 8 caractères de long  Concaténer des mots pour en créer un autre 4) Quitter vi en sauvegardant les modifications. 5) Rechercher toutes les lignes qui commence par le ou la. 6) Rechercher toutes les lignes qui contiennent des caractères écrits en majuscule. 7) Rechercher dans tout le texte les occurrences d’utilisateur et remplacer les par user. 8) Rechercher toutes les occurrences de * dans le texte.  Savoir comment utiliser la commande vi.  Utiliser la commande « grep » pour chercher et afficher des lignes tout en utilisant ses options.  Utilisation de la commande « sed » pour remplacer une chaine par une autre.
  • 23. 23  La commande «grep » : La commande « grep » est une commande de recherche qui permet de rechercher des lignes dans un fichier ou plusieurs. Syntaxe : $ grep[-civw] "modèle de critère" [fichier …] -c (count) compte les lignes sans les afficher -i considère les majuscules et minuscules de façon identique -v (reverse) cherche les lignes ne correspondant pas au critère -w (word) cherche modèle critère de comme un mot isolé
  • 24. 24  La commande «sed » : Commande de substitution La commande sed permet d'effectuer des substitutions suivant La syntaxe : sed [adresse]s/expr régulière/remplacement/options. Attention ! Contrairement à ce que l'on pourrait attendre, cette commande laisse passer toutes les lignes et ne sélectionne pas celles qui ont satisfait l'expression régulière et donc subi la substitution. Pour sélectionner, voir la commande de destruction. Options  Sans précision, la commande ne s'applique qu'à la 1ère occurrence de chaque ligne.  0...9 : indique que la substitution ne s'applique qu'à la nième occurrence  g : effectue les modifications sur toutes les occurrences trouvées. Exemple : sed s/moi/toi/g fich.moi > fich.toi le fichier fich.moi est parcouru, à chaque occurrence de "moi", ce mot est remplacé par "toi" et le nouveau fichier est sauvegardé sous le nom fich.toi Délimiteur : Le slash / étant très utilisé au niveau du shell comme séparateur de niveau de répertoire, il est possible d'utiliser à la place tout autre caractère comme # sed s#/home#/rep_perso#g /etc/passwd > /tmp/passwd.new
  • 25. 25 Destruction ou sélection  Cette option permet de filtrer les lignes qui satisfont une expression régulière. Ces lignes ne sont pas détruites dans le fichier d'origine, mais ne sont pas transmise en sortie.  Comment modifier alors le fichier à traiter ?  cp fichier copie  sed /.../d copie  Par exemple, pour détruire toutes les lignes vide d'un fichier : sed /^$/d  Remplacement dans le VI : La commande s/text_anc/texte_nouveau/g remplace les occurences de texte_anc par texte_nouveau dans tout (à cause de g) le fichier courant. Le point représente "tout caractère". L'astérisque désigne 0 ou n occurences. L'accent circonflexe désigne le début de ligne. $ désigne la fin de ligne, [ ...] désigne un intervalle et [^...] l'intervalle complémentaire, * désigne une répétition de caractères. n1,n2s/chaine1/chaine2/g : idem pour les lignes de 1 à n2 ; ex. : 1,$s/avoir/être/g  Recherche dans le VI : Pour rechercher un mot dans un document, il vous suffit (en mode normal) de taper / suivi de la chaîne à rechercher, puis de valider par la touche entrée. Il est alors possible d'aller d'occurrence en occurrence grâce à la touche n. La solution : 1) vi 2) : w fiche1 3) vi fiche1 4) : x 5) - Vi : / ^ [Ll] [ae]
  • 26. 26 -Terminal $grep “[Ll][ea]“ fiche1 6) – Vi :/ [A-Z] -Terminal $grep “[A-Z]“ fiche1 7) – Vi : 0,$ S/utilisateur/User/gci -Terminal $sed ’s/utilisateur/user/g’ fiche1
  • 27. 27 8) – Vi :/* -Terminal $grep “*“ fiche1 Note Il y a d’autre éditeur de texte les plus célèbre sont : Nano, Im et Emacs Entre ces trois le plus facile a utiliser c’est Nano  Nano Le nom complet de Nano est GNU nano, en référence au projet GNU. Il s'agit d'un logiciel qui s'inspire de pico un éditeur de texte plus ancien qui se voulait lui aussi très simple d'utilisation. Pour démarrer le logiciel, il vous suffit simplement de taper nano dans la console.  Emacs est un éditeur pleine page extensible, qui a de nombreuses facilités interactives, qui possède une barre de menus et qui est toujours en mode insertion. Il existe un grand frère encore plus convivial : xemacs  Vim est un éditeur de texte plus évolue.
  • 28. 28 Exercice 5 : 1) Ouvrer vi et tapé le texte suivant: Ali:13:022568779:Casablanca Omar:55:022556378:Rabat Adil:56:039884596:Tanger Noureddine:80:022998766:Fes Zakaria:89:023363398:Marrakech Reda:79:022225262:Oujda Mohamed:72:023055566:Eljadida Boubker:72:022088089:Tanger Khalid:79:022056595:Casablanca Mustapha:89:022358856:Fes Aziz:56:022569676:Eljadida 2) Sauvegarder ce contenu sous le nom carnet-adresse. 3) Ouvrir vi en éditant le fichier carnet-adresse et ajouter le texte suivant : Saloua:80:022151113:Marrakech Fatima:55:022198922:Rabat Halima:13:022343533:Oujda Nadia:56:022990939:Eljadida Ilham:80:022897444:Fes Fatiha:79:022568222:Oujda Mina:13:023256978:Rabat Khadija:56:055569955:Marrakech Saadia:89:039568456:Casablanca Imane:55:055562378:Tanger Madiha:72:039256696:Oujda 4) Sauvegarder les modifications. Le fichier carnet-adresse contient quatre champ : Le premier champ représente le nom, le deuxième le code du département, le troisième le numéro de téléphone et le dernier la ville. Attention le premier champ est noté 0, le deuxième 1, ainsi de suite. 5) Compter le nombre ligne, mot et caractères du fichier carnet-adresse. 6) Créer le fichier carnet-adresseA qui contient les 10 lignes premières du fichier carnet-adresse. 7) Ranger toutes les lignes par ordre alphabétique en effectuant un tri sur le premier caractère du fichier carnet-adresse. 8) Effectuer un tri inversé sur le deuxième champ 9) Effectuer un tri sur le deuxième caractère du champ Numéro 4 (ville) 10) Créer en une seule commande le fichier carnet-adresse-tri qui contient les 10 premières lignes du tri sur le champ Numéro 4 (ville) 11) Extraire les 10 premiers caractères de chaque ligne du fichier carnet- adresse. 12) Créer en une seule commande le fichier carnet-adresseB qui contient
  • 29. 29 deux champs de toutes les lignes. 13) Créer en une seule commande le fichier carnet-adresseC qui contient les 10 premiers caractères de toutes les lignes. Objectifs : Comment ca marche ?  La commande «head» : La commande head affiche les n premières lignes d'un fichier Syntaxe : head [-n] [fichier...] -n nombre de lignes à afficher depuis le début/la fin de fichier +n affichage à partir de la ligne numéro n -f attente de nouvelles lignes (sortie par Ctrl-c)  La commande « sort » : La commande sort trie les lignes des fichiers en arguments et affiche le résultat à l'écran. Le clavier est lu si fichier est omis. Par défaut sort effectue un tri par ordre alphabétique; mais les options .  Découvrir la commande “head” et ses options.  Découvrir la commande “sort” et ses options.  Découvrir la commande “cut” et ses options.
  • 30. 30 Syntaxe : sort [-ufnr] [-o fic] [fichier...] -u permet de n'afficher qu'une seule fois les lignes multiples -f ne différencie pas les minuscules et MAJUSCULES -n effectue un tri numérique -r ordre décroissant -o fic enregistre la sortie dans fic  La commande « cut » : La commande cut de couper une partie d’un fichier et conserver uniquement une partie de chaque ligne Syntaxe : cut [option] fichier -c Extraire suivant le nombre de caractères -f Extraire suivant le nombre de champs -dx Le caractère x est le séparateur de champs La solution : 1) vi  puis on tape i  pour passer au mode insertion
  • 31. 31 2) Premièrement on clique sur la touche Echap pour passer au mode commande après on sauvegarde notre fichier par :w carnet-adresse 3) vi carnet-adresse i 4):w où bien :wq pour sauvegarder et quitter le vi au meme temps . 5)wc carnet-adresse 6)head -10 carnet-adresse > carnet-adresseA 7)sort carnet-adresse 8)sort –t: –k1 –rn carnet-adresse 9)sort –t: –k3 carnet-adresse 10)sort –t: -k3 carnet-adresse | head -10 > carnet-adresse-tri 11)cut –c 1-10 carnet-adresse 12)cut –d: -f1,3 carnet-adresse > carnet-adresseB 13)cut –c 1-10 carnet-adresse > carnet-adresseB Exercice 6 : Le fichier carnet-adresse de l’exercice précèdent (exercice 2) contient quatre champ : Le premier champ représente le nom, le deuxième le code du département, le troisième le numéro de téléphone et le dernier la ville. Attention le premier champ est noté 0, le deuxième 1, ainsi de suite. 1) Ouvrer vi et tapé le texte suivant 13:informatique 55:comptabilité 56:commerciale 80:stock
  • 32. 32 89:fabrication 72:direction 79:maintenance 2) Sauvegarder ce contenu sous le nom departement. Le fichier departement contient deux champs : Le premier champ représente le code du département, le deuxième le nom du département,. 3) Créer en une seule commande le fichier departement-trie en effectuant un tri sur le champ N° 1 (code du département) du fichier departement. 4) Créer en une seule commande le fichier carnet-adresse-trie en effectuant un tri sur le champ N° 2 (code du département) du fichier carnet-adresse. 5) Faire la jointure entre les fichiers : a) departement et carnet-adresse b) departement-trie et carnet-adresse c) departement et carnet-adresse-trie d) departement-trie et carnet-adresse-trie 6) Editer le fichier departement et copier / coller tous les lignes à la fin du fichier. Et sauvegarder les modifications dans le fichier departement-doublant. 7) Applique la commande uniq sur le tri du fichier departement-doublant pour éliminer les lignes dupliquées. 8) Editer le fichier departement est remplace respectivement informatique, comptabilité par info, compta. Sauvegarder les modifications dans le fichier departement-comm. 9) Applique la commande comm sur les fichiers departement et departement-comm. Pour visualiser les lignes communes et non communes.
  • 33. 33 10) Applique la commande comm sur les fichiers departement et departement-doublant. Pour visualiser les lignes communes et non commun  Objectifs : Comment ça marche ?  La commande join : La commande join permet d’effectuer une jointure de deux fichiers en fonction d’un champ commun.les deux fichiers doivent être triés sur les champs indiqués.la numérotation des champs démarre à 0. Syntaxe : $ join [-j1|2]m –tx [-o list] fichier1 fichier2 -j -j1 m champ m du fichier 1 - j1 m champ m du fichier 1 -o indique les champs que l’on souhaite afficher. -tx le caractère x est le séparateur de champ. le plus simple est de prendre un exemple. Soit fich1 un fichier qui contient  Utiliser la commande uniq : sélection/rejet de lignes consécutives en double  Faire la jointure entre deux fichiers  Utilisation d’une nouvelle commande comm : sélection/rejet de lignes communes à deux fichiers.
  • 34. 34 maroc 1 2 egypt 3 4 et fich2 un fichier qui contient maroc 1991 egupt 1992 La commande join -j1 1 fich1 fich2 genèrera maroc 1 1991 egypt 3 1992  La commande uniq : La commande uniq recherche les lignes uniques ou dupliquées, à noter toutefois qu’elle ne détecte que si de telles lignes sont adjacentes(en gros, il vaut mieux trier le fichier avant de l’envoyer à cette commande !) Syntaxe : $ uniq fichier1 Sans option, la commande uniq renvoie le fichier passé en argument en ayant enlevé les répétitions de lignes. Voici les options disponibles : -u N’affiche que les lignes uniqs. -d N’affiche que ce qui n’est pas uniq. -c Compte les lignes en double.
  • 35. 35 Solution : 1) vi  i 2) 3) On suppose qu’on a quitté le vi On redirige directement la sortie de la commande vers le fichier département-tri 4)
  • 37. 37 d) Pour faire la jointure entre deux fichiers il faut que ces derniers soient triés et avoir un champ commun donc la question d) est la seule qui est correcte 6) 6)
  • 38. 38 7)
  • 39. 39 8)
  • 40. 40 9) 10) 11) Note La commande join est un peu plus complexe : elle permet de fusionner des fichiers à partir d'une clef commune. join va parcourir les deux fichiers ligne à ligne et rechercher une clef présente
  • 41. 41 dans les deux fichiers. La sortie sera la fusion des deux fichiers lorsque la clef est trouvée: Si l'on a par exemple : Fichier1 Fichier2 => column Fichier1 Fichier2 => Sortie key1 a key1 b key1 a b key2 c key2 d key2 c d key3 y keyA z => les lignes 1 et 2 des fichiers sont fusionnées dans la sortie. Les lignes 3 n'ont pas de correspondance et sont donc rejetées. Exercice 7 : 1) Dans votre répertoire de travail personnel, créer un répertoire que vous appellerez catalogue et les fichiers suivants : fich1, fich2, fich3, prog.c, f1.c, f2.c. 2) Quels sont les droits d’accès attribués à ces fichiers. 3) Placez les valeurs de ces droits d’accès aux fichiers suivants fich1 : rwxrw-r-- fich2 : r—r—r-- fich3 : --x--xr-- Utilisez les deux formes symbolique et octale. 4) Déplacez vous dans le répertoire catalogue et créez un fichier fich4 non vide. 5) Comment appeler la commandes umask pour attribuer à tous les
  • 42. 42 nouveaux fichiers les droits d’accès ‘rw-r--r--‘. 6) Changer les modes d’accès de tous les fichiers qui ont une extension ’.c ‘ en ‘rw-r--r--‘. 7) Même chose en notation symbolique. 8) Supprimer le mode ‘x’ pour le groupe au niveau du fichier fich3. 9) Rajoutez le mode ‘w’ pour le propriétaire et enlevez ‘r’ aux autres du fich3 10) Changer le propriétaire et le group de ce fichier. Objectifs : Comment ça marche ?  Les droits d'accès aux fichiers Dans un système GNU/Linux, tout fichier se voit attribuer des droits pour 3 identités :  le propriétaire (user) c'est l'utilisateur qui a créé le fichier ou l'utilisateur que root a désigné comme propriétaire. ->Savoir c'est quoi les droits d'accès aux fichiers. -> Comment changer les droits d'accès d'un fichier avec ces deux commandes  Chmod  Umask (En utilisant mode symbolique et mode numérique) ->Comment changer l'utilisateur et le groupe d'un fichier (En savoir une condition importante pour les faire.)
  • 43. 43  le groupe (group):qui n'est pas forcément le groupe du propriétaire.  les autres (others):ceux qui ne font pas partie du groupe. Attention! L'utilisateur propriétaire et le groupe propriétaire du fichier peuvent être indépendants La commande ls -l nous permet d'afficher les droits d'un fichier. Type: - pour un fichier normal d pour un répertoire. l un lien. Les trois caractères d'un bloc sont les suivants, dans l'ordre :  r (read) : droit de lire le fichier / lister le contenu du répertoire  w (write) : droit d'écrire dans le fichier / modifier le répertoire (créer/supprimer des fichiers)  x (execute) : droit d'exécuter le fichier (programme ou script) / ou de traverser le répertoire (changer le répertoire courant). Si l'un des droits n'est pas accordé, un tiret est affiché à sa place.
  • 44. 44 Modifier les droits d'accès La commande "chmod " (abréviation de change mode) permet de modifier les droits associés à un fichier. Syntaxe:  mode symbolique chmod [option] … [qui]op<permission(s)>……FILE Option: -c: n'affiche que les changements réalisés. -f : supprime la plupart des messages d'erreur. -v : liste les fichiers en cours de modification. -R : modifie les modes des fichiers des sous-répertoires de manière récursive  mode numérique Chmod [option] … MODE FILE…..  base octal basé sur des nombres de 0 à 7.
  • 45. 45  Base binaire (base 2) Exemple: Quelques permissions habituelles Modifier les droits d'accès par défaut  Rappelons les règles simples de propriété qui s'appliquent à la création d'un fichier ou d'un répertoire:
  • 46. 46  son propriétaire est l'utilisateur qui l'a créé  son groupe est le groupe primaire de ce même utilisateur  Mais quelles sont les permissions attribuées par défaut à l'utilisateur propriétaire, au groupe propriétaire et à tous les autres? Les permissions maximales accordées par un fichier est :666 (-rw- rw-rw-) et pour le répertoire est 777 (-rwxrwxrwx). On peut restreindre ces permissions lors de sa création. C'est le rôle de la commande umask de fixer les permissions masquées, autrement dit les droits non accordés aux fichiers et répertoires lors de leur création. Exemple : de calcul de permissions effectives, affectées lors de la création d'un répertoire, par un utilisateur dont le masque de protection est 027 777 = 111 111 111 permissions maxi = rwx rwx rwx - 027 = 000 010 111 masque de protection = 750 = 111 101 000 permissions effectives = rwx r-x ---  Changer le propriétaire et le groupe La commande chown (change owner) change le propriétaire des fichiers (fichier ou répertoire). La commande chgrp change le groupe des fichiers. Syntaxe : chown [-R] [-h] utilisateur nom [...] chgrp [-R] [-h] groupe nom [...] -R récursif sur tous les fichiers et sous-répertoires contenus si nom est un répertoire -h traitement sur les liens symboliques Nom exprime le nom d'un fichier ou d'un répertoire utilisateur représente soit le nom de l'utilisateur, soit son UID (User IDentification).
  • 47. 47 groupe représente soit le nom du groupe, soit son GID (Group IDentification). $ cd [répertoire] Remarque : Seul le root qui a le droit d'utiliser chown et chgrp. Pour passer root :taper en terminale sudo su Après entrer votre password Solution : Mon répertoire courant est exercice7: mkdir exercice7  cd exercice7  1) mkdir catalogue  touch fich1 fich2 fich3 prog.c f1.c f2.c  2) ls –l exercice7 3) Forme symbolique : fich1 : rwx rw- r-- : $chmod u=rwx,g=rw-,o=r-- fich1  fich2 : r-- r-- r-- : $chmod u=r-- ,g=r--,o=r-- fich2 
  • 48. 48 fich3 :--x --x r-- : $chmod u=--x,g=--x,o=r-- fich3  Forme octale: $chmod 764 fich1  $chmod 444 fich2  $chmod 114 fich3  4) cd catalogue  cat >> fich4  Merci Madame El filali Ctrl d pour sortir 5) umask 022  Commentaire : Si je crée un nouveau fichier s'appelle fich5, comme vous remarquer les droits d'accès sont 'rw-r--r-- ' . 6) Mode octal: chmod 644 *c  Mode symbolique: chmod u=rw-,g=r--,o=r-- *c  7) chmod g-x fich3 
  • 49. 49 8) chmod u-x ,o-r fich3  9) Exemple du nom des utilisateurs : Exemple du nom des groupes:  Commentaire : Comme vous remarquez, vous n'avez pas le droit de changer l'utilisateur (même chose pour groupe) si vous êtes un simple utilisateur .Il est nécessaire de passer en mode root (super utilisateur)
  • 50. 50 # : Super utilisateur Exercice 8 : 1) Dans votre répertoire personne1, créer l’arborescence suivante : 2) Dans le répertoire F0 créez les fichiers suivants: fich01, fich02, fich03. 3) Dans le répertoire F1 créez les fichiers suivants: fich11, fich12, fich13. 4) Dans le répertoire F2 créez les fichiers suivants: fich21, fich22, fich23. 5) Dans le répertoire F3 créez les fichiers suivants: fich31, fich32, fich33. 6) Dans le répertoire F4 créez les fichiers suivants: fich41, fich42, fich43. 7) Dans le répertoire F5 créez les fichiers suivants: fich51, fich52, fich53.
  • 51. 51 Objectifs : 8) Dans le répertoire F6 créez les fichiers suivants: fich61, fich62, fich63. 9) Dans le répertoire F7 créez les fichiers suivants: fich71, fich72, fich73. 10) Quels sont les droits d’accés attribués aux répertoires et aux fichiers de chaque répertoire. 11) Utilisez soit cat soit vi pour emplir respectivement les fichiers fich01, fich11... fich71 de chaque répertoire par « bonjour fcih01 », « bonjour fich11 », … « bonjour fich71 » 12) Placez les valeurs de ces droits d’accès aux répertoires suivants : F0 : _ _ _ _ _ _ _ _ _ F1 : _ _ _ r _ _ _ _ _ F2 : _ _ _ _ w _ _ _ _ F3 : _ _ _ _ _ x _ _ _ _ F4 : _ _ _ r _ x _ _ _ F5 : _ _ _ _ w x _ _ _ F6 : _ _ _ r w _ _ _ _ F7 : _ _ _ r w x _ _ _ 13) Appliquez les commandes ls et cd à chaque répertoire qu’est ce que vous remarquez. 14) Dans votre répertoire du travail éditez les fichiers F0/fich01, F1/fich11, … F7/fich71. Qu’est ce que vous remarquez. 15) Placez les valeurs de ces droits d’accès aux répertoires suivants : F0 : _ _ _ _ _ _ _ _ _ F1 : r _ _ r _ _ _ _ _ F2 : _ w _ _ w _ _ _ _ F3 : _ _ x _ _ x _ _ _ F4 : r _ x r _ x _ _ _ F5 : _ w x _ w x _ _ _ F6 : r w _ r w _ _ _ _ F7 : r w x r w x _ _ _ 16) Appliquez les commandes ls et cd à chaque répertoire. Qu’est ce que vous remarquez ? 17) Dans votre répertoire du travail éditez les fichiers F0/fich01, F1/fich11, … F7/fich71. Qu’est-ce que vous remarquez ? Le but est : quand on a le droit d’utiliser les deux commandes « cd » & « ls » ?
  • 52. 52 Comment ça marche ? mkdir -p une commande qui nous permet de créer une arborescence (des répertoires qui sont fournis en argument). chmod permet à un propriétaire ou à l’administrateur de modifier les droits de ces fichiers. ls affiche les attributs d’un fichier. ls -l affiche tous les attributs d’un fichier. cd changement de répertoire courant
  • 53. 53  cat > nom_fichier cette commande nous aide d’ajouter des infos à nos fichiers comme le fichier « nom_fichier ». Solution : 4) mkdir -p Rep/F0 Rep/F1 Rep/F2 Rep/F3 Rep/F4 Rep/F5 Rep/F6 Rep/F7 5) touch Rep/F0/fich01 Rep/F0/fich02 Rep/F0/fich03  6) touch Rep/F1/fich11 Rep/F1/fich12 Rep/F1/fich13  7) touch Rep/F2/fich21 Rep/F2/fich22 Rep/F2/fich23  8) touch Rep/F3/fich31 Rep/F3/fich32 Rep/F3/fich33  9) touch Rep/F4/fich41 Rep/F4/fich42 Rep/F4/fich43  10) touch Rep/F5/fich51 Rep/F5/fich52 Rep/F5/fich53  11) touch Rep/F6/fich61 Rep/F6/fich62 Rep/F6/fich63  12) touch Rep/F7/fich71 Rep/F7/fich72 Rep/F7/fich73 
  • 54. 54 Vérifiant la création de fichier 13) ls –l 14) vi Rep/F0/fich01  i  “bonjour fich01” :x vi Rep/F0/fich02  i  “bonjour fich02” :x vi Rep/F0/fich03  i  “bonjour fich03” :x vi Rep/F1/fich11  i  “bonjour fich11” :x vi Rep/F1/fich12  i  “bonjour fich12” :x vi Rep/F1/fich13  i  “bonjour fich13” :x
  • 55. 55 vi Rep/F2/fich21  i  “bonjour fich21” :x vi Rep/F2/fich22  i  “bonjour fich22” :x vi Rep/F2/fich23  i  “bonjour fich23” :x vi Rep/F3/fich31  i  “bonjour fich31” :x vi Rep/F3/fich32  i  “bonjour fich32” :x vi Rep/F3/fich33  i  “bonjour fich33” :x cat > Rep/F3/fich33  “bonjour fich33”  Ctrl+D cat > Rep/F4/fich41  “bonjour fich41”  Ctrl+D cat > Rep/F4/fich42  “bonjour fich42”  Ctrl+D cat > Rep/F4/fich43  “bonjour fich43”  Ctrl+D cat > Rep/F5/fich51  “bonjour fich51”  Ctrl+D cat > Rep/F5/fich52  “bonjour fich52”  Ctrl+D cat > Rep/F5/fich53  “bonjour fich53”  Ctrl+D cat > Rep/F6/fich61  “bonjour fich61”  Ctrl+D cat > Rep/F6/fich62  “bonjour fich62”  Ctrl+D cat > Rep/F6/fich63  “bonjour fich63”  Ctrl+D cat > Rep/F7/fich71  “bonjour fich71”  Ctrl+D cat > Rep/F7/fich72  “bonjour fich72”  Ctrl+D cat > Rep/F7/fich73  “bonjour fich73”  Ctrl+D 15) chmod 000 Rep/F0 chmod 040 Rep/F1 chmod 020 Rep/F2 chmod 010 Rep/F3 chmod 050 Rep/F4 chmod 030 Rep/F5 chmod 060 Rep/F6 chmod 070 Rep/F7
  • 56. 56 16) cd Rep /F0 entrée ls Rep/F0 entrée cd Rep /F1 entrée ls Rep/F1 entrée cd Rep /F2 entrée ls Rep/F2 entrée cd Rep /F3 entrée ls Rep/F3 entrée cd Rep /F4 entrée ls Rep/F4 entrée cd Rep /F5 entrée ls Rep/F entrée cd Rep /F6 entrée ls Rep/F6 entrée cd Rep /F7 entrée ls Rep/F7 entrée
  • 57. 57 Les deux commandes « ls » et « cd » ne vont pas marcher parce qu’on a changé les droits d’accès de chaque répertoire dans la question précédente. 17) Pour cette question on n’a pas le droit d’éditer ces fichiers F0/fich01, F1/fich11, …, F7/fich71. 18) chmod 000 Rep/F0 chmod 440 Rep/F1 chmod 220 Rep/F2 chmod 110 Rep/F3 chmod 550 Rep/F4 chmod 330 Rep/F5 chmod 660 Rep/F6 chmod 770 Rep/F7 19) cd Rep /F0  ls Rep/F0  cd Rep /F1  ls Rep/F1  cd Rep /F2  ls Rep/F2  cd Rep /F3  ls Rep/F3  cd Rep /F4  ls Rep/F4  cd Rep /F5  ls Rep/F  cd Rep /F6  ls Rep/F6  cd Rep /F7  ls Rep/F7 
  • 58. 58 Exercice 9: 1) Ouvrer vi et tapé le texte suivant ali:13:022568779:Casablanca omar:55:022556378:Rabat adil:56:039884596:Tanger noureddine:80:022998766:Fes boubker:72:022088089:Tanger khalid:79:022056595:Casablanca aziz:56:022569676:Eljadida 2) Sauvegarder ce contenu sous le nom carnet-adresse. 3) Afficher les lignes commençant par les caractères compris entre a et d. 4) Afficher les lignes contenant la chaîne de caractères Casablanca. Objectifs : Comment ça marche ?  La commande « grep » : La commande grep permet de rechercher expression dans fichier .Elle affiche les noms de fichiers ainsi que les lignes contenant expression. Syntaxe : grep [-ilsfv] expression [fichier...] -i ne tient pas compte des minuscules et des MAJUSCULES -l n'affiche que le nom des fichiers (pas les lignes) Utilisation de la commande « grep » pour chercher et afficher des lignes tout en utilisant ses options.
  • 59. 59 -s pas de message d'erreur sur les fichiers inaccessibles -f fich spécifie un fichier contenant les expressions rechercher -v affiche toutes les lignes, sauf celles qui contiennent l'expression. expression chaîne de caractères (ou expression régulière non abordée dans ce cours) fichier nom des fichiers à traiter. Solution : 1)Vi 2) :w carnet-adresse 3)sous le vi : / ^ [a-d] Sous le terminal : 4)sous le vi : /casablanca Pour recherche Signifier le début
  • 60. 60 Sous le terminal grep casablanca carnet-adresse Exercice 10 : 1) Dans votre catalogue de travail, créer un fichier grepo, qui contient le texte suivant : Janvier Février Mars Avril Mai Juin Juillet Septembre Novembre Décembre Août Rechercher les lignes ayant les caractéristiques suivantes : - Le caractère "vr" à un endroit quelconque. - Le texte "mbre" en fin de ligne. - Le caractère "a" en début de ligne qu’elle soit en minuscule ou majuscules. - La chaîne de caractère "mai" est seule dans la ligne qu’elle soit en minuscule ou majuscules.
  • 61. 61 2) Copier le fichier /etc/passwd dans votre répertoire courant. Rechercher dans ce fichier l’ensemble des lignes qui commencent par votre nom d’utilisateur. En déduire les informations qui concernent votre compte utilisateur. 3) Dans ce même fichier rechercher les lignes qui identifient les utilisateurs ne faisant pas partie du même groupe que vous. 4) Donner la liste des utilisateurs dont le UID varie entre 500 et 599 5) Le nombre d’utilisateurs qui utilisent comme programme initial dans passwd le /bin/bash 6) Donner la liste des utilisateurs dont le nom contient la lettre à qui se répète 2 fois 7) tous les utilisateurs dont le champ commentaire n’est pas vide 8) La ligne de commande suivante retourne le nombre de lignes du fichier Liste qui contiennent la chaîne de caractères em : $ grep –c "em" liste Donner la ligne de commande qui permet d’aboutir au même résultat sans l’option –c. Objectifs : Solution :  comprendre en détails le contenu du fichier passwd.  Effectue des recherches avec la commande grep.
  • 63. 63 Les informations de mon compte : 1. Username :pubunto 2. Mot de passe, encrypté :x 3. user id numérique :1000 4. group id numérique :1000 5. Nom complet ou autre description du compte :1000 6. Répertoire d'accueil :/home/pubuntu 7.Shell de login (programme lancé au login) :/bin/bash 4)
  • 65. 65 8) Note  La base de données utilisateurs d'un système UNIX est le fichier texte /etc/passwd (appelé le fichier password), qui énumère tous les usernames valides avec les informations qui leur sont associées. Ce fichier possède une ligne par username, divisée en sept champs délimités par le caractère `:' :
  • 66. 66 Exercice 11 : Objectifs : 1) Afficher tous les fichiers qui commencent par ‘a’`majuscule ou minuscule. 2) Afficher tous les fichiers qui se composent de 3 caractères dont le dernier est ‘M’. 3) Sauvegarder tous les noms de fichiers se terminant soit par a, b ou c dans un fichier F1. 4) Créer les fichiers suivants dans un répertoire :a1, a2, a3……a9 et afficher les 5 premiers 5) Afficher tous les noms de fichiers répertoires commençant par une lettre majuscule. 6) Afficher tous les noms de fichiers de l’utilisateur « webmaster1 » qui appartient au groupe « webos ». 7) Afficher tous les fichiers normaux ayant pour taille plus de 150 Ko. 8) Afficher tous les fichiers dont les dernières modifications remontent à moins de trois jours. 9) Afficher tous les répertoires ayant les autorisations d’accès ‘rwxr-xr-x ‘. 10) Supprimer tous les fichiers auxquels vous n’avez pas accédés depuis plus de deux semaines. 11) Afficher tous les fichiers répertoires ou les fichiers dont le nom se termine par le caractère ‘a’. 12) Afficher tous les fichiers qui n’appartiennent pas a l’utilisateur « userxg1 ».
  • 67. 67 Comment ça marche ? find : La commande find permet de rechercher un fichier dans l'arborescence à partir du point spécifié. Syntaxe : find répertoire option1 [option2...] -name fich recherche sur le nom fich -size n recherche sur la taille en blocs -ctime n recherche sur la date de création -exec cmd {} ; exécute la commande cmd sur les fichiers trouvés -print affiche le résultat de la recherche ! négation du critère de recherche Exemple : $ find $HOME - name "vil*" -print $ find . -print| cpio -ocvB / dev/streamer $ find / -name "profile*" - exec pg ; ; Remarque : { } Pour bien maitriser les différentes utilités de la commande find.
  • 68. 68 Après -exec, on peut utiliser n'importe quelle commande en la faisant suivre de ";". Par exemple : find source -perm 777 -type f -exec rm {}; Solution : 1) $find / -name "[a-A] *" -print 2) $find / -name "??M" -print 3) $find / -name "*[a b c] " > F1 4) $touch a1 a2 a3 a4 a5 a6 a7 a8 a9|find -name "a[1-5]" 5) $find / -type d - name "[A-Z] *" 6) $find / -user "webmasters1" -a -group "webos" 7) $find /-type f -size "+150K" 8) $find /-type f -mtime -3 9) $find /-type d -perm 755 10) $find /-type f -atime +15 -exec rm
  • 69. 69 11) $find /(-type d -o type f) -name "*a" 12) $find ! -user "user xg" Note Il y a une autre commande qu’on peut l’utiliser pour effectuer une recherche rapide .cette commande s’appelle locate (localiser) Son utilisation est tres simple il suffit de d’ecrire locate suiver par le nom du fichier que vous voulez retrouver. Pour rechercher un fichier sur tout le disque, la commande locate est très rapide mais ne trouvera pas les fichiers qui viennent d'être créés dans la journée. On peut mettre à jour la liste des fichiers qu'elle connaît en appelant updatedb.(précédé par sudo) _ find est une commande plus puissante mais plus lente qui va parcourir votre disque à la recherche de vos fichiers. Elle peut s'utiliser avec trois paramètres, dans l'ordre : où chercher, que chercher et que faire avec.
  • 70. 70 Exercice 12 : 1) Ecrire un script shell qui donne le nombre de sous répertoire et de fichier en partant du niveau courant. 2) Ecrire un script shell qui donne le nombre de sous répertoire et de fichier contenus dans une arborescence dont le chemin sera donné en paramètre. 3) Ecrire un script shell qui donne le nombre de sous répertoire et de fichier contenus dans une arborescence dont le chemin sera demandé à l‟utilisateur. 4) Même chose que pour la question 3 en vérifiant que le nom du répertoire de départ est valide. 5) Ecrire un script shell qui donne poue une arboresence donné le nombre de fichiers exécutables, de fichiers accessibles en lecture, et de fichiers accessibles en écriture. 6) Faire un script qui crée un certain nombre de fichiers, ce nombre étant passé en paramètre (fich00, fich01, fich02, …). Faire un script shell qui donne les informations suivantes: - Nom de l‟utilisateur -Son groupe -Son programme initial (son shell) - Catalogue de travail En utilisant les fichiers /etc/passwd et /etc/group. Objectifs :
  • 71. 71 Comment ça marche ?  Programmation Shell: Le shell c'est un programme qui se trouve dans le répertoire /bin. Et ce que l’on appel un « Interpréteur de commandes ». dans la programmation shell on travaille avec un éditeur du texte de notre choix (script). La syntaxe générique d'une commande shell est : commande [options [argument1 [argument2 [... ]]]] - # ! / bin / bash : c’est pour initialiser le programme en Shell. - chmod +x : ajouter le droit d’exécution en fichier. - . / Nom du fichier : exécution le script. Où bien sans rendre le script exécutable on peut utiliser la syntaxe suivante $sh nom_script où $bash nom_script En Bash la syntaxe plus générale de if est: if test condition_1 # ou if [ condition_1 ] then commandes1 [ elif test condition_2 ; then commandes ]… [ else commandes3 ] fi # l'envers de if (fin de bloc) la syntaxe plus générale de case :  Comment utiliser la programmation Shell.  savoir compter avec des scripts Shell par différentes façons : Les nombres de fichiers Les nombres de répertoires
  • 72. 72 Case $variable in Valeur1) Commande1;; Valeur2) Commande2;; ….…. *) # tous les autres cas Commande;; esac # (l'envers de case) ( Fin de bloc case ) la syntaxe de while while condition do commandes done la syntaxe de until Until condition do commandes done Solution : 1) sous vi : Vi exo12-1
  • 73. 73 : wq Sous terminal : Chmod +x exo12-1 Rendre le fichier exécutable pour avoir le droit d’exécution du script . /exo12-1 2) sous vi : vi exo12-2 : wq Sous terminal : chmod +x exo12-2 . /exo12-2 $HOME 3) sous vi : vi exo12-3
  • 74. 74 sous terminal : sh exo12-3 4)sous vi :
  • 75. 75 5)vi exo12-5 #! /bin/bash echo tapez un chemin valide read chemin nb-r=0 nb-w=0 nb-x=0 6)vi exo12-6 #! /bin/bash for i in ‘seq 0 $1’  for (i=0 ;i<$1 ;i++) do touch fich 0 $i done 7)vi exo12-7
  • 76. 76 #! /bin/bash sort –t : +3 -4 –n / etc / passwd > passwd-tri sort –t : +2 -3 –n/ etc / groupe > groupe-tri joint –t : -j14 –j23 –o 1.1 2.1 1.7 1.6 passwd-tri groupe tri |grep ” ^$1 “
  • 77. 77 L'idée force était de familiariser le lecteur avec ce que fait Linux quand il exécute une commande. Ce qui citer ici ne gère pas toutes les fonctionnalités que bash prennent en charge. La gestion des touches Tab, Page Haut/Bas, comme on le voit dans bash peut être implémentée. D'autres fonctionnalités comme la prise en charge de la programmation shell, la modification des variables d'environnement pendant la durée d'exécution, etc. sont essentielles. Une étude attentive du code source de bash n'est pas une tâche aisée en raison des diverses complexités impliquées, mais elle vous aidera à développer un interpréteur de commandes très complet.
  • 78. 78