Home

TD : Les fichiers sous UNIX, niveau utilisateur

image

Contents

1. Question 3 Ecrivez un programme qui boucle l infini en affichant un message l cran Compilez le et ex cutez le en avant plan puis arr tez le par la commande clavier CTRL C Faites un ps existe t il encore Si oui sous quel tat Ex cutez nouveau ce programme en avant plan et arr tez le par la commande clavier CTRL Z Faites un ps existe t il encore Si oui sous quel tat Relancez ce processus en avant plan Ex cutez a nouveau ce programme en arri re plan Faites un ps pour trouver son tat Tuez enfin les processus qui restent associ s a ce programme Question 4 Sachant que la fonction c getpid renvoie le PID du processus et que la fonction getppid renvoie le PID du processus p re le PPID crire un programme C qui affiche le PID du processus ainsi que celui de son p re Question 5 Que fait d apr s vous le programme suivant concur c include lt stdio h gt void main int pid i pid fork if pid 0 for i 0 i lt 10 i printf n je suis le processus p re d i sleep 1 if pid 0 for i 0 i lt 10 i printf n je suis le processus fils d i sleep 1 Cr ez ce fichier compilez le et ex cutez le en avant plan Que remarquez vous Relancez le et interrompez le Tuez le processus fils et relancez le processus Que remarquez vous Modifiez le programme de la question 3 en ajoutant un s eep 2 dans la boucle Comp
2. 1 b Ecrire un script qui v rifie que le nom pass en param tre est un fichier ou un r pertoire Exercice 2 Script de concat nation tri de deux fichiers a Ecrire un script qui concat ne cat puis trie sort deux fichiers filel et file2 dans un nouveau fichier file3 et qui affiche le nombre total de lignes wc 1 Les noms des trois fichiers doivent tre pass s en param tre b Modifier le script pr c dent pour que l utilisateur soit oblig de saisir au clavier le ou les noms de fichiers qu il aurait oubli s d indiquer en lan ant le script Exercice 3 Application num rique Faire un script qui propose un menu l utilisateur pour faire des op rations simples addition soustraction division multiplication et qui affiche le r sultat Exercice 4 Compl ter le script suivant en faisant tous les tests n cessaires bin csh clear while 1 echo Menu echo Affichage r pertoire courant 1 echo Liste des fihiers du r pertoire 2 echo Informations sur un fichier 3 echo Changement de r pertoire 4 echo n premi res lignes d un fichier 5 echo Sortie 0 echo n Choix set choix lt switch choix case 0 exit 0 case pwd breaksw case 2 end endsw case 3 case 4 case 5 default TD1 Initiation aux commandes UNIX Nous allons travailler sous LINUX sous l interpr teur de commandes bash entre un bourne shell et un c shell Par ailleurs
3. TD Les fichiers sous UNIX niveau utilisateur Objectifs Types de fichiers et de r pertoires sous UNIX Droits d acc s Fichiers et p riph riques Lien physique et lien symbolique Redirection des entr es sorties Exercice 1 Redirection des entr es et sorties standards e Redirigez la sortie de la commande s vers un fichier quelconque e Concat nez ce fichier le r sultat de la commande ps ef e Recherchez dans ce fichier toutes les lignes contenant votre nom en redirigeant l entr e Exercice 2 Types de fichiers fichiers sp amp iaux p riph riques e existe diff rents types de fichier sous UNIX d couvrez les en utilisant la commande s I dans votre r pertoire et dans les r pertoires dev et usr bin e Listez le r pertoire dev et faites un ps que remarquez vous qu en d duisez vous e Ouvrez une autre console et essayer d afficher le r sultat d une commande sur l autre console e Essayez d crire directement sur la console de la machine voisine Quel est le probl me Demandez votre voisin de le r soudre Exercice 3 Droits d acc s aux fichiers aux r pertoires e Cr ez un fichier quelconque de nom essail qui contiendra les trois commandes suivantes ls echo bonjour ps Essayez d ex cuter ce fichier de commandes Quel est le probleme Quels sont les droits par d faut du propri taire du groupe et du reste du monde Rendez le fichier essail ex cutable pour le propri taire le
4. commande sans tenir compte de l alias Par exemple alias ls ls l more Is gt c est la commande Is 1 more qui est ex cut e ls gt c est la commande Is qui est ex cut e Question 6 L option r Modifier le script pr c dent pour qu il accepte l option r qui va aussi d placer r cursivement tous les r pertoires et sous r pertoires dans le dossier poubelle Dans cas le script accepte des r pertoires en argument Question 7 L option i Modifier le script pr c dent pour qu il accepte l option 1 qui demande confirmation l utilisateur avant de d placer les fichiers Question 8 R cup rer les fichiers Ecrire un script unrm qui donne la possibilit de sortir un fichier ou un r pertoire de la poubelle dans un r pertoire donn en param tre Par exemple unrm fichierl va sortir le fichier fichier1 de la poubelle s il existe pour le mettre dans le r pertoire courant Question 9 La d clarer comme nouvelle commande Copier vos scripts dans le r pertoire bin de votre r pertoire de travail et v rifiez que toutes vos commandes li s la gestion de la poubelle sont accessibles den importe o TD Scripts UNIX 1 Objectif Programmer en c shell Exercice 1 Test sur les fichiers ou les r pertoires a Ecrire un script qui v rifie l existence dans le r pertoire courant du fichier dont le nom est pass en param tre Attention v rifiez avant le test que le param tre est diff rent de
5. de fichiers Qu en d duisez vous O se trouve physiquement votre r pertoire utilisateur Visualiser le fichier etc fstab et faites le rapprochement avec le r sultat de la commande df D apr s vous quoi sert ce fichier Ex cutez la commande ifconfig Quel est le probl me O se trouve la commande ifconfig Pourquoi n avez vous pas pu l ex cuter visualiser la variable PATH Trouvez une solution pour finalement ex cuter la commande ifconfig Quelle est votre adresse r seau adresse IP comparez la avec vos voisins Que repr sente d apr s vous la HW adresse En rep rant l adresse IP de la machine de votre voisin faites un ping n IP Connectez vous sur la machine de votre voisin commande ssh n P ou ssh nom machine Lister les fichiers du r pertoire courant O s est ex cut e cette commande Qu en d duisez vous De quel r pertoire s agit il Qu en d duisez vous Toujours connect sur la machine du voisin essayez de lancer l diteur de texte xedit et la commande xeyes 11 Que se passe t il TD Les variables d environnement Objectif Etudier un lien entre UNIX et C les variables d environnement Exercice 1 Afficher les variables d environnement d un programme C Ecrire un programme monenv c qui affiche les variables d environnement et leur valeur Exercice 2 Un exemple d utilisation des variables d environnement On veut crire un programme qui partir d un fichier
6. groupe et le reste du monde Ex cutez le fichier essail e Cr ez un r pertoire essairep Quels sont les droits par d faut e Ce r pertoire est un r pertoire priv Vous ne voulez pas que les membres du groupe ni le reste du monde puissent lister les fichiers ni crire dans ce r pertoire mais qu ils puissent y acc der V rifiez les droits et modifiez les si n cessaire e V rifiez les droits de votre r pertoire de travail et donnez l autorisation au groupe et au reste du monde d y acc der e Cr ez un fichier essai2 dans ce r pertoire v rifiez que le groupe et le reste du monde ont le droit de lecture ou modifiez les droits sinon e V rifiez le r sultat votre bin me ou voisin peut il lister les fichiers du r pertoire essairep afficher le contenu du fichier essai2 de ce r pertoire ou copier ce fichier sur son compte e Finalement le r pertoire est tellement confidentiel que vous ne voulez pas que le groupe et le reste du monde puisse y acc der Modifiez les droits en cons quence et demander votre bin me de v rifierle r sultat e Cr ez un autre r pertoire essaid2 et donnez des droits de lecture et des droits d acc s au r pertoire mais aucun droit d criture au groupe et au reste du monde e Cr ez un fichier essai3 dans ce r pertoire et donnez des droits en criture au fichier au groupe Demandez un membre du groupe d essayer de modifier le fichier puis d effacer le fichier Expliquez e Fina
7. rechercher modifier dans la version 3 if argc 2 datepos 1 En version 1 et 2 la date est dans argv 1 else printf Usage s jj mm aaaa n argv 0 modifier en version 3 exit 2 c est la 2eme fin en erreur Lancement de la recherche search datafile argv datepos Fichier rdvSearch c laisser tel quel include rdv h int getline FILE fic char buffer Lit une ligne du fichier fic et l crit dans buffer Le caract re de fin de ligne est remplac par O La fonction renvoie le nombre de caracteres de la ligne y compris le 0 final une ligne vide renvoie donc 1 A la fin du fichier la fonction ecrit une ligne vide dans buffer et renvoie 0 int getline FILE fic char buffer int bufferindex 0 char c nl n for c getc fic c nl amp c E0F c getc fic buf fer bufferindex c buf fer bufferindex 0 if bufferindex gt 0 c nl return bufferindex 1 else return 0 EOF et aucun caractere n a ete Lu void search char datafile char date affiche tous les paragraphes de datafile qui commencent par date Deux paragraphes sont separes par une ligne blanche void search char datafile char date 14 char Lineholder 512 FILE datafilehandle char sptr int nbcharlus ouverture du fichier datafilehandle fopen datafile r if datafilehandle NULL printf le fichier s n est pas accessible en lecture
8. texte qui contient des rendez vous et d une date pass e en argument donne tous les rendez vous de la journ e Pour cela on vous donne la fonction search char nomDeFichier char date qui recherche les rendez vous dans le fichier nomDeFichier pour la date date Cette fonction se trouve dans le fichier rdvSearch c Il vous reste donc compl ter la fonction rdv c dont l objectif est de r cup rer le nom du fichier qui contient les rendez vous et la date recherch e initialisation de datafile et date L utilisateur plusieurs solutions pour indiquer le nom de son fichier de rendez vous par variable d environnement question 2 1 par fichier cach question 2 2 et enfin en le passant en argument de la commande question 2 3 Remarques e Les fichiers rdvSearch c et rdv c se trouve dans le r pertoire home users TPINFO coupey varenv Vous y trouverez aussi d autres fichiers copier dont un exemple de fichier de rendez vous mesrdv e Vous aurez besoin des fonction C strcpy getenv et strcat e Les rendez vous sont not s sous forme de texte ascii ils sont s par s par une ligne blanche et la date est en t te de la ligne Exemple 20 02 02 Commission informatique 20 02 02 Conseil d institut 27 02 02 Conseil de d partement 2 1 Compl ter le programme principal sachant que le fichier de rendez vous est fix par la variable d environnement RENDEZVOUS Si la variable d environnement n est pas d finie le prog
9. vous pouvez travailler sous le c shell en tapant la commande csh ou tcsh e Commandes utilisateurs A l aide du r sum des commandes et du cours et des indications donn es votre charg de TD e Afficher le nom du r pertoire courant e Lister les fichiers et r pertoires du r pertoire etc e Cr er le sous r pertoire textes dans le r pertoire courant e Aller se placer dans textes e Y copier les fichiers etc hosts et etc inetd conf e Afficher le fichier inetd conf l cran page par page e Afficher uniquement les dix derni res lignes de inetd conf e Afficher toutes les lignes de inetd conf contenant la cha ne stream e Afficher le fichier hosts en num rotant les lignes e Sous quel nom tes vous logu e Quels sont tous les utilisateurs logu s sur la m me machine que vous e Quels sont tous les utilisateurs logu s sur le m me r seau que vous e Quel est le nom de la machine sur laquelle vous travaillez e Quelles sont les diff rentes versions de l ex cutable emacs disponibles e Laquelle est utilis e quand vous tapez emacs e Comment obtenir un mode d emploi en lignes d emacs e Afficher sans l ex cuter la derni re commande qui utilisait cp e Lister les fichiers et catalogues de usr bin Que contient ce r pertoire e Afficher tous les fichiers y compris les fichiers cach s et en format long de votre r pertoire de travail e En d duire la convention adopt e par UNIX pour les fichiers cach s e Tes
10. av o oo PS PS ee lee es __ Question 3 Ou sont le code et les variables Copiez adr_var_fon c Lisez le code puis ex cutez le Notez les r sultats et compl tez quand vous pouvez vanak port e dur e de adresse taille vie pman o d e e wher _v ar CE E i td RS PE PE PS O oo e a e l oip o y Question 4 Taille maximale de la pile 16 Copiez taille pile c Lisez le code expliquez ce qu il fait Essayez de pr voir comment le programme s arrete puis ex cutez le Notez les r sultats Question 5 Allocation dynamique et sallocation Copiez allocFree c Lisez le code expliquez ce qu il fait Ex cutez le Etudiez le r sultat Comment se fait la d sallocation et la r allocation Quelle est la diff rence d adresse entre deux zones allou es successives Expliquez ANNEXES Fichier memoire c include lt stdio h gt include lt stdlib h gt main int i 0 char sptr while sptr malloc 1020 NULL printf Nombre de kilo octets consomm s d n i itt printf nLa m moire disponible est de d kilo octets n i getchar Fichier adr tableaux c include lt stdio h gt define NL printf n void main void ecris int int gtab1 10 gvar int gtab2 10 10 11 12 13 14 15 16 17 void main Initialisation et affectation des tableaux int i 2 static int j int ltab1 10 0 1 2 3 4 5 6 7 8 9 ltab2 10 ltptr
11. ilez puis ex cutez ce programme et le programme concur en arri re plan Modifiez le programme concurc de telle mani re que le processus fils ex cute le programme de la question 3 Modifiez nouveau le programme concur c pour faire ex cuter au processus fils xeyes Une fois le processus p re termin faites un ps pour voir l tat du fils Quel est son p re maintenant Question 6 Combien de processus sont cr s par le programme bidon c suivant sans compter celui associ au programme bidon lui m me void main fork fork fork En d duire la formule g n rale TD Scripts UNIX 2 Objectif Programmer en c shell Cet exercice va vous permettre de g rer une poubelle Question 1 cr er une poubelle Ecrire un script qui cr er le r pertoire poubelle dans le r pertoire de travail si il n existe pas Question 2 D truire un fichier Modifier le script pr c dent de tel mani re qu il d place le fichier qu il re oit en argument dans le r pertoire poubelle Question 3 Une liste de fichier Modifier le script pr c dent en consid rant qu il peut recevoir une liste de fichier et non plus un fichier Question 4 Remplacer la commande rm Faire en sorte qu chaque appel de rm c est votre script qui soit appel pour chaque ex cution d un cshell Question 5 Vider la poubelle Ecrire un script qui permet de vider la poubelle Rappel le caract re permet d appeler une
12. lement vous voulez que par d faut tout nouveau fichier cr ait un droit en lecture et en criture pour le propri taire un droit en lecture pour le groupe et aucun droit pour les autres et que tout nouveau r pertoire ait un droit d acc s au r pertoire pour tout le monde un droit d acc s en lecture et en criture pour le propri taire et un droit en lecture pour le groupe Exercice 4 Liens sur un fichier e Cr ez un r pertoire essailn et placez y un fichier quelconque essai Cr ez quatre liens diff rents lessail lessai2 lessai3 lessai4 sur essai dans essailn commande n Faites un s il que remarquez vous e Changez les droits d acc s de lessail faites un s qu en d duisez vous e Quel est la taille de chacun des ces fichiers utilisez la commande du quel est l espace occup par le r pertoire e D truire lessai3 faites un Is il expliquez e D truire essai faites un Is il expliquez e Cr ez un lien essai6 de votre r pertoire de connexion vers essailn lessai2 e Supprimez tous les droits pour vous le groupe et les autres sur le r pertoire essailn e Essayez d afficher le contenu de essai6 et de le modifier en criture Qu en d duisez vous e A quoi peut servir les liens d apr s vous e A l aide de la commande df visualiser les diff rents syst mes de fichier et leur point de montage e Rep rez votre syst me de fichier et essayer de faire un lien vers un fichier d un autre s
13. n datafile exit 3 recherche des rendez vous nbcharlus getline datafilehandle lineholder while nbcharlus gt 0 if sptr strstr lineholder date lineholder date reconnue do on affiche le paragraphe printf s n lineholder nbcharlus getline datafilehandle lLineholder while nbcharlus gt 1 printf n la ligne entre deux paragraphes amis fin au do while mais elle n a pas encore t affich e fin du if nbcharlus getline datafilehandle lineholder fin du while fermer le fichier fclose datafilehandle Fichier rdv h a laisser tel quel include lt string h gt include lt stdio h gt ifdef MAINFILE define EXTERN Effacer EXTERN dans le fichier principal else define EXTERN extern endif EXTERN char date 11 format jj mm aaaa EXTERN char datafile 128 15 TD Variables en m moire Objectifs Comprendre le chargement en m moire Tous les programmes sont disponibles sous unix dans home users TPINFO coupey memoire Question 1 D marrez sous Linux Copiez memoire c et ouvrez le sous emacs Que fait ce programme compilez le make m moire et ex cutez le Notez le r sultat avant le plantage Question 2 Emplacement et initialisation des tableaux Copiez tableaux c Lisez le code puis ex cutez le Notez les r sultats as port e dur e de adresse taille valeur Zone vie initiale ot
14. printf gtabl p gvar p gtab2 p amp i p amp j Sp Ltabl p ltab2 p amp ltptr p Ltptr p n gtabl amp gvar gtab2 amp i amp j ltabl ltab2 amp ltptr 17 ltptr ecris gtabl ecris gtab2 ecris ltabl ecris ltab2 getchar void ecris int tab int i 0 while i lt 10 printf 4d tab i NL Fichier adr var fonc c include lt stdio h gt include lt stdlib h gt define NL printf n void main void where var int i int tab int ip int ptab void main int mi 0 int mtab 10 where _var mi mtab amp mi amp mtab 0 getchar void where var int i int tab int ip int ptab0 printf nAdresses des variables et des fonctions n n printf fonctions main p where var p main where var NL NL printf variables locales de main mi p mtab 0 p ip ptab0 NL NL printf parametres de where var i p tab O p ip p ptabO0 p amp i amp tab 0 Sip amp ptab0 NL NL 18 Fichier taille _pile c include lt stdio h gt include lt stdlib h gt void topstack int n char tab 1024 R serve 1 Ko sur la pile printf d p n tab on indique le nombre de Ko r serv s topstack n 1 on recommence void main topstack 1 on d marre la lere allocation getchar Fichier allocFree c include lt stdio h gt include lt stdlib h gt
15. prompt pour qu chaque ex cution de tcsh le prompt soit sous la forme nommachine nomutilisateur gt Cr ez un r pertoire mesbin dans votre r pertoire de travail Copiez y le programme ex cutable interpreteur de l exercice 1 et faites en sorte qu chaque fois que vous ex cutez un tcsh quelque soit le r pertoire o vous vous trouvez vous puissiez ex cuter ce fichier Vous voulez maintenant qu chaque ex cution de tcsh s affichent la date du jour l heure et la liste des utilisateurs qui sont connect s Finalement il est pr f rable de d truire les fichiers core la sortie d une session Faites en sorte qu chaque fois que vous quittez une session tous les fichiers core de votre compte soient d truits Pour le tester cr ez quelques fichiers core dans vos r pertoires faites un telnet sur votre propre machine puis un logout TD les processus niveau utilisateur Objectifs d couvrir et comprendre la notion de processus existence tat processus p re et fils Etudier quelques commandes de base de gestion de processus Voir les liens entre processus et programmation en C Question 1 Ex cutez la commande ps ux Quelle est la signification des champs USER PID TTY STAT CMD Question 2 Trouvez des options qui affichent tous les processus en format long avec le nom de l utilisateur propri taire Reprenez la commande pr c dente mais affichez uniquement les processus qui vous appartiennent
16. ramme sort en erreur Par exemple gt rendezvous 20 02 02 12 20 02 02 Commission informatique 20 02 02 Conseil d institut 2 2 Si la variable RENDEZVOUS n est pas d finie la seconde possibilit est de consid rer que le fichier de rendez vous est HOME rendez vous Compl ter le programme principal 2 3 Enfin la derni re possibilit consid re que le fichier est pass en argument du programme par l option f lt nomdefichier gt Cette derni re possibilit sera prioritaire sur les deux autres Compl ter le programme principal Par exemple gt rendezvous f prive agenda 28 03 02 28 03 02 anniversaire de Pascal ANNEXES Fichier rdv c a compl ter define MAINFILE include rdv h include lt stdlib h gt char getenv char name renvoie un pointeur sur la valeur chaine de caract re de la variable d environnement name dans l environnement NULL si la variable n est pas d finie Prototype dans stdlib t7 int main int argc char argv char arge char sptr datafile 128 int datepos Recherche de la variable RENDEZVOUS dans L environnement compl ter Si la variable d environnement RENDEZVOUS est d finie copie de sa valeur dans datafile compl ter Si la variable d environnement RENDEZVOUS n est pas d finie message 13 d erreur et sortie a modifier dans les versions 2 et 3 a compl ter Lecture du motif
17. ter cette convention en cr ant un fichier cach e Lister uniquement les fichiers qui commencent par a dans usr bin e Afficher les fichiers et catalogues du r pertoire de travail de votre bin me y compris les fichiers cach s e Afficher page par page le fichier emacs du r pertoire de travail de votre bin me e Essayer d y d truire un fichier Quel est le probl me e Commandes avanc es 10 En une seule ligne de commande e Lister tous les fichiers dont les noms commencent par un caract re alphab tique minuscule compris entre a et d cr ez quelques fichiers commen ant par a b c ou d si vous n en avez pas e Cr er un fichier dont le nom commence parun point d interrogation e Rediriger les r sultats des commandes ls last et ps dans le fichier toto e Lister tous les fichiers de usr bin dont les noms comportent exactement 4 caract res e Afficher la date du jour sous la forme jj mm aa par la phrase suivante nous sommes le jj mm aa Un premier programme e Taper sous emacs le programme suivant Fichier bonjour c include lt stdio h gt main printf Bonjour j utilise LINUX n e Compilez le et ex cutez le e Sachant que l instruction C system char permet d ex cuter une commande syst me ex system Is 1 modifiez le programme ci dessus afin d afficher le nom de la machine sur laquelle vous travaillez Aspects r seaux A l aide de la commande df tudiez le syst me
18. void main char tabZone 50 int i j r1l r2 j 0 while j lt 42 printf nAlloue for i j i lt j 8 i tabZone i malloc 1024 printf t d p i tabZone il j i rl rand j 19 do r2 rand j while r2 rl printf nLibere d p t d p rl tabZonelfr1l r2 tabZone r2 free tabZone rl1 free tabZone r2 getchar 20
19. yst me de fichier Qu en d duisez vous Essayez nouveau en utilisant l option s de In Faites un s il Que remarquez vous Expliquez TD Interpr teur de commandes Objectif Comprendre le travail de l interpr teur et des fichiers d initialisation Exercice 1 mini interpr teur Question 1 crire un interpr teur Ecrire un programme qui simule un interpr teur de commandes Il doit lire une commande en entr e l interpr ter et boucler ainsi jusqu la commande quitter Vous aurez besoin des fonctions C strstr gets et strcmp Testez le avec diff rentes commandes s cp mkdir etc Essayez avec la commande cd Que se passe t il Expliquez Question 2 Quelques commandes intemes Modifiez votre programme afin de d finir quelques commandes internes cd lrep qui liste uniquement les r pertoires ou cache qui ne liste que les fichiers cach s Pour cd vous aurez besoin de la fonction C chdir Exercice 2 Etude des fichiers d initialisation Editez vos fichiers tcshrc et bashrc Le fichier tcshrc est le fichier d initialisation de l interpr teur tcsh un cshell am lior et bashrc celui du bash un bourne shell am lior Expliquez ce qu ils contiennent On veut simuler quelques commandes DOS sous unix type md copy cd rename del Donnez les commandes qui permettent de le faire Modifiez votre tcshrc pour que ces commandes soient utilisables d s la connexion Personnalisez votre

Download Pdf Manuals

image

Related Search

Related Contents

Red Hat Satellite 6.0 Installationshandbuch  APC PML3XS-B surge protector  Ouverture de la classe préparatoire publique aux écoles d`art  HP Deskjet 2542 All-in-One Printer Reference Guide  Mode d`emploi Pour la microstation d`épuration à lit fixe  Leica Manuel de l`utilisateur  MAINTENANCE MANUAL OPERATION AND  refrigerador de puerta frances  warning - Amazon Web Services  MANUAL DEL USUARIO  

Copyright © All rights reserved.
Failed to retrieve file