EXERCICE DE TRAVAUX PRATIQUES UNIX PROGRAMMATION SHELL ANNEE UNIVERSITAIRE 2012/13/14/15 Aprés avoir sauvegardé une copie de ce fichier, vous répondrez aux questions, directement dans le fichier afin de conserver une trace de votre travail. Par exemple, dans un terminal : mkdir -p $HOME/i54/tps/src cd $HOME/i54/tps wget -O $HOME/i54/tps/serie-3.txt langevin.univ-tln.fr/cours/UPS/tps/ups-tps-3.txt Vous répondrez aux questions, directement dans le fichier afin de conserver une trace de votre travail. Vous placerez vos sources dans le réperpoire src qui sera maintenu à jour par make et son makefile. Lancer l'edition a partir de la ligne de commande : {editeur} ups-tps-3.txt & ---------------------------------------------------------------- dernière modification : mer. oct. 11 17:49:44 CEST 2017 ---------------------------------------------------------------- 1) if, for, while, [[=~]], find, grep 2) if, for, sed, grep, while, read 3) ls, stat, awk, du 4) substitution de paramètre, test 5) for, while, who, ping, ssh ================================================================ EXERCICE 1 ================================================================ objectif : if, for, while, [[=~]], find, grep durée : 30 minutes - Déterminer tous les fichiers de suffixe donné d'un répertoire donné qui ne contiennent pas un motif donne. [ 1 ] ligne de commande basée sur grep [ 2 ] script bash sans la commande grep indication : $ while read x;do if [[ $x =~ name ]];then echo $x;fi; done < /etc/resolv.conf nameserver 192.168.0.254 commentaires: ---------------------------------------------------------------- exemples: ---------------------------------------------------------------- ================================================================ EXERCICE 2 ================================================================ objectif : if, for, sed, grep, while, read durée : 30 minutes --- Déterminer la somme de tous les nombres entiers présents dans un fichier texte. [ 1 ] script bash, basé sur grep [ 2 ] script bash, basé sur sed [ 3 ] ligne de commande basée sur awk ? indications : $ grep -oE '[0-9]+' /etc/resolv.conf $ sed -r 's/[^0-9]+/ /g' /etc/resolv.conf $ man awk (exemples) commentaires: ---------------------------------------------------------------- exemples: ---------------------------------------------------------------- ================================================================ EXERCICE 3 ================================================================ objectif : ls, stat, awk, du durée : 30 minutes --- somme des tailles des fichiers de suffixe donné dans un répertoire donné. [ 1 ] script bash basé sur ls ou stat [ 2 ] ligne de commande basée du [ 3 ] ligne de commande basée awk commentaires: ---------------------------------------------------------------- exemples: ---------------------------------------------------------------- ================================================================ EXERCICE 4 ================================================================ objectif : substitution de paramètre, test durée : 30 minutes Ecrire un script range.sh qui range tous les fichiers d'un répertoire donné dans des sous-répertoires correspondant aux suffixes. par exemple, aprés : mkdir /tmp/bidule touch /tmp/bidule/{a,b,c}.txt touch /tmp/bidule/{A,B,C}.TXT ls /tmp/bidule/ a.txt A.TXT b.txt B.TXT c.txt C.TXT ./range.sh /tmp/bidule ls /tmp/bidule/ txt TXT ls -R /tmp/bidule/ /tmp/bidule/: txt TXT /tmp/bidule/txt: a.txt b.txt c.txt /tmp/bidule/TXT: A.TXT B.TXT C.TXT indication : X=nom.suf echo $X taille=${#X} prefixe=${X%.*} suffixe=${X#*.} commentaires: ---------------------------------------------------------------- exemples: ---------------------------------------------------------------- ================================================================ EXERCICE 5 ================================================================ objectif : for, while, who, ping, ssh durée : 30 minutes --- Ecrire un script pour déterminer sur quelle machine de licence ou master est logué un utilisateur. Un paramètre sera passé par la ligne de commande. commentaires: ---------------------------------------------------------------- exemples: ---------------------------------------------------------------- dm, pl, octobre 2017