12/05/2005
11/30/2005
Date de remise du TP2
Vous avez une semaine supplémentaire pour faire le tp2 :
-remise éléctronique (rendre_tp du .cpp et exécutable) avant 23h59 le samedi 10 décembre.
-remise papier lundi le 12 décembre.
Le changement devrait être fait sous peu sur le site du cours...
-remise éléctronique (rendre_tp du .cpp et exécutable) avant 23h59 le samedi 10 décembre.
-remise papier lundi le 12 décembre.
Le changement devrait être fait sous peu sur le site du cours...
11/28/2005
Série d'exercices 1
Voici une série d'exercices destinée à vous aider pour votre tp2 (pas de solutions disponibles) :
exercices.txt
exercices.txt
11/22/2005
11/19/2005
11/13/2005
11/08/2005
Alignement en colonne avec "cout"
Voici un exemple pour faciliter l'alignement en colonne des donnees produites par votre tp1b :
alignement.cpp
Pour un peu plus de détails et d'autres fonctions de cout, voici deux documents :
http://www.cs.hku.hk/~kpchan/CSIS1117C/notes/formatting.pdf
http://130.70.82.204/fdd/cpp_pdf/chap03.pdf
alignement.cpp
http://www.cs.hku.hk/~kpchan/CSIS1117C/notes/formatting.pdf
http://130.70.82.204/fdd/cpp_pdf/chap03.pdf
11/07/2005
10/23/2005
10/15/2005
10/12/2005
Pour Votre Information
-Le TP1a est à remmetre électroniquement (rendre_tp) avant le samedi 22 octobre à 23h59, et la copie papier avant le lundi 24 octobre 9h00 AM.
-Un ou des anciens examens devraient être rendus disponibles sur le sîte officiel du cours.
-Il y aura un TP1b et un TP2, qui seront tous deux des exercices de programmations en langage C.
-Un ou des anciens examens devraient être rendus disponibles sur le sîte officiel du cours.
-Il y aura un TP1b et un TP2, qui seront tous deux des exercices de programmations en langage C.
10/10/2005
10/03/2005
Demo4
SCRIPT : Suite et fin...
Après avoir revu le script "script_comp" (de la demo3 partie 3), essayez d'ajouter une confirmation avant de quitter... C'est-à-dire que lorsqu'on choisi l'option 5, le programme demande : "Etes-vous certains de vouloir quitter (o/n) : ", et dépendant si l'utilisateur entre 'o' le programme s'interrompt, s'il entre 'n' ou n'importe quoi d'autre le programme continu...
solution : script_comp2 (disponible le 8 octobre)
COMPILATION
-compiler avec g++ de la ligne de commande (l'option -o pour
renommer l'executable).
exemple :
% g++ test.cpp
% g++ test.cpp -o test.exe
Exercice de cette semaine :
telecharger, compiler et executer le programme suivant : test.cpp
Après avoir revu le script "script_comp" (de la demo3 partie 3), essayez d'ajouter une confirmation avant de quitter... C'est-à-dire que lorsqu'on choisi l'option 5, le programme demande : "Etes-vous certains de vouloir quitter (o/n) : ", et dépendant si l'utilisateur entre 'o' le programme s'interrompt, s'il entre 'n' ou n'importe quoi d'autre le programme continu...
solution : script_comp2 (disponible le 8 octobre)
COMPILATION
-compiler avec g++ de la ligne de commande (l'option -o pour
renommer l'executable).
exemple :
% g++ test.cpp
% g++ test.cpp -o test.exe
Exercice de cette semaine :
telecharger, compiler et executer le programme suivant : test.cpp
9/26/2005
Demo3 (partie 3)
-----------------------------------------------
-------------- HUITIEME PARTIE ----------------
-----------------------------------------------
Script : suite d'instructions exécutés de façon sérielle.
Il y a plusieurs langage de script dans Unix, ils sont associés à différents shell (Bourne Shell, C shell et Korn shell). Nous nous contenterons dans les labos de voir quelques éléments de scripting du Bourne Shell (le plus simple des trois). Pour spécifier qu'un script est écrit, et doit être interprété par la machine dans le langage du Bourne shell, on débute tout script par :
#!/bin/sh
*** Pour exécuter un script, on a qu'à se donner les droits d'exécution (% chmod 700 chemin/nom_du_script), puis à l'appeler à la ligne de commande (% chemin/nom_du_script).
Dans un script, on peut inclure n'importe quel instruction pouvant être interprété par le shell. Voici un exemple de script affichant un message à l'aide de la commande echo : script1.
Dans un autre exemple, voyons maintenant comment on peut "mettre en forme" la sortie d'une commande : script2.
Remarquez que dans le dernier script on utilise le '`'(accent grave) pour borner(entourer) une commande qui doit être exécutée plutôt que d'afficher simplement son nom.
On peut rendre l'exécution de certaines commandes conditionnelles, autrement dit, les commandes s'exécuteront seulement si une, ou des conditions sont respectées. Pour faire cela on utilise un "if". La structure classique d'un "if" (si) est : si "conditions" alors "instructions" sinon "instructions alternatives" fin du si. Ce qui se traduit par : si = if, alors = then, sinon = else et fin du si = fi.
if [ condition ] ; then
instructions
else
instructions alternatives
fi
voici un exemple de script utilisant un if : script3
On peut également répéter une, ou des instructions un certain nombre de fois. Pour faire une répétition on utilise une boucle "while". La structure classique d'un while (tant que) est : tant que "conditions" faire "instructions" fin du tant que. La traduction de c'est instructions est : tant que = while, faire = do et fin du tant que = done.
while [ condition ]
do
instructions
done
Voici un exemple de script utilisant une boucle while : script4
Notez dans le script l'utilisation de l'instruction read qui permet de lire une donnée entrée au clavier.
Avec ces quelques instructions de base, il n'y a que votre imagination pour limiter ce que vous pouvez faire... voici un exemple de script combinant les instructions que nous venons de voir : script_comp
-------------- HUITIEME PARTIE ----------------
-----------------------------------------------
Script : suite d'instructions exécutés de façon sérielle.
Il y a plusieurs langage de script dans Unix, ils sont associés à différents shell (Bourne Shell, C shell et Korn shell). Nous nous contenterons dans les labos de voir quelques éléments de scripting du Bourne Shell (le plus simple des trois). Pour spécifier qu'un script est écrit, et doit être interprété par la machine dans le langage du Bourne shell, on débute tout script par :
#!/bin/sh
*** Pour exécuter un script, on a qu'à se donner les droits d'exécution (% chmod 700 chemin/nom_du_script), puis à l'appeler à la ligne de commande (% chemin/nom_du_script).
Dans un script, on peut inclure n'importe quel instruction pouvant être interprété par le shell. Voici un exemple de script affichant un message à l'aide de la commande echo : script1.
Dans un autre exemple, voyons maintenant comment on peut "mettre en forme" la sortie d'une commande : script2.
Remarquez que dans le dernier script on utilise le '`'(accent grave) pour borner(entourer) une commande qui doit être exécutée plutôt que d'afficher simplement son nom.
On peut rendre l'exécution de certaines commandes conditionnelles, autrement dit, les commandes s'exécuteront seulement si une, ou des conditions sont respectées. Pour faire cela on utilise un "if". La structure classique d'un "if" (si) est : si "conditions" alors "instructions" sinon "instructions alternatives" fin du si. Ce qui se traduit par : si = if, alors = then, sinon = else et fin du si = fi.
if [ condition ] ; then
instructions
else
instructions alternatives
fi
voici un exemple de script utilisant un if : script3
On peut également répéter une, ou des instructions un certain nombre de fois. Pour faire une répétition on utilise une boucle "while". La structure classique d'un while (tant que) est : tant que "conditions" faire "instructions" fin du tant que. La traduction de c'est instructions est : tant que = while, faire = do et fin du tant que = done.
while [ condition ]
do
instructions
done
Voici un exemple de script utilisant une boucle while : script4
Notez dans le script l'utilisation de l'instruction read qui permet de lire une donnée entrée au clavier.
Avec ces quelques instructions de base, il n'y a que votre imagination pour limiter ce que vous pouvez faire... voici un exemple de script combinant les instructions que nous venons de voir : script_comp
Demo3 (partie 2)
-----------------------------------------------
-------------- SEPTIEME PARTIE ----------------
-----------------------------------------------
Variables :
-----------
1. Pour afficher a l'ecran une chaine de caracteres ou le contenu d'une variable :
% echo chaine_de_caractere
ou
% echo $nom_de_variables
exemple :
% echo Hello!
% echo $PATH
% echo $HOME
% echo $USER
2. Pour afficher l'ensemble des variables d'environnement et leurs contenu :
% env
3. Pour creer une variable d'environnement ou en modifier le contenu :
% setenv nom_variable contenu
exemple :
% setenv TEST inf1105
% env (pour verifier que TEST est la)
4. Pour supprimer une variable d'environnement :
% unsetenv nom_variable
exemple :
% unsetenv TEST
% env (pour vérifier que TEST n'est pas la)
5. Pour afficher l'ensemble des variables d'usager et leurs contenu :
% set
6. Pour creer une variable d'usager ou en modifier le contenu :
% set nom_variable=contenu
exemple :
% set test=demo3
% env (pour verifier que test n'est pas la)
% set (pour verifier que test est la)
7. Pour supprimer une variable d'usager :
% unset nom_variable
exemple :
% unset test
% set (pour verifier que test n'est plus la)
8. Exemple d'ajout au contenu deja present dans une variable :
% setenv PATH ${PATH}:. (ajoute ./ a PATH)
9. Certaines variables n'ont pas besoin de contenu :
exemple : pour que ^d ne "quitte" plus : % set ignoreeof
-------------- SEPTIEME PARTIE ----------------
-----------------------------------------------
Variables :
-----------
1. Pour afficher a l'ecran une chaine de caracteres ou le contenu d'une variable :
% echo chaine_de_caractere
ou
% echo $nom_de_variables
exemple :
% echo Hello!
% echo $PATH
% echo $HOME
% echo $USER
2. Pour afficher l'ensemble des variables d'environnement et leurs contenu :
% env
3. Pour creer une variable d'environnement ou en modifier le contenu :
% setenv nom_variable contenu
exemple :
% setenv TEST inf1105
% env (pour verifier que TEST est la)
4. Pour supprimer une variable d'environnement :
% unsetenv nom_variable
exemple :
% unsetenv TEST
% env (pour vérifier que TEST n'est pas la)
5. Pour afficher l'ensemble des variables d'usager et leurs contenu :
% set
6. Pour creer une variable d'usager ou en modifier le contenu :
% set nom_variable=contenu
exemple :
% set test=demo3
% env (pour verifier que test n'est pas la)
% set (pour verifier que test est la)
7. Pour supprimer une variable d'usager :
% unset nom_variable
exemple :
% unset test
% set (pour verifier que test n'est plus la)
8. Exemple d'ajout au contenu deja present dans une variable :
% setenv PATH ${PATH}:. (ajoute ./ a PATH)
9. Certaines variables n'ont pas besoin de contenu :
exemple : pour que ^d ne "quitte" plus : % set ignoreeof
Demo3 (partie 1)
-----------------------------------------------
-------------- SIXIEME PARTIE -----------------
-----------------------------------------------
Processus et jobs :
-------------------
1. Pour afficher la liste des processus actifs dans le systeme :
% ps [-fle]
exemple :
% ps
% ps -f (full)
% ps -l (long)
% ps -e (tout les processus)
2. Pour arreter un processus :
^z suspend le processus
^c detruit le processus
3. Pour demarrer un processus en arriere plan (jobs) :
% commande&
exemple :
% top&
4. Pour afficher la liste des jobs :
% jobs
5. Pour ramener la derniere job cree a l'avant plan :
% fg
6. Pour detruire un processus ou un job :
% kill #process (tentative de destruct. processus)
% kill -9 #process (destruction du processus)
% kill %#jobs (tentative de destruction job)
% kill -9 %#jobs (destruction du job)
-------------- SIXIEME PARTIE -----------------
-----------------------------------------------
Processus et jobs :
-------------------
1. Pour afficher la liste des processus actifs dans le systeme :
% ps [-fle]
exemple :
% ps
% ps -f (full)
% ps -l (long)
% ps -e (tout les processus)
2. Pour arreter un processus :
^z suspend le processus
^c detruit le processus
3. Pour demarrer un processus en arriere plan (jobs) :
% commande&
exemple :
% top&
4. Pour afficher la liste des jobs :
% jobs
5. Pour ramener la derniere job cree a l'avant plan :
% fg
6. Pour detruire un processus ou un job :
% kill #process (tentative de destruct. processus)
% kill -9 #process (destruction du processus)
% kill %#jobs (tentative de destruction job)
% kill -9 %#jobs (destruction du job)
9/25/2005
Précision sur la commande "wc"
Il y a une précision à apporter au sujet de la commande "wc"
-c : print the byte counts (affiche le nombre d'octet)
-m : print the character counts (affiche le nombre de caractères)
c'est vrai qu'un caractère est normalement codé sur un octet, mais y a des systèmes qui codent un caractère en 7 bits, on n'aura alors pas un wc -c égale à wc -m. Par contre, l'option -m n'est pas disponible dans toutes les versions de "wc"...
Merci à Romdhane pour la précision,
Eric
-c : print the byte counts (affiche le nombre d'octet)
-m : print the character counts (affiche le nombre de caractères)
c'est vrai qu'un caractère est normalement codé sur un octet, mais y a des systèmes qui codent un caractère en 7 bits, on n'aura alors pas un wc -c égale à wc -m. Par contre, l'option -m n'est pas disponible dans toutes les versions de "wc"...
Merci à Romdhane pour la précision,
Eric
9/20/2005
Demo2 (partie 2)
-----------------------------------------------
------------ CINQUIEME PARTIE -----------------
-----------------------------------------------
Dans cette partie, pour exécuter les exemples de commandes, il vous faut copier le fichier /etc/passwd dans le répertoire courant.
SED et AWK
----------
sed : un EDITEUR de fichier texte NON-interactif.
awk : un LANGAGE pour le traitement de "motifs" (pattern).
SED
---
sed reçoit ses entrées d'un fichier ou du clavier (stdin) et affiche ses résultats à l'écran (stdout). sed, tout comme grep, traite les données en entrées une ligne à la fois. Par contre, contrairement à grep, sed permet de modifier le contenu recu en entree.
Voici les commandes de sed que nous verront :
s = substitute (remplacer)
d = delete (supprimer)
p = print (afficher)
Le format général de la commande sed est :
sed -e 'command1' [-e 'command2'] [...] fichier
Substitution :
--------------
Commande : 's/motif_a_remplacer/nouveau_motif/g'
(Le 'g' à la fin est optionnel. S'il est présent, toutes les occurences du motif_a_remplacer seront modifiées et non seulement la première occurence de chaque ligne)
Exemple : remplace la premiere occurence de "comptoir" de chaque ligne par "allo" :
% sed s/comptoir/allo/ passwd
remplace toutes les occurences de "comptoir" par "allo" :
% sed s/comptoir/allo/g passwd
substitution multiples, "comptoir" devient "allo" et "Usager" devient "user", partout dans le texte :
% sed -e s/comptoir/allo/g -e s/Usager/user/g passwd
Suppression :
-------------
Commande : '#ligne_debut[, #ligne_fin]d'
(c'est le 'd' à la fin qui indique qu'il faut supprimer les lignes spécifiées)
Exemple :
supprimer la premiere ligne :
% sed 1d passwd
supprimer les dix première lignes :
% sed 1,10d passwd
supprimer toutes les lignes :
% sed -n '' passwd
Afficher :
----------
Commande : '/motif/p' ou '#ligne_debut[, #ligne_fin]p'
(c'est le 'p' à la fin qui indique qu'il faut afficher les lignes spécifiées)
Exemple :
afficher la ligne qui contient "comptoir" :
% sed -n '/comptoir/p' passwd
afficher les dix premières lignes :
% sed -n '1,10p' passwd
AWK
---
awk est un langage de programmation très complet. Sa syntaxe est fortement inspirée du langage C. awk permet de manipuler les champs.
Le format général de la commande awk est :
awk [-F"séparateur_de_champs"] '{commande}' fichier
Exemples d'utilisation :
------------------------
affichage de champs particuliers :
% awk '{ print $0 }' passwd
% awk '{ print $1 }' passwd
% awk '{ print $2 }' passwd
% awk '{ print $1 $2} passwd
% awk -F":" '{ print $1 $3 }' passwd
affichage de texte statique :
% awk '{ print "" }' passwd
% awk '{ print "allo" }' passwd
affichage combiné de texte tiré du fichier et de texte statique :
% awk -F":" '{ print $1 " " $3 }' passwd
% awk -F":" '{print "login id is : ", $1}' passwd
------------ CINQUIEME PARTIE -----------------
-----------------------------------------------
Dans cette partie, pour exécuter les exemples de commandes, il vous faut copier le fichier /etc/passwd dans le répertoire courant.
SED et AWK
----------
sed : un EDITEUR de fichier texte NON-interactif.
awk : un LANGAGE pour le traitement de "motifs" (pattern).
SED
---
sed reçoit ses entrées d'un fichier ou du clavier (stdin) et affiche ses résultats à l'écran (stdout). sed, tout comme grep, traite les données en entrées une ligne à la fois. Par contre, contrairement à grep, sed permet de modifier le contenu recu en entree.
Voici les commandes de sed que nous verront :
s = substitute (remplacer)
d = delete (supprimer)
p = print (afficher)
Le format général de la commande sed est :
sed -e 'command1' [-e 'command2'] [...] fichier
Substitution :
--------------
Commande : 's/motif_a_remplacer/nouveau_motif/g'
(Le 'g' à la fin est optionnel. S'il est présent, toutes les occurences du motif_a_remplacer seront modifiées et non seulement la première occurence de chaque ligne)
Exemple : remplace la premiere occurence de "comptoir" de chaque ligne par "allo" :
% sed s/comptoir/allo/ passwd
remplace toutes les occurences de "comptoir" par "allo" :
% sed s/comptoir/allo/g passwd
substitution multiples, "comptoir" devient "allo" et "Usager" devient "user", partout dans le texte :
% sed -e s/comptoir/allo/g -e s/Usager/user/g passwd
Suppression :
-------------
Commande : '#ligne_debut[, #ligne_fin]d'
(c'est le 'd' à la fin qui indique qu'il faut supprimer les lignes spécifiées)
Exemple :
supprimer la premiere ligne :
% sed 1d passwd
supprimer les dix première lignes :
% sed 1,10d passwd
supprimer toutes les lignes :
% sed -n '' passwd
Afficher :
----------
Commande : '/motif/p' ou '#ligne_debut[, #ligne_fin]p'
(c'est le 'p' à la fin qui indique qu'il faut afficher les lignes spécifiées)
Exemple :
afficher la ligne qui contient "comptoir" :
% sed -n '/comptoir/p' passwd
afficher les dix premières lignes :
% sed -n '1,10p' passwd
AWK
---
awk est un langage de programmation très complet. Sa syntaxe est fortement inspirée du langage C. awk permet de manipuler les champs.
Le format général de la commande awk est :
awk [-F"séparateur_de_champs"] '{commande}' fichier
Exemples d'utilisation :
------------------------
affichage de champs particuliers :
% awk '{ print $0 }' passwd
% awk '{ print $1 }' passwd
% awk '{ print $2 }' passwd
% awk '{ print $1 $2} passwd
% awk -F":" '{ print $1 $3 }' passwd
affichage de texte statique :
% awk '{ print "" }' passwd
% awk '{ print "allo" }' passwd
affichage combiné de texte tiré du fichier et de texte statique :
% awk -F":" '{ print $1 " " $3 }' passwd
% awk -F":" '{print "login id is : ", $1}' passwd
9/19/2005
Demo2 (partie 1)
-------------------------------------------
----------- QUATRIEME PARTIE --------------
-------------------------------------------
Fichiers texte :
----------------
Avant de continuer : telecharger le fichier : textedemo2.txt
1. Pour afficher le contenu d'un fichier texte :
% more chemin/fichier = affichage du contenu page par page
% less chemin/fichier = comme more mais possibilite de reculer
% head chemin/fichier = affiche les 10 premieres lignes
% tail chemin/fichier = affiche les 10 dernieres lignes
% cat chemin/fichier = cat a beaucoup d'autres fonctions !
exemple :
% cat textedemo2.txt
% more textedemo2.txt (' ' ou enter pour defil.)
% less textedemo2.txt (fleche = defil, q = exit)
% head textedemo2.txt
% tail textedemo2.txt
2. Pour comparer le contenu de deux fichiers texte :
% cmp chemin/fichier1 chemin/fichier2
- affiche l'endroit de la premiere difference (s'il y en a une).
% diff chemin/fichier1 chemin/fichier2
- affiche les lignes qui different.
exemple :
% cp textedemo2.txt textedemo.txt
% pico textedemo.txt
- changer UN caractere du texte
- faite : ^o --> y --> enter
% cmp textedemo2.txt textedemo.txt
% diff textedemo2.txt textedemo.txt
% rm textedemo.txt
3. Pour compter les mots, les caracteres et les lignes contenu dans un fichier texte :
% wc [-lwc] chemin/fichier = commande qui compte les :
- caracteres (-c)
- mots (-w)
- lignes (-l)
exemple :
% wc textedemo2.txt
% wc -c textedemo2.txt
% wc -w textedemo2.txt
% wc -l textedemo2.txt
% wc -lw textedemo2.txt
4. Pour chercher les lignes d'un fichier contenant un motifs :
% grep [-wicvn] "motif[s]" chemin/fichier
% egrep [-wicvn] "motif[s]" chemin/fichier
Options :
- w = chercher le motifs comme mot.
- i = ignore majuscule/minuscule.
- c = affiche seulement le nombre de lignes correspondantes
- v = cherche les ligne qui ne repondent pas au motif
- n = affiche le numero de la ligne avant
Motifs :
- ^ = debut de ligne
- $ = fin de ligne
- \ = annule l'effet du caractere suivant
- \< = debut de mot - \> = fin de mot
- | = ou
- . = un caractere quelconque
- * = n'importe quel chaine de caracteres (chaine vide inclus)
- (), [], ' '= regroupe
exemple :
grep
5. Pour trier les lignes d'un fichier :
% sort [-urk] [debut[,fin]] chemin/fichier
exemple :
% sort textedemo2.txt
% sort -u textedemo2.txt (-u pas de doublons)
% sort -r textedemo2.txt (-r inverse l'ordre)
% sort -k 2 textedemo2.txt (-k debut)
% sort -k 2,4 textedemo2.txt (-k debut et fin)
Contrôle des entrées / sorties :
--------------------------------
6. Pour combiner plusieurs commandes DEPENDANTES : '|'
commande1 | commande2 [ | ... ] = La commande1 s'execute et donne son resultat a commande2 qui le prend pour entree.
exemple :
% ls -l | wc -l (A quoi sert cette commande ?)
7. Pour rediriger l'entree (remplacer le clavier pour les interactivites avec le systeme) ou la sortie (envoyer le resultat d'une commande dans un fichier plustot qu'a l'ecran) :
... > chemin/fichier = envoie le resultat de la commande qui precede dans "fichier" en ecrasant le contenu deja present.
... >> chemin/fichier = envoie le resultat de la commande qui precede dans "fichier" a la suite du contenu deja present.
...| tee [-a] chemin/fichier = envoie le resultat de la commande qui precede dans "fichier" en ecrasant le contenu deja present ou en ajoutant a la suite du contenu present(option -a) ET affiche le resultat a l'ecran.
% ls -l | tee -a fichierTemp
% more fichierTemp
----------- QUATRIEME PARTIE --------------
-------------------------------------------
Fichiers texte :
----------------
Avant de continuer : telecharger le fichier : textedemo2.txt
1. Pour afficher le contenu d'un fichier texte :
% more chemin/fichier = affichage du contenu page par page
% less chemin/fichier = comme more mais possibilite de reculer
% head chemin/fichier = affiche les 10 premieres lignes
% tail chemin/fichier = affiche les 10 dernieres lignes
% cat chemin/fichier = cat a beaucoup d'autres fonctions !
exemple :
% cat textedemo2.txt
% more textedemo2.txt (' ' ou enter pour defil.)
% less textedemo2.txt (fleche = defil, q = exit)
% head textedemo2.txt
% tail textedemo2.txt
2. Pour comparer le contenu de deux fichiers texte :
% cmp chemin/fichier1 chemin/fichier2
- affiche l'endroit de la premiere difference (s'il y en a une).
% diff chemin/fichier1 chemin/fichier2
- affiche les lignes qui different.
exemple :
% cp textedemo2.txt textedemo.txt
% pico textedemo.txt
- changer UN caractere du texte
- faite : ^o --> y --> enter
% cmp textedemo2.txt textedemo.txt
% diff textedemo2.txt textedemo.txt
% rm textedemo.txt
3. Pour compter les mots, les caracteres et les lignes contenu dans un fichier texte :
% wc [-lwc] chemin/fichier = commande qui compte les :
- caracteres (-c)
- mots (-w)
- lignes (-l)
exemple :
% wc textedemo2.txt
% wc -c textedemo2.txt
% wc -w textedemo2.txt
% wc -l textedemo2.txt
% wc -lw textedemo2.txt
4. Pour chercher les lignes d'un fichier contenant un motifs :
% grep [-wicvn] "motif[s]" chemin/fichier
% egrep [-wicvn] "motif[s]" chemin/fichier
Options :
- w = chercher le motifs comme mot.
- i = ignore majuscule/minuscule.
- c = affiche seulement le nombre de lignes correspondantes
- v = cherche les ligne qui ne repondent pas au motif
- n = affiche le numero de la ligne avant
Motifs :
- ^ = debut de ligne
- $ = fin de ligne
- \ = annule l'effet du caractere suivant
- \< = debut de mot - \> = fin de mot
- | = ou
- . = un caractere quelconque
- * = n'importe quel chaine de caracteres (chaine vide inclus)
- (), [], ' '= regroupe
exemple :
grep
5. Pour trier les lignes d'un fichier :
% sort [-urk] [debut[,fin]] chemin/fichier
exemple :
% sort textedemo2.txt
% sort -u textedemo2.txt (-u pas de doublons)
% sort -r textedemo2.txt (-r inverse l'ordre)
% sort -k 2 textedemo2.txt (-k debut)
% sort -k 2,4 textedemo2.txt (-k debut et fin)
Contrôle des entrées / sorties :
--------------------------------
6. Pour combiner plusieurs commandes DEPENDANTES : '|'
commande1 | commande2 [ | ... ] = La commande1 s'execute et donne son resultat a commande2 qui le prend pour entree.
exemple :
% ls -l | wc -l (A quoi sert cette commande ?)
7. Pour rediriger l'entree (remplacer le clavier pour les interactivites avec le systeme) ou la sortie (envoyer le resultat d'une commande dans un fichier plustot qu'a l'ecran) :
... > chemin/fichier = envoie le resultat de la commande qui precede dans "fichier" en ecrasant le contenu deja present.
... >> chemin/fichier = envoie le resultat de la commande qui precede dans "fichier" a la suite du contenu deja present.
...| tee [-a] chemin/fichier = envoie le resultat de la commande qui precede dans "fichier" en ecrasant le contenu deja present ou en ajoutant a la suite du contenu present(option -a) ET affiche le resultat a l'ecran.
% ls -l | tee -a fichierTemp
% more fichierTemp
9/12/2005
Demo1 (partie 3)
-------------------------------------------
--------- TROISIEME PARTIE ----------------
-------------------------------------------
L'arborescence des fichier Unix et les chemins (relatifs ou absolus).
. = repertoire courant
.. = repertoire parent
~ = repertoire d'utilisateur (ou de login, aussi = HOME)
Repertoires :
-------------
Dans un terminal arabica...
1. Pour connaitre le chemin absolu du repertoire courant : % pwd
2. Pour connaitre le contenu d'un repertoire : % ls chemin/repertoire
% ls (liste les fichier du repertoire courant)
% ls -a (pour visualiser les fichiers caches)
% ls -l (affichage detaille)
% ls -al
3. Pour creer un repertoire : % mkdir chemin/nouveau_repertoire
% mkdir Inf1105
% mkdir ./Inf1105/Rep_test
4. Pour changer le repertoire courant : % cd chemin/nouv_rep_courant
% cd Inf1105
% cd ..
% cd ./Inf1105/Rep_test
% cd ~
5. Pour effacer un repertoire vide : % rmdir chemin/rep_a_effacer
% rmdir Inf1105/Rep_test
% ls Inf1105 (verifier que Rep_test n'y est plus)
Fichiers :
----------
6. Pour copier un fichier : % cp chemin/fic_source chemin/fic_dest
% touch fichier2 (cree fichier2)
% cp fichier2 Inf1105/fichier2
7. Pour deplacer un fichier : % mv chemin/fic_source chemin/fic_dest
% mv ~/fichier2 Inf1105/fichier
8. Pour supprimer un fichier : % rm chemin/fic_a_suppr
% cd Inf1105
% rm fichier (confirmation demande = -i)
% cd ..
% rmdir Inf1105 (fonct. pas pcq pas vide)
% rm -r Inf1105 (efface un répertoire non vide)
9. Pour changer les permissions d'un fichier : % chmod XXX chemin/fic
% touch testchmod (cree le fichier testchmod)
% ls -l (pour verifier permissions de testchmod)
% chmod 755 testchmod
% ls -l (pour verifier permissions de testchmod)
% chmod 400 testchmod
% ls -l (pour verifier permissions de testchmod)
% chmod 700 testchmod
% ls -l (pour verifier permissions de testchmod)
% rm testchmod
---
--------- TROISIEME PARTIE ----------------
-------------------------------------------
L'arborescence des fichier Unix et les chemins (relatifs ou absolus).
. = repertoire courant
.. = repertoire parent
~ = repertoire d'utilisateur (ou de login, aussi = HOME)
Repertoires :
-------------
Dans un terminal arabica...
1. Pour connaitre le chemin absolu du repertoire courant : % pwd
2. Pour connaitre le contenu d'un repertoire : % ls chemin/repertoire
% ls (liste les fichier du repertoire courant)
% ls -a (pour visualiser les fichiers caches)
% ls -l (affichage detaille)
% ls -al
3. Pour creer un repertoire : % mkdir chemin/nouveau_repertoire
% mkdir Inf1105
% mkdir ./Inf1105/Rep_test
4. Pour changer le repertoire courant : % cd chemin/nouv_rep_courant
% cd Inf1105
% cd ..
% cd ./Inf1105/Rep_test
% cd ~
5. Pour effacer un repertoire vide : % rmdir chemin/rep_a_effacer
% rmdir Inf1105/Rep_test
% ls Inf1105 (verifier que Rep_test n'y est plus)
Fichiers :
----------
6. Pour copier un fichier : % cp chemin/fic_source chemin/fic_dest
% touch fichier2 (cree fichier2)
% cp fichier2 Inf1105/fichier2
7. Pour deplacer un fichier : % mv chemin/fic_source chemin/fic_dest
% mv ~/fichier2 Inf1105/fichier
8. Pour supprimer un fichier : % rm chemin/fic_a_suppr
% cd Inf1105
% rm fichier (confirmation demande = -i)
% cd ..
% rmdir Inf1105 (fonct. pas pcq pas vide)
% rm -r Inf1105 (efface un répertoire non vide)
9. Pour changer les permissions d'un fichier : % chmod XXX chemin/fic
% touch testchmod (cree le fichier testchmod)
% ls -l (pour verifier permissions de testchmod)
% chmod 755 testchmod
% ls -l (pour verifier permissions de testchmod)
% chmod 400 testchmod
% ls -l (pour verifier permissions de testchmod)
% chmod 700 testchmod
% ls -l (pour verifier permissions de testchmod)
% rm testchmod
---
Demo1 (partie 2)
-------------------------------------------------
-------------- DEUXIEME PARTIE ------------------
-------------------------------------------------
Browser :
---------
Ouvrir Mozilla, a l'adresse www.labunix.uqam.ca/~m261440/Inf1105, telechager le fichier "un.txt" en cliquant sur le lien un.txt avec le bouton de droite, et choisissez "Save Link As...". Vous pouvez alors choisir l'endroit et le nom du fichier sauvegarde.
SSH :
-----
D'un terminal du poste ou vous vous trouvez (menu "Outils de systeme") :
% ssh arabica.labunix.uqam.ca (et se loguer...)
% w
% exit
Editeurs de texte :
-------------------
Graphique : gedit recommande.
Texte : pico est le plus simple.
% pico test.txt
(^o pour sauvegarder, ^x pour quitter, ...)
Archivage et compression :
--------------------------
Dans un terminal du poste ou vous vous trouvez :
% tar cf un.tar un.txt
% tar czf un.tgz un.txt
% tar xzf un.tgz
* Les fleches et tab pour l'auto-complete.
Clavardage :
------------
Dans un terminal arabica :
% talk ? [identifiant d'un usager]
---
-------------- DEUXIEME PARTIE ------------------
-------------------------------------------------
Browser :
---------
Ouvrir Mozilla, a l'adresse www.labunix.uqam.ca/~m261440/Inf1105, telechager le fichier "un.txt" en cliquant sur le lien un.txt avec le bouton de droite, et choisissez "Save Link As...". Vous pouvez alors choisir l'endroit et le nom du fichier sauvegarde.
SSH :
-----
D'un terminal du poste ou vous vous trouvez (menu "Outils de systeme") :
% ssh arabica.labunix.uqam.ca (et se loguer...)
% w
% exit
Editeurs de texte :
-------------------
Graphique : gedit recommande.
Texte : pico est le plus simple.
% pico test.txt
(^o pour sauvegarder, ^x pour quitter, ...)
Archivage et compression :
--------------------------
Dans un terminal du poste ou vous vous trouvez :
% tar cf un.tar un.txt
% tar czf un.tgz un.txt
% tar xzf un.tgz
* Les fleches et tab pour l'auto-complete.
Clavardage :
------------
Dans un terminal arabica :
% talk ? [identifiant d'un usager]
---
Demo1 (partie 1)
------------------------------------------------
------------- PREMIERE PARTIE ------------------
------------------------------------------------
Avant-Propos :
--------------
- Linux est case sensitive.
- Faite attention aux accents.
- Sous Windows ouvrez les fichiers Linux avec Wordpad.
- Les differents terminaux : arabica, amalthee et les postes eXX ou fXX.
Identification :
----------------
Allez-y, identifiez-vous au système !
Les commandes d'identification :
Dans un terminal Arabica :
% passwd (Sous pour changer le mot de passe)
De n'importe quel terminal :
% whoami (qui suis-je?)
% w, who et finger (qui est connecte au systeme en ce moment)
% id (pour connaitre mon uid et gid)
Aide :
------
Les commandes d'aide :
Dans un terminal Arabica :
% man nomCommande (pour visualiser le manuel de la commande)
% apropos motCle (affiche la liste des commandes qui ont le
le motCle dans leur manuel)
% xman (navigateur graphique pour man et apropos)
*Le defilement (scrolling) avec les 3 boutons.
---
------------- PREMIERE PARTIE ------------------
------------------------------------------------
Avant-Propos :
--------------
- Linux est case sensitive.
- Faite attention aux accents.
- Sous Windows ouvrez les fichiers Linux avec Wordpad.
- Les differents terminaux : arabica, amalthee et les postes eXX ou fXX.
Identification :
----------------
Allez-y, identifiez-vous au système !
Les commandes d'identification :
Dans un terminal Arabica :
% passwd (Sous pour changer le mot de passe)
De n'importe quel terminal :
% whoami (qui suis-je?)
% w, who et finger (qui est connecte au systeme en ce moment)
% id (pour connaitre mon uid et gid)
Aide :
------
Les commandes d'aide :
Dans un terminal Arabica :
% man nomCommande (pour visualiser le manuel de la commande)
% apropos motCle (affiche la liste des commandes qui ont le
le motCle dans leur manuel)
% xman (navigateur graphique pour man et apropos)
*Le defilement (scrolling) avec les 3 boutons.
---
9/11/2005
Bienvenue sur le sîte des démos d'Inf1105 !
Bonjour,
Le contenu de la scéance de laboratoire de la semaine sera diffusée hebdomadairement sur ce sîte. De plus, il sera possible à tout les démonstrateurs d'INF1105 de publier des remarques, suggestions et trucs pour les TPs.
Les différentes rubriques diffusées sur ce sîte, peuvent toutes être commentées. Je vous invites à communiquer vos questions et commentaires par le biais du mécanisme de commentaires. En réponse à votre commentaire, il sera possible à tous le monde d'ajouter des réponses et/ou des éclaicissements à votre commentaire. Les commentaires peuvent être émis de façon complétement anonyme ou être signés. Pour poster un commentaire sur le sîte, cliquez sur comments sous une rubrique, puis sur Post a Comment dans le bas de la page...
Bonne session !
Eric
PS : SVP, essayer de mettre vos commentaires à la suite de la rubrique la plus appropriée... autrement dit, ne posez pas une question au sujet de la démo 5 en commentaire à la rubrique de la démo 2. Merci !
Le contenu de la scéance de laboratoire de la semaine sera diffusée hebdomadairement sur ce sîte. De plus, il sera possible à tout les démonstrateurs d'INF1105 de publier des remarques, suggestions et trucs pour les TPs.
Les différentes rubriques diffusées sur ce sîte, peuvent toutes être commentées. Je vous invites à communiquer vos questions et commentaires par le biais du mécanisme de commentaires. En réponse à votre commentaire, il sera possible à tous le monde d'ajouter des réponses et/ou des éclaicissements à votre commentaire. Les commentaires peuvent être émis de façon complétement anonyme ou être signés. Pour poster un commentaire sur le sîte, cliquez sur comments sous une rubrique, puis sur Post a Comment dans le bas de la page...
Bonne session !
Eric
PS : SVP, essayer de mettre vos commentaires à la suite de la rubrique la plus appropriée... autrement dit, ne posez pas une question au sujet de la démo 5 en commentaire à la rubrique de la démo 2. Merci !
