IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Pourquoi la programmation Shell ? [Débat]


Sujet :

Linux

  1. #1
    Membre du Club Avatar de am.adnane
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Points : 56
    Points
    56
    Par défaut Pourquoi la programmation Shell ?
    Cher amis!
    svp je veux savoir qu'il est l'intrét de la programmation shell ,par exemple dans une entreprise travaillant avec linux comme un systéme d'exploitation alors la programmation shell contexte on peut l'utiliser ?,pour gérer quoi?, pourquoi ?, quand ?.
    alors le sujet est ouvert pour la discussions ...
    ...

    et merci
    note:ce sujet mes amis c'est juste pour enrichir notre culture ...

  2. #2
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    Bonjour,
    Sous unix et donc linux, le principe est d'avoir une multitude de petite applications qui ne save faire qu'une seule chose mais qui le font extrêment bien et qui son souples grace, souvent, à un nombre impressionnant de paramètres. Les scripts shell permettent très facilement de lier ces petites application pour automatiser une tache complexe ou pour même créer une autre application en intéraction avec l'utilisateur.
    Par exemple, j'ai un script qui me recompile mon projet, le reconfigure selon le client voulu, génère l'installateur pour windows et je compte bientot y ajouter la génération de l'image ISO puis le lancement de la gravure. Tout ça en une commande
    Un autre exemple, est la simplification de l'utilisation du Pc. J'ai par exemple fait un script à une personne débutant en informatique, qui lui permet de récupérer les photos de sa carte mémoire, les copier sur le PC, et graver lesnouvelles photos sur un DVD. Cette personne a déjà du mal à comprendre ce qu'est un répertoire donc un script comme celui-ci lui permet de sauvegarder ses photos aisément.
    Sinon chez un client j'en ai un qui me permet de me connecter en ssh chez eux alors qu'ils ne sont pas accessible de l'extérieur. Il me demande mon adresse IP par téléphone la tape au clavier lorsque le script lui demande et voila.

    Ça permet faire des applications très spécifique facilement en utilisant des programmes éprouvés. On ne réinvente jamais la roue car on utilise les programmes existants.

    Bref les script shell permettent de tout faire

  3. #3
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Salut

    L'intéret de la programmation shell, c'est sa vitesse de mise en oeuvre... Certe on peut faire des programmes en C (ou autre) pour réaliser des opérations complexes, mais il est parfois plus astucieux de penser au scripts shell... On dispose d'un langage de plus haut niveau que le C, ou l'on ne se posera pas toutes les questions que l'on doit se poser avec ce langage (et que hélas trop de personnes ne se posent pas).

    Le but principal d'un script est d'automatiser une tache longue ou qui demande de faire beacoup de chose (ou que l'on fait souvent bien sur !).

    Exemple : mettre "quelque chose" sur une clé usb... Cela nécessite avant et après de monter et démonter la clé. Le "quelque chose" peut être un/des dossier/s, un/des fichier/s, ou une archive qui est sur internet (et la ca complique les choses, il n'y a pas de primitive pour télécharger des fichiers !)... 7 lignes suffisent pour faire un script avec ce comportement...

    Mais il n'y a pas de "rêgle" pour l'utilisation des scripts shell. C'est surtout une question de point de vue de la personne qui a à réaliser une solution pour répondre à un problème...

  4. #4
    Membre du Club Avatar de am.adnane
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Points : 56
    Points
    56
    Par défaut
    Merci pour vos réponses,
    alors la programmation shell sert a résoudre les probléme complexe!
    est ce qu'on pe fair un liason avec une base de donné..!!?
    on peux intégrer code C?
    ..

  5. #5
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Citation Envoyé par am.adnane
    est ce qu'on pe fair un liason avec une base de donné..!!?
    Non, enfin, tu peux scripter un client en ligne de commande, mais ca n'est pas ce qu'il y a de plus propre... Mais on peut faire ca avec un scirpt en php/perl...

    Citation Envoyé par am.adnane
    on peux intégrer code C?
    Non, le script shell est interprété ... Mais libre a toi de faire un programme en C que tu utilise dans ton script shell.

  6. #6
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    Tu ne peux pas te connecter à une base de données directement car un script shell ne peux pas utiliser une librairie. Il ne sait utiliser que des commandes/programmes externes.
    Par contre, la majorité (toutes ? ) les base données permettent à un programme client de se connecter et d'exécuter un fichier SQL. Pour ma part j'utilise un script shell qui génère un fichier SQL contenant mes fichiers MP3 (avec les tags mp3), puis une commande lance le client de la base données qui va exécuter le fichier SQL et donc intégrer les données dansla base... etc.....
    Par contre c'est sure que les script shell ne sont pas trop efficace pour une application de gestion financière avec base de données, client/serveur.....

  7. #7
    Membre confirmé
    Avatar de bster
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2005
    Messages : 372
    Points : 497
    Points
    497
    Par défaut Re: [Programmation shell] pourquoi?
    Citation Envoyé par am.adnane
    Salut tous!
    svp je veux savoir qu'il est l'intrét de la programmation shell ,.... on peut l'utiliser ?,pour gérer quoi?, pourquoi ?, quand ?.
    Le choix du quasi tout unix/linux et du quasi tout scripté :
    Je vais prendre l'exemple de mon client (le plus gros industriel francais et dans le top 3 en europe dans ce secteur d'activitée) :

    Toutes la production est basée sur des bases de données et quelques rares applications développées en internes et d'encore plus rares applications commericiales.

    tout est donc integralement scripté de sorte à
    -avoir une totale maitrise des actions / interactions entres les applis.
    -avoir des logs générées à chaque étapes de chaque traitement au format voulu exactement
    -avoir des rapports des fichiers des fax ou autres documents formatés aux formats voulus par les comptables, les experts, les usines, les douanes, les banques, les marins, les ports, les impots, notre banque interne, la bourse, les clients, les transporteurs soutraitant, la sncf, et comme ça change tous les 4 matins, c'est quand même plus facile avec des scripts qu'avec une application sans parler des performances etc...
    -avoir un parfait suivi / archivage des fichiers comme on le veux et pas autrement
    -souplesse impressionnante (quelques minutes pour changer une tache d'un traitement ou en ajouter un)
    -quelques heures pour changer ajouter ou supprimer un traitement
    -quelques jours pour transformer la production entière
    -controle totale de la securite interne des aller et venus de données (même en cas de pompage de données on s'est branle c'est à notre format lisible que par nous (et encore... des fois on s'y perd nous même)
    -gestion indépendante géographiquement (sites, usines, machine à nous déporté chez les douanes, aux impots, etc...)
    -plannification, ordonancement, suivi des taches facilité
    -sécurité des données (en terme de taux de panne)
    -sécurité réseau accrue

    Ensuite le choix est aussi une histoire de performances il est complétement débile dans une structure comme 99% des traitements n'ont besoin d'aucune interface, sans parler du cout financier humain si on devait modifier les applications tous les 4-5 jours comme on fait en permanance pour adapter les demandes des uns et des autres et ce en flux tandus comme des strings....

    tout ça tourne sous unix et linux.

    Pour une structure extremement changeante il est indispensable d'utiliser des script à tres tres tres grande echelle...

    sous windows on a les serveurs messageries, les stations de travail d'utilisateurs lambda surlesquels les frontaux des applications sont dispos, 2 serveur nas pour les fichiers utilisateurs, quelques rares serveurs d'application et ... c'est à peu près tout.

  8. #8
    Membre du Club Avatar de am.adnane
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Points : 56
    Points
    56
    Par défaut
    Merci bcp de vos réponses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    les base données permettent à un programme client de se connecter et d'exécuter un fichier SQL.
    Comment on peut fair ca svp?(lier des script avec des requete SQL).anisi pour les programme en C.
    et Merci..!! [/quote]

  9. #9
    Membre confirmé
    Avatar de bster
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2005
    Messages : 372
    Points : 497
    Points
    497
    Par défaut
    par exemple
    il faut que le programme client puisse lancé une commande de type
    clientSQL -option -utilisateur "commande SQL"
    ou encore qu'il est un accès direct au contenu de la base de données.

    tout simplement.

  10. #10
    Membre du Club Avatar de am.adnane
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Points : 56
    Points
    56
    Par défaut
    la sécurité !
    pourquoi il y la sécurité en linux/unix?
    a mon avi c'est parceque il n ya pas beaucoup des gens qui utlise ce SE(Linux) .
    alors on trouve que la majorité des terminal connécter à l'internet ayant un SE Windows 95,98,NT....ce qui provoque l'augmentation de % de l'insécurité contre les attaques externes .
    qu'elles sont vos avis.?
    vous etes d'accord avec moi!?

  11. #11
    Membre du Club Avatar de am.adnane
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Points : 56
    Points
    56
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    il faut que le programme client puisse lancé une commande de type 
    clientSQL -option -utilisateur "commande SQL" 
    ou encore qu'il est un accès direct au contenu de la base de données.
    Merci pour votre réponse.!

  12. #12
    Membre confirmé
    Avatar de bster
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2005
    Messages : 372
    Points : 497
    Points
    497
    Par défaut
    Citation Envoyé par am.adnane
    la sécurité !
    pourquoi il y la sécurité en linux/unix?
    a mon avi c'est parceque il n ya pas beaucoup des gens qui utlise ce SE(Linux) .
    alors on trouve que la majorité des terminal connécter à l'internet ayant un SE Windows 95,98,NT....ce qui provoque l'augmentation de % de l'insécurité contre les attaques externes .
    qu'elles sont vos avis.?
    vous etes d'accord avec moi!?
    ça c'est faut c'est simplement lié au fait qu'unix contrairement à windows ne laisse pas les utilisateurs faire ce qu'ils veulent localement.

    resultat en 30 ans et 15 ans pour linux il existe pas 50virus efficaces !
    et moins de 20 dangereux pour les données....

    contrairement à windows le neerdz de base est incapable d"ecrire un virus un troyens ou autre vers à cause de la connaissance necessaire....

  13. #13
    Expert confirmé
    Avatar de Katyucha
    Femme Profil pro
    DevUxSecScrumOps Full Stack Bullshit
    Inscrit en
    Mars 2004
    Messages
    3 287
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Irlande

    Informations professionnelles :
    Activité : DevUxSecScrumOps Full Stack Bullshit

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 287
    Points : 5 075
    Points
    5 075
    Par défaut
    de revenir au débat initial sur la programmation shell.


    Katyucha, pourfendeur de troll sécurité windows/linux

  14. #14
    Membre du Club Avatar de am.adnane
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Points : 56
    Points
    56
    Par défaut
    svp voila une petit introduction de programmation shell

    1/
    le shell
    Un interpreteur de commandes (le "shell",la coquille qui entoure le "noyau" du systéme )est un programme qui sert d'intermédiaire entre l'utilisateur et de système d'exploitation .
    Sa tache essentielle est l'exécution de programmes.
    Pour cela ,il effectue (en boucle infinie):
    +la lecture d'une ligne
    +sa compréhension comme une demande d'exécution d'un programme
    avec d'éventuels paramètres.
    +le lancement de ce programme avec passage des paramètre
    +d'éventuelles redirections d'entrées-sorties
    +les exécutions de scripts(fichiers de commandes)
    2/
    Démarrage de shell
    +lors de la création de son compte ,un utilisateur est associé à un type de Shell
    +Lire le fichier /etc/passwd:le dernier champ contient le nom du fichier exécutable (shell par défaut)/bin/bash
    +le shell associé est ainsi lancer automatiquement dès la saisie du login utilisateur .
    +il poursuit sa configuration en exécutant des scriptes globaux à tous les utilisateurs et des scriptes liés au compte et qui permettent une personnalisation .
    +Enfin ,il affiche le prompt et se met en attente de la lecture d'une commande.
    jusqu'a la commande exit,pour quitter le shell(ce qui équivaut à se déconnecter (logout)).

  15. #15
    Membre du Club Avatar de am.adnane
    Inscrit en
    Février 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 85
    Points : 56
    Points
    56
    Par défaut
    Merci de vos réponse.!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Programme shell pour rechercher un ensemble de lignes dans un fichier
    Par loukili81 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 23/11/2006, 13h27
  2. Réponses: 4
    Dernier message: 09/09/2006, 21h48
  3. Réponses: 9
    Dernier message: 30/05/2006, 18h44
  4. Programmation Shell avec Red Hat Calcul de moyenne
    Par jcpoulard dans le forum Linux
    Réponses: 3
    Dernier message: 22/02/2006, 22h08
  5. Programmation Shell
    Par Leila75 dans le forum Linux
    Réponses: 3
    Dernier message: 12/05/2005, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo