Friday 13 January 2017

Zabbix Moyenne Mobile

Comprendre Linux Shell et Basic Shell Scripting Language Tips 8211 Partie I Comprendre Linux Shell Comprendre Linux Shell Shell. Un interpréteur de ligne de commande qui connecte un utilisateur au système d'exploitation et permet d'exécuter les commandes ou en créant un script de texte. Processus. Toute tâche qu'un utilisateur exécute dans le système s'appelle un processus. Un processus est peu plus complexe qu'une simple tâche. Fichier . Il réside sur le disque dur (hdd) et contient des données appartenant à un utilisateur. X-fenêtres aka fenêtres. Un mode de Linux où l'écran (moniteur) peut être divisé en petites 8220 parties 8221 appelées fenêtres. Qui permettent à un utilisateur de faire plusieurs choses en même temps ou passer d'une tâche à une autre facilement et visualiser les graphiques d'une manière agréable. Terminal texte. Un moniteur qui n'a que la capacité d'afficher du texte, des graphiques ou un affichage graphique très simple. Session . Temps entre la connexion et la déconnexion du système. Types de shell sur une distribution Linux standard Bourne shell. Le shell Bourne était l'un des principaux obus utilisé dans les premières versions et est devenu une norme de facto. Il a été écrit par Stephen Bourne chez Bell Labs. Chaque système Unix-like a au moins un shell compatible avec le shell Bourne. Le nom du programme Bourne shell est 8220 sh 8221 et il est généralement situé dans la hiérarchie du système de fichiers à binsh. C. Le shell C a été développé par Bill Joy pour la Berkeley Software Distribution. Sa syntaxe est modélisée après le langage de programmation C. Il est utilisé principalement pour l'utilisation de terminaux interactifs, mais moins fréquemment pour le script et le contrôle du système d'exploitation. C shell a beaucoup de commandes interactives. Commencer le Fun (Linux Shell) Il existe des milliers de commandes pour l'utilisateur de ligne de commande, que diriez-vous de se rappeler de tous Hmmm Tout simplement vous ne pouvez pas. La véritable puissance de l'ordinateur est de faciliter la facilité de votre travail, vous devez automatiser le processus et donc vous avez besoin de scripts. Les scripts sont des collections de commandes stockées dans un fichier. Le shell peut lire ce fichier et agir sur les commandes comme si elles étaient tapées au clavier. Le shell offre également une variété de fonctionnalités de programmation utiles pour rendre les scripts vraiment puissant. Notions de base de la programmation Shell Pour obtenir un shell Linux, vous devez démarrer un terminal. Pour voir quel shell vous avez, exécutez: echo SHELL. Sous Linux, le signe dollar () représente une variable shell. La commande 8216 echo 8216 renvoie tout ce que vous tapez. L'instruction pipeline () vient à secours, lors du chaînage de plusieurs commandes. Linux commandes ont leur propre syntaxe, Linux won8217t vous pardonner tout ce que les erreurs. Si vous obtenez une commande mal, vous won8217t flunk ou endommage n'importe quoi, mais il won8217t le travail. Binsh On l'appelle shebang. Il est écrit en haut d'un script shell et il passe l'instruction au programme binsh. À propos de shell Script Script shell est juste un fichier texte simple avec 8220.sh 8221 extension, ayant l'autorisation exécutable. Processus d'écriture et d'exécution d'un script Ouvrir le terminal. Accédez à l'endroit où vous souhaitez créer un script en utilisant la commande 8216 cd 8216. Cd (enter) Ceci amènera l'invite à votre répertoire d'origine. Touch hello. sh (Ici, nous avons appelé le script comme bonjour. Souvenez-vous que le 8216.sh 8216 extension est obligatoire). Vi hello. sh (nano hello. sh) Vous pouvez utiliser votre éditeur préféré, pour éditer le script. Chmod 744 hello. sh (rendant le script exécutable). Sh hello. sh ou. hello. sh (en cours d'exécution du script) Ecriture de votre premier script Sauvegardez les lignes ci-dessus sur un fichier texte, faites-le exécutable et exécutez-le, comme décrit ci-dessus. Exemple de sortie Dans le code ci-dessus. Écriture de votre deuxième script Cliquez sur OK pour passer au script suivant. Ce script vous indiquera votre nom d'utilisateur 8221 et énumérera les processus en cours d'exécution. Créer un fichier avec les codes ci-dessus, l'enregistrer à tout ce que vous voulez, mais avec l'extension 8220. SH 8220, le rendre exécutable et l'exécuter, à partir de votre terminal. Sortie de l'échantillon Est-ce cool. Écrire un script est aussi simple que d'obtenir une idée et d'écrire des commandes pipelinées. Il y a aussi quelques restrictions. Les scripts shell sont excellents pour les opérations de système de fichiers concis et de script la combinaison des fonctionnalités existantes dans les filtres et les outils de ligne de commande via les tuyaux. Lorsque vos besoins sont plus importants en fonctionnalité. Robustesse. Performance. L'efficacité, etc 8211 alors vous pouvez passer à un langage plus complet. Si vous connaissez déjà le langage de programmation C Perl Python ou tout autre langage de programmation, l'apprentissage du langage de script sera beaucoup plus difficile. Écriture de votre troisième manuscrit Aller à, écrire notre troisième et dernier script pour cet article. Ce script agit comme un script interactif. Pourquoi don8217t, vous-même exécuter ce script simple mais interactif et de nous dire comment vous vous sentiez. Exemple de sortie Bien ce n'est pas une fin. Nous avons essayé de vous apporter un avant-goût des scripts. Dans notre futur article, nous élaborerons ce sujet de langage de script, plutôt un sujet de langage de scripting sans fin, pour être plus parfait. Vos pensées précieuses dans les commentaires est très appréciée, comme et nous partagent et nous aident à se propager. Je vais réécrire ce post après I8217m fait publier ma visualisation avec la série React, parce it8217s 4 ans et il ya D'autres façons de le faire maintenant. Données est le premier D en d3 (ou éventuellement le 3e, mais it8217s certainement un de ces). De toute façon. Mettre vos données dans la bonne forme est crucial pour avoir un code concis qui s'exécute rapidement et est facile à lire (et, plus tard, dépanner). Alors, quelle forme devraient vos données être Vous avez sans doute beaucoup d'options. Pour suivre ce tutoriel, supposons que vous voulez tracer la relation entre les dépenses R038D et la croissance du PIB pour un certain nombre de pays. Vous avez ce fichier. Qui contient, pour chaque pays, un nom, un continent, les dépenses brutes en pourcentage du PIB, la croissance du PIB et la population de contexte et le PIB par habitant. Ainsi, une approche très simple serait de mettre chacune de ces variables dans un tableau indépendant. (Don8217t dérange le défilement, it8217s plus de la même) Ensuite, vous pouvez simplement créer des marques pour chaque élément de données et chercher chaque attribut indépendamment. Let8217s faire un tableau de bulles, par exemple. (Petit côté: dans le post je won8217t aller à travers le code pour mettre en place le conteneur svg ou les échelles, au lieu de se concentrer sur les structures de données. Ce code, qui est vraiment rien de spécial, peut être trouvé dans le code source des exemples) . Donc, pour créer nos cercles nous écrire quelque chose comme: Voir l'exemple dans son propre onglet ou fenêtre, mais c'est l'enfer à maintenir. Si pour une raison quelconque il ya une erreur dans une des valeurs, par exemple en raison d'un chat ou d'un petit enfant à proximité de l'ordinateur, l'erreur sera très difficile à résoudre. Un autre problème est qu'il est très difficile d'appliquer tout type de traitement ultérieur aux données. Par exemple, vous remarquerez qu'il ya de petites bulles entièrement dans la grande bulle orange qui se trouve être au-dessus d'eux. Donc it8217s pas possible de mouseover les petites bulles. Une façon d'aborder cela serait de trier les données en fonction de la diminution de la population (la taille des bulles) de sorte qu'il serait impossible d'avoir ce genre de situation. Maintenant, alors qu'il est possible de trier 6 tableaux selon les valeurs d'un, it8217s très désordonné. Idéalement, vous devriez avoir toutes les valeurs qui seront traduites graphiquement dans un seul objet. Vous voulez avoir un tableau de ces objets que vous allez passer à la méthode de données, et être en mesure d'écrire quelque chose comme: Ici, vous avez juste une source de données, qui est beaucoup plus sûr. Donc, si vous pensez: je sais, je devrais créer une variable comme celle-ci: et obtenir ce fait, et en outre, si vous pensez 8220Hey, je peux le faire dans Excel à partir de mon fichier csv, avec une formule que je copierai à travers le rows8221 , Vous devez arrêter dès maintenant au nom de tout ce qui est bon et saint. Même si cela fonctionne: Cette approche a un certain nombre de défauts que vous pouvez tous éviter si vous lisez. Tout d'abord, l'exécution de votre programme sera arrêtée alors que votre navigateur lit le code source qui contient la variable 8220data8221. C'est négligeable pour 36 lignes, mais comme les objets deviennent plus grands et plus complexes, une variable équivalente peut prendre des secondes ou même des minutes à charger. Et maintenant, nous avons un problème. C'est un problème pour vos utilisateurs. À vous maintenant: la création d'une variable JSON à partir de données tabulaires est fastidieuse et sujettes aux erreurs. L'interface d'édition de formule dans Excel doesn8217t vraiment vous aider à repérer où vous avez égaré une citation ou un côlon. En conséquence, cela prend beaucoup de temps. Don8217t faire cela: il ya un moyen beaucoup plus simple. Entre la fonction d3.csv. Voici comment ça marche. Vous dites à votre fonction d3.csv l'emplacement d'un fichier csv (que nous avions tout le temps) et une fonction qui doit s'exécuter sur le tableau d'objets (ce que nous avons toujours voulu) créé en utilisant la première ligne comme clés. Autrement dit, une fois la fonction d3.csv terminée, la variable 8220csv8221 valera exactement ce que nous avons attribué à 8220data8221 plus tôt, avec une différence majeure, car nous ne devions pas fabriquer cette variable ou faire n'importe quelle intervention manuelle: Certain qu'il correspond exactement au fichier. Une bonne chose avec cette méthode est que puisque votre variable n'est pas explicitement dans le code source, votre navigateur peut le lire beaucoup plus rapidement. Les données ne sont lues que lorsque la fonction d3.csv est appelée, par opposition à l'approche précédente où l'intégralité du code source (y compris les données) devait être lue avant que la première instruction puisse être exécutée. Bien sûr, il ne fait une différence lorsque la taille des données est significative. Mais en utilisant l'approche d3.csv vous permettrait d'afficher un 8220charging data8221 avertissement quelque part sur votre page, et de le supprimer à l'intérieur d3.csv. Beaucoup mieux qu'une page blanche. Trois réserves avec cette méthode. Cela ne fonctionnera plus dans un système de fichiers local (c'est-à-dire en ouvrant un fichier dans le navigateur). Le fichier résultant ne peut s'exécuter que sur un serveur web, qui peut être local (c.-à-d. Que la page a une url). Tout ce qui se passe dans la fonction d3.csv n'est plus dans la portée globale du programme. Cela signifie qu'après l'exécution du programme, vous ne pouvez pas ouvrir la console javascript et inspecter la valeur de 8220csv8221, par exemple. Cela rend ces programmes un peu plus difficiles à déboguer (il ya évidemment des moyens, cependant). Tout ce qui est lu à partir du fichier est traité comme des chaînes. Javascript fait beaucoup de conversion de type, mais soyez conscient de cela ou vous aurez des surprises. C'est pourquoi j'ai écrit x (d. GERD) par exemple (avant qu'une chaîne ne la convertit en un nombre). Pour célébrer cette façon supérieure d'acquérir des données, we8217ve jeté en entrée de données animées: les cercles sont initiés à une valeur par défaut et se déplacent vers leur position. Vous pouvez vérifier le lien pour voir l'effet de transition. Ainsi, au niveau de la marque (c.-à-d. Nos cercles), la forme la plus confortable des données est un objet avec au moins autant de clés qu'il y aura de propriétés graphiques à modifier dynamiquement. Un tableau plat de données est très bien si nous n'avons qu'une seule série de données. Mais que faire si nous avons plusieurs séries En effet, la plupart des visualisations ont une structure et une hiérarchie. Donc let8217s procéder avec nos données, mais maintenant let8217s supposons que nous voulons montrer des valeurs pour différents continents comme différents petits scatterplots (8220small multiples8221). Intuitivement: nous voulons ajouter 5 8220g8221 groupes à notre conteneur svg, un pour chaque continent, puis ajouter un point par pays dans chaque continent à ces groupes. Notre tableau plat won8217t fonctionne si bien alors. Que faire La réponse d3 à ce problème est l'ensemble de méthodes d3.nest (). D3.nest () tourne un tableau plat d'objets, qui grâce à d3.csv () est un format très facilement disponible, dans un tableau de tableaux avec la hiérarchie dont vous avez besoin. Suivant notre intuition, il serait intéressant que nos données soient: Un tableau de 5 éléments, un pour chaque continent, afin que nous puissions créer les groupes 8220g8221, Et si chacun de ces 5 éléments contiennent un tableau avec les données de tous les correspondants Pays, toujours dans ce format d'objet que nous aimons C'est exactement ce que fait d3.nest (). D3.nest (), go Avec la méthode. key (), nous indiquons ce que nous allons utiliser pour créer la hiérarchie. Nous voulons grouper ces données par continent, donc nous utilisons cette syntaxe..sortKeys est utilisé pour trier les clés dans l'ordre alphabétique, donc nos panneaux apparaissent dans l'ordre alphabétique des continents. Si nous omettons cela, les panneaux apparaîtront dans l'ordre des données (c'est-à-dire d'abord en Océanie, l'Australie étant le premier pays). Nous aurions pu éviter cela en triant les données par continent d'abord avant de l'imbriquer, mais c'est plus facile comme ça. Ici, nous avons juste un niveau de regroupement, mais nous pourrions en avoir plusieurs en chaînant plusieurs méthodes. key (). La dernière partie de la déclaration. Entrées (csv), dit que nous voulons faire cette opération sur notre variable csv. Voici ce que ressemblera la variable de données: Maintenant que nous avons nos données sous une forme idéale let8217s dessiner ces marques: (vous pouvez cliquer sur le lien pour voir l'effet de transition et lire la source complète). Tout cela est très bien, mais il ne serait pas préférable que nous puissions caractériser certaines informations agrégées des continents. Les Let8217s tentent de connaître les valeurs moyennes des dépenses R038D et la croissance du PIB. Peut-on le faire facilement C'est un travail pour l'autre méthode principale de d3.nest, rollup. Rollup est la fonction d'agrégation. Voici un exemple. Rappelez-vous comment la combinaison de. key () et. entries () réorganise un tableau en des tableaux de tableaux plus petits, en fonction de ces clés bien, la valeur qui est passée à la fonction à l'intérieur de la méthode rollup est chacun de ces tableaux Tableau de tous les objets correspondant à des pays en Amérique, puis un tableau de tous les objets correspondant à des pays en Europe, etc) En outre, si nous utilisons sortKeys dans notre effort de nidage précédente, nous pourrions mieux l'utiliser ici aussi. Voici ce que ressemblera la variable: Incroyable seulement les valeurs dont nous avons besoin. Maintenant, il est juste une question de les ajouter à l'esquisse. Deux petits ajouts ici: Ceci est l'exemple final 8211 encore vous pouvez cliquer sur le lien pour voir la transition et obtenir l'intégralité de la source. Au niveau de la marque, vous voulez avoir des objets avec autant de propriétés que vous avez besoin de variables graphiques (comme x, y, fill, etc.) à l'aide de d3.csv () et un fichier plat rendra cela facile (d3 fournit également des fonctions comme D3.json ou d3.xml pour traiter les données dans un autre format). D3.nest peut vous aider à regrouper vos entrées pour structurer vos données et créer des compilations de visualisations plus sophistiquées peut être utilisé pour agréger les données regroupées à l'aide de d3.nest Navigation Post Laisser un commentaire Annuler la réponse Excellent tutoriel Jerome 8211 tandis que CSV doesn8217t fournir 8220spontaneous8221 données comme a MySQL, il s'améliore considérablement sur l'approche d'entrée manuelle. Je suppose que le CSV pourrait être conçu avec suffisamment de flexibilité et de détails pour simuler une base de données, en utilisant divers filtres en d3. Salut, merci bien d3 peut complètement interagir avec une base de données comme mySQL avec une approche similaire jeromecukier. netblog20120102using-d3-avec-un-mysql-base de données, mais si vous avez des données au format tabulaire pour commencer, d3.csv est très pratique Très utile Tutoriel I8217d aimer poser deux questions: premièrement: puis-je renommer les attributs GERD et la croissance, disons. Deuxième question: Est-ce que je suis obligé de regrouper auparavant tous les pays afin de faire la moyenne des mêmes attributs (dans ce cas, le GERD et la croissance) sur le tableau De pays d'un continent I8217m supposé travailler sur une structure imbriquée de manière similaire et a eu quelques problèmes puisque je ne peux définir un accesseur pour la fonction d3.mean (). Merci à l'avance de travailler. (Ou tout nom de clé valide au lieu de a et b). 2) techniquement, non. Mais vous pouvez le faire. Pour toute opération de données en d3 ou javascript en général, et c'est quelque chose que j'aurais pu mettre dans le tutoriel, il ya la possibilité de partir d'une structure vide (soit un tableau vide ou un objet vide), boucler les données source et Ajouter quelque chose à la structure. Par exemple, je pourrais écrire: avgs csv. forEach (fonction (d) var cd. continent si (avgs) avgs. navgs. n1 avgs. GERDavgs. GERDd. GERD avgs. growthavgs. growthd. growth autre avgs) clés (avgs). ForEach (fonction (c) avgs. GERDavgs. GERDavgs. n avgs. growthavgs. growthavgs. n) cela produira la même sortie qu'avant sans une fonction d'imbrication, it8217s un peu plus long à écrire mais peut-être plus clair. Des opérations moins banales sont également possibles pendant la boucle. Merci beaucoup pour la réponse rapide Finalement, j'ai fait la même chose, sauf pour le fait que j'ai utilisé javascript simplement. J'étais curieux si on pouvait effectuer la tâche à l'intérieur de la fonction. rollup (). PS: félicitations pour votre grand style d'enseignement, I8217m apprentissage d3 et ce tutoriel a été incroyablement utile. Bouquet de commentaires ici parler de travailler avec une base de données réelle, mais la bonne chose à propos de cet être de csv est que vous pouvez toujours tirer les données de votre base de données et d'écrire des fichiers csv avec lui de cette façon les données sont téléchargeables et fonctionne avec Le tutoriel très bien. Cela donnerait à l'utilisateur plus de souplesse pour utiliser les données d'autres façons si elles le souhaitent ou ont besoin. Salut Jérôme. C'est incroyablement utile pour moi. Une question 8211 comment puis-je exécuter votre code sans connaître les noms des attributs (continent, gdp, etc) I8217m très nouveau à d3 si désolé si c'est simple. Votre code de référence ci-dessous: d3.csv (8220data. csv8221, fonction (csv) nous avons d'abord trier les données, puis nous créons les marques, que nous avons mis dans une position initiale svg. selectAll (8220circle8221).data (csv).enter ( (8220cx8221, fonction (d)).attr (8220cy8221, fonction (d)).attr (8220r8221, fonction (d)) maintenant nous commençons 8211 en déplaçant les marques à leur position Grand didacticiel, ceci A été super utile pour mon entrée dans d3 avec csvs I8217m en essayant de faire un graphique linéaire avec la date comme l'axe des x, la somme des commandes comme l'axe des y, et un linecolor pour chacun de mes trois magasins. Chaque commande, donc j'ai besoin d'additionner l'ordre par date et stocker: d3.csv (fichier, fonction (erreur, données) données data. map (function (d) return store: d. store, date: parseDate (d. date ), Commandes: d. orders) Je continue d'obtenir une erreur à cette ligne dans le code, et bien que l'axe sont dessinés sur la page, il n'ya pas de données: Pouvez-vous offrir un aperçu Merci à l'avance can8217t être définitif sans voir votre Mais surtout, définissez-vous votre fonction de ligne quelque part bien, le nom des attributs viendrait de votre fichier de données. Donc cela suppose que vous connaissez votre fichier de données. Cela étant dit, pour tout élément du tableau, vous pouvez faire d3.keys () qui renverra la liste des propriétés de cet élément. C'est-à-dire d3.keys (csv0). Salut Jerome, je suis très nouveau à D3.js, actuellement je travaillais sur un projet scolaire utilisant d3 et json. Votre tutoriel a été très utile donc je décide de le mettre en œuvre dans mon projet car il les données imbriquées son beaucoup plus similaire à la mienne, même si le mien est le fichier json. Au moment où il regroupe correctement les données malheureusement les données individuelles qui sont représentées par le cercle faille à travailler. Je me demandais ce qui s'est mal passé, j'apprécie vraiment si vous pouvez jeter un oeil à elle. Voici le lien vers le projet (githubemeshIPU-Zabbix-D3) Merci d'avance Hey, merci pour le tutoriel. J'ai été un peu mis hors de la 3 réserves, mais they8217re effectivement beaucoup plus mineur que vous leur faire du son: 1. Un moyen vraiment facile de faire quelque chose de fonctionner sur un serveur web est l'utilisation site44 8211 héberger les fichiers de votre dropbox. 2. Je ne sais pas si je comprends celui-ci. Il suffit de définir une variable globale, puis d'y attribuer des valeurs dans le rappel. 3. Oui. De nombreux didacticiels sur l'utilisation de json ou csv avec d3.json ou d3.csv, mais l'idée la plus simple d'utiliser un tableau ou un objet de données est encore un mystery8230 Pour les applications simples, la mise à jour dynamique d'un fichier json ou csv est un cauchemar. Etre capable de charger un objet avec les données nécessaires dynamiquement devrait être simple, darn it tutoriel vraiment utile. Merci


No comments:

Post a Comment