Vous êtes sur la page 1sur 4

IUT de Villetaneuse GTR 2ime anne

Introduction au Systme UNIX

E. Viennet 15/09/03

TP No 1 - Rappels : utilisation de base


Le support de cours Introduction UNIX est disponible au format HTML dans le rpertoire : /home/users/TPGTR/CoursUnixGTR Le chier toc.html contient la table des matires, et le chier index.html lindex des commandes. Nous vous conseillons de supprimer les signets (bookmarks) originaux de votre navigateur (netscape), et dajouter des signets vers les pages du cours frquement consultes. Les termes et commandes inconnus utiliss dans ce sujet sont dnis dans le support de cours. On pourra aussi utiliser avec prot la commande man, qui permet dafcher la documentation des commandes UNIX. EXERCICE 1 - Connexion au systme Chaque tudiant possde un compte UNIX son nom. Connectez vous votre compte en suivant les indications de votre enseignant. Changez votre mot de passe, et notez-le en lieu sr an de ne jamais loublier (sans quoi vous ne pourriez plus travailler). Vriez (echo $SHELL) que votre shell de connexion (celui lanc par dfaut) est /bin/bash. Si ce nest pas le cas, changez le avec la commande ypchsh. Vous pouvez ouvrir une (ou plusieurs) fentres dinterprteurs de commandes (shell). Attention, UNIX fait la diffrence entre les majuscules et les minuscules. La plupart des commandes doivent scrire en minuscules. Sparez toujours la commande de ses arguments par un ou plusieurs espaces (par exemple, crire ls -l et non pas ls-l). 1- Commandes de base : rvisez lutilisation des commandes cd, mkdir, ls, rmdir, rm, cp, man, date, pwd, mv, echo. Si ncessaire, utilisez les pour faire le mnage sur votre compte. Organisez vos chiers pour gagner du temps lors des diffrents TP. Vous devez avoir dans votre rpertoire de connexion les rpertoires suivants : bin : scripts et commandes personnels ; tmp : essais temporaires, effacer rgulirement. TP01, TP02, ... : exercices du TP 1, 2 ... Evitez toujours de laisser des chiers dans votre rpertoire de connexion. Utilisez les sousrpertoires. Cette discipline vous fera gagner du temps long terme. EXERCICE 2 - Redirections, mta-caractres, divers... 1- Quelles diffrences voyez-vous entre les ls * et echo * ? Expliquez.
GTR2 2003-04 - E. Viennet

2- Que fait le programme Python suivant ?


import sys n = int(sys.argv[1]) for i in range(n): f = open( f + str(i), w ) f.write( %s\n % i ) f.close()

Crez un chier genf.py dans votre rpertoire de TP, puis lancez python genf.py 16. Quobservez-vous ? Quelle est la taille en octets des chiers crs ? Pourquoi ? 3- A laide dune seule commande shell, crez un chier tous dont le contenu soit la concatnation des chiers prcdement crs. 4- Quelle est la taille du chier tous ? Combien de lignes comporte-t-il ? 5- Saisir le programme suivant dans le chier somme.py.
sum = 0 try: while 1: x = float(raw_input("entrez un nombre: ")) sum = sum + x except: print somme= , sum

Que fait ce programme ? Essayez le. 6- A laide dune ligne de commande (redirection) et du programme somme.py, faire afcher la somme des nombres contenus dans le chier tous. Faire la mme chose avec un tube (commande cat). 7- A laide des commandes grep et wc, afcher le nombre de lignes du chier tous qui contiennent le chiffre 1. EXERCICE 3 - Rappel : Langage Python Dans cet exercice, on va crire un programme en langage Python qui afche le nombre de chiers et rpertoires prsents dans le rpertoire courant. Le module os a une fonction listdir( rep ) qui retourne la liste des noms des chiers et rpertoires prsents dans le rpertoire rep. 1- Crer un rpertoire ProgPy et le chier source nbch.py avec emacs ; y saisir le code du programme.
GTR2 2003-04 - E. Viennet

2- Tester le programme en tapant python nbch.py 3- Comment lancer lexcution en partant dun autre rpertoire ? 4- Pour simplier lutilisation de ce programme, on va le rendre excutable. Pour cela : 1. il faut indiquer sur la premire ligne du chier .py quil sagit dun programme python : la premire ligne du chier doit tre #!/usr/bin/env python 2. Ensuite, il faut indiquer au systme que ce chier est excutable, en entrant la commande shell : chmod a+x nbfich.py (nous tudierons cette commande en dtail plus tard). EXERCICE 4 - Commande find 1- Afcher (avec find) les noms de tous les chiers du rpertoire /usr ayant une taille suprieure 250Ko. 2- Afcher les noms de tous les chiers du rpertoire /var ayant t modis aprs votre rpertoire de connexion. 3- A laide des commandes find et grep, afcher toutes les lignes contenant le mot include dans les chiers dextension .h situs dans le rpertoire /usr/include et tous ses sous-rpertoires. EXERCICE 5 - Variables denvironnement en shell (sh) Les variables denvironnement sont des variables transmises par le systme dexploitation tous les processus. Chaque processus hrite des variables de son pre (le processus qui la lanc, ici en gnral le shell). Ces variables peuvent tre consultes ou modies. La valeur des variables denvironnement est de type chane de caractre. Depuis le shell sh ou bash, on identie les variables par leur nom prcd dun $. La commande export permet dindiquer quune variable doit tre exporte vers les processus ls (elle est place dans lenvironnement). Exemples : Afchage de la variable PATH : echo $PATH Cre la variable TRUC, qui vaut hello : TRUC=hello (Attention : pas despaces autour du signe gal !) Exporter la variable TRUC : export TRUC Ajouter le rpertoire . aprs le PATH : export PATH="$PATH":. La commande env afche toutes les variables denvironnement. Les programmes crits dans des langages compils ou interprts peuvent accder aux variables denvironnement dont ils hritent. En langage C, les fonctions de base sont getenv() et setenv() (voir les pages de manuel pour plus dinformations). En langage Python, le module os contient un dictionnaire nomm environ qui associe chaque nom de variable denvironnement sa valeur. Par exemple, os.environ[HOST] est une chaine de caractres donnant le nom de la machine.
GTR2 2003-04 - E. Viennet

1- Afcher la liste des variables denvironnement. Quel genre dinformations trouve-t-on ? 2- Le shell recherche les commandes dans la liste des rpertoires indiqus dans la variable denvironnement PATH. 1. Quelle est la valeur de PATH ? 2. Crer (sil nexiste pas dj) dans votre rpertoire de connexion un sous-rpertoire nomm bin et y placer un excutable (par exemple le programme nbfich.py cr prcedement). 3. Ajouter ce rpertoire bin votre PATH. 4. Vrier que vous pouvez maintenant lancer lexcution de nbfich.py quel que soit le rpertoire courant. 5. Pour modier le PATH de faon permanente, placer la commande de modication (3) dans le chier de conguration de votre shell (~/.bashrc). A lavenir, vous pouvez placer vos excutables prfrs dans votre rpertoire bin.

EXERCICE 6 - Propagation des variables denvironnement. tudier la squence de commandes shell suivante : 0 1 2 3 4 5 6 7 8 9 10 11 echo $ZORGLUB export TRUC=machin TRAC=22 echo $TRUC $TRAC sh echo $TRUC ECHO $TRAC export TRUCBIS=hoho echo $TRUCBIS exit echo $TRUC echo $TRUCBIS ; cette var. nexiste pas ! ; cree la variable TRUC ; ; ; ; ; laffiche lance un nouveau shell affiche la valeur de TRUC ? une autre variable

; termine le second shell ; ??

Que se passe-t-il lors de la premire commande (ligne 0) ? (comparer avec ce qui arrive lorsque Python value une variable qui nexiste pas). La commande sh (ligne 4) ouvre un nouveau shell, qui hrite des variables de lancien. Que safche-t-il la ligne 9 ? Expliquer pourquoi.

GTR2 2003-04 - E. Viennet

Vous aimerez peut-être aussi