57
0-TECHNIQUES DE PROGRAMMATION Alias Programmation en C Loïc Cuvillon [email protected] 1

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

Embed Size (px)

Citation preview

Page 1: 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

0-TECHNIQUES DE PROGRAMMATION

Alias Programmation en C Loïc Cuvillon [email protected]

1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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