Pratiques Linux TP3 – Traitement des chaines de caractères, pipes, filtres, et
Pratiques Linux TP3 – Traitement des chaines de caractères, pipes, filtres, et redirections Objectif Le but de ce TP est de maitriser les commandes relatives à la manipulation des chaînes de caractères, la redirection des Entrées/Sorties standards, et l’utilisation des "pipes". Partie 1 : Traitement des chaînes de caractères et redirection des Entrées/Sorties standards 1. Créer et ajouter une ligne de texte dans un fichier nommé « test » à l’aide de la commande echo et la redirection. $ echo bienvenue >> test 2. Rediriger la sortie standard et la sortie d’erreur de la commande « cat test » vers un fichier nommé « erreur » $ cat test >erreur 2>&1 3. Que contient le fichier erreur ? 4. Executer cette commande: $ cat bienvenu once again>> test >>erreur 2>&1 5. Que contient maintenant le fichier erreur? 6. Executer cette commande: $ ls dossier 2>&1|grep Aucun . Quelle est l’utilité de cette commande? 7. Copier le fichier /etc/passwd dans votre répertoire personnel, sous le nom mypasswd. 8. Générer une liste des différents shell en cours d'utilisation sur l'ordinateur et l’enregistrer dans un fichier sous le nom shells. Visualiser par la suite le contenu du nouveau fichier créé shells. Expliquer : le rôle des options -d et -f. $ cut -d : -f 7 mypasswd > shells $ cat shells 9. Que permettent ces deux commandes de réaliser ? $ cut -c 1-10 mypasswd > mypasswd1 $ cut -c 11- mypasswd > mypasswd2 10. Fusionner le contenu des deux fichiers myspasswd1 et mypasswd2 à l’aide de la commande paste. Maintenant fusionner le contenu des deux fichiers dans un troisième fichier mypasswd3. 11. Le fichier shells contient toutes les informations recherchées, mais sans un ordre particulier. Trier les lignes de la sortie et placer les nouvelles données dans un nouveau fichier intitulé sorted.shells. $ sort shells > sorted.shells 12. Certaines valeurs identiques se répètent dans le fichier sorted.shells. Utiliser la commande uniq pour déterminer le nombre d’instances de chaque valeur. $ uniq -c sorted.shells > uniq.sorted.shells Pourquoi il est nécessaire de trier la sortie avant d'utiliser la commande uniq ? Vous pouvez essayer la commande : $ uniq -c shells 13. Utiliser la commande qui suit pour obtenir une liste triée dans ordre décroissant des shells en cours d'utilisation sur l'ordinateur, où chaque shell affiché sera précédé par le nombre d’occurrences dans le fichier. $ sort -nr uniq.sorted.shells 13. Copier le fichier /usr/share/dict/words dans votre répertoire personnel, sous le nom mywords. 14. Exécuter la commande suivante pour obtenir en sortie les lignes du fichier mywords (se trouvant dans votre répertoire personnel) contenant un motif de texte précis (par exemple le motif fish) : $ grep fish mywords Comparer le résultat obtenu avec la commande : $ grep -i fish mywords 15. Utiliser la commande grep pour afficher toutes les lignes du fichier mywords contenant le motif fish, de même que les deux lignes succédant et précédant chacune de ces lignes (afin d'obtenir un contexte plus étendu). 16. Utiliser la commande grep pour répondre à chacune des questions suivantes : a. Indiquer le nombre de fois que le motif fish apparaît dans le fichier mywords. b. Afficher une ligne pour chacune des répétitions du motif fish dans le fichier mywords, y compris le numéro de ligne où celles-ci se trouvent. Sur quelle ligne le mot starfish a été trouvé? 17. En utilisant le fichier déjà crée mypasswd, réaliser les tâches suivantes : c. Afficher la ligne de tout compte utilisateur commençant pat la lettre g $ grep ^g mypasswd d. Afficher la ligne de tout compte utilisateur utilisant le shell /bin/bash $ grep bash$ mypasswd e. Afficher la ligne de tout compte n'utilisant pas le shell /bin/bash $ grep -v bash$ mypasswd 18. Utiliser la commande suivante pour créer une copie modifiée du fichier mypasswd ne contenant aucune ligne ayant les lettres N ou P: $ grep -v [N,P] mypasswd > modified.passwd 19. Utiliser la commande tr pour convertir toutes les lettres minuscules (s'il y en a) en majuscules. $ tr "a-z" "A-Z" < modified.passwd > modified2.passwd Partie 2 : Utilisation des pipes 22. Pour créer une liste triée de shell, les pipes seront utilisées pour combiner certaines commandes exécutées dans les questions précédentes. Ainsi, il n’y a plus besoin d'aucun fichier temporaire car l’exécution est faite en conduisant la sortie d’une commande vers une autre. $ cut -d: -f7 mypasswd | sort | uniq -c | sort -nr 23. Utiliser la commande ps pour obtenir une liste des processus en cours d'exécution ainsi que le nom d'utilisateur ayant lancé l’exécution de chacun d’entre eux. Puis conduire la sortie vers grep pour n'obtenir que la sortie des processus appartenant à l’utilisateur root. Le symbole ^ indique à grep de ne chercher que la chaîne root au début de chaque ligne. $ ps auwx | grep ^root 24. Imaginer qu'il faut passer ces données à un autre programme ou script qui n'a besoin que des noms des processus. Utiliser une combinaison des commandes tr et cut pour produire cette liste. Premièrement tr est utilisée pour transformer les espaces blancs en un séparateur de champs pouvant être compris par cut (un % dans ce cas). Ensuite, cut est utilisé pour afficher uniquement les noms de processus (champ 11 de la sortie de la commande tr). $ ps auwx | grep ^root | tr -s [:blank:] [%] | cut -d% -f11 25. Les pipes sont très pratiques lorsqu'on travaille avec des utilitaires à ligne de commande. Toutefois, bien que les étapes précédentes permettent de réaliser des tâches voulues, la commande ps peut produire une sortie sous différents formats, en particulier elle permet d’afficher directement la liste des processus exécutés en tant que root sur le système. $ ps -u root Partie 3 : Utilisation de la commande sed 1.A l’aide de la commande nano, créer un fichier exemple ayant le contenu suivant (n’oublier pas d’inclure les sauts de lignes): nano exemple Bienvenue, C’est le fichier exemple. Contenu de la ligne 4. # ceci est un commentaire Contenu de la ligne 7. A la prochaine Puis contrôle +x et taper y puis entrer 2. A l’aide de la commande sed (qui représente un utilitaire de traitement de données capable d'utiliser les expressions régulières) effacer le contenu des lignes 4 et 7 du fichier exemple. 3. Supprimer le contenu des lignes commentaires commençant par un dièse (les deux caractères slash permettent d’inclure une expression régulière). 4. Afficher uniquement les lignes contenant la chaine « Contenu ». 5. Remplacer la chaine de caractère # par * dans le contenu du texte. Partie 4 : Recherche de fichiers A l’aide de la commande find, qui permet de chercher des fichiers, réaliser les tâches suivantes : a. Afficher la liste des fichiers se trouvant dans le répertoire /etc et dont le nom se termine par .conf, en invoquant la commande avec le paramètre -name. b. Retrouver la liste des fichiers spéciaux de type bloc, et de type caractère, ainsi que la liste des fichiers standards et des répertoires, se trouvant dans le répertoire /dev, en invoquant la commande avec le paramètre -type. c. Retrouver la liste de tous les fichiers dont la taille dépasse 10Mo, en invoquant la commande avec le paramètre -size. d. Retrouver la liste des fichiers vous appartenant, en invoquant la commande avec le paramètre - user. 34. Une autre alternative à l’utilisation de find, est la commande locate. Cette dernière est plus rapide car elle repose sur une recherche dans la base de données mlocate. a. Commencer par mettre à jour cette base de données avec la commande $updatedb. b. A l’aide de la commande locate, cherche la liste des fichiers dont le nom contient la chaine de caractères passwd. c. A l’aide de la commande locate, afficher le nombre de fichiers dont le nom contient la chaine de caractère passwd. Exercice non présentiel : 1) Effectuer cette suite de commandes en une seule fois: – supprimer un fichier quelconque. – créer un répertoire re – afficher le mot “bonjour” a l'écran. A/ Il faut que toutes le commandes soient exécutées même si elles n’ont pas réussi. B/ Il faut que toutes le commandes soient exécutées sauf la création du répertoire re qui ne se fait que si la suppression du fichier a réussi. Aide : « Utiliser les opérateurs logiques ou autres entre les commandes » 2) Créer un fichier f1 dont le contenu est: 2011 janvier 14 Créer un fichier f2 dont le contenu est : historique date une est A partir de ces deux fichiers, créer un fichier f3 dont le contenu est: « 14 Janvier 2011 est une date historique » Aide : « chercher affichage inverse d'un fichier sous linux » 3) Créer dans un fichier info le contenu suivant: |tlili|rim|15 bensouayeh|ahmed|17 bensassi|rima|14 benjbra|wassim|18 a/ Afficher seulement les prénoms. b/ Afficher juste les deux premiers caractères de chaque ligne c/ Afficher seulement les deux premières lignes du fichier info d/ Ajouter la ligne suivante a la fin du fichier info sans l'ouvrir: uploads/Industriel/ pratiques-linux-tp3-traitement-des-chaines-de-caracteres-pipes-filtres-et-redirections.pdf
Documents similaires










-
29
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Aoû 29, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 0.1452MB