IUT Informatique 1A - FI S1 Introduction aux syst`emes - e
Transcription
IUT Informatique 1A - FI S1 Introduction aux syst`emes - e
IUT Informatique 1A - FI S1 Introduction aux systèmes informatique 2016 – 2017 Sylvain Chevallier [email protected] Préambule TP 4 - Bash - groupe A Notions : Shell bash Prochain TP : Script Evaluation : Compte-rendu ramassé à la fin du TP. Question 1 : Manipulation de fichiers 1. Quelle commande permet d’afficher la liste de tous les fichiers du répertoire courant en fonction de la date (plus vieux d’abord, plus récent d’abord) 2. Quelle commande permet d’afficher la taille de chacun des fichiers de façon plus lisible par l’homme, c’est à dire sous forme d’octet, de kilo-octet ou de mega-octet en fonction de ce qui est le plus adapté. 3. Affichez la liste de tous les fichiers du répertoire courant en stockant le résultat dans un fichier res1.txt. 4. Affichez le nombre de lignes du fichier res1.txt. Question 2 : Affichage sélectif 1. Affichez à l’aide des commandes adéquates, la ou les lignes du fichier /etc/hosts qui contiennent une référence à localhost 2. Affichez les lignes qui font référence aux configurations des interfaces ethernet dans /etc/sysctl.conf, ce sont les lignes qui contiennent la chaı̂ne de caractères “net” en minuscule ou en majuscule. Votre commande doit donc être insensible à la casse. 3. Éditez le fichier /etc/sysctl.conf et commentez la ou les lignes qui font référence à “kernel.sysrq”. Le symbole # placé en début de ligne permet de passer la ligne en commentaire. Question 3 : Droits par défaut # 022 is the default value, but 027, or even 077, could be considered # for increased privacy. There is no One True Answer here: each sysadmin # must make up his/her mind. UMASK 022 Ci-dessus est donné le masque pour la définition des droits par défaut lors de la création d’un nouveau répertoire ou d’un nouveau fichier, voir le fichier /etc/login.defs. 1. Sous le compte etude, créez un nouveau fichier et éditez ses droits. Justifiez la valeur de ces droits. 2. Sous le compte etude, créez un nouveau répertoire et éditez ses droits. Justifiez la valeur de ces droits. 3. Modifiez le masque pour que, lors de la création d’un nouveau fichier, il n’y ait qu’un accès en lecture pour le groupe et aucun accès pour les autres (accès total pour l’utilisateur). Vérifiez. 1 4. Modifiez le masque pour que lors de la création d’un nouveau fichier, aucun accès ne soit possible pour personne même pour le propriétaire. Vérifiez. 5. Est-ce possible de supprimer ce fichier ? Vérifiez. Question 4 : Droits et fichiers 1. En root, créez un fichier file.txt. Éditez ses droits pour que seuls les propriétaires (utilisateur et groupe) aient le droit de le lire, de le modifier (rien pour les autres). 2. Passez en utilisateur etude et éditez-le. Quelles conclusions en tirez-vous ? 3. Modifiez les droits pour que etude puisse l’éditer. Question 5 : Consoles virtuelles Sous linux on peut ouvrir des consoles virtuelles permettant d’ouvrir des sessions avec des utilisateurs différents. Si vous ne l’avez pas fait, créez 2 utilisateurs etude2 et etude3. (commande adduser) Avec l’utilisateur etude, ouvrez le terminal TTY 2 avec crtl+alt+F2. Connectez vous en tant que root. Faites de même avec etude2 et etude3, sur le terminal TTY 3 et 4 respectivement. Pour revenir sous la session graphique, utilisez ctrl+alt+F7. La gestion d’un système linux se fait quasi exclusivement sous la console. Le système peut très bien fonctionner sans serveur graphique (nommé X) et donc rester en mode console. 1. Que fait la commande who ? Indiquez le résultat de cette commande dans le compte-rendu lorsque les TTY sont encore utilisés. Question 6 : Recherche dans un fichier 12345- Soit le fichier file.txt : monsieur dupont monsieur durant Monsieur dubois madame martin mon sieur truc 1. Quel résultat donne grep monsieur file.txt. Expliquez-le. 2. Quel résultat donne grep monsieur file.txt | wc -l. Justifiez. 3. Quel résultat donne grep -i monsieur file.txt | wc. Expliquez. 4. Quel résultat donne grep -i monsieur file.txt | wc > resultat.txt. Expliquez. 2 Question 7 : Carnet téléphonique Soit le fichier telephone.txt contenant un petit carnet d’adresses : Boulez Pierre 456-765 Duruflé Pierre 267-736 Boulanger Nadia 936-645 Cochereau Pierre 738-876 Boulanger Lili 936-074 Chaque ligne est de la forme ”nom prénom numéro téléphone” les champs étant séparés par des tabulations. Créez le fichier telephone.txt, en le remplissant avec les noms ci-dessus. Répondre aux questions suivantes en utilisant à chaque fois une ligne de commande shell : 1. Affichez le carnet d’adresse trié par ordre alphabétique de noms. 2. Affichez le nombre de personnes dans le répertoire. 3. Affichez toutes les lignes concernant les “Boulanger”. 4. Affichez toutes les lignes ne concernant pas les “Boulanger”. 5. Affichez le numéro de téléphone (sans le nom) des“Boulanger” apparaissant dans le répertoire (utiliser les commandes grep et cut). 6. Affichez uniquement le numéro de téléphone de “Lili Boulanger”. Vous devrez écrire une commande insensible à la casse, qui fonctionne même si l’entrée est écrite “boulanger lili”, “Boulanger lili” ou “boulanger Lili”. Question 8 : Date 1. Affichez la date courante 2. Affichez le calendrier du mois courant 3. Affichez le calendrier de septembre 1810 4. Affichez le calendrier de septembre 1752 Question 9 : Configuration du bash 1. Ajoutez à la fin du fichier ∼/.bashrc les trois lignes de commandes qui permettent d’afficher : Bonjour <nom de l’utilisateur> Nous sommes le <date du jour> Bonne journée ! 2. Vérifiez le bon fonctionnement en ouvrant une nouvelle console. 3. Expliquez ce qu’est un alias en bash ? Proposez un exemple. Question 10 : Recherche de fichier 1. Cherchez le fichier stdio.h de 2 manières différentes, c’est à dire avec deux commandes différentes. 2. Créez un fichier toto.txt. Effectuez une recherche de ce fichier suivant les 2 manières définies plus haut. Concluez. Quelle solution pourrait-être adoptée ? 3 Question 11 : Dénombrement Écrivez la commande permettant d’afficher le nombre de fichiers de votre compte. Commandes usuelles Le tableau ci-après vous rappelle les principales commandes à connaı̂tre. Nom de la commande cd rep pwd cat fichier more tail -n nbligne head -n nbligne find rep -name ”mot a chercher” locate nom grep expression wc sort -t separateur -k nums colonnes chmod droits fichiers umask droits /hline uniq cut -d separateur -f nums colonnes who date cal mois annee Signification change de répertoire courant. affiche le répertoire courant. affiche le contenu du fichier affiche page par page l’entrée standard affiche les dernières lignes de l’entrée standard affiche les premières lignes de l’entrée standard trouve des fichiers de nom ”mot a chercher” depuis le répertoire rep. Affiche les emplacements des fichiers référencés dont le nom est indiqué affiche les lignes de l’entrée standard comprenant l’expression calcule le nombre de lignes, de mots ou de caractères nombre de ligne (-l), nombre de mot (-w) ou nombre de caractères (-m) de l’entrée standard trie les lignes de l’entrée standard dans l’ordre numérique (-n) ou alphabétique (-d) gestion des droits change les droits par défault de fichiers et dossiers fusionne les lignes doublons de l’entrée standard sélectionne des colonnes Affichage des utilisateurs connectées Affichage de la date courante Affiche le calendrier du mois demandé Flux Syntaxe cmd < fic cmd << etq cmd cmd cmd cmd cmd cmd cmd > fic >> fic 2 > fic 2 >> fic 2 > & desc > & desc 1 | cmd 2 Commande l’entrée de la commande provient du fichier l’entrée de la commande provient des lignes de commandes suivantes jusqu’à la ligne ne contenant que l’étiquette la sortie de la commande est placé dans le fichier la sortie de la commande est mise à la suite du fichier redirige la sortie d’erreur de la commande dans le fichier redirige la sortie d’erreur de la commande à la suite du fichier redirige la sortie d’erreur de la commande vers le descripteur donné redirige la sortie de la commande vers le descripteur donné passe la sortie de la commande 1 comme entrée de la commande 2 4