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