Systèmes d’exploitation INF 3723—Automne 2008 Université du Québec en Outaouais – Département d'informatique et d’ingénierie – C.P. 1250 - Hull - Québec J8X 3X7 Téléphone: (819) 595-3900 Télécopieur: (819) 773-1638 Lab1 : Introduction Objectifs : • Se familiariser avec l’OS Linux (Unix) • Connexion utilisateur au serveur Unix (par SHH) • Gestion de fichiers et les commandes du Shell • • • • Visualisation des fichiers et répertoires Manipulation des répertoires et des fichiers Permissions et droits d’accès aux fichiers Script shell Exercice 1 : Prise de contact 1. Utiliser la commande uname pour afficher les informations concernant votre système. 2. Quel jour sommes nous (date). 3. Quel jour de la semaine êtes vous né? (cal) 4. Vérifiez si votre collègue est connecté au système. Essayer encore la commande finger. 5. Afficher le contenu de la variable système PATH. 6. Mettre le contenu de PATH dans un fichier qui s’appelle file_PATH. Partie II : Manipulation des répertoires et fichiers Exercice1 Dans cette partie vous allez : 1. Créer deux sous répertoires, l’un ayant comme nom votre prénom, et l’autre comme nom votre nom de famille. 2. Afficher le contenu de votre répertoire d’accueil de trois manières différentes : • Par ordre alphabétique • Par date de création des fichiers • Une autre option de votre choix (expliquer). Systèmes d’exploitation INF 3723—Automne 2008 Université du Québec en Outaouais – Département d'informatique et d’ingénierie – C.P. 1250 - Hull - Québec J8X 3X7 Téléphone: (819) 595-3900 Télécopieur: (819) 773-1638 3. En partant de votre répertoire d’accueil, changer de répertoire pour vous positionner dans le répertoire (prénom), et créer trois fichiers comme indiqué ci-dessous : • ls -la > fichier1 • cat fichier1 > fichier2 • cat > fichier3 (tapez à ce moment du texte ensuite vous terminez par ctrl-d). 4. Copier deux de ces fichiers dans le répertoire (nom de famille) à partir du répertoire courant (prénom). 5. Effacer une des copies (se trouvant dans le répertoire nom de famille), toujours à partir du répertoire courant (prénom). 6. Changer les noms des trois fichiers se trouvant dans le répertoire courant. 7. Déplacer un de ces fichiers vers le répertoire nom de famille. 8. À partir du répertoire courant (prénom), copiez vers ce répertoire un des fichiers se trouvant dans le répertoire nom de famille. 9. En une seule ligne de commande, changer de répertoire pour celui du nom de famille et afficher son contenu. 10. Exécutez la commande cd sans arguments et expliquez ce qui se passe. 11. Positionnez-vous sur votre répertoire d’accueil et afficher à l’écran TOUS les fichiers incluant les sous répertoires et leurs fichiers. Exercice2 Préparation • Copier le fichier accueil précédemment créé en test1, test2, test3, test4. • Créer les fichiers fic1.txt et fic2.txt Énoncé 1. Afficher les fichiers dont les noms finissent par un chiffre. 2. Supprimer les fichiers test1, test2, test3, et test4 en une seule commande. 3. Grouper tous les fichiers texte (d’extension .txt) dans le répertoire textes. 4. Affichez les 15 premières lignes du fichier /etc/hosts, les 15 dernières lignes, toutes les lignes à partir de la quinzième, les lignes 15 à 20. Systèmes d’exploitation INF 3723—Automne 2008 Université du Québec en Outaouais – Département d'informatique et d’ingénierie – C.P. 1250 - Hull - Québec J8X 3X7 Téléphone: (819) 595-3900 Télécopieur: (819) 773-1638 Exercice 3 : scripts shell Écrire un script Shell qui prend en paramètre deux fichiers f1 et f2 et échange leurs Contenus. NB. Deux annexes (A & B) sont à votre disposition afin résoudre les exercices ci-dessus. Systèmes d’exploitation INF 3723—Automne 2008 Université du Québec en Outaouais – Département d'informatique et d’ingénierie – C.P. 1250 - Hull - Québec J8X 3X7 Téléphone: (819) 595-3900 Télécopieur: (819) 773-1638 Annexe A : Le système d’exploitation UNIX Début de session avec Unix Lorsqu’un utilisateur veut se connecter le système l’invite à introduire son nom d’utilisateur et son mot de passe. Si ces données sont correctes, le système ouvre une session de travail et lance l’interpréteur de commande (processus shell) qui affiche à l’écran, aussitôt après son initialisation, une invitation ($ ou %) et attend que l’utilisateur tape une ligne de commandes : jupiter%. Lorsque l’utilisateur introduit une commande, le shell vérifie si elle est correcte, puis crée, si c’est le cas, un processus qui a pour tâche d’exécuter la commande. Le shell attend la terminaison du processus créé avant d’inviter l’utilisateur à entrer une nouvelle commande. Les commandes les plus communes Commande utiles pour la connexion : who Afficher la liste des utilisateurs connectés who am I (whoami) Afficher l’utilisateur de la session courante date Afficher la date passwd Créer ou changer de mot de passe exit Termine la connexion finger Liste plus détaillées des utilisateurs connectés Commandes utiles pour les répertoires : pwd Afficher le nom du répertoire courant mkdir Créer un nouveau répertoire cd Changer de répertoire de travail ln Ajouter un lien symbolique à un répertoire existant sous un autre nom rmdir Supprimer un répertoire Commandes utiles pour les fichiers : cat Fusionner une liste de fichiers et afficher le résultat head Afficher les premières lignes d’un fichier tail Afficher les dernières lignes d’un fichier grep Afficher les lignes des fichiers référencés qui contiennent une chaîne de caractères donnée wc Compter le nombre de mots, de lignes ou caractères d’un fichier find Rechercher un fichier ls Afficher le contenu d’un répertoire cp Copier un fichier dans un autre ln Ajouter un lien symbolique à un fichier existant sous un autre nom mv Déplacer ou renommer un fichier rm Supprimer un fichier chmod Changer les codes de protections d’un fichier Attention! Le shell n’est pas indifférent à la casse. Pour ajouter des options supplémentaires aux commandes précédentes on utilise le (-). Ex : ls –l fichier.extension Systèmes d’exploitation INF 3723—Automne 2008 Université du Québec en Outaouais – Département d'informatique et d’ingénierie – C.P. 1250 - Hull - Québec J8X 3X7 Téléphone: (819) 595-3900 Télécopieur: (819) 773-1638 Les répertoires : Le système de fichiers contient trois types de fichiers, les fichiers ordinaires, les répertoires et les fichiers spéciaux (périphériques, tubes, …). Les répertoires permettent de gérer la disposition des fichiers. Ils peuvent être imbriqués et tous sont placés sous la racine du système de fichiers. Pour se déplacer dans les répertoires on utilise la commande «cd» en passant comme paramètre la destination désirée. / ./ ../ => racine du système de fichier. Ex : /jupiter/etc/LoginCommun => répertoire courant => répertoire parent. Ex cd../ De votre répertoire par défaut vous place dans le répertoire /jupiter/home Pour voir le contenu d’un répertoire on utilise la commande «ls» qui peut afficher le contenu de bien des façons. Il y a des caractères spéciaux permettant de sélectionner un groupe de fichier. Par exemple pour afficher tous les fichiers commençant par un T, je lance la commande ls T*. Caractères spéciaux : * => une suite de 0 à n de n’importe quel caractères ? => remplace un seul caractère. [] => choisit un intervalle de caractères qui remplace un caractère. Ex : Pour indiquer que l’on veut voir tous les fichiers commençant par une lettre Majuscule : ls [A-Z]* Les fichiers : Un premier bloc de commande permet la création, la copie, la destruction et de renommer des fichiers. Un autre permet de manipuler le contenu des fichiers. Finalement on s’intéresse aux droits d’accès des fichiers. Pour voir les droits d’accès d’un fichier on utilise la commande ls –la . Les droits sont indiqués par un groupe de 10 caractères : -d Répertoire rwx Utilisateur (u) rwx groupe (g) rwx autre (o) Dans ce groupe de caractère, un tiret indique que le fichier n’a pas ce droit. Il y a 3 droits : - r pour la lecture - w pour l’écriture ou la modification - x pour l’exécution Il y a aussi 3 groupes : u : représente les droits de l’utilisateur (owner). Même s’il retire ces droits, il peut toujours les remettre. g : Tous les utilisateurs de votre groupe. Par défaut vous faites partie d’aucun groupe. Systèmes d’exploitation INF 3723—Automne 2008 Université du Québec en Outaouais – Département d'informatique et d’ingénierie – C.P. 1250 - Hull - Québec J8X 3X7 Téléphone: (819) 595-3900 Télécopieur: (819) 773-1638 o : Tous les utilisateurs qui existe sur le serveur. Modification des droits d’accès : La commande chmod permet de modifier les droits d’accès. Il y a deux méthodes, la première utilise une lettre pour indiquer à qui on fait le changement, un symbole +,- pour indiquer si on ajoute ou on retire un droit et finalement une lettre (ou plus) pour choisir quel droit modifié. Ex : chmod o-r nomfichier => retire le droit de lecture au bloc autre pour le fichier. La deuxième méthode utilise un nombre en octal, ce nombre donne les droits pour chaque bloc d’un coup. Ex : chmod 777 nomfichier => donne tous les droits à tous sur le fichier Systèmes d’exploitation INF 3723—Automne 2008 Université du Québec en Outaouais – Département d'informatique et d’ingénierie – C.P. 1250 - Hull - Québec J8X 3X7 Téléphone: (819) 595-3900 Télécopieur: (819) 773-1638 Annexe B : Introduction au système d’exploitation UNIX Le système Unix a été créé en 1969 par les laboratoires AT&T de Bell. Il a connu un véritable succès quand il fut écrit en C en 1973 par Thomson et Ritchie. Caractéristiques du système Unix Unix est un système interactif et est multi-utilisateurs, multiprogrammé en temps partagé. Plusieurs utilisateurs peuvent disposer en même temps de la puissance de calcul du système. Le système Unix se charge de contrôler et de gérer l’usage des ressources en les attribuant à tour de rôle aux différents utilisateurs. Il permet aussi la création, la communication et la synchronisation des processus. Unix est portable et disponible sur différentes plateformes. Structure interne du système Unix Un système Unix peut être vu comme une pyramide. En partant du bas vers le haut les couches suivantes sont rencontrées : • • • • • Le matériel (UCT, mémoire, disques, terminaux et périphériques) Le système d’exploitation UNIX (gestion des processus, de la mémoire, système de fichiers, E/S …) La bibliothèque des appels systèmes pour créer et gérer des processus et des fichiers (open, close, read, write, fork, …). Les programmes utilitaires standards (shell, éditeurs, compilateur, interpréteur…) Les programmes utilisateurs. Les commandes les plus communes Who Who am i date ps kill passwd pwd mkdir Afficher la liste des utilisateurs connectés Afficher l’utilisateur de la session courante Afficher la date Afficher la liste des processus de l’utilisateur Stopper un processus Créer ou changer de mot de passe Afficher le nom du répertoire courant Créer un nouveau répertoire Systèmes d’exploitation INF 3723—Automne 2008 Université du Québec en Outaouais – Département d'informatique et d’ingénierie – C.P. 1250 - Hull - Québec J8X 3X7 Téléphone: (819) 595-3900 Télécopieur: (819) 773-1638 cd cat head tail grep wc sleep find ls cp ln mv rm rmdir chmod Changer de répertoire de travail Fusionner une liste de fichiers et afficher le résultat Afficher les premières lignes d’un fichier Afficher les dernières lignes d’un fichier Afficher les lignes des fichiers référencés qui contiennent une chaîne de caractères donnée Compter le nombre de mots,de lignes ou caractères d’un fichier Faire dormir un processus pendant un certain temps Rechercher un fichier Afficher le contenu d’un répertoire Copier un fichier dans un autre Ajouter à un fichier existant un autre nom Déplacer ou renommer un fichier Supprimer un fichier Supprimer un repertoire Changer les codes de protections d’un fichier Attention! Le shell n’est pas indifférent à la casse. Pour ajouter des options supplémentaires aux commandes précédentes on utilise le (-). Ex : ls –l fichier.extension Redirections des entrées/sorties Les entrées et sorties standards des processus sont au nombre de 3 : • • • L’entrée standard (le clavier) La sortie standard (l’écran) La sortie erreur standard (l’écran). Redirection de l’entrée standard Commande < nomFich Ex : sort < source : Trie le fichier source puis l’affiche à l’écran Redirection de la sortie standard Commande > nomFich Commande >> nomFich Ex : who > destin : la liste des utilisateurs connectés au système est récupérée dans le fichier destin. Si le fichier existe déjà il y a erreur : who >> destin. Si le fichier existe déjà, la liste est insérée à la fin. Systèmes d’exploitation INF 3723—Automne 2008 Université du Québec en Outaouais – Département d'informatique et d’ingénierie – C.P. 1250 - Hull - Québec J8X 3X7 Téléphone: (819) 595-3900 Télécopieur: (819) 773-1638 Enchaînement des commandes 1. Enchaînement séquentiel des commandes commande1; commande2;….; commanden Ex : pwd; ls; mkdir labo; ls; cd labo; pwd; cd..; pwd 2. Enchaînement parallèle des commandes commande1| commande2|….| commanden Ex : cat src1 src2 | sort > dest Tâches de fond Le shell permet d’exécuter des commandes en arrière-plan. Commande&