• Aucun résultat trouvé

TP prise en main d’Unix et programmation shell

N/A
N/A
Protected

Academic year: 2022

Partager "TP prise en main d’Unix et programmation shell"

Copied!
4
0
0

Texte intégral

(1)

L3 Info UFR Sciences&Techniques I5TC1

TP prise en main d’Unix et programmation shell

Exercice 1- Les commandes

i) Tester les diff´erentes commandes d’aide: man, whatis, apropos, info. Essayer man man.

ii) Tester les commandeshostname, logname, who, tty, date, cal, echo.

iii) Rechercher une commande qui nettoie l’´ecran

Exercice 2- Le bash Apr`es avoir lanc´e l’interpr´eteur de commande bash,

i) tester les commandes d’´edition de ligne de bash: faire afficher le calendrier de l’ann´ee courante, puis utiliser l’historique (fl`eches haut et bas) et l’´edition de ligne (C-a, C-e, C-d, C-b, C-f ou fl`eches droit et gauche et touche DEL) pour faire successivement afficher les calendriers des mois de janvier, d´ecembre et de f´evrier de l’ann´ee courante

ii) essayer la recherche avec C-r

iii) essayer les m´ecanismes de compl´etion debash (C-i, M-?). Quelle est la diff´erence entre les deux?

Exercice 3- Les comptes et fichiers

i) D´eterminer votre num´ero d’utilisateur (uid) sur le syst`eme ainsi que le nom et num´ero (gid) du groupe auquel vous appartenez.

ii) A l’aide des commandes cd, pwd et ls (avec les options i, l, d, a), dessiner le premier niveau de l’arborescence du syst`eme de fichiers.

iii) Quels sont les droits d’acc`es `a votre r´epertoire d’accueil?

iv) Tester les commandescat etmore sur un fichier assez volumineux.

v) Tester la commande file sur tous les fichiers d’un r´epertoire.

vi) Tester la commandewc sur un fichier, sur une liste de fichiers, sans fichiers.

vii) Tester les commandesmkdir, rmdir, rm, touch, mv, chmod.

viii) Tester les commandes findet grep.

Exercice 4- Redirections

i) Cr´eer un fichier contenant: le nom de la machine, la date et le r´epertoire courant, puis une ligne vide et le contenu du fichier/etc/services.

Exercice 5- Les filtres

i) Tester les filtres sort, tr, head, tail

1

(2)

ii) Utiliser head et tail avec des redirections de sortie pour cr´eer une version courte d’un fichier contenant les 50 premi`eres lignes puis les 50 derni`eres.

iii) Utiliser head ettail pour afficher une partie d’un fichier, par exemple de la ligne 25 `a la ligne 35.

Exercice 6- Les pipes A l’aide du pipe, ´ecrire des enchaˆınements de commandes pour i) tester si un utilisateur donn´e est pr´esent sur la machine

ii) faire afficher le r´esultat d’unls avec les noms de fichier en majuscules,

iii) faire afficher les chemins de la variable PATH s´epar´es par des ”-” et non par des ”:”.

Exercice 7- Les variables Attention, il peut y avoir plusieurs versions de la commande echo qui ne produisent pas toujours le mˆeme r´esultat. Pour savoir quelle est le chemin de la commande echoutilis´ee par votre shell, utiliser la commande which.

i) Utiliser les commandes set etenv pour visualiser les variables d’environnement ii) Tester echo ~. Comment peut-on faire afficher le caract`ere ~?

iii) Tester les m´ecanismes de substitution de variables, par exemple "echo $HOME" et

’echo $HOME’.

iv) Cr´eer un r´epertoire OUTILS et y mettre une commande de nom who qui affiche le message ”Machine en gr`eve”. Mettre ce r´epertoire OUTILS en d´ebut de votre variable PATH.

Expliquer ce qui se passe quand vous ex´ecutez la commande who.

v) Idem en pla¸cant le r´epertoire OUTILS `a la fin de la variable PATH.

Exercice 8- Port´ee des variables

i) Dans votre shell courant, positionner une variable (Ex: NB=80). Ecrire un script qui affiche la valeur de cette variable. Ex´ecuter ce script. Quel est la valeur affich´ee? pourquoi?

ii)Ecrire un script shell qui positionne une variable NB2 avec une valeur pass´´ ee en param`etre.

Lancer le script et demander au shell ensuite d’afficher la valeur de cette variable. Quelle valeur est affich´ee? Qu’en concluez-vous?

iii) Reprendre les deux questions pr´ec´edentes en lan¸cant les scripts localement (par . cmd ou source cmd). Les r´esultats sont-ils diff´erents? pourquoi?

iv) Idem en exportant les variables au moment du positionnement (export NB=80).

Exercice 9-

i) Ecrire un script qui affiche le minimum parmi une liste d’entiers pass´´ ee en argument.

ii) Ecrire un script qui affiche le mot le plus grand contenu dans un fichier dont le nom est´ pass´e en argument.

Annexe 1: Les expressions r´ eguli` eres

Utilis´ees par egrep, grep, expr, vi, sed, awk, ...

2

(3)

Servent `a ´etablir une correspondance caract`ere/caract`ere entre un motif et plusieurs chaˆınes sauf si un m´eta-caract`ere est rencontr´e dans le motif.

M´etacaract`eres:

^ pour debut de ligne

$ pour fin de ligne . remplace un caract`ere

* de 0 `a n fois le caract`ere la pr´ec´edant

[] ensemble de caract`eres utilisables; [^ ]=n´egation de [ ]

\ ignorer l’effet du caract`ere suivant

{} indiquer le nombre d’occurences (attention, pr´efix´ees par \) () donner des num´eros d’ordre aux mots

Exs:

a\{3,4\} d´efinit "aaa" ou "aaaa"

[^0-9] pas un chiffre

Annexe 2: L’´ editeur vi

vi est un ´editeur de texte en mode terminal sous Unix. Il est structur´e selon deux modes de fonctionnement: le mode texte, et le mode commande (accessible par la touche ESC). On le lance par la commandevi nom_fichier.

Quelques commandes utiles:

Quitter vi :

:wq sauvegarde dans le fichier appel´e et quitte :w nomfichier sauvegarde dans le fichier nomfichier :q! quitte sans sauvegarde

Ajouter, supprimer du texte

i ajoute le texte `a partir de la position du curseur A ajoute le texte `a partir de la fin de la ligne O cr´ee une nouvelle ligne

R ´ecrit par dessus le texte actuel r remplace le caract`ere courant

dd supprime la ligne courante, 4dd supprime 4 lignes `a partir de la ligne courante x supprime le caract`ere courant. 5x supprime 5 caract`eres

d$ supprime la fin de la ligne

~ bascule de minuscule en majuscule (et r´eciproquement) le caract`ere courant Couper, copier, coller :

ndd supprime n lignes `a partir de la ligne courante. Les lignes sont plac´ees dans le tampon nyy copie n lignes dans le tampon

p recopie le tampon en-dessous de la ligne courante P recopie le tampon au-dessus de la ligne courante Recherche, substitutions :

3

(4)

/texte recherche en avant de la chaine de caract`eres texte

?texte recherche en arri`ere de la chaine de caract`eres texte n nouvelle recherche en avant de la m^eme chaine

N idem mais en arri`ere

4

Références

Documents relatifs

Faire un script exo2 qui prend en argument un nom de fichier, affiche "x sera sauvegardé en x.save", et effectue la copie de x dans un fichier nommé x suivi de .save..

Reprendre l'exercice 1 de la partie TP7, et rajouter comme fonctionnalité à votre programme, le fait de pouvoir stocker les notes saisies dans un fichier, et de pouvoir

The function relies on the complete and compgen builtins to do much of the work, adding only the things that the Bash cd does beyond accepting basic directory names: tilde

pour chaque utilisateur ` a cr´ eer (nouveaux comme anciens), g´ en´ erer toutes les informations n´ ecessaires et ´ eviter les ´ eventuels doublons (en effet, la d´ efinition

pour chaque utilisateur à créer (nouveaux comme anciens), générer toutes les informations nécessaires et éviter les éventuels doublons (en eet, la dénition des comptes

It will be seen that \klopen" calculates the cor- rect kernel mode address (16 bits) for the Receiver Status Register for each interface, and this is stored (8044) into the the

Used for bash built-in commands, aliases, variables, and options, as well as command lines when they are within regular text.. Bold is used for all elements typed in by the user

The shell allows control of the various characters used by the history expansion mech- anism with the histchars variable, as explained above (see Section 5.2 [Bash Variables],