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

Documents pareils