0-TECHNIQUES DE PROGRAMMATION -...
-
Upload
truongngoc -
Category
Documents
-
view
221 -
download
0
Transcript of 0-TECHNIQUES DE PROGRAMMATION -...
![Page 2: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/2.jpg)
Plan cours no. 0
• Objectifs du cours 5
• Déroulement et contenu du cours 8
• Le langage C (préface) 11
• Unix et le Shell 26
2
![Page 3: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/3.jpg)
Programmation
Programme : • séquence d’instructions qui spécifie les étapes pour
obtenir un résultat ou réaliser une tâche
Programmer ou coder : • concevoir, écrire, tester, déboguer et maintenir un
programme
3
![Page 4: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/4.jpg)
Des programmes
Manipuler, visualiser et transmettre l’information • le traitement de texte, la calculatrice (bureautique) • skype, firefox, facebook • vlc, lecteur mp3
Créer et se distraire • les jeux vidéos • la création numérique (demo-making,
photoshop)
4
![Page 5: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/5.jpg)
Objectifs
Acquérir : • le fonctionnement interne d’un ordinateur • un langage de programmation polyvalent (le langage C)
• Pour concevoir des programmes : • Analyse et Simulation numérique
• projets math-info 1A • théorème des 4 couleurs
• Acquisition et traitement de données expérimentales • Commande de systèmes, de robots
5
![Page 6: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/6.jpg)
Objectifs • Exemple d’interface graphique d’acquisition en GTK
6
![Page 7: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/7.jpg)
Objectifs • Commande de robots : Option Mécatronique, Commande numérique2A
7
![Page 8: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/8.jpg)
Volume horaire et ressources
• 10 cours de 1h45 • 7 TPs de 4h sous environnement Linux (windows négligé)
• Documents et exemples de programme C dans l’Intranet • Le K&R:
• le livre de référence • par Kernighan et Ritchie
• Le site du zéro : Programmer en c • http://www.siteduzero.com/
8
![Page 9: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/9.jpg)
Evaluation
• Cours (en contrôle continu): • 40% de la note sur QCM de début de cours et travaux rendus • 60% examen final sur feuille (1h30-2h)
• TPs (en contrôle terminal) • Examen final sur machine Linux (4h)
9
![Page 10: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/10.jpg)
Plan prévisionnel
• Architecture des ordinateurs et codage binaire • Le langage C
• Variables • Instructions • Fonctions • Tableaux et pointeurs • Fichiers
• Structures avancées en C • Exemple avancés (interface graphique, réseau)
10
![Page 11: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/11.jpg)
Le langage C
• par Dennis Ritchie (AT&T Bell, 1972) • lié à la création du système UNIX • sur un DEC PDP-11 (1973) • dérivé du langage B, lui-même inspiré du BCPL
• un langage très utilisé • par le succès d’UNIX • popularité: 1er du TIOBE index 2012 (2ème Java, 3ème objective-C, 4ème C++) • permet un accès bas niveau = direct au matériel (mémoire) • performant (grande rapidité d’exécution)
11
![Page 12: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/12.jpg)
Le langage C
• utilisé en particulier pour programmer :
• des systèmes exploitation (OS) : Unix, Linux, OS-X, Windows XP
• des bases de données • des micro-controlleurs/processeurs : smartphone,
automobile • … (peut tout faire)
12
![Page 13: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/13.jpg)
Le langage C
• Avantages du C : • rapidité d’exécution : car proche du fonctionnement du
matériel (CPU/mémoire) • grande liberté donnée au programmeur (additionner un entier avec un caractère) • portable: disponible sur toutes les plateformes
• Inconvénients du C :
• Manque fonctionnalités des langages plus évolués • Liberté de faire des erreurs (de planter) • «C is quirky, flawed and an enormous success » Ritchie
13
![Page 14: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/14.jpg)
Le langage C
• langages «haut niveaux» dérivés du C et orientés objets : • le C++ (2A) • Objective-C: une surcouche au C
• utilisé par NEXT (fondé par Steve Jobs) puis OS X
• langages influencé par le C (sa syntaxe) : • Java • Python • le PHP: the facebook technology
14
![Page 15: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/15.jpg)
Le langage C
Version/normalisation du langage C : • 1978 : le livre The C programming language,
de-facto la première spécification
• 1989-1990 : C normalisé par l’ISO, nommé ANSI C ou C89 ou C90 • 1999 : nouvelles extensions de la norme (C99) mais pas disponible partout L’ANSI-C est le sujet du cours.
15
![Page 16: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/16.jpg)
Le langage C : exemples • Dennis Ritchie (1941- octobre 2011)
16
Ce programme C affiche «Goodbye World» à l’écran.
![Page 17: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/17.jpg)
Le langage C
Autre exemple : Additionner les entiers 2 et 56
int main() {!! !int a=2, b=56;!! return (a+b);!! }!
• main() est la fonction ou procédure principale • int : déclare un entier (integer en anglais) • printf(« ») : affiche un message à l’écran • return() : renvoie un résultat
17
![Page 18: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/18.jpg)
Le langage C
un langage compilé : • compilation : traduction
code c 3 +15
langage machine binaire 0011 0011 1111 (ADD 3(10) 15(10)) • le compilateur : le traducteur
• langage machine : le seul compris par l’ordinateur par le processeur
18
![Page 19: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/19.jpg)
Compilation du programme
#include <stdio.h> void main(void) { int i, j , k ; for (i=0;i>10;i++) { printf("%d\n",i) } }
011001110101011001 001110011001110011 010000111100010101 010010011111000000 111110001000000000 …
Le compilateur
Code source C : • texte • ‘‘human readable’’
Programme : • langage machine
![Page 20: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/20.jpg)
Le langage C
Citations :
« Programmer en C, ce n’est que du bon sens paysan. » S.F, maître de conférences à Télécom Physique Strasbourg
«La programmation en C, c’est de l’artisanat. On voit si l’artisan est bon en lisant le code source. »
J.G, professeur à Télécom Physique Strasbourg
20
![Page 21: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/21.jpg)
Le langage C sous Linux
Fichier contenant le code en langage C : • appelé code source • extension .c par convention • éditable avec tout éditeur de fichier texte (.txt)
21
helloworld.c édité avec gedit
![Page 22: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/22.jpg)
Compilation sous Linux • gcc : le compilateur • options de compilation
• -Wall : affiche tous les avertissements • -ansi -pedantic-errors : version ANSI du C • -lm : pour la librairie mathématique • -o : suivi du nom souhaité pour l’exécutable binaire
(le programme)
• compilation de helloworld.c dans un terminal : gcc –Wall –pedantic-errors –ansi -lm !! ! ! ! ! !helloworld.c –o helloworld!
22
![Page 23: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/23.jpg)
Exécution sous Linux
• exécution : ./helloworld!! ! ! ! ! ! ! ! ! ! (./ pour le chemin relatif
et le fichier doit avoir le droit d’exécution)
23
Compilation et exécution de helloworld dans un terminal sous Linux.
![Page 24: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/24.jpg)
Make
• make est un utilitaire pour gérer la compilation • utilise un fichier de configuration dans le répertoire
courant: makefile!
• Le fichier makefile minimal contient pour notre cours: CFLAGS= -ansi –pedantic-errors -Wall LDFLAGS= -lm • La compilation se résume alors à la commande:
make helloworld!
24
![Page 25: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/25.jpg)
Make
25
![Page 26: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/26.jpg)
UNIX système
• Système d’ exploitation (1969)
• 1973, écriture en C par Thomson and Ritchie
• Multi-utilisateur, multi-tâches
26
![Page 27: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/27.jpg)
27
![Page 28: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/28.jpg)
UNIX système • Un noyau (kernel)
• le cœur du système d’exploitation • partage le cpu entre les programmes et utilisateurs • gère le matériel (processeur, périphériques)
• Un shell • interpréteur de commandes (commande mode texte) • interaction entre l’utilisateur et le système
• Les utilitaires (programmes) • éditeur de texte, calculatrice • interface graphique (commande en mode graphique) • …
28
![Page 29: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/29.jpg)
Les héritiers d’UNIX
29
Android
iOS
![Page 30: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/30.jpg)
L’arborescence de fichiers UNIX
• Des répertoires (directories) et des fichiers (files) • Répertoire de départ de l’arborescence : la racine, représentée par le symbole / (slash) • Des sous-répertoires : home, usr, bin!
• Un répertoire personnel dans home pour chaque user : • appelé ‘home directory’ • porte le nom de login de l’utilisateur • exemple: /home/loic
30
![Page 31: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/31.jpg)
L’arborescence de fichiers UNIX
/!
bin! home!
loic!
Exo.doc! Folder!
toto!
usr!
Test.txt!
31
![Page 32: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/32.jpg)
Le shell
Interpréteur de commandes en mode texte :
• Interaction avec le système d’exploitation et de fichiers
• Permet de lancer des commandes et des programmes
• (Le shell est lui-même un programme en mode texte)
Création d’un shell par l’ouverture d’un terminal.
32
![Page 33: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/33.jpg)
Le shell et le prompt
Le prompt : une séquence de caractères • indique que le système attend une nouvelle commande • contient des informations : utilisateur, répertoire courant • finie par un caractère spécial (>, #, ou $)
33
Identité utilisateur Identité machine (nom ordinateur)
Répertoire courant : ~/Music (où je suis)
![Page 34: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/34.jpg)
Les commandes du shell Format d’une commande : commande [options] [fichier(s)_ou_donnée(s)]!!• une commande et des arguments/paramètres facultatifs
• arguments : options et fichiers ou données
• le séparateur est l’espace vide ‘ ‘ : • entre commande, options et le ou les fichiers/donnée
Pour UN fichier : pas d’espace dans le nom ! (interprété comme plusieurs arguments par le shell)
34
![Page 35: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/35.jpg)
La commande cd Changer de répertoire : cd (change directory) cd ou cd ~ • se déplacer dans son répertoire d’accueil (HOME)
soit pour loic cuvillon : /home/loic • ~ = /home/loic , ~ est un raccourci/alias pour son home
cd ..!• se déplacer dans le répertoire supérieur • .. est un alias pour le répertoire supérieur
cd folder ou cd ./folder!• descendre dans le sous répertoire nommé folder!• . est un alias pour le répertoire courant
35
![Page 36: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/36.jpg)
La commande cd
36
Se déplacer au travers de plusieurs répertoires en 1 fois : • indiquer le chemin relatif (à partir du répertoire courant)
1. cd Music/Born_to_Die! ou cd ./Music/Born_to_die!
! 2. cd ../gotan_project! 3. cd ../../
loic!
Music!
Born_to_Die!
gotan_project! …!
1
2 3
![Page 37: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/37.jpg)
La commande cd
37
Se déplacer dans un répertoire, quelque soit le répertoire actuel : • indiquer le chemin absolu (à partir de la racine / )
1. cd /home/loic/Music/Born_to_Die!2. cd /home/loic/Music/gotan_project!3. cd /home/loic! ou cd ~
loic!
Music!
Born_to_Die!
gotan_project! …!
1
3
2
![Page 38: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/38.jpg)
La commande ls
38
Lister le contenu du répertoire : ls (list)! ls (ou ls .) • lister le répertoire courant
ls folder !ls /home/loic/folder!ls ../folder! • lister le répertoire indiqué par le chemin relatif ou absolu
![Page 39: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/39.jpg)
La commande ls
39
Quelques options de ls : ! -a!
• lister aussi les fichiers/répertoires cachés, dont le nom commence par .!
(ceci inclus le répertoire parent : .. ) -l (long format)
• lister avec les informations des fichiers/répertoires -al ou –a -l!
• combinaison de –a et -l
![Page 40: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/40.jpg)
droits sur le fichier, pour le user, group, autres: r (read), w(xrite) , x (execute)
La commande ls
40
nom date de modification
taille du fichier (en octets)
utilisateur propriétaire du fichier
nom du groupe d’utilisateurs propriétaire
![Page 41: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/41.jpg)
La commande mkdir
• Créer un répertoire : mkdir (make directory)
mkdir U2!• créer le répertoire U2 dans le répertoire courant
mkdir ../U2!• créer le répertoire U2 dans le répertoire parent
(supérieur)
41
![Page 42: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/42.jpg)
La commande cp Copier un fichier : cp file destination • si destination est un répertoire (..), copier file dedans • sinon copier file sous le nom destination! cp /home/loic/texte.txt .!
• copier le fichier dans le répertoire courant
cp texte.txt texte2.txt!• copier texte du répertoire courant en texte2 dans le répertoire courant
!42
![Page 43: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/43.jpg)
La commande cp Copier un répertoire : cp –r source_dir dest_dir
• option –r (recursive) : copie récursive du répertoire
cp –r Music MP3!• si MP3 est un répertoire existant, copier le répertoire Music dedans • sinon copier le répertoire Music sous le nom MP3
cp –r Music ..!
• copie du répertoire Music dans le répertoire parent ! 43
![Page 44: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/44.jpg)
La commande cp
44
copie du répertoire Music en MP3 (Music et MP3 ont le même contenu)
copie du mp3 sous un autre nom et dans le répertoire courant
copie du répertoire Music dans MP3
![Page 45: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/45.jpg)
La commande mv Déplacer (renommer) un fichier :
mv file dest (move) • si dest est un répertoire existant, y déplacer file • sinon renommer file en dest! mv file ..!
• déplacer file dans le répertoire parent (couper/coller) mv file.txt ../file2.txt!
• déplacer dans le répertoire parent et le renommer en file2.txt!
45
Idem. si file est un répertoire
![Page 46: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/46.jpg)
La commande mv Déplacer (renommer) un répertoire :
mv Born_to_die/ ../Music/!
• déplacer Born_to_die/ dans le répertoire Music/ (si Music existe déjà)
46
![Page 47: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/47.jpg)
La commande mv
47
Renommer Music/ (avec ou sans le / à la fin) en Mp3
Déplacer le fichier mp3 dans le répertoire Mp3/Born_to_die/
![Page 48: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/48.jpg)
La commande rm Effacer un fichier : rm file (remove) !rm test!!rm /home/loic/test.txt!!rm –i test!• option –i : demande confirmation à l’utilisateur
avant d’effacer !Effacer un répertoire et tout son contenu : rm –r Music/
• option –r (recursive) !!
48
![Page 49: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/49.jpg)
La commande touch
Crée un fichier vide : touch file_name • si le fichier existe déjà : heure de modification du fichier
mise à jour avec l’heure courante (ls -l)!
49
![Page 50: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/50.jpg)
Le caractère spécial * Le caractère ‘ * ’ : désigne toute chaîne de caractères • utile pour déplacer, copier, effacer plusieurs fichiers !rm * : efface tous les fichier du répertoire courant rm –r * : efface tous les fichiers et répertoires rm *.txt : efface tous les fichiers finissant par .txt
cp *.c exo1/ : copie tous les fichiers finissant par .c dans le répertoire exo1 mv toto titi exo2/ : déplace les 2 fichiers dans exo2
50
![Page 51: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/51.jpg)
Le caractère spécial * rm –r * efface tous les fichiers et sous-répertoires ! cp fichier1 fichier2! mv fichier1 fichier2!
• si fichier2 existe déjà, fichier2 est écrasé par fichier1 ! Ø le contenu de fichier2 est perdu
!Si système pas configuré pour vous donner un avertissement: • réfléchir avant de valider une commande • ajouter l’option –i : une confirmation est alors demandée
pour l’effacement ou écrasement de fichiers
51
![Page 52: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/52.jpg)
Le caractère spécial *
52
Effacer le répertoire MP3
Copier les fichiers .mp3 du sous répertoire dans le répertoire courant
Effacer les 2 fichiers avec demande de confirmation
![Page 53: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/53.jpg)
La commande man : le manuel
manuel, aide de linux : man [section] [command/fonction]!!• la touche ‘ q ’ pour quitter le manuel • sections : 1 - commande utilisateur 3 - fonctions des bibliothèques (du C)
man mv ou man 1 mv! man 3 printf (fonction du langage c)
53
![Page 54: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/54.jpg)
La commande man : le manuel man mv!
54
![Page 55: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/55.jpg)
Le shell : résumé • ls : list the current directory
• ls dir : list the given directory (absolute/relative path)
• cd dir : change directory
• cp src dest : copy source file to destination file
• cp –r src dest : copy directory to destination directory
• mv src dest : move (or rename) source to dest
• mkdir dir : make new directory
• rm file : remove file
• rm –r dir : remove directory
• man command : manuel of the command 55
![Page 56: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/56.jpg)
Le shell : résumé
• .. : alias for the parent directory
• . : alias for the current directory
• ~ : alias for the user’s home directory
• * : any series of characters (any filename/dir)
• *.txt : any filename ending with .txt
56
![Page 57: 0-TECHNIQUES DE PROGRAMMATION - icube-avr.unistra.fricube-avr.unistra.fr/fr/img_auth.php/e/e2/0_Langage_C_introduction.pdf · Des programmes Manipuler, visualiser et transmettre l’information](https://reader031.fdocuments.fr/reader031/viewer/2022022704/5bd6f3da09d3f2e17c8c4ada/html5/thumbnails/57.jpg)
Le shell : Ergonomie
Historique des lignes de commandes :
• les ‘flèches haut’ et ‘bas’ pour le rappel et l’exécution d’anciennes commandes
Complétion de noms :
• frapper le début du nom du fichier/répertoire
• appuyer 2 fois sur la touche ‘tabulation’ :
• propose les noms de fichiers compatibles avec la frappe ou • complète automatiquement le nom si pas d’ambigüité
Interrompre une commande/programme : touche ‘ctrl+c’
57