supervie

supervie

Pourquoi utiliser la ligne de commande Linux ?

Eh oui, pourquoi s'embêter à apprendre à interagir avec son ordi avec une espèce de langage compliqué, qu'il faudra apprendre avant de pouvoir faire p ex la moindre copie d'un fichier depuis un répertoire vers un autre, me direz vous ?

 

Beaucoup de réponses à ça, je donne ici quelques idées qui me viennent de tout ce que vous pourrez faire si vous maitrisez la ligne de commande Linux.

 

De plus , si votre ordi est relié à l'Internet - avec un IP "fixe" (c'est à dire que en gros c'est une machine importante du réseau internet maintenant), vous pourriez faire ce genre de choses (et il ne viendrait jamais à l'idée d'un "admin système" normalement constitué , c'est à dire de quelqu'un qui pex gagne sa vie avec ça, d'utiliser des "menus", interfaces graphiques, boutons, icones etc..) . Cela ne serait pas un gage de sérieux ni de performance.

 

Donc avec cet ordi vous pourriez faire par exemple:

 

  • installer votre serveur web "apache", et héberger votre site internet, ainsi que d'autres sites (amis, associations, etc..)
  • installer votre propre serveur de courrier "mail"
  • installer des logiciels scientifiques
  • copier ou renommer des centaines de fichiers avec quelques instructions simples
  • planifier des heures minutes secondes pour lancer des programmes
  • programmer dans des dizaines de langages différents (tout ce que je viens de citer et le reste , au fait, est totalement gratuit)
  • rechercher des informations sur le réseau internet : des infos techniques sur les serveurs de domaines
  • installer plusieurs cartes réseau, et les configurer
  • sauvegarder vos fichiers importants de manière automatique
  • surveiller votre machine pour qu'elle vous envoie un mail si tel ou tel programme "plante"
  • récupérer des fichiers excel "csv" (aux champs séparés par des ";" )
  • faire faire le café automatiquement
  • traiter des photos en "batch"
  • convertir des choses à l'intérieur de fichiers texte (par exemple une liste de clients) pour trier, changer le format de chaque ligne
  • et le faire avec des millions de ligne
  • réaliser des "scripts" (une suite de commandes système) et les lancer a une heure donnée
  • faire des calculs avec des très grands nombres, ou du calcul matriciel
  • réaliser des animations graphiques puissantes
  • etc etc etc

 

 

En fait la puissance de la ligne de commande Unix  / Linux vient du fait qu'elle s'appuie sur différents petits outils.

 

Le shell: c'est lui qui affiche le "prompteur" (^$ ou # ) ou "invite de commande", et qui traite ce que vous tapez. Si c'est une commande, tout va bien, si c'est n'importe quoi comme p ex "lqkjdlqjlskdj" alors il se contentera de vous retourner la mention "not found" (il n'a pas trouvé à quoi correspond votre charabia)

 

Mais avec le shell, on peut utiliser p ex "sed", un "éditeur" de flux. En gros, vous envoyez la sortie d'un fichier vers "sed" grâce au "shell", et lui se chargera ensuite de modifier dans le texte qu'il reçoit, par exemple ... eh bien disons par exemple le mot  /Janvier/ peut être transformé en /machineasous/ ou n'importe quoi d'autre. Et, bien sur, ça marchera avec 100 000 lignes depuis le fichier "source" à traiter.

 

Ensuite de ça, /blah blah/ eh bien , là c'est un mot. Mais il y'a moyen d'utiliser p ex des "jokers", donc nous introduisons ici le concept d'expressions régulières, ou REGEXP.

 

A coté de ça, il y'a le programme A W K qui lui, permet de pallier a certaines difficultés, pour trier ou manipuler des caractères via le shell.

 

Donc sans entrer dans les détails:

 

LIGNE DE COMMANDE : elle permet d'utiliser SHELL + SED + AWK + n'importe quelle autre commande Linux, une seule ligne à la fois, ou bien en créant très simplement un fichier de commandes (un "script shell" ). On lance ensuite le script, qui fait le traitement demandé.

 

Je mettrai des exemples ici pour que ça soit plus compréhensible.

 

Annexe 1 : pourquoi vouloir créer son propre serveur web ?

 

Ne pas confondre "créer son site internet", ici, et créer son propre serveur web.

 

Si vous installez le logiciel apache sur votre machine Linux reliée à l'internet, alors vous allez pouvoir y placer vos contenus "directement", par exemple en les recopiant dans un dossier de votre serveur Linux.

D'autre part, vous pourrez voir qui se connecte à votre serveur, et surtout vous disposerez d'une architecture "ouverte". C'est à dire que, depuis la ligne de commande, vous verrez vos programmes apache s'executer et dans certains fichiers de traçage, vous verrez qui à consulté quelle page de votre site.

 

Mais ce n'est pas tout, disons pour faire simple que toute la puissance de Linux et de tous les langages de programmation qu'il supporte s'offre alors à vous, pour ainsi dire tout est relié avec tout.

 

Ainsi une base de donnée (catalogue Stellaire) pourrait être installée également sur votre serveur Linux, et vous pourriez écrire des parties de programmes qui viennent y piocher des informations et ensuite les envoyer aux utilisateurs web.

Mais rien n'empèche au passage d'insérer des codes de calcul sur les données de la base, avant de les retourner. C'est flexible, parce que vous contrôlez tout de A à Z.

 

Pour ainsi dire, votre "granularité" de contrôle, c'est "le simple caractère" dans un fichier. Voire un simple "bit" de ce "caractère" (qui en comprendra en général, huits).

 

Imaginez: l'internaute fait une demande de voir un contenu à votre site, vous le voyez arriver, en fonction de la demande vous traitez de la manière programmatique dont vous le souhaitez la réponse à y apporter.

 

Votre logiciel apache retourne le résultat, après avoir dialogué avec tel ou tel programme que vous avez écrit, pour répondre au questionnement de l'internaute.

 

Puissant, et d'autre part vous contrôlez tout, et évidemment internet et surtout le WWW c'est surtout cela, et rien d'autre. Evidemment il y'a la transmission des données d'un ordi a un autre, les routeurs, les DNS, c'est un peu plus compliqué, mais c'est de la cuisine réseau et rien d'autre.

 

A retenir: mon butineur html (Iexplore, Chrome,Firefox, Opera, ....) <============ internet réseau IP + tcp dedans ===> Serveur Linux / Apache + programmation programmatique + Base de donnée.

 

Quoi d'autre constitue le word wouadle webbe ? Quoi d'autre ?? Qu'en sais-je...

 

Et ou sont les petits hommes verts ? Hélas, ils ne sont pas verts.

 

Sur ce bonne nuit.

 

 

 Annexe 2: quel rapport entre le réseau internet et les "réseaux sociaux" ?

 

Réponses: techniquement, aucun rapport. C'est simplement une "expression", ambigue à souhait; ainsi, un "réseau social" c'est avant tout une application "web", qui à pour vocation à permettre a des internautes d'échanger des idées, contenus, à se regrouper par affinités ou autre..

 

C'est donc avant tout un "réseau" du point de vue d'une société donnée, la société ou groupe social de gens qui sont intéressés à adopter ce genre de pratiques d'échanger des idées, contenus, etc, en utilisant un outil logiciel mis à leur disposition.

 

"Techniquement", il n'y à aucune différence - mis  à part le "logiciel pour le web" qui est bien sur derrière - entre une application web qui vous permet de commander une paire de chaussures de sport via internet , ou bien de réserver un billet de train, ou de consulter votre compte bancaire, d'une part, et les "applications web" de réseau social telles que Facebook, twitter,  pour ne citer que les plus connues.

 

 

Mais et évidemment, puisqu'il y'à l'emploi du mot "réseau", cela peut préter à confusion. En fait de réseau, depuis votre "butineur" (il peut le faire, ouiii ) en fait votre navigateur web, comme c'est l'usage, vous vous connectez donc aux serveurs de Facebook ou de Twitter, via le réseau - technique, physique, électrique, logique, incontournable celui là, et .. fourre tout - internet .

 

Cela à pour effet de vous envoyer un contenu web dans votre navigateur: en fait une "application web" qui vous permet donc ensuite de découvrir des gens par affinités, etc.. Enfin cette partie je pense que vous connaissez (rires).

 

Pas de "réseau électrique social spécial particulier", donc, pour des applications  qui utilisent des architectures logicielles classiques, ainsi que bien sur des programmes bien spécifiques, et évidemment des serveurs de base de données qui vont permettre de stocker les informations, photos, adresses, vidéos, liens, affinités, etc de chaque personne connectée.

 

Et, comme cela finit par faire un volume de donnée très conséquent, on à fini par appeler ça le "Big Data".

 

Et aussi parce que les systèmes de base de données relationnelles (telles que Oracle, MySQL encore que, Sybase, DB2 etc) ne se révélaient pas, à l'utilisation, suffisament rapides pour remonter des informations dans des temps acceptables - par exemple pour l'internaute qui n'avait pas que ça a faire que d'attendre que l'information recherchée s'affiche sur son écran ). Il a donc été nécessaire de repenser le stockage de données pour garantir des performances acceptables, mais avec un très très grand et inhabituel volume de données à traiter.

 

Pour aller plus loin: quelques liens sur l'architecture du réseau social Twitter à titre d'exemple.

 

Comment twitter range 250 millions de tweets par jour grâce à MySQL : 

 

 http://highscalability.com/blog/2011/12/19/how-twitter-stores-250-million-tweets-a-day-using-mysql.html

 

 

 

 

 

 

 

 

 

 

 

 



22/06/2017
0 Poster un commentaire