IFT 6800 – Démonstration 1 But de la démonstration Préalables

Transcription

IFT 6800 – Démonstration 1 But de la démonstration Préalables
Département d’informatique et de
recherche opérationnelle
IFT 6800 – Démonstration 1
But de la démonstration
Cette démonstration vous familiarisera avec les commandes de base du système
d’exploitation Linux.
Préalables
Assurez-vous d’avoir activé votre compte tel qu’expliqué à l’url
http://support.iro.umontreal.ca/doku.php?id=compte:nouveau .
Révisez vos notes de cours de la séance 2. Assurez-vous de comprendre en particulier les
droits d’accès sur les fichiers (« Sécurisation de fichiers et de répertoires »). Si vous
souhaitez plus d’explications, lisez la section 3.5.10 du document
http://www-etud.iro.umontreal.ca/~semunix/documentIRO/semunix-manuel.pdf .
Ouverture de session
Pour ouvrir une session Linux (se « logger »), tout dépend du poste sur lequel vous êtes
installé. Vous pourrez faire vos travaux pratiques et ces démos peu importe le type de
poste sur lequel vous vous trouvez, car on peut accéder à l’environnement Linux à partir
de Windows.
Poste Linux
Entrez votre mot de nom d’utilisateur et votre mot de passe. Vous êtes dans
l’environnement KDE. Pour ouvrir une fenêtre de commande (une « coquille »), cliquez
sur l’icône du menu principal (en bas à gauche), aller dans « Système », puis cliquez sur
« Terminal ».
Poste Windows
Dans le menu « Démarrer », choisir Programmes » Putty SSH » Putty.
Lorsque l’application a démarré, entrer « triton » dans la boîte « Host Name », assurezvous que le choix « SSH » est bien coché, puis faire « Open ». Répondre « Oui » à la
boîte de dialogue qui suit, puis ouvrez une session en entrant votre nom d’utilisateur et
votre mot de passe. Une fenêtre (« coquille ») pour entrer vos commandes est alors prête.
Note : vous pouvez télécharger gratuitement le logiciel Putty qui permet l’ouverture de
session à distance.
Voir http://support.iro.umontreal.ca/doku.php?id=logiciel:windows&s=putty pour plus de
détails.
1
À partir de votre ordinateur portable Windows
Vous pouvez connecter votre portable au réseau pour faire cette démonstration et pour les
autres travaux dans le cadre des cours au DIRO. Consultez
http://support.iro.umontreal.ca/doku.php?id=reseau:acces-libre&s=portable pour vous
connecter. Vous aurez également besoin du logiciel « Putty » décrit à la section
précédente (« Poste Windows »).
Exercices
Vous trouverez de la théorie complémentaire à celle qui a été vue en cours, dans le
document d’introduction à Linux suivant :
http://www-etud.iro.umontreal.ca/~semunix/documentIRO/semunix-manuel.pdf .
Nous utiliserons ce document pour nous guider. Vous pouvez l’acheter imprimé et relié,
mais ce n’est pas indispensable, car il est disponible en ligne. Voir le site
http://www-etud.iro.umontreal.ca/~semunix pour plus d’informations.
Syntaxe de base d’une commande (Section 3.5 du document)
À l’invite de commande (prompt), on entre les commandes Linux suivies du retour
chariot pour les valider. Une commande typique a la forme suivante :
commande [options] [paramètres]
La commande est le nom de la commande, les options modifient le comportement de la
commande, et les paramètres sont les entrées du programme, celles sur lesquelles la
commande agit. Ce sont souvent des noms de fichiers.
Nous allons exercer un certain nombre de ces commandes dans ce qui suit. Le format est
le suivant : présentation de la commande (voir la section du manuel mentionné plus haut
lorsque le manuel est cité), puis quelques exercices numérotés.
Un truc
Pour rappeler les dernières commandes que vous venez de taper, tapez la flèche vers le
haut.
Commandes de base
pwd (Section 3.5.2) – afficher le répertoire courant
1) pwd
cd (Section 3.5.3) – changer de répertoire courant
2)
3)
4)
5)
6)
7)
8)
cd nsmail
pwd
cd .. (se déplacer vers le répertoire parent du répertoire courant)
pwd
cd /u/dift6800/HTML
pwd
cd 2007-ete
2
9) pwd
10) cd ..
11) pwd
12) cd (revient à votre répertoire personnel)
13) pwd
ls (Section 3.5.4) – lister le contenu d’un répertoire
14) ls (lister les fichiers du répertoire courant)
15) ls -l (lister les fichiers avec plus de détails)
16) ls –a (lister tous les fichiers, même ceux dont le nom commence par .)
17) ls /u/dift6800/HTML (lister les fichiers dans un autre répertoire)
18) Combinez les options en tapant ls –la /u/dift6800/HTML (ceci
combine l’affichage des détails et des fichiers dont le nom commence par .)
19) cd /u/dift6800/HTML
20) ls i* (lister tous les fichiers dont le nom commence par i)
21) ls –l *l (lister les détails de tous les fichiers dont le nom se termine par l)
22) comparer ls –l et ls –lh. Quelle est la différence ?
23) cd
mkdir (Section 3.5.5) – créer un répertoire
24) se placer dans votre répertoire de travail (cd)
25) mkdir ift6800 (création du répertoire ift6800 dans votre répertoire)
26) ls -l
27) cd ift6800
28) pwd
29) mkdir devoirs
30) mkdir demos
31) cd demos
32) mkdir 1
33) cd
34) pwd
35) cd ift6800/demos/1
36) mkdir trash
37) ls
rmdir (Section 3.5.6) – supprimer un répertoire
Note : À partir d’ici, à vous de faire ls -l lorsque vous le souhaitez pour constater le
résultat des commandes d’exercice.
38) rmdir trash
39) après s’être assuré du résultat de la commande, revenir dans votre répertoire de
travail
3
man (Section 3.5.12) – consultation de l’aide en ligne
40) trouver la documentation de ls en faisant man ls et trouver la signification
de l’option –R
41) quitter man en faisant q, puis tester l’option -R
pico (Section 4.2.3) – édition de fichiers avec Pico
L’éditeur de texte utilisé pour nos cours sera « pico », décrit dans le document
d’introduction à Unix. Lisez la section qui le décrit. Notez cependant que, pour
copier/coller dans une console, il est souvent suffisant sous Linux de sélectionner le texte
avec la souris (ceci copie le texte automatiquement) et de cliquer le bouton du milieu de
la souris (ceci colle le texte). Ceci vaut dans toutes les applications texte.
Il existe également d’autres éditeurs (voir section 4.2.5).
42) se placer dans le répertoire ift6800/demos/1
43) pico
44) créer un fichier toto.txt dans ce répertoire avec quelques lignes de votre cru
45) quitter pico
46) visualiser le contenu du fichier avec les commandes cat et more (utiliser man
pour des détails sur ces commandes)
47) afficher la première ligne de toto.txt en faisant head -1 toto.txt
48) afficher les deux dernières lignes de toto.txt en faisant
tail -2 toto.txt
cp, mv, rm (Sections 3.5.7 et suivantes) – opérations sur les fichiers
49) se placer dans le répertoire ift6800/demos/1
50) renommer votre fichier avec la commande mv toto.txt toto2.txt
51) s’assurer avec ls que les résultats sont justes
52) créer un répertoire test ainsi qu’un sous répertoire à test appelé alpha
53) renommer le répertoire alpha en beta avec mv
54) dupliquer votre fichier de test toto2.txt en retournant dans le répertoire où il
se trouve et en faisant cp toto2.txt toto3.txt
55) dupliquer le fichier toto3.txt en faisant cp toto3.txt toto4.txt
56) copier tous les fichiers dont le nom commence par « toto » dans le répertoire
test/beta en entrant la commande cp toto* test/beta
57) détruire le fichier toto2.txt en faisant rm –i toto2.txt (répondre Y)
zip, unzip – compression/décompression de fichiers
58) se placer dans le répertoire ift6800/demos/1
59) zip toto.zip toto3.txt (compression)
60) rm –i toto3.txt
61) unzip toto.zip (décompression et restauration de toto3.txt)
62) détruire toto.zip
4
chmod (Section 3.5.10) – droits d’accès aux fichiers
63) se placer dans le répertoire ift6800/demos/1
64) ls –l et observer les droits des fichiers et des répertoires. Ils sont classés dans
l’ordre {utilisateur, groupe, autres}, r étant le droit de lecture, w le droit
d'écriture et x celui d’exécution.
65) chmod u–r toto3.txt
66) ls –l toto3.txt (constater le changement des lettres d’accès)
67) cat toto3.txt (plus d’accès)
68) Restaurer l'ancien état avec chmod u+r toto3.txt.
69) Accorder les droits de lecture (r) à l’utilisateur et aux membres de son groupe
(g) en faisant chmod ug+r toto3.txt, et faire ls -l
70) Taper chmod u-w toto3.txt. Essayer de modifier le fichier via l'éditeur
de texte. Restaurer l'ancien état par chmod u+w toto3.txt.
71) chmod -w .; ls –l
72) Essayer de créer un nouveau fichier dans le répertoire. Restaurer l’ancien état
par chmod +w . (le point fait partie de la commande et désigne le répertoire
courant)
73) Créez dans votre répertoire racine un répertoire incoming où n’importe quel
membre de votre groupe peut y déposer des fichiers mais sans pouvoir lire le
contenu ni du répertoire ni des fichiers déposés. Vous devez disposer de tous les
droits sur ce répertoire et les utilisateurs qui ne font pas partie de votre groupe ne
doivent disposer d’aucun droit. Vous pouvez tester votre solution en demandant
à un autre étudiant de copier son fichier toto4.txt dans votre répertoire
incoming.
Gestion des processus
Sous Linux, tous les programmes qui « tournent » correspondent à un (parfois plusieurs)
processus. On peut les observer et contrôler ceux qui nous appartiennent avec certaines
commandes. Les processus ont plusieurs caractéristiques. Nous nous intéresserons surtout
au numéro unique du processus et à son utilisateur.
74) ps -f (liste les processus sur le terminal utilisé, pour l’utilisateur)
On observe une colonne pour l’utilisateur (UID), pour le numéro du processus
(PID) et pour la commande lancée (CMD).
75) ps -e (liste tous les processus sur la machine, de tous les utilisateurs)
76) ps –elf (liste détaillée de tous les processus)
77) ps –fu root (liste des processus de l’utilisateur spécifié, ici l’utilisateur
root)
78) lancer la commande sleep 10d, elle ne retournera pas et bloquera l’utilisateur
79) tuer ce processus bloquant en faisant CTRL+c
80) recommencer le processus bloquant sleep 10d
81) interrompre le processus cette fois-ci par CTRL-z
Le processus est interrompu, mais il existe toujours.
5
82) ps –f (le processus sleep est visible dans la liste)
83) relancer le programme par fg (foreground)
84) l’interrompre à nouveau par CTRL-z
85) taper bg (background). Maintenant, le programme s’exécute en tâche de fond
86) déterminer le PID du processus avec ps –f
87) tuer le processus par la commande kill –KILL PID_DU_NO_PRECEDENT.
88) faire top pour voir les processus qui tournent, h pour de l’aide, q pour quitter
Note : Vous pouvez lancer une commande en arrière-plan dès son invocation sur la ligne
de commande en la terminant avec un &. Par exemple, sleep 10d &.
Commandes diverses
Pour les exercices qui suivent, il vous faut télécharger un fichier d’Internet vers votre
compte du DIRO.
Sous Windows
Lancer le fureteur Firefox et aller sur la page de cette démonstration et télécharger le
fichier texte « exemple.txt ». Le sauvegarder dans le répertoire
r:\ift6800\demos\1. Vous noterez que Windows fournit un « pont » entre son
système de fichiers bien connu et votre compte du DIRO sous Linux via le lecteur
« R: ». Toutes les opérations faites sur ce lecteur sont instantanément reflétées sur votre
compte Linux.
Sous Linux
Lancer le fureteur Firefox et aller sur la page de cette démonstration et télécharger le
fichier texte « exemple.txt ». Le sauvegarder dans le répertoire
ift6800/demos/1.
grep – recherche de lignes dans un fichier
89) afficher le contenu du fichier exemple.txt avec cat
90) grep banane exemple.txt affiche les lignes contenant « banane »
91) grep pomme exemple.txt
sort – tri des lignes d’un fichier
92) sort exemple.txt
93) sort –r exemple.txt (ordre inverse)
Pipelines de commande (s’il reste du temps)
Les commandes peuvent être combinées sous Linux. C’est-à-dire que la sortie d’une
première commande sert d’entrée à une seconde, et ainsi de suite. Ce chaînage peut
devenir très puissant.
La syntaxe d’un tel chaînage est simplement
cmd1 |
cmd2 | cmd2 | etc.
6
Ce qui signifie que la sortie de la cmd1 est utilisée comme entrée de la cmd2, etc. On
utilise la barre verticale (« | ») pour chaîner les commandes.
94) sort exemple.txt | head -1
95) ls –l | sort –r
96) cat exemple.txt | sort –r | head -2 | tail -1
Quitter un terminal
Faites simplement exit.
Sources
Ce document est une adaptation d’une démonstration similaire, d’auteur inconnu, faite en
2005 pour le cours ift6800 à l’Université de Montréal.
Il s’inspire et cite le manuel des séminaires d’introduction à Unix disponible à
http://www-etud.iro.umontreal.ca/~semunix/.
Rédigé par Fabrizio Gotti, été 2007.
7

Documents pareils