Ce travail pratique contient trois exercices à réaliser individuellement. Vous devrez remettre un fichier pour chaque exercice contenant les commandes correspondant aux exercices.
Pour réaliser les exercices vous aurez besoin de regarder les différentes commandes vues en cours (commandes et boucles) et dans l’atelier 3 (regardez les commandes du tableau). Vous DEVREZ aller consulter les pages de manuel des différentes commandes pour trouver la façon de réaliser ce que vous souhaitez.
.java
brisés.sh
contenant des commandesVous devez remettre et faire valider au courant des 2 prochaines séances.
À remettre sur Moodle:
.sh
Captures d’écran:
Fichier | Contenu | Annotations |
---|---|---|
01_memoire.png |
Appel à memoire.sh et résultat
|
Votre nom d'usager Linux |
02_tictactoe.png |
L'appel à ant run et la fenêtre du jeu tictactoe |
Votre nom d'usager Linux |
03_serveurs.png |
Appel à serveurs.sh |
Votre nom d'usager Linux |
Remonter dans l’historique avec CTRL
+P
CTRL
+R
Une fois la commande trouvée:
$ vim mon_script.sh
G
pour aller à la fin du fichiero
pour aller insérer une nouvelle ligneEsc
pour quitter le mode insertionPar exemple, la ligne suivante:
echo *
Va devenir cette ligne avant d’être exécutée:
echo a.txt b.wav c.bin
La commande echo
va recevoir 3 arguments, mais pas l’argument *
Pour l’instant, chaque ligne de Bash prend un de ces formes:
$ cmd arg1 arg2 arg3 ...
$ var=$(cmd ...)
* **RAPPEL**: le résultat est stoqué sur une seule ligne
$ cmd ... > fichier # nouveau fichier $ cmd ... >> fichier # ajouter au fichier existant
$ for i in arg1 arg2 ...; do cmd $i; done
$ ... | while read i; do cmd $i; done
À la place d’un argument, on peut utiliser une expension. Par exemple:
* x?.java
1. Remplacer la variable par sa valeur
$var
1. Utiliser le résultat d'une commande comme argument
$(cmd ...)
1. Énumérer chaque éléments d'une séquence
{1..9} {a..k}
1. Énumérer chaque éléments d'une liste
{1,5,9} {a,h,k}
1. Énumérer chaque combinaisons
{1..9}{a,h,k}
Commande | Options / Exemples | ||||||
---|---|---|---|---|---|---|---|
ps
Affiche les processus actifs |
|
||||||
grep MOT FICHIER
Cherche les lignes du FICHIER où le MOT apparaît |
|
||||||
cut FICHIER
Retourne une ou plusieurs colonnes d'un fichier |
|
||||||
echo ARG1 ARG2 ...
Affiche une liste de valeurs |
|
||||||
cat FICHIER1 FICHIER2 ...
Affiche les fichiers |
|
||||||
bc CALCUL
Interprète les commandes du fichier CALCUL |
|
||||||
pwd
Affiche le répertoire courant |
basename FICHIER
Affiche le nom du FICHIER, sans afficher le chemin complet |
|
|||||
sed "COMMANDE"
Modifie du texte selon la COMMANDE |
|
||||||
ping SERVEUR
Teste la connexion vers un serveur |
|
$ sudo yum install -y bc
memoire.sh
qui va calculer l’usage mémoire de Firefox (en pourcentage de la mémoire totale):
firefox
0
à la fin de la listequit
sur une nouvelle ligne$ bash memoire.sh
01_memoire.png
memoire.sh
et résultat.java
$ sudo yum install -y ant
$ wget http://gyoukou.ca/jeux.tar.gz $ tar zxvf jeux.tar.gz $ cd jeux
Les fichiers .java
de ces projets on perdus leur première ligne, qui est de la forme package REPERTOIRE;
Conséquemment, on ne peut pas les exécuter. Par exemple:
$ cd jeu_memoire $ ant run # oups
Écrire le script java.sh
qui va ré-insérer la ligne package REPERTOIRE;
pour chaque fichier .java
d’un REPERTOIRE
.java
du répertoire jeu_memoire
devrait commencer par la ligne package jeu_memoire;
Pour réparer chaque projet, vous devez exécuter votre script dans le répertoire jeux
:
$ cd jeux $ cp ~/java.sh . $ bash java.sh
$ cd jeu_memoire $ ant clean $ ant build $ ant run
02_tictactoe.png
ant run
et la fenêtre du jeu tictactoe
serveurs="google.com youtube.com facebook.com"
Utiliser la commande ping -c2 SERVEUR pour vérifier qu’un serveur est actif
Pour chaque serveur, afficher si le serveur est actif ou non
(aucun autre affichage)
Vérification de google.com youtube.com facebook.com google.com est actif youtube.com est actif facebook.com est actif
03_serveurs.png
serveurs.sh