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

Langage Perl Discussion :

Apprendre Perl pour faire de l'admin Linux ?


Sujet :

Langage Perl

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 109
    Points : 93
    Points
    93
    Par défaut Apprendre Perl pour faire de l'admin Linux ?
    Bonjour étant étudiant plus orienté système/réseaux je souhaite me spécialiser en admin Linux mais je ne connais pas encore de langage de script pour Linux. C'est pour cela que j'ai commencé le Bash mais j'ai quelques question par rapport au langage Perl,
    Pensez-vous qu'il est utile d'apprendre le Perl pour faire de l'admin Linux ? J'ai vu qu'il y avait également le Python et Ruby que pensez-vous de ces langages en comparaison à Perl ?
    Quelles sont les raisons qui font qu'un sys admin a besoin d'apprendre un autre langage script que le Bash? Le Bash n'est pas suffisant ?
    Si vous pensez que c'est intéressant d'apprendre le Perl, conseillez-vous d'apprendre Perl 5 ou de passer tout de suite à Perl 6 ?
    Est-ce que vous auriez des script d'admin linux ou ressource pour apprendre le scripting en Bash/perl car j'aimerais si possible apprendre avec des exemples qui sont parlant et qui seront utiles !

    Merci d'avance et désolé pour toutes ces questions ! :p

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    il y a un bon livre (mais en anglais) qui a été écrit sur le sujet: Perl for System Administration (par David N. Blank-Edelman, chez O'Reilly). Il est assez vieux (première édition en 2000, il y a eu au moins une autre édition, mais je ne connais pas la date et j'ignore s'il y en eu d'autres, mais ce te sera facile à vérifier avec un bon moteur de recherche), et ne tient donc pas compte des bonnes pratiques Perl qui se sont développées depuis, mais je pense que tu peux au moins te faire une bonne idée de ce que l'on peut faire en Perl dans ce domaine. Tu dois pouvoir l'acheter pour une bouchée de pain en occasion sur Amazon ou un site équivalent. On le trouve aussi assez facilement en version électronique sur Internet, mais je ne donnerai pas de lien car je ne suis pas sûr que ces versions soient bien légales...

    A titre personnel, je suis convaincu que Perl est complémentaire de bash (et des autres shells) pour ce genre de tâche (nettement plus puissant que bash, csh, ksh ou zsh pour faire des choses un tant soit peu complexes), mais je n'ai plus administré de machine Linux depuis au moins 15 ans (et puis ça n'a jamais vraiment été mon vrai métier, je faisais cela en plus). Ruby et Python sont de bons langages qui feront aussi l'affaire, mais je pense, toujours à titre personnel, que Perl est meilleur pour cette tâche et est susceptible de te faire gagner un peu plus de temps. Cela dit, prends cet avis comme une opinion purement personnelle (en n'oubliant pas que tu es sur un forum Perl).

    La principale raison de ma réponse ici est ta question relative à Perl 5 versus Perl 6. Bien qu'étant un fervent partisan de Perl 6 (et très certainement l'auteur qui a le plus écrit en français sur Perl 6), je me dois de te conseiller Perl 5 pour l'instant. On peut dire que Perl 6 est maintenant mature et apte à la production, mais, à l'heure actuelle, pratiquement toutes les machines Linux existantes ont une version ou une autre de Perl 5 installée (Perl est même très souvent utilisé par les distributions Linux, notamment pour les mises à jour de version ou les installations de packages -- ce qui d'ailleurs est un élément confirmant ce que j'ai dit dans les paragraphes précédents), alors que Perl 6 est encore loin d'être généralisé.

    Voilà, j'espère que ça t'aide à nourrir ta réflexion.

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Je ne comparerai pour ma part que les shell scripts avec perl (je ne peux juger Python ou Ruby) :
    - perl permet de structurer un programme facilement et d'utiliser des structures de données complexes, ce qui est loin d'être le cas d'un shell script
    - perl dispose nativement de nombreuses fonctions d'accès au système, y compris la possibilité de lancer un shell script en dernier recours, le shell script fait appel à des programmes externes, il dispose en interne que d'un nombre limité de fonctions
    - perl dispose d'une bibliothèque de modules impressionnante (CPAN), y compris des fonctions dédiées pour l'administration de système, rien de tel (à ma connaissance) pour les shell scripts

    Alors même si l'on peut faire énormément de chose en shell script, perl permettra d'en faire autant, mais avec nettement plus de facilité, de souplesse et de maintenabilité.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  4. #4
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    je suis plutôt d'accord avec ce qu'ont dit Lolo78 et Philou67430 juste avant, j'ajouterai que Perl c'est de toutes façons un bon langage à connaitre, ne serait-ce que par curiosité et parce qu'il est très répandu

    coté entreprise en sysadmin c'est souvent bash privilégié, simplement parce que c'est relativement lu/compris par la plupart des techos, sachant que dans le lot il y a les vieux de la vieille qui souvent connaissent bien Perl, et les plus jeunes qui à l'occasion mettent du Python là où c'est possible (j'ai même eu vu du PHP mais bon...), en revanche j'ai jamais vu de Ruby

    exemple simple (et vécu) : plusieurs admins dans la même (grosse) entreprise, chacun scripte ses plateformes de service, ses machines etc.
    le jour J la nuit N, toto qui est d'astreinte voit remonter un problème sur la plateforme d'un collègue, ça a l'air assez sérieux, manque de bol il ne connait pas suffisamment Perl pour debugger le script fautif... ça tient à peu de choses finalement

    à titre perso, ça dépend des besoins, un script susceptible d'être lu et éventuellement modifié par quelqu'un d'autre c'est assez automatiquement bash/awk, et du bash simple, rien de foufou, un script perso ou une moulinette "projet" sur laquelle je suis à peu près seul, j'opterai possiblement pour Perl ou Python, même si les deux se valent globalement chacun a ses points forts et selon que j'ai besoin d'un oneliner hors de portée de bash, d'un parser de logs multithreadé ou d'un script pour instrumenter le browser je choisirai l'un ou l'autre, essentiellement en fonction de la longueur envisagée du code

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 109
    Points : 93
    Points
    93
    Par défaut Perl
    D'accord merci pour vos réponses, c'est vrai que ce qui m'a attiré avec le Perl c'est la philosophie du langage qui permet de pouvoir faire 1 chose de plusieurs façons mais n'est apparemment pas trop possible en Python.

  6. #6
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Une information complémentaire sur le livre Perl for System Administration (par David N. Blank-Edelman, chez O'Reilly): la seconde édition date de 2009 et utilise Perl 5.10. Elle est donc nettement moins ancienne que je ne le craignais et elle respecte les bonnes pratiques récentes. Je te conseille vraiment d'en prendre connaissance.

    Par ailleurs, un exemple récent à mon travail sur les différences entre Perl et le shell: j'ai réécrit un programme contenant 800 lignes de shell (pas du bash, du ksh, mais bon, ça ne fait pas une grosse différence), plus 150 lignes de awk, et une demi-douzaine de composants ETL binaires en une seul script Perl pur de 80 lignes. Le programme shell n'était sans doute pas vraiment optimal et aurait sans doute pu être écrit plus efficacement, mais ça donne tout de même une idée sur la puissance expressive de Perl par rapport au shell. Et le résultat est autrement plus maintenable.

    (Ceci ne veut pas dire qu'il faut rejeter le shell (bash ou autre), il y a des choses pour lesquelles bash est bien adapté, mais dès que l'on a besoin de coder des choses un peu complexes, Perl est incontestablement bien meilleur.)

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 109
    Points : 93
    Points
    93
    Par défaut Perl
    D'accord merci beaucoup ! Je vais regarder ce livre que tu me conseilles !

    Une autre question, j'ai vu que beaucoup disent que le langage a tendance a mourrir et que beaucoup préfèrent utiliser Python, en partie à cause que Perl6 a mis vraiment longtemps a arriver, du coup tu penses qu'avec l'arrivée de Perl6 et son développement ça va redonner un coup de boost au langage?

  8. #8
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Bonjour,
    Je suis en accord avec tous les éléments et conseils que l'on t'a déjà donné, et ayant fait et faisant à l'occasion encore de l'admin, ce que je peux dire, c'est que pour des applis tel que websphere, weblogic ou autre webmethod, on aura tendance à utiliser par exemple java, voir jython pour les interroger sur leur configuration.
    On peut le faire en script shell ou perl, mais je trouve cela un peu contre productif puisque nativement, ils sont en java.
    Après, toi tu sembles vouloir faire de l'admin système/reseau pur, dans ce secteur, perl (ou python) sont assez présent, en mon sens, vaut mieux connaitre les deux.
    Pour ma part, j'utilise selon le besoin (et je ne me considère pas expert de ces outils) :
    -shell (bash,ksh,...)
    -awk
    -sed
    -perl
    -python
    En plus des commandes externes comme find, ifconfig, netstat, ps,... et j'en passe.
    Cordialement.

Discussions similaires

  1. Besoin d'aide pour faire fonctionner un script Perl pour un photomaton sous Linux.
    Par loran42o dans le forum Programmation et administration système
    Réponses: 1
    Dernier message: 29/05/2013, 09h31
  2. Quel IDE en 2012 pour faire du web sous Linux ?
    Par student_php dans le forum Autres
    Réponses: 1
    Dernier message: 16/05/2012, 12h37
  3. Réponses: 2
    Dernier message: 25/09/2009, 22h30
  4. Comment apprendre Java pour faire du développement web
    Par mlaiti dans le forum Développement Web en Java
    Réponses: 14
    Dernier message: 09/02/2008, 17h09
  5. Choix d'un langage SIMPLE pour faire des applis portables Linux <=> Windows
    Par Muesko dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 03/10/2006, 21h33

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