#ubuntu-tn-classroom 2011-08-25
<sarhan> good
* ChanServ changed the topic of #ubuntu-tn-classroom to: Salon classroom IRC de la LoCo Team approuvÃ©e ubuntu-tn : https://wiki.ubuntu.com/TunisianTeam | |  Historique du Canal : http://irclogs.ubuntu.com/  | |*** Prochain cours le jeudi 25/08/2011 Ã  23h00 (GMT+1) ***|| merci de rejoindre #ubuntu-tn-classroom-chat pour poser vos questions et de telecharger la presentation http://bit.ly/rnNYqQ
<sarhan> test test
<sarhan> m-5 avant le classroom
<sarhan> bonsoir tout le monde !
<sarhan> avant de commencer le classroom je vous invite Ã  venir sur #ubuntu-tn-classroom-chat pour discuter et poser vos questions
<sarhan> ping geekntuxuser 
<geekntuxuser> Salut et bienvenue Ã  vous tous =)
<geekntuxuser> Je demande Ã  sarhan d'expliquer comment Ã§a va se passer le truc de l'organisation
<geekntuxuser> comment poser des questions et tout
<geekntuxuser> go sarhan 
<sarhan> bon comme je l'ai
<sarhan> pour discuter ou poser vos questions il faut aller sur #ubuntu-tn-classroom-chat
<sarhan> je m'occupe de retransmettre les questions ici
<sarhan> geekntuxuser, go !
<geekntuxuser> D'accord =) 
<geekntuxuser> Merci sarhan 
<geekntuxuser> Bon, avant de commencer, je veux dire que l'idÃ©e de proposer un classroom m'est venu aprÃ¨s avoir assister aux 2derniers
<geekntuxuser> et ils Ã©taient un succÃ©s
<geekntuxuser> et j'espÃ¨re que si quelqu'un de vous se voit en position d'aider et de contribuer qu'il le fasse sans hÃ©siter
<geekntuxuser> J'ai choisi de parler du terminal 
<geekntuxuser> et des commandes Linu
<geekntuxuser> x
<geekntuxuser> parce que, comme la rÃ©putation en parle, ils sont l'ennemi des nouveaux sur Ubuntu (GNU/Linux en gÃ©nÃ©ral)
<geekntuxuser> Donc, avant de commencer
<geekntuxuser> je demande
<geekntuxuser> Ã  tous ceux qui sont sur Windows
<geekntuxuser> de tÃ©lÃ©charger le Logiciel Putty
<geekntuxuser> http://www.geekntuxuser.com/ubuntu/classroom/putty.exe
<geekntuxuser> de l'ouvrir, et de renseigner les informations suivantes :
<geekntuxuser> IP : 41.225.22.31
<geekntuxuser> Nom du compte : ubuntu
<geekntuxuser> et quand on vous demande votre mot de passe, c'est : ubuntu aussi =)
<geekntuxuser> pour que tout le monde puisse suivre avec nous
<geekntuxuser> C'est bon jusqu'Ã  maintenant ?
<sarhan> tu peux y aller pas de questions (ils demandent si ton exe est infectÃ© :P )
<geekntuxuser> Lool, sÃ»rement pas :p (:ange:)
<geekntuxuser> non sÃ©rieux, ne vous inquiÃ©tez pas =)
<geekntuxuser> on passe au premier point de notre formation aujourd'hui,
<geekntuxuser> enfaite, on entend souvent : ouvre la console / ouvre le terminal ...
<geekntuxuser> avec le temps Ã§a a crÃ©e un genre d'abus de langage 
<geekntuxuser> !
<geekntuxuser> La console, c'est l'Ã©cran noir (le plus connu, mais on peut intervenir sur les couleurs) avec que du texte dedans
<geekntuxuser> (comme indiquÃ© sur la prÃ©sentation)
<geekntuxuser> Le terminal par contre, est un programme qui fait une Ã©mulation (ou simulation) d'un console
<geekntuxuser> sur l'environnement graphique
<geekntuxuser> d'ailleurs, pour entrer en mode console (si vous voulez essayer :p )
 * sarhan rappelle que la prÃ©sentation est tÃ©lÃ©chargable ici  http://bit.ly/pYg6dY 
<geekntuxuser> tapez ctrl + alt + Fx(x allant de 1 Ã  6)
<geekntuxuser> et pour revenir en mode graphique, vous tapez ctrl + alt + f7
<geekntuxuser> p.s : dans certain cas, on trouve jusqu'Ã  7 consoles noirs + 1 console graphique, donc pour revenir Ã  notre environnement graphique on doit taper ctrl + alt + f8
<geekntuxuser> c'est bon jusqu'Ã  maintenant ? =)
<sarhan> oui tu peux continuer !
<geekntuxuser> Bien =)
<geekntuxuser> Donc, nous on s'intÃ©resse plus au terminal qu'Ã  la console ! Pourquoi ?
<geekntuxuser> Tout simplement parce que c'est plus beau et plus user friendly (regarder mon terminal sur la prÃ©sentation, il est tellement beau :p :p )
<geekntuxuser> regardez*
<geekntuxuser> C'est bon ? =)
<sarhan> [QUESTION] pour les interfacs graphiques ce peut y aller jusk a F12 max, si on veut avoir plus on fait comment?
<geekntuxuser> RÃ©sumons : La console => l'Ã©cran noir avec que du texte sans rien de graphique // Le terminal => c'est le programme qui simule une console mais en mode graphique
<sarhan> [QUESTION]Est-ce que le terminal linux est semblable au cmd.exe sous windows?
<geekntuxuser> J'ai pas une rÃ©ponse exacte pour cette question, mais il faut configurer le fichier qui s'occupe de la gestion des ttyS 
<geekntuxuser> pour rÃ©gler le nombre de consoles qu'on peut avoir, toutefois, parler de limites n'est pas appropriÃ©, car il se peut que plus de 100 personnes qui se connectent sur un mÃªme utilisateur utilisant des consoles
<geekntuxuser> Pour la deuxiÃ¨me question, Oui, le terminal Linux est semblable au cmd.exe (l'invite de commande) sous windows, Ã§a sert exactement Ã  lancer/Ã©crire/exÃ©cuter des commandes
<geekntuxuser> Je rectifie une phrase : qui se connectent sur un mÃªme PC
<geekntuxuser> Des questions ? =) (essayer de poser des questions visÃ©es , mÃªme les avancÃ©s peuvent participer Ã  enrichir le classroom )
<geekntuxuser> essayez*
<geekntuxuser> Donc ? :)
<sarhan> pas de questions tu peux continuer , je vais mettre les questions Ã  fur et Ã  mesure!
<geekntuxuser> Bien
<geekntuxuser> On passe maintenant aux choses plus sÃ©rieuses ! ^^ Ouvrez tous vos terminaux (et pour les windowsiens qu'ils se connectent avec Putty) sarhan fais moi signe quand vous Ãªtes prÃªts =)
<sarhan> tu peux y aller ils ont tous ouvert leur terminal ;)
<geekntuxuser> Bien
<geekntuxuser> on va faire quelques dÃ©monstrations du "Pourquoi prÃ©fÃ©rÃ© le terminal parfois !"
<geekntuxuser> D'abord, le terminal c'est plus rapide ! vraiment plus rapide cÃ´tÃ© temps !
<geekntuxuser> Comment ? =>
<geekntuxuser> Tout d'abord, crÃ©ons un dossier oÃ¹ on va faire nos tests
<geekntuxuser> tapez
<geekntuxuser> cd
<geekntuxuser> mkdir -v classroom-ubuntu
<geekntuxuser> Vous devez avoir quelque chose comme Ã§a : mkdir: crÃ©ation du rÃ©pertoire Â«classroom-ubuntuÂ»
 * geekntuxuser rappelle (quelque chose qu'il a oubliÃ© :p ) qu'il travaille sur le Slide 3
<geekntuxuser> maintenant on entre dans ce dossier
<geekntuxuser> cd classroom-ubuntu
<geekntuxuser> Donc, je rappelle ! on va faire une dÃ©monstration de la rapiditÃ© que nous offre la console
<geekntuxuser> plutÃ´t TERMINAL (j'ai dis qu'on fait souvent l'erreur :p )
<geekntuxuser> J'ai besoin de crÃ©er ces dossiers
<geekntuxuser> dos1 ; dos2 ; dos3 ; dos4 ; dos-classroom
<geekntuxuser> Imaginez le temps qu'il faut en le faisant en graphique (vous pouvez essayer :p )
<geekntuxuser> En terminal, cela donne tout simplement :
<geekntuxuser> mkdir dos{1,2,3,4,-classroom}
<geekntuxuser> C'est bon jusqu'Ã  maintenant ? Vous suivez ? 
<geekntuxuser> on passe sarhan ? tout le monde suit jusqu'Ã  maintenant ? vous avez rÃ©ussi Ã  crÃ©er ces dossiers ?
<sarhan> oui tu peux continuer ! (tu peux rappeler Ã  quoi sert le pparamÃ¨tre-v pour ceux ceux qui ne connaissent pas?)
<sarhan> [QUESTION] qu'est ce qu'une commande, option et parametre?
<geekntuxuser> Les paramÃ¨tres et une explication approfondie des commandes sera pour plus tard (vÃ©rifiez les slides), je viens juste de dÃ©montrer ;)
<geekntuxuser> MÃªme rÃ©ponse pour la question ^^
<geekntuxuser> C'est bon alors ?
<sarhan> oui continue ;)
<geekntuxuser> Bien ! vous voyez donc, qu'avec le terminal , on peut vraiment faire rapidement une tÃ¢che, qui, en graphique demande plusieurs clics
<geekntuxuser> Autre chose que le terminal nous propose, c'est qu'elle utilise moins de ressources 
<geekntuxuser> utiliser un programme en command-line nous permet de conserver un peu de ressources (CPU, RAM et graphique notamment )
<geekntuxuser> Autre chose, c'est que avec le terminal, c'est plus facile d'avoir de l'aide extÃ©rieur, 
<geekntuxuser> et plus exactement la maintenance Ã  distance
<geekntuxuser> Et je me permet de citer un autre point (parmi les points qui finissent pas ^^ ) aussi, c'est le fait de se sentir un peu GEEK :p et PRO :p
<geekntuxuser> faire tout en clavier, Ã§a fait du bien aprÃ¨s tout :p
<geekntuxuser> Et pour cloturer cette partie, je dis qu'utiliser le terminal OU le graphique c'est toujours une question de prÃ©fÃ©rence ! =)
<geekntuxuser> C'est bon jusqu'Ã  maintenant ? des questions ?
<sarhan> geekntuxuser, aucune question juste une remarque de Neo31 que je retransmet "<Neo31> explique comment creer un repertoire personnel et faire un change directory pour mettre son travail personel dedans"
<geekntuxuser> D'accord =)
<geekntuxuser> Pour ceux qui sont connectÃ©s via Putty
<geekntuxuser> ils ont la fenÃªtre oÃ¹ ils vont taper du code
<geekntuxuser> Qu'ils tapent
<geekntuxuser> cd
<geekntuxuser> mkdir votre_nom
<geekntuxuser> et changez votre nom par le votre =)
<geekntuxuser> Il suffit de faire Ã§a =)
<geekntuxuser> une fois le rÃ©p crÃ©e, on tape
<geekntuxuser> cd votre_nom
<geekntuxuser> et changez votre nom par le votre =)
<geekntuxuser> Allez, je passe =)
 * geekntuxuser passe au Slide 4
<sarhan> [QUESTION] comment on peut etre sur que le repertoire a ete creer et voir la liste des autres repertoires?
<geekntuxuser> dans 5min :p ! Apprenant avant Ã  connaÃ®tre notre terminal !
<geekntuxuser> Sur le mien, c'est Ã©crit : ramy@ramy-laptop:~$
<geekntuxuser> et bien, cette ligne est tellement riche !
<geekntuxuser> commenÃ§ant par l'analyser
<geekntuxuser> ramy => c'est votre nom de compte ! Moi, pour me connecter je tape Ramy (puis mon mot de passe), ceux qui sont sur Putty auront ubuntu comme nom de compte
<geekntuxuser> @ => Ã§a se prononce AT (anglais) cela veut dire Chez 
<geekntuxuser> ramy-laptop => comme vous pouvez le deviner, c'est le nom de votre ordinateur comme il apparaÃ®t sur le rÃ©seau ! =)
<geekntuxuser> puis les deux points pour sÃ©parer les parties
<geekntuxuser> ~ => c'est en effet, votre emplacement (le dossier oÃ¹ vous Ãªtes), par dÃ©faut ~ pointe vers /home/votredossierpersonnel moi, c'est ramy, donc le ~ signifie /home/ramy
<geekntuxuser> pour ceux qui travaillent sur putty la ~ (tilde) pointe vers(ou remplace) /home/ubuntu 
<geekntuxuser> puis
<geekntuxuser> $ => ceci indique vos droits d'accÃ¨s ! Il y a 2 types d'utilisateurs dans Ubuntu, un user normal et un super user (Le Dieu de son PC :p )
<geekntuxuser> quand vous Ãªtes un user vous aurez $
<geekntuxuser> quand vous Ãªtes un Super User vous aurez #
<geekntuxuser> (on verra aprÃ¨s comment passer au mode super user )
<geekntuxuser> J'enchaÃ®ne donc, ce systÃ¨me d'utilisateur est en soit une protection !
<sarhan> [Question] Quelle est la diffÃ©rence entre les deux types d'utilisateurs?
<geekntuxuser> Car, en informatique, tout logiciel a les droits de l'utilisateur qui va le lancer
<geekntuxuser> User => il a tout les droits sur son rÃ©pertoire personnelle, en dehors de Ã§a, il doit appeler le Super User
<geekntuxuser> qui a tout Ã  fait tout les droits sur la machine
<geekntuxuser> Les droits d'accÃ¨s sont : Read / Write / Execute
<geekntuxuser> gÃ©nÃ©ralement, on peut lire tout ce qu'on veut sur le PC, mais Ã©crire et exÃ©cuter non ^^
<geekntuxuser> J'ai rÃ©pondu Ã  la question ? =)
<geekntuxuser> je continue donc, en informatique, tout logiciel a les droits de l'utilisateur qui va le lancer
<geekntuxuser> Si un virus pÃ©nÃ¨tre, et qu'il se trouve avec les droits de l'admin
<geekntuxuser> et bein le PC est foutu ! Par contre, en simple utilisateur, il ne pourra surement pas endommager les fichiers systÃ¨mes (puisqu'il a pas les droits de le faire ;) )
<geekntuxuser> Et c'est en effet une bonne mÃ©thode de protÃ©ger les utilisateurs !
<geekntuxuser> C'est bon jusqu'Ã  maintenant ?
<geekntuxuser> des questions ?
<sarhan> tu peux passer aucune question
<sarhan> ah si [Question] Administrator == root sur linux ?
<geekntuxuser> Bien ! Je rÃ©cap vite fait donc, maintenant, on peut se repÃ©rer en analysant la ligne qu'on a dans nos terminaux !
<geekntuxuser> Oui =)
 * geekntuxuser passe Ã  la slide suivante 5
<geekntuxuser> Voyons maintenant le truc le plus attendu ! Les commandes ... comment Ã§a marche ? ^^
<geekntuxuser> Et bein, figurez vous qu'on a dÃ©jÃ  utilisÃ© 2-3 commandes
<geekntuxuser> mkdir ET cd (Ã§a fait 2 x) )
<geekntuxuser> Donc
<geekntuxuser> pour lancer une commande, je dois taper sur mon terminal la forme suivante :
<geekntuxuser> commande paramÃ¨tres
<geekntuxuser> La commande c'est un programme ! (firefox / gedit / gnome-terminal / ... ) vous pouvez essayer en tapant le nom du programme
<geekntuxuser> les paramÃ¨tres ce sont les outils/ressources que ce programme aura besoin pour travailler
<geekntuxuser> j'essaye d'expliquer par logique : pour copier un fichier, je dois fournir la source et la destination
<geekntuxuser> et ainsi de suite =)
<geekntuxuser> Sur le slide, j'ai oubliÃ© de prÃ©ciser qu'on peut utiliser des options sur les commandes, pour pouvoir modifier un peu leur faÃ§on de fonctionner
<geekntuxuser> personnaliser le fonctionnement en quelque sorte ^^
<geekntuxuser> Exemple : mkdir -v test
<geekntuxuser> mkdir => ma commande : crÃ©er un dossier : Make Directory
<geekntuxuser> -v => une option : pour dire Ã  ma commande d'afficher ce que t'as fait
<geekntuxuser> test => le paramÃ¨tre que cette commande a besoin (le nom du dossier Ã  crÃ©er )
<geekntuxuser> Concernant les options, 
<geekntuxuser> il y en a 2 types, les options "longues" et les options "courtes"
<sarhan> [Question ] Comment connaÃ®tre toutes les options des commandes ?
<geekntuxuser> Exemple : mkdir -v test
<geekntuxuser> Exemple 2 : mkdir --verbose test
<geekntuxuser> Ces 2 commandes sont les mÃªmes ! Pour Ã©crire une option courte (1 carac) je dois la prÃ©cÃ©der d'un "-"
<geekntuxuser> pour les longues, on doit ajouter "--"
<geekntuxuser> En faite, chaque commande a son mode d'emploi
<geekntuxuser> Un genre de documentation ^^ on verra comment y accÃ©der
<geekntuxuser> C'est clair jusqu'Ã  maintenant ? =)
<geekntuxuser> Vous suivez ^^' ?
<sarhan> non ! 
<sarhan> oui tout le monde te suit on peut continuer :)
<geekntuxuser> Bien =)
<geekntuxuser> Une petite astuce trÃ¨s utile avant de continuer, c'est la Tabulation
<geekntuxuser> Le bouton TAB
<geekntuxuser> Il joue le rÃ´le d'auto complÃ©tion
<geekntuxuser> Par exemple il suffit de taper une partie du nom d'un dossier, et il nous propose la suite =) (comme le principe de l'IRC )
<sarhan> [Question] le bouton tab marche sur toutes les distributions ou seulement sur ubuntu?
<geekntuxuser> Enfaite, Ã§a dÃ©pend du terminal s'il gÃ¨re l'auto complÃ©tion ou non , mais selon mes connaissances, il existe partout cette option ^^
<geekntuxuser> (Ã  voir ^^ )
<geekntuxuser> Donc, on va voir la liste des commandes les plus utiles
<geekntuxuser> testez avec moi en mÃªme temps pour mieux voir la chose
<geekntuxuser> CommenÃ§ons 
 * geekntuxuser rapplle qu'on est toujours sur le slide 5 =)
<geekntuxuser> 1 - pwd => place where directory
<geekntuxuser> Cette commande indique notre endroit en chemin absolu =)
<geekntuxuser> ramy@ramy-laptop:~$ pwd
<geekntuxuser> /home/ramy
<geekntuxuser> On passe ? (allez voyons ... c'est aussi simple Ã§a :p )
<geekntuxuser> Bon, continuons ^^
<geekntuxuser> 2 - ls => lister tous les fichiers et dossiers qui existent sous le rÃ©pertoire courant (si on tape ls tout court)
<geekntuxuser> P.S : N'essayez surtout pas sudo rm -rf /* 
<geekntuxuser> ls acceptent des options telles que : -l -a -h -R
<geekntuxuser> -l => pour afficher sous forme de tableau avec plus d'informations
<geekntuxuser> -a => pour dire Ã  ls d'afficher vraiment TOUS (mÃªme les fichiers cachÃ©s)
<geekntuxuser> -h => pour afficher la taille sous une forme "humaine"
<geekntuxuser> -R => pour la rÃ©cursivitÃ© ^^
 * Neo31 ATTENTION : c'est vraiment une commande tres dangeureuse qui risque de vous faire perdre tout ce que vous avez sur le PC
<geekntuxuser> Neo31, on passe ? Clair jusqu'Ã  maintenant  ?
<Neo31> accelere geekntuxuser 
<Neo31> c'est tres ralenti la
<geekntuxuser> Dac 
<geekntuxuser> 3 - cd => Change Directory => pour changer de dossier
<geekntuxuser> on doit lui fournir le nom de dossier oÃ¹ on veut aller
<geekntuxuser> (et si vous reliez le tout, on utilise ls pour voir les dossiers qu'on a sous le rÃ©pertoire courant =) )
<geekntuxuser> 4 - mkdir => make directory => crÃ©er un dossier 
<geekntuxuser> on doit fournir le nom du dossier
<geekntuxuser> exemple : mkdir dossier
<geekntuxuser> 5 - rmdir => remove directory => effacer un rÃ©pertoire 
<geekntuxuser> on doit lui fournir le rÃ©pertoire Ã  effacer (il doit Ãªtre VIDE )
<geekntuxuser> exemple : rmdir dossier
<geekntuxuser> 6 - rm => remove => effacer un fichier 
<geekntuxuser> on doit fournir le nom du fichier Ã  effacer
<geekntuxuser> exemple : rm fichier
<geekntuxuser> 7 - cp => copy => copier un fichier
<geekntuxuser> on doit fournir la source puis la destination
<geekntuxuser> Exemple : cp /home/ramy/fichierT /home/ramy/dossier/
<geekntuxuser> P.S : on peut utiliser des chemins relatifs
<geekntuxuser> 8 - mv => move => dÃ©placer => mÃªme principe que cp fichier source et fichier destination 
<geekntuxuser> par contre, cette commande permet de modifier le nom d'un fichier
<geekntuxuser> Exemple : mv fichierT fichierT1
<geekntuxuser> (puisque c'est le mÃªme endroit, donc logiquement, elle va pas le dÃ©placer mais le renommer)
<geekntuxuser> 9 - top => elle affiche les processus en cours (le mÃªme truc que le Ctrl + Alt+Supp sur windows)
<geekntuxuser> pour quitter la commande, on appuie sur Q
<geekntuxuser> 10 - locate => trouver => elle nous permet de trouver un fichier en prÃ©cisant son nom
<geekntuxuser> exemple : locate fichierT
<geekntuxuser> toutefois, cette commande se base sur un fichier de base de donnÃ©es pour faire vite
<geekntuxuser> c'est pourquoi, les fichiers crÃ©es nouvellement n'apparaissent pas
<geekntuxuser> il faut mettre Ã  jour ce fichier
<geekntuxuser> avec la commande
<geekntuxuser> updatedb
<geekntuxuser> 11 - Je termine cette partie par une commande qui vous permet de voir combien de temps vous Ãªtes connectÃ© sur votre PC
<geekntuxuser> => uptime
<geekntuxuser> ramy@ramy-laptop:~$ uptime
<geekntuxuser>  00:20:40 up  4:07,  9 users,  load average: 0.00, 0.01, 0.05
<geekntuxuser> Moi c'est 4h :p
<geekntuxuser> Bon, j'ai fait vite  lÃ , pas trop d'explication ! Mais ces commandes sont les plus basiques dont on aura souvent besoin 
<geekntuxuser> Vous devez rÃ©essayer d'executer ces commandes Ã  tÃªte reposÃ©e pour mieux comprendre le fonctionnement 
<geekntuxuser> Des questions Neo31  ?
<Neo31> on continue geekntuxuser 
<geekntuxuser> D'accord !
<Neo31> essaye de faire qq chsoe de plus avancee geekntuxuser 
<geekntuxuser> Maintenant, vous devez vraiment suivre et faire attention
<geekntuxuser> oui Neo31 dans peu de temps ^^
<Neo31> oui
<geekntuxuser> surtout pour les nouveaux dans ubuntu
<geekntuxuser> en faite, les utilisateurs d'ubuntu n'apprennent pas tous  
<geekntuxuser> y a pas un disque dur 10000 terra (ou plus) dans leurs tÃªtes 
<geekntuxuser> En faite, il y a la documentation
<geekntuxuser> Chaque commande dans linux est suivi d'une documentation
<geekntuxuser> pour savoir comment elle fonctionne, et les paramÃ¨tres qu'elle aura besoin
<geekntuxuser> Pour avoir le manuel d'une commande
<geekntuxuser> on utilise la 
<geekntuxuser> commande
<geekntuxuser> man 
<geekntuxuser> pour quitter il faut cliquer sur Q
<geekntuxuser> voyons
<geekntuxuser> le manuel de ls
<geekntuxuser> man ls
<geekntuxuser> NAME
<geekntuxuser>        ls - list directory contents
<geekntuxuser> SYNOPSIS
<geekntuxuser>        ls [OPTION]... [FILE]...
<geekntuxuser> C'est cette partie qui nous intÃ©resse le plus
<geekntuxuser> La Synopsis => comment fonctionne cette commande
<geekntuxuser> Donc
<geekntuxuser> ls puis on fournie les OPTIONs
<geekntuxuser> puis le dossier qu'on veut lister
<geekntuxuser> MAIS
<geekntuxuser> pourquoi c'est entre [ ]
<geekntuxuser> ?
<geekntuxuser> La rÃ©ponse est simple
<geekntuxuser> dans les manuels, on utilise un genre de code pour comprendre le fonctionnement
<geekntuxuser> Quand le mot est entre [ ]
<geekntuxuser> c'est qu'il est pas obligatoire , la commande peut fonctionner sans lui
<geekntuxuser> Quand le mot est soulignÃ©
<geekntuxuser> C'est qu'on doit le changer selon le cas
<geekntuxuser> cela veut dire qu'on Ã©crit pas : ls option file
<geekntuxuser> Ã§a veut rien dire Ã§a
<geekntuxuser> On doit adapter OPTION et FILE selon notre cas
<geekntuxuser> par exemple
<geekntuxuser> ls -l dossier
<geekntuxuser> ici on a : ls => c'est la commande, -l => OPTION , dossier => FILE
<geekntuxuser> vous pouvez maintenant s'amuser Ã  lire les mans des commandes
<geekntuxuser> man mkdir
<geekntuxuser> man cp
<geekntuxuser> man mv
<geekntuxuser> man apt-get
<geekntuxuser> man pwd
<geekntuxuser> man cat
<geekntuxuser> Et la liste continue !
<geekntuxuser> La liste des options qu'une commande peut avoir existe en bas (dÃ©filer avec les flÃ¨ches par exemple)
<geekntuxuser> Je veux expliquer le truc du nom du chap : RTFM => Read The Fu*** Manuel
<geekntuxuser> c'est une expression courante qu'on utilise souvent quand quelqu'un demande quelque chose sans lire la doc
<geekntuxuser> :p
<geekntuxuser> Mais nous, on est gentil :pp
<geekntuxuser> On passe maintenant au Slide
<geekntuxuser> 7
<geekntuxuser> => Script Shell
<geekntuxuser> D'abord, c'est quoi un script ?
<geekntuxuser> Script => c'est un langage interprÃ©tÃ© ! Cela veut dire qu'on a pas Ã  le compiler
<geekntuxuser> Ex : php, Javascript, action script, .... ^^
<geekntuxuser> Le Script Shell
<geekntuxuser> est un script qui utilise les commandes du Shell qu'on vient de voir (les autres aussi qu'on a pas vu :p )
<geekntuxuser> pour accomplir ou automatiser une tÃ¢che
<geekntuxuser> Bon, je vois que vous voulez coder ! Donc on code ^^
<geekntuxuser> Pour Ãªtre fair avec tout le monde
<geekntuxuser> on va essayer de crÃ©er un script "normal"
<geekntuxuser> peut Ãªtre utile pour certain
<geekntuxuser> dans lequel on va voir la syntax , les conditions et les variables
<geekntuxuser> et pour les gourmands, on peut voir le reste aprÃ¨s le classroom
<geekntuxuser> Donc, je vais vous faire affronter la chose pour les nouveaux :p
<geekntuxuser> On va utiliser que le terminal
<geekntuxuser> On ouvre un fichier avec un Ã©diteur de texte
<geekntuxuser> Je me place d'abord sous le repertoire test que j'ai crÃ©e
<geekntuxuser> cd nomDuRep
<geekntuxuser> nano script.sh (vous Ãªtes libres de choisir le nom)
<geekntuxuser> Neo31, c'est bon jusqu'Ã  maintenant ? on passe ?
<Neo31> [QUESTION] comment on peut editer un fichier texte avec putty?
<geekntuxuser> On va utiliser un Ã©diteur de texte en command-line
<geekntuxuser> sur terminal
<geekntuxuser> qui s'appelle NANO ^^
<geekntuxuser> donc
<geekntuxuser> on tape nano script.sh (pour crÃ©er un fichier qui s'appelle script.sh et qui est vide pour le moment)
<geekntuxuser> Neo31, c'est bon ?
<Neo31> c bon
<geekntuxuser> bien
<geekntuxuser> la premiÃ¨re ligne qu'on doit taper
<geekntuxuser> c'est de spÃ©cifier le shell qui va interprÃ©tÃ© notre script
<geekntuxuser> il existe plusieurs sh ; zsh; bash ; ...
<geekntuxuser> nous, on va utiliser le bash qui est le plus utilisÃ© pour le moment ^^
<geekntuxuser> (pour vÃ©rifier votre SHELL par dÃ©faut, vous pouvez taper : echo $SHELL (dans le terminal) )
<geekntuxuser> moi c'est : /bin/bash
<geekntuxuser> Bon
<geekntuxuser> revenons Ã  notre script
<Neo31> [ Question ]: quelle est la diffÃ©rence en sh, zsh et bash
<geekntuxuser> bash est le plus moderne jusqu'Ã  maintenant
<geekntuxuser> je vous fais une dÃ©montration
<geekntuxuser> dÃ©monstration de la diffÃ©rence entre sh et bash par exemple
<geekntuxuser> CrÃ©ons vite fait un nouveau fichier texte
<geekntuxuser> et on Ã©crit sur la premiÃ¨re ligne echo -e "Salut \n comment Ã§a va ?"
<geekntuxuser> on sauvegarde
<geekntuxuser> C'est bon ?
<geekntuxuser> (c'est un peu vite fait pour ceux qui utilisent dÃ©jÃ  les Ã©diteurs)
<geekntuxuser> une fois le fichier crÃ©e
<geekntuxuser> on sauvegarde et on quitte l'Ã©diteur
<geekntuxuser> on tape aprÃ¨s : sh script
<geekntuxuser> puis : bash script
<geekntuxuser> et voyons la diffÃ¨rence
<geekntuxuser> bash interprÃªte le -e 
<geekntuxuser> le sh non
<geekntuxuser> On en discutera plus aprÃ¨s
<geekntuxuser> revenons Ã  notre script.sh
<geekntuxuser> la premiÃ¨re ligne sera donc : !#/bin/bash 
<geekntuxuser> pour dire que mon script sera interprÃ©tÃ© par le bash
<geekntuxuser> dÃ©solÃ© ^^'
<geekntuxuser> Donc
<geekntuxuser> On va crÃ©e un script qui nous demande le nom d'un programme
<geekntuxuser> il nous affiche sa version s'il existe
<geekntuxuser> sinon il nous demande de l'installer
<geekntuxuser> bon
<geekntuxuser> c'est bon pour la premiÃ¨re ligne Neo31 ?
<geekntuxuser> on passe ?
<Neo31> oui
<geekntuxuser> La 2Ã¨me ligne sera donc
<geekntuxuser> de demander Ã  l'utilisateur du programme
<geekntuxuser> le nom du logiciel qu'il cherche
<geekntuxuser> on utilise la commande suivante
<geekntuxuser> read -p "Entrez le programme dont vous tester : " a
<geekntuxuser> le a c'est la variable oÃ¹ on va stocker la rÃ©ponse
<geekntuxuser> c'est bon ?
<geekntuxuser> Neo31, 
<Neo31> preske
<geekntuxuser> Des questions ? ^^ Neo31 
<Neo31> vasy geekntuxuser 
<geekntuxuser> bien
<geekntuxuser> maintenant, on va devoir chercher le programme 
<geekntuxuser> pour cela, on va crÃ©er une variable pour stocker la rÃ©ponse pour pouvoir la tester aprÃ¨s
<geekntuxuser> on tape sur la ligne suivante
<geekntuxuser> prog=`whereis $a | cut -s -d ':' -f 2`
<geekntuxuser> cette ligne est un peu "compliquÃ©" elle parait ! J'explique vite fait
<geekntuxuser> whereis nous retourne l'endroit d'un programme, sous forme nom : endroit
<geekntuxuser> si le logi n'existe pas
<geekntuxuser> l'endroit est vide
<geekntuxuser> donc, je vais me servir de Ã§a pour tester mon prog
<geekntuxuser> ma variable prog va contenur le resultat endroit
<geekntuxuser> (j'ai utilisÃ© pour Ã§a la commande cut qui dÃ©coupe notre texte selon un dÃ©limiteur qu'on prÃ©cise
<geekntuxuser> )
<geekntuxuser> P.S : la syntaxe est vraiment dÃ©licate
<geekntuxuser> il faut suivre Ã  l'espace prÃ©s !
<geekntuxuser> j'enchaine maintenant avec la condition
<geekntuxuser> (je vous la passe et j'explique)
<geekntuxuser> La premiÃ¨re partie :
<geekntuxuser> if [ -n "$prog" ]
<geekntuxuser> then
<geekntuxuser>         $a --version
<geekntuxuser>         exit
<geekntuxuser> -n => pour tester s'il n'est pas vide
<geekntuxuser> Donc, Si $prog n'est pas vide ( le logic existe)
<geekntuxuser> donc
<geekntuxuser> on affiche sa version et on exit
<geekntuxuser> La 2Ã¨me partie :
<geekntuxuser> else
<geekntuxuser>         read -p "Ce programme n'existe pas sur votre machine, voulez vous le tÃ©lÃ©charger ? [O/n] " reponse
<geekntuxuser> Sinon, on demande Ã  l'utilisateur s'il veut le tÃ©lÃ©charger ou pas
<Neo31> voila le script alors : http://paste.ubuntu.com/674920/
<geekntuxuser> et on stocke la rÃ©ponse dans une variable "reponse"
<geekntuxuser> C'est bon, vous suivez tous Ã  partir du lien ? Neo31 
<Neo31> http://paste.ubuntu.com/674920/plain/
<geekntuxuser> Donc
<geekntuxuser> on doit recevoir une rÃ©ponse de l'utilisateur
<geekntuxuser> et il faut que Ã§a soit , O => pour Oui et n=> pour Non ^^
<geekntuxuser> Sinon, il est un mÃ©chant :p
<geekntuxuser> on doit tester tout Ã§a
<geekntuxuser> if [ $reponse = "O" ]
<geekntuxuser>         then
<geekntuxuser>                 sudo apt-get install $a
<geekntuxuser> Si la rÃ©ponse est O donc Oui on installe avec apt-get install 
<geekntuxuser> (on doit fournir le mot de passe root, ceux avec putty peuvent pas le faire, mais pas grv :p )
<geekntuxuser> elif [ $reponse = "n" ]
<geekntuxuser>         then
<geekntuxuser>                 echo "Tant pis .. !"
<geekntuxuser>                 exit
<geekntuxuser> S'il tape "n" => pour dire Non alors tant pis pour lui, on quitte :p
<geekntuxuser> else
<geekntuxuser>                 echo "--' Vous aurez dÃ» rÃ©pondre Ã  la question Mr.le malin :p "
<geekntuxuser>                 exit
<geekntuxuser>         fi
<geekntuxuser> Et s'il fait le malin ... :p on l'averti qu'on est au courant ! Car "You're the Boss :p !"
<geekntuxuser> Puis, enfin on ferme notre premiÃ¨re condition if avec le fi en dernier 
<geekntuxuser> Maintenant, notre script est prÃªt !
<geekntuxuser> C'est bon jusqu'Ã  maintenant Neo31  ? =)
#ubuntu-tn-classroom 2011-08-26
<Neo31> ok
<geekntuxuser> Bien
<geekntuxuser> derniÃ¨re Ã©tape
<geekntuxuser> pour ceux qui travaillent avec Nano
<geekntuxuser> ils doivent
<geekntuxuser> enregistrer puis quitter
<geekntuxuser> donc
<geekntuxuser> Ctrl + O => pour sauvegarder
<geekntuxuser> Ctrl + X => pour quitter
<geekntuxuser> (la lettre o et non pas le zÃ©ro ^^' )
<geekntuxuser> un petit ls pour vÃ©rifier si notre script.sh existe
<geekntuxuser> puis, on doit le rendre exÃ©cutable
<geekntuxuser> chmod a+x script.sh
<geekntuxuser> C'est bon jusuq'Ã  maintenant ? Neo31 
<Neo31> euh
<Neo31> geekntuxuser continue a expliquer et on va resoudre les problemes apres
<geekntuxuser> Bien
<geekntuxuser> Avec cette manipulation, on doit avoir notre script prÃªt et fonctionnel ! =)
<geekntuxuser> Bien sur, vous avez tous les outils pour savoir ou vous travaillez (pwd) , lister votre dossier (ls) et changer de dossiers (cd)
<geekntuxuser> donc, Ã§a ne devra pas poser problÃ¨me pour trouver le problÃ¨me au cas oÃ¹ Ã§a n'a pas march
<geekntuxuser> marchÃ©*
<geekntuxuser> Bon, 
<geekntuxuser> je conclue donc
<geekntuxuser> avec l'exÃ©cution de notre script
<geekntuxuser> ./script.sh
<geekntuxuser> et Enjoy ! votre premier Script Shell plus ou moins utile :)
<geekntuxuser> Jusqu'Ã  maintenant, j'annonce la fin de ce classroom, j'espÃ¨re que vous avez pu en profiter
<Neo31> il faut rendre le fichier executable avec la commande
<Neo31> chmod +x script.sh
<Neo31> avant de l'executer
<geekntuxuser> chmod a+x script.sh
<geekntuxuser> =)
<geekntuxuser> Et pour les intÃ©ressÃ©s , on peut programmer une formation plus avancÃ©e du script shell physiquement , vous n'avez qu'Ã  le demander ;)
<geekntuxuser> Sinon, merci et je suis dispo pour rÃ©pondre et rÃ©soudre d'Ã©ventuels problÃ¨mes
<geekntuxuser> A Neo31 de cloturer le classroom =)
<geekntuxuser> >> http://www.geekntuxuser.com/ubuntu/classroom/script.sh
<geekntuxuser> vous avez le script sur le net
<geekntuxuser> pour le tÃ©lÃ©charger et comparer vos rÃ©sultats !
<Neo31> merci beaucoup geekntuxuser pour ce cours d'initiation, j'espere que les membres on apprit les bases d'utilisation d'un terminal
* MaWaLe changed the topic of #ubuntu-tn-classroom to: Salon classroom IRC de la LoCo Team approuvÃ©e ubuntu-tn : https://wiki.ubuntu.com/TunisianTeam | |  Historique du Canal : http://irclogs.ubuntu.com/  | |*** Prochain cours le --/--/---- Ã  --h-- (GMT+1) ***|| merci de rejoindre #ubuntu-tn-classroom-chat pour poser vos questions
