Principales commandes
Transcription
Principales commandes
Initiation à l’informatique II. Commandes Unix Université de Provence Licence Sciences et Technologies & PEI Année 2011-2012 Principales commandes Manipulations de répertoires pwd cd mkdir rmdir ls affiche le nom du répertoire courant change le répertoire courant crée un répertoire supprime un répertoire (s’il est vide) affiche la liste des fichiers et sous-répertoires d’un répertoire Manipulation de fichiers cp mv rm cat head tail wc more chmod umask chown chgrp copie un fichier source dans un fichier ou répertoire destination change le nom d’un fichier ou le déplace supprime un ou plusieurs fichiers et sous-répertoires affiche le contenu d’un fichier texte affiche le début d’un fichier affiche la fin d’un fichier compte les mots, lignes ou caractères d’un fichier affiche le contenu d’un fichier texte page par page modifie les droits d’un fichier positionnement des droits par défaut changement du propriétaire d’un fichier changement du groupe d’un fichier Gestion des processus ps top kill nice affiche les informations sur les processus en mémoire idem de façon dynamique et triée envoie un signal à un processus modifie la priorité d’un processus Commandes diverses man clear set alias ln at grep diff date time du find sort affiche l’aide sur les commandes unix efface l’écran (C-l) affiche les variables d’environnement définition de synonymes lie un fichier à un autre exécution différée d’une commande recherche d’une chaı̂ne dans un fichier compare le contenu de deux fichiers affiche la date courante affiche l’heure du système ou le temps d’exécution d’une commande espace occupé sur le disque recherche d’un fichier filtre permettant l’affichage selon un critère de tri Exercice II.1 (Chemins absolus et relatifs) Nous considérons l’arborescence décrite dans la figure 1. 1. Le répertoire courant étant /home/etud/info1/dupont/sys, donner pour chaque référence relative son équivalence en absolu : (a) . (b) .. (c) ../../FORUM 1 / dev home var etud info1 info2 lib bin info3 dupont tmp Mail share FORUM sys prog CSH liste.t pub SYS demo.c PROG CSH tp1.tx tp2.tx Figure 1 – Exemple d’arborescence (d) ../../../info2 (e) ../../../../../var/lib (f) CSH/liste.t (g) ../prog 2. Le répertoire courant étant /home/etud/info1/dupont/sys, donner pour chaque référence absolue son équivalence en relatif : (a) /home/etud/info1/dupont (b) /home/etud/info1/dupont/sys (c) /home/etud/info1/dupont/sys/CSH/demo.c (d) /home/etud (e) / (f) /var/share (g) /home/etud/info1/FORUM (h) /home/etud/info2 Exercice II.2 (Opérations sur les fichiers) Nous considérons l’arborescence décrite dans la figure 1. Le répertoire courant étant /home/etud/info1/dupont/sys, donner les instructions pour effectuer les opérations suivantes (dans l’ordre) : 1. copier le fichier /home/etud/info1/dupont/sys/CSH/liste.t dans le répertoire /home/etud/info2 2. supprimer le fichier /home/etud/info1/dupont/sys/CSH/demo.c 3. se déplacer dans le répertoire /home/etud/info1/dupont/sys/CSH 4. renommer le fichier liste.t en liste.txt 5. déplacer le fichier tp1.tx du répertoire /home/etud/info1/FORUM/pub/SYS/CSH dans le répertoire /home/etud/info1/dupont/tmp 6. déplacer le fichier tp2.tx du répertoire /home/etud/info1/FORUM/pub/SYS/CSH dans le répertoire /home/etud/info1/dupont/tmp mais en le renommant exo.txt 7. se déplacer dans / 8. se déplacer dans le répertoire de connexion 2 Caractères génériques Les caractères spéciaux ou génériques (wildcard characters) permettent de désigner un ensemble d’objets et notamment un ensemble de noms de fichiers. Ils s’appliquent donc aux paramètres de commandes désignant des noms de fichiers. Ils peuvent aussi désigner un ensemble de chaı̂nes de caractères. On parle alors d’expressions régulières qui s’appliquent aux commandes d’éditions (ex. vi, sed, ...) ou à des filtres (grep, awk, ...). Les caractères associés à des noms de fichiers – * désigne toutes les chaı̂nes de caractères, y compris la chaı̂ne vide ; – ? désigne un caractère quelconque ; – [c1 . . . cn ] désigne un caractère quelconque appartenant à la liste c1 , . . . , cn . Deux caractères séparés par un tiret ([c1 − c2 ]) définissent une liste de caractères rangés selon l’ordre ASCII, dont le premier élément est le caractère c1 et le dernier élément le caractère c2 ; – [^c1 . . . cn ] désigne une liste de caractère à exclure ; – {s1 , ..., sn } désigne une liste de chaı̂nes de caractères. Il est possible d’annuler l’interprétation d’un caractère spécial en le faisant précéder de l’antislash (\). L’annulation de plusieurs caractères spéciaux se fait en les encadrant de l’apostrophe (’) ou de l’apostrophe double ("). Exercice II.3 (Caractères génériques) Le répertoire courant contient les fichiers suivants : abc.s, a?c.svt, a\?c.svt, codage, codage.c, fichier.txt, texte. A quels fichiers correspondent les commandes suivantes : 1. ls * 2. ls *.* 3. ls *.? 4. ls ?.? 5. ls f*.txt 6. ls f*r 7. ls *c*t 8. ls a?c* 9. ls a/?c.* 10. ls a\?c.* 11. ls a\\\?c.* 12. ls *[ac]* 13. ls *[^ac]* Exercice II.4 (Caractères génériques, bis) Donner la commande qui permet d’afficher les fichiers ayant les caractéristiques suivantes : 1. un nom commençant et finissant par f 2. un nom commençant par f et finissant par a ou b 3. un nom commençant par f et ne finissant ni par a ni par b 4. un nom de trois lettres 5. un nom de trois lettres commençant par a, b ou c 6. un nom avec un suffixe de trois lettres 7. un nom commençant par un chiffre 8. un nom contenant la chaı̂ne abc ou def 9. un nom ayant a en première ou deuxième position 3 Droits d’accès À chaque fichier est associé un ensemble d’indicateurs précisant qui peut accéder au fichier et selon quel mode. Pour chaque fichier, il existe 3 types d’utilisateurs : – le propriétaire du fichier (u pour user) – les membres du groupe propriétaire du fichier (g pour group) – les autres utilisateurs du système (o pour others) Pour chaque fichier et par type d’utilisateur, il existe 3 modes d’accès : – autorisation de lecture (r pour read) – autorisation d’écritre (w pour write) – autorisation d’exécution (x pour execute) Pour un répertoire, les modes d’accès ont un sens légèrement différent : – r autorise à lister le contenu du répertoire par la commande ls – w autorise la création et suppression de fichiers dans le répertoire – x autorise à accéder au répertoire par la commande cd Exercice II.5 (Droits d’accès) 1. Déterminer les types r w x r w r d r w x r l r w x r et les droits r x w r d’accès de chaque utilisateur pour chaque entrée : essai resume.txt x bilan w raccourci 2. Quels sont les droits donnés au fichier essai par les commandes suivantes : – chmod 700 essai ; chmod 601 essai ; chmod 754 essai ; chmod 234 essai 3. Quels sont les droits donnés au fichier essai par les commandes suivantes (on considère que les commandes sont données les unes après les autres) : – chmod a-rwx essai ; chmod u+r,go+x essai ; chmod g+w,o=w essai ; chmod u+x,go-x essai Exercice II.6 (Droits d’accès, bis) On commence par taper les commandes suivantes : $ who am i [email protected] $ ls -l d d d r r r r r w w w x x x x r r - - x r r - - x dupond dupont dupont dupont dupont dupont dupond codage pgcd reserve resume.txt secret.txt vide bilan Que font alors les instructions suivantes ? Fonctionnent-elles ? Si non, pourquoi ? $ cat resume.txt $ more secret.txt $ ./pgcd $ ./codage $ chmod 777 codage $ ls reserve $ cp resume.txt pgcd $ rm pgcd $ ls bilan $ cd bilan 4 Redirections Les commandes Unix utilisent 3 fichiers standards pour leurs entrées-sorties : – stdin : le fichier d’entrée standard, canal 0 – stdout : le fichier de sortie standard, canal 1 – stderr : le fichier de sortie d’erreur standard, canal 2. Quand une commande produit une erreur, le message d’erreur est envoyé sur cette sortie. Cependant il est possible de récupérer le contenu des sorties standards dans des fichiers, ainsi que de prendre le contenu d’un fichier comme entrée standard. Ces opérations sont appelées des redirections. – < f ichier : redirection de l’entrée standard à partir de f ichier – > f ichier : redirection de la sortie standard vers f ichier – 2> f ichier : redirection de la sortie d’erreur standard vers f ichier – >> f ichier : redirection de la sortie standard vers f ichier en ajout – cmd1 | cmd2 : redirection de la sortie standard de la commande cmd1 vers l’entrée standard de la commande cmd2 Exercice II.7 (Redirections) Le répertoire courant contient les fichiers suivants : essai.c, essai, essai.o, script.pl et script.res. Pour chacune des instructions suivantes, que contiennent les fichiers de sortie ? 1. ls > f1 2. wc -w < f1 3. ls >> f1 4. wc -l < f1 > f2 5. (ls *.java > f1 ) 2> f2 6. (ls -l essai vide > f1 ) 2> f2 7. (ls -l essai.c > f1 ) 2> f2 8. ls -l | wc -l > f1 Exercice II.8 (cat et redirections) La commande cat lit les données sur l’entrée standard jusqu’à la rencontre d’une marque de fin de fichier, marquée par (C-d) et les place sur la sortie standard. La commande sort trie les données de l’entrée standard vers la sortie standard. En utilisant l’une ou l’autre de ces deux commandes et les redirections, 1. comment faire la saisie d’un fichier ? 2. comment copier un fichier ? 3. comment fusionner deux fichiers vers un troisième ? 4. comment trier les données saisies au clavier ? 5. comment trier les données d’un fichier vers un autre ? 6. comment fusionner deux fichiers en triant leurs données ? 5