Marcel Bosc Introduction système Université Paris-13Département informatiqueIUT de Villetaneuse Cours-5/
Plan du cours ● logiciels ● rappels ● constructions bash partie pratique
logiciels 1ère partie ● présentation ● code source ● licences
programmes et recettes processeur Recette 1. Préchauffer le four à 200°C. 2. Mettre l'oeuf, le sucre et la crème légère dans un récipient. 3. Bien mélanger. 1. Ajouter la farine et la levure. 2. Remélanger. 3. Mettre les pépites dans la préparation. 4. Déposer sur une plaque de cuisson beurrée des petits tas de la préparation. 5. Cuire au four préchauffé à 200°C pendant 5 mn français Programme Ouvrir une fenêtre. 1. Saisir le nom et le mot de passe de l'utilisateur. 2. Vérifier que la saisie est correcte 3. Si elle n'est pas correcte, retourner à l'instruction Afficher un message de bienvenue. 5. Afficher les informations sur le compte de l'utilisateur.... fichier livre langage de programmation très simplifié! (rappel)
programmation processeur Programme Ouvrir une fenêtre. 1. Saisir le nom et le mot de passe de l'utilisateur. 2. Vérifier que la saisie est correcte 3. Si elle n'est pas correcte, retourner à l'instruction Afficher un message de bienvenue. 5. Afficher les informations sur le compte de l'utilisateur.... fichier langage de programmation programmeur éditeur de texte ● C++ ● C ● java ● php ●... plusieurs étapes! exécution code source code source: le fichier texte écrit pour générer un programme
compilé / interprété fichier texte programme.c code machine fichier binaire exécutable compilation script.sh interpréteur fichier texte programme compilé programme interpreté
logiciels ● système d'exploitation ● traitement de texte ● navigateur web ● jeu vidéo ● BIOS ● commande shell (cp, ls, grep) ● votre projet de fin d'études ● script shell exemples logiciel ou application: un ensemble de programmes et fichiers qui permettent d'assurer une tâche ou une fonction
taille d'un logiciel Linux Debian millions Windows XP 40 millions OpenOffice 8 millions mambo CMS projet DUT programme TP 200 logiciel lignes de code source
licences d'un logiciel accès au code source droit de modifier et de redistribuer généralement gratuit pas d'accès au code source généralement payants propriétaire « closed source » logiciel libre « open source » GNU-GPL freeware ≠ libre
environnements graphiques kde gnomekde WM:metacityWM:Kwin kate, konsole, kpdf,... gedit, gnome-terminal, gpdf,... thèmes serveur X thèmes applications environnements de bureau Firefox OpenOffice X.org XFree86
navigateurs web internet explorer v.6, v.7 mozilla firefox v.2, v.3 safari opera 50% 43% 2,6% 2,1% Statistiques: 8/ firefox = iceweasel (certaines distributions) konqueror epiphany ligne de commande: wget pratique! lynx
bureautique write impress calc draw... ODF: Open Document Format kword kpresenter kspread... LaTeX abiword gnumeric... kofficegnome office et de nombreux autres logiciels...
images et graphisme inkscape dessin vectoriel GIMP ImageMagik manipulation d'images en ligne de commande convert identify... manipulation d'images et de nombreux autres logiciels... (semblable à illustrator) (semblable à photoshop)
2ème partie rappels
cp et mv ~/systeme]# cp exo.c essai systeme essaiexo.c ~/systeme]# cp exo.c essai systeme exo.cessai source destination cas 1: la destination n'existe pas cas 2: la destination existe, c'est un répertoire
cp et mv ~/systeme]# cp exo.c doc.pdf essai systeme essai doc.pdf exo.c source multiples, destination répertoire exo.c doc.pdf ~/systeme]# cp exo.c doc.pdf essai cp: la cible `essai' n'est pas un répertoire ~/systeme]# systeme doc.pdf source multiples, destination fichier exo.c???? !
syntaxe des pages man ~/systeme]# man ls NOM ls - Afficher le contenu de répertoires SYNOPSIS ls [OPTION]... [FICHIER]... DESCRIPTION Afficher les informations des FICHIERs (du répertoire courant par défaut).... -a, --all inclure les entrées débutant par «. »... -l utiliser un format d’affichage long... [... ] = argument non obligatoire description de chaque option option: formats court (-) et long (--)
syntaxe des pages man ~/systeme]# man ls NOM ls - Afficher le contenu de répertoires SYNOPSIS ls [OPTION]... [FICHIER]... DESCRIPTION Afficher les informations des FICHIERs (du répertoire courant par défaut).... -a, --all inclure les entrées débutant par «. »... -l utiliser un format d’affichage long... [... ] = argument non obligatoire
constructions bash 3ème partie ● quelques commandes ● substitution de commandes ● analyse d'un script bash ● évaluation arithmétique ● boucles numériques
commandes basename et dirname décomposer les éléments d'un chemin ~/systeme]# dirname /tmp/toto.txt /tmp ~/systeme]# dirname a/b/c/d a/b/c ~/systeme]# basename /tmp/toto.txt toto.txt ~/systeme]# basename /tmp/toto.txt.txt toto ~/systeme]# basename a/b/c/d d surtout utile pour des scripts les fichiers et répertoires n'existent pas nécessairement
la commande: convert manipuler des images ~/images]# convert photo.jpg photo.png ~/images]# convert ima.jpg -geometry 300x200 ima.jpg changer le format du fichier: redimensionner l'image: jpeg : photo : qualité réglable : avec pertes png : dessins : sans pertes gif : dessins : couleur limités : sans pertes : animations
substitution de commandes doc.txt page.html essai.pdf fichier: liste.txt echo `cat liste.txt` exécution de "cat liste.txt" echo doc.txt page.html essai.pdf `commande` : exécute la commande et remplace les "`" par le résultat de la commande `commande` $(commande)
substitution de commandes exécution de la commande find rm./home.png./tp1/chat.png./tp2/chien.png exemple rm `find. -name "*.png" ` systeme tp1 tp2 home.png f2.txtchat.pngchien.png
substitution de commandes home.png bird.jpg tux.png fichier: liste.txt echo `grep png liste.txt | sed 's/png/gif/g' ` exécution de la commande echo home.gif tux.gif exemple
exemple de script # pour toutes les images png de l'arborescence # créer une petite image et renommer l'original for fichier in `find. -name "*.png" `; do rep=`dirname $fichier` nom=`basename $fichier` convert $fichier -geometry 100x100 $rep/petit-$nom mv $fichier $rep/original-$nom done systeme tp1 tp2 a.pngb.png tp3 z.png systeme tp1 petit-a.pngoriginal-a.png tp2 petit-b.pngoriginal-b.png tp3 petit-z.pngoriginal-z.png
for fichier in `find. -name "*.png" `; do rep=`dirname $fichier` nom=`basename $fichier` convert $fichier -geometry 100x100 $rep/petit-$nom mv $fichier $rep/original-$nom done for fichier in tp1/a.png tp2/b.png tp3/z.png ; do fichier=tp1/a.png exemple de script 3 3 rep=`dirname $fichier` rep=`dirname tp1/a.png` rep=tp1
for fichier in `find. -name "*.png" `; do rep=`dirname $fichier` nom=`basename $fichier` convert $fichier -geometry 100x100 $rep/petit-$nom mv $fichier $rep/original-$nom done exemple de script 4 4 nom=`basename $fichier` nom=`basename tp1/a.png` nom=a.png 5 5 convert tp1/a.png -geometry 100x100 tp1/petit-a.png 6 6 mv tp1/a.png tp1/original-a.png $fichier $no m $rep
évaluation arithmétique $((10+15)) 25 $((expression)): effectue les calculs arithmétiques spécifiés dans l'expression ~]# echo resultat: 5+5 resultat: 5+5 ~]# echo resultat: $((5+5)) resultat: 10 ~]#
évaluation arithmétique n=5 mv fichier.txt fichier$(($n+1)).txt mv fichier.txt fichier$((5+1)).txt i=1;i=$(($i+1)) i = 2 mv fichier.txt fichier6.txt
boucles numériques for ((i=0;i<5;i++)); do echo numéro: $i done numéro: 0 numéro: 1 numéro: 2 numéro: 3 numéro: 4
partie pratique
raccourci ctrl-R ~/memo]# gedit essai.txt & ~/memo]# cd.. ~]# (reverse-i-search)`gedi': gedit essai.txt & ~]# gedit essai.txt & ctrl-r ctrl-r : rechercher dans l'historique des commandes déjà tapés
suspension d'un processus ~/essai]# gedit [2]+ Stopped gedit ~/essai]# bg [2]+ gedit & ~/essai]# fg supension ctrl-z bg: background passer en tâche de fond bg: background passer en tâche de fond fg: foreground retour au premier plan (on perd la main) fg: foreground retour au premier plan (on perd la main) ctrl-z : suspend la tâche courante
la commande: du disk usage: place disque occupée ~/systeme]# du 24./tp1 272./tp2/fichiers-tp2 288./tp ~]# récursif le répertoire courant et ses sous-répertoires occupent 316 KO le répertoire courant et ses sous-répertoires occupent 316 KO options: -h: facile à lire -s: juste le total
ce document est distribué librement : ● sous licence GNU FDL : ● les originaux sont disponibles aux formats OpenOffice et powerpoint