Système d’exploitation Jean-Sébastien Coron [email protected] Université du Luxembourg Plan du cours Les commandes usuelles du shell. Les permissions de fichier. Les commandes find et grep Redirection d’entrées et sorties. 05/10/08 2 Système d’exploitation Le shell Un shell est un programme qui lit et exécute les commandes de l’utilisateur. Un shell permet aussi : De controler les processus. De rediriger l’entrée et/ou la sortie. D’écrire des scripts. Script shell: Fichier texte contenant une série de commandes. Comme fichier .bat sous MS-DOS. De nombreux shell existent: sh, bash, csh, tcsh. 05/10/08 3 Système d’exploitation Les commandes usuelles Les commandes de manipulation de fichier. cd: change le répertoire courant. ls: affiche la lsite des fichiers. mkdir: création d’un répertoire. rmdir: suppression d’un répertoire. cp source destination: copie d’un fichier. mv source destination: renommer ou déplacer un fichier. rm: supprimer un fichier. cat: affiche le contenu d’un fichier. more, less: affiche le contenu d’un fichier avec des pauses. 05/10/08 4 Système d’exploitation Les commandes usuelles Manipulation de fichier (suite) chmod mode fichier: modifie les droits d’accès au fichier. pwd: affiche le répertoire courant. Autre commandes: which: affiche le chemin exécutable correspondant à une commande. X which ls donne /usr/bin/ls. date: affiche la date et l’heure. man commande: affiche le manuel pour commande. 05/10/08 5 Système d’exploitation Les commandes usuelles Utilitaires UNIX. head -n fichier: affiche les n premières lignes d’un fichier. diff fich1 fich2: compare les fichiers fich1 et fich2. tar: permet d’archiver des fichiers. wc [-cwl] [fichier]: affiche le nombre de caratère, mot ou ligne d’un fichier. X -c: caractère, -w: mot, -l: ligne. 05/10/08 6 Système d’exploitation Informations sur un fichier. Informations sur un fichier (commande ls -l). drwxrwxrwx 2 Administ None 4096 May 9 10:52 www d: type de fichier. d=directory, -=fichier, l=lien. rwxrwxrwx: permissions. 2: liens sur ce fichier. Administ: propriétaire. None: groupe. 4096: taille du fichier. May 9 10:52: date de dernière modification. www: nom du fichier ou répertoire. 05/10/08 7 Système d’exploitation Les permissions de fichier Chaque fichier UNIX a trois types de permission qui déterminent ce que l’on peut faire avec. Lecture: Fichier: l’utilisateur peut lire le contenu du fichier Répertoire: l’utilisateur peut avoir la liste des fichiers dans le répertoire. Ecriture: Fichier: l’utilisateur peut modifier le contenu du fichier. Répertoire: l’utilisateur peut créer ou supprimer des fichiers du répertoire. 05/10/08 8 Système d’exploitation Les permissions de fichier Exécution: Fichier: l’utilisateur peut exécuter le fichier. Répertoire: l’utilisateur peut se déplacer dans le répertoire. 3 catégories d’utilisateur. L’utilisateur qui possède le fichier. Le groupe auquel appartient le fichier. Tous les autres utilisateurs. 05/10/08 9 Système d’exploitation Les permissions de fichier Sructure: rwxrwxrwx pour utilisateur, groupe, autre. Exemple: -rw-r----1 dupond User 9 Oct 14 10:00 toto Le fichier toto appartient à l’utilisateur dupond et au group User. L’utilisateur dupond peut lire et modifier le fichier. Le group User peut lire le fichier mais pas le modifier. Les autres utilisateurs ne peuvent ni lire ni modifier le fichier. 05/10/08 10 Système d’exploitation Commandes de permissions Seul le propriétaire d’un fichier ou l’administrateur peuvent modifier les permissions. La commande chmod permet de modifier les permissions d’un fichier. chmod options files. chown permet de changer le propriétaire d’un fichier. chgrp permet de changer le groupe auquel appartient un fichier. 05/10/08 11 Système d’exploitation La commande chmod chmod parametre file Permet de modifier les droit d’accès au fichier file. Seul le propriétaire du fichier ou l’administrateur peut le faire. Deux possibilités pour parametre: Représentation octale: chmod 755 fichier Représentation symbolique: chmod +x fichier 05/10/08 12 Système d’exploitation Commande chmod Représentation octale: chmod parametre file parametre se décompose en trois chiffres allant de 0 à 7. X Le premier correspond au propriétaire X Le deuxième correspond au groupe X Le troisième correspond au reste du monde Exemple: chmod 754 fich Chaque chiffre est la somme de: X (1) exécution, (2) écriture et (4) pour la lecture. chmod 754 fich donne les droits: X exécution, écriture, lecture pour le propriétaire. X exécution, lecture pour le groupe. X lecture pour le reste du monde. 05/10/08 13 Système d’exploitation La commande chmod Notation symbolique: chmod parametre file Première partie: à qui s’applique la modification. X u pour l’utilisateur (le propriétaire du fichier) X g pour le groupe X o pour le reste du monde Deuxième partie: ajout ou retrait de droit. X +: l’ajout de nouveaux droits d’accès X -: suppression de droits d’accès Troisième: quels droits X r: lecture. X w: écriture. X x: exécution. 05/10/08 14 Système d’exploitation Commande chmod: exemples chmod o-rwx fich Enlève les droits en lecture, écriture et exécution au reste du monde. chmod u+x fich Permet à l’utilisateur d’exécuter le fichier chmod g+r fich Permet au groupe de lire le fichier. chmod u+rw,go+r fich Permet à l’utilisateur de lire et écrire le fichier, permet au groupe et au reste du monde de le lire. 05/10/08 15 Système d’exploitation Compression de fichier et backup tar permet d’archiver un répertoire avec tous ses sous-répertoires dans un unique fichier que l’on appelle fichier archive. Créer une archive: tar -zcvf nomarchive nomfichiers tar -zcvf prog.tar.gz *.cpp: archive tous les fichiers .cpp dans prog.tar.gz. tar -zcvf rep.tar.gz rep: archive le répertoire rep et tous ses sous-répertoires. Restaurer une archive: tar -zxvf nomarchive 05/10/08 16 Système d’exploitation La commande find Permet de chercher dans un répertoire et ses sous-répertoires des fichiers présentant certaines caractéristiques. find chemin expression Principales options: -name fich: recherche le fichier fich. -print: écrit le nom du fichier. -type: d: répertoire, f: fichier symbolique. -exec: permet l’exécution d’une commande sur le fichier représenté par {}. 05/10/08 17 Système d’exploitation Exemple avec find Rechercher tous les fichiers nommés hello.txt à partir du répertoire racine. find / -name hello.txt -print. Afficher tous les fichiers .h à partir du répertoire courant. find . -name ’*.h’ -print Affiche à l’écran le contenu de tous les fichiers .c. find . -name ’*.c’ -exec cat ’{}’ \; 05/10/08 18 Système d’exploitation La commande grep Permet de rechercher un certain motif dans un fichier. Le motif est décrit par une expression régulière. grep [option] motif fichier Affiche les lignes de fichier qui contiennent le motif motif. -l: n’affiche que le nom des fichiers. Exemple: grep ’define’ stdio.h: recherche le mot "define" dans le fichier stdio.h. grep ’hello’ *: recherche le mot "hello" dans tous les fichiers du répertoire. 05/10/08 19 Système d’exploitation Redirection entrées/sorties Par défaut, une commande écrit dans la sortie standard (l’écran) et prend en entrée l’entrée standard (le clavier). On peut rediriger la sortie d’une commande dans un fichier. Exemple: ls -l > liste. Stocke dans le fichier liste la liste des fichiers. Pour écrire à la fin d’un fichier, on utilise >> ls >> liste. 05/10/08 20 Système d’exploitation Redirection entrées/sorties On peut rediriger l’entrée d’une commande à partir d’un fichier: cat < input: la commande lit le fichier input et l’imprime, au lieu de lire le clavier. On peut rediriger l’entrée et la sortie en même temps: cat < input > output 05/10/08 21 Système d’exploitation Les pipes On peut rediriger la sortie d’un processus vers l’entrée d’un autre avec l’opérateur pipe ’|’. Les processus s’exécutent en parallèles. Permet de combiner plusieurs commandes pour obtenir de fonctions plus élaborées. cat hello.txt | sort | uniq. Afficher les lignes de hello.txt triées en éliminant les lignes identiques. ls | sort -r. Affiche les fichier d’un répertoire trié à l’envers. 05/10/08 22 Système d’exploitation