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

Shell et commandes GNU Discussion :

Fish Shell, un shell de ligne de commande intelligent et convivial pour les systèmes Unix


Sujet :

Shell et commandes GNU

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Dirigeant
    Inscrit en
    Juin 2016
    Messages
    3 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Dirigeant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 3 160
    Points : 66 256
    Points
    66 256
    Par défaut Fish Shell, un shell de ligne de commande intelligent et convivial pour les systèmes Unix
    Fish Shell, un shell de ligne de commande intelligent et convivial pour les systèmes Unix
    est-il meilleur que Zsh ou Bash ?

    Fish (Friendly Interactive Shell) est un shell Unix de ligne de commande entièrement équipé (comme Bash ou Zsh) qui est intelligent et convivial. Fish prend en charge des fonctionnalités comme la coloration syntaxique, les suggestions automatiques et les compléments d'onglets qui fonctionnent tout simplement, sans qu'il soit nécessaire d'apprendre ou de configurer quoi que ce soit. Plusieurs différences notables rendraient Fish bien plus ergonomique que Bash. Cependant, même si Fish Shell a une syntaxe simple, elle serait incompatible avec les autres langages shell.

    « Si vous voulez rendre votre ligne de commande plus productive, plus utile et plus amusante, sans avoir à apprendre un tas de syntaxe obscure et d'options de configuration, alors Fish pourrait être exactement ce que vous recherchez », a écrit l'équipe de Fish Shell dans la documentation de l'outil. Il est principalement caractérisé par les éléments suivants :

    • autosuggestions en ligne basées sur l'historique ;
    • complément de tabulation utilisant les données des pages de manuel ;
    • mise en évidence de la syntaxe ;
    • support intuitif des caractères génériques ;
    • configuration basée sur le Web ;
    • une saine écriture de scripts.

    Autosuggestions et mise en évidence de la syntaxe

    L'une des principales caractéristiques de Fish est l'autosuggestion implémentée dans le shell. Cette fonctionnalité vous donne la possibilité d'accéder rapidement aux commandes au fur et à mesure que vous les tapez. En d'autres termes, Fish suggère des commandes au fur et à mesure que vous tapez, en se basant sur l'historique et les complétions, tout comme un navigateur Web. Vous pouvez trouver cela dans Zsh également, mais elle serait à l'origine dans Fish.

    Nom : maxresdefault.jpg
Affichages : 26149
Taille : 138,7 Ko

    De plus, Fish possède d'autres fonctionnalités. Par exemple, si vous faites une erreur de frappe, il affichera les commandes incorrectes et invalides en rouge. C'est beaucoup plus rapide que Ctrl+R et cela afficherait généralement la commande que vous voulez 80 % du temps. En outre, Fish est entièrement scriptable, et sa syntaxe serait simple, propre et cohérente.

    Complétion d'onglets basée sur les pages de manuel

    Fish analyse les pages de manuel des outils CLI, ce qui lui permet de fournir facilement des complétions automatiques pour la plupart des commandes. Vous pouvez utiliser la tabulation pour obtenir toutes les options.

    Configuration basée sur le Web

    Une autre caractéristique remarquable de Fish est que vous pouvez le configurer comme une interface Web fonctionnant sur votre serveur local. De plus, l'interface Web vous permet de modifier la couleur du schéma que vous souhaitez. Elle vous permet également de parcourir vos variables d'environnement. Il existe d'autres fonctionnalités :

    • recherche des raccourcis clavier du terminal ;
    • invites de commande attrayantes et colorées ;
    • historique de la ligne de commande.

    Saine écriture des scripts et personnalisation

    Commet souligné plus haut, Fish est entièrement scriptable, et sa syntaxe est simple, propre et cohérente. Vous n'utiliserez plus do et done dans une boucle. Il s'agirait d'un avantage clé par rapport à Bash. En outre, vous pouvez également installer des thèmes pour Fish et le personnaliser selon vos goûts. Si vous avez utilisé Zsh, vous avez peut-être utilisé le grand gestionnaire de paquets oh-my-zsh. Ici, oh-my-fish est le gestionnaire de paquets de Fish.

    Utilisation des variables avec Fish Shell

    Comme les autres shells, le signe dollar ($) effectue une substitution de variable. La substitution de variable se produit également dans les guillemets doubles, mais pas dans les guillemets simples. Contrairement aux autres interpréteurs de commandes, Fish n'a pas de syntaxe VARIABLE=VALUE dédiée pour définir les variables. À la place, il a une commande ordinaire : set, qui prend un nom de variable, puis sa valeur.

    Comparaison entre Fish Shell et Zsh

    La plupart des scripts shell sont fondamentalement les mêmes. Ils donnent le même résultat et partagent le même environnement de script. Mais certaines différences subtiles sont uniques pour chacun des scripts shell. Fish et Zsh sont classés comme les meilleurs scripts shell grâce à leur façon d'écrire des scripts et des fonctions. En outre, les deux sont des outils open source que tout le monde peut utiliser librement. Zsh est une extension du langage Bash, et la façon dont les scripts sont rédigés avec Fish est totalement différente de Bash ou, pour être plus précis, du langage Zsh.

    Principales différences entre Fish et Zsh

    • Fish est facile à comprendre et à installer par rapport à Zsh. Vous n'avez pas besoin de commandes Bash ou de script Bash interactif pour installer Fish. Les plug-ins doivent être téléchargés et conservés dans un dossier spécifique pour le bon fonctionnement de Zsh. Alors que Fish, sans aucune de ces difficultés et perturbations, fonctionne bien avec n'importe quels système et utilisateurs ;
    • la syntaxe des deux langages est différente. Nous ne pouvons pas dire lequel est facile et lequel est difficile, mais ils sont différents. Lorsque plus d'alias sont utilisés dans Zsh, Fish évite simplement tout type d'alias dans le langage ;
    • la principale différence à souligner ici est que Fish possède une caractéristique de coloration syntaxique et de suggestions automatiques dans le script. Cela aide les utilisateurs à travailler avec le script en toutes circonstances et à mettre en évidence les scripts nécessaires indiqués dans le langage. Cela permet à un script Fish de se démarquer de tout autre langage de script. Le fait que les erreurs sont mises en évidence avant même d'appuyer sur la touche Entrée du clavier est un avantage majeur. Zsh n'a aucune de ces caractéristiques, et beaucoup aiment Fish à cause de cette fonctionnalité dans le langage. Toutefois, ces caractéristiques peuvent être rendues disponibles dans Zsh en installant certains plug-ins dans le système ;
    • Zsh possède de nombreux paramètres personnalisables qui incluent la correction orthographique, la personnalisation des couleurs, et ainsi de suite. Le contexte est facilement compréhensible dans Zsh, et il remplit les scripts par lui-même dans la CLI. Fish est beaucoup plus personnalisable que Zsh avec sa fonction d'aide, sa syntaxe cohérente et bien d'autres. La personnalisation des paramètres n'est pas un défi dans aucun de ces langages de script ;
    • il est facile de rechercher l'historique dans le scripting Fish avec les commandes haut et bas du langage de script. Les correspondances en double sont supprimées automatiquement, ce qui facilite l'écriture de scripts. Cette fonctionnalité n'est pas disponible dans Zsh, mais peut être ajoutée à l'aide de plug-ins dans le langage ;
    • nonobstant tous ces points glorieux de Fish, certains estiment néanmoins que les scripts Fish sont lents, plus lents que Zsh. Ainsi, ceux qui veulent travailler avec des scripts plus rapides peuvent choisir Zsh avec tous les plug-ins installés.

    Comparaison entre Fish Shell et Bash

    Bash est un shell Unix et un langage de commande écrit par Brian Fox pour le projet GNU en tant que logiciel libre remplaçant Bourne Shell. Bash peut également lire et exécuter des commandes depuis un fichier, appelé script shell. Bash est un outil très apprécié sous Linux, mais tout peut être amélioré. Dans la communauté, on lit beaucoup d'avis estimant que Fish est meilleur. Ces commentaires estiment que Fish est un shell alternatif pour Linux et mieux, une amélioration significative de ce que Bash a à offrir.

    D'un côté, beaucoup estiment que, bien que Bash soit souvent loué comme étant un excellent shell, il a beaucoup de défauts. Fish serait une excellente alternative avec plusieurs fonctionnalités intéressantes. La plus remarquable serait la saisie prédictive. « Fish est très convivial. Commencez simplement à taper. Il va deviner. Vous voulez taper la commande pacman ? Il y a de fortes chances qu'il la remplisse pour vous. Tout ce que vous avez à faire est d'appuyer sur la flèche droite de votre clavier et de le laisser s'autocompléter. Cette fonctionnalité est très puissante », commente Derrik Diener, un blogueur du site Make Tech Easier.

    La saisie prédictive de Fish ne fonctionne pas seulement avec les commandes système (comme les packagers), mais avec n'importe quel commande ou programme de terminal disponible. S'il est installé sur votre système d'une manière ou d'une autre, Fish le trouvera et vous en informera. « Si Bash est un bon shell, Fish est meilleur. Il compense une grande partie des défauts de Bash et des autres shells. La fonction d'autocomplétion est une bouée de sauvetage, et les options de configuration robustes sont un ajout bienvenu. L'interpréteur de commandes est très rapide et léger sur ses pieds », a déclaré Diener.

    « Bien sûr, il existe d'autres alternatives, et peut-être même certaines qui offrent des fonctionnalités équivalentes, mais là où Fish gagne, c'est dans sa simplicité. Il est facile à mettre en place, facile à configurer et facile à faire fonctionner », a-t-il ajouté. Il existe également d'autres opinions sur le sujet : doit-on remplacer Bash par Fish ? Voici quelques-unes d'entre elles :

    1. "Bash a peut-être des défauts, mais l'absence d'autocomplétion n'en fait pas partie. Vraiment, aucun de ces shells fantaisistes et modernes avec toutes leurs cloches et leurs sifflets ne me convainc vraiment. Si je m'éloigne un jour de Bash, ce sera pour quelque chose de plus simple, comme mksh".
    2. "En ce qui concerne les langages de script, Bash est vraiment nul. Mais indépendamment du shell que vous utilisez comme shell interactif, vous pouvez écrire vos scripts dans n'importe quel langage, donc la mauvaise syntaxe de script de Bash n'est pas vraiment pertinente pour mon choix d'un shell interactif".
    3. "As-tu essayé Fish ? Je n'ai jamais été capable de faire en sorte que la complétion automatique de Bash soit aussi agréable. J'aime la façon dont Fish se souvient des complétions récentes et suggère celles-là en premier, au lieu de faire défiler les choix dans l'ordre".
    4. "Je me considère comme un novice lorsqu'il s'agit d'OS de type Unix, mais Fish a définitivement rendu l'expérience beaucoup plus amusante et pratique pour moi depuis que j'ai commencé à l'utiliser. L'autocomplétion intelligente et la facilité de configuration sont une aubaine. Il m'a fait commencer à aimer la ligne de commande, quelque chose que je n'aurais jamais cru possible auparavant".


    Sources : Fish Shell, Discussion Reddit (Fish vs. Bash)

    Et vous ?

    Quel est votre avis sur le sujet ?
    Quel shell utilisez-vous ? Quelles sont les raisons de votre choix ?
    Selon vous, Fish est-il meilleur que Bash ou Zsh ? Pourquoi ?
    Quelle comparaison faites-vous entre Fish et Bash et entre Fish et Zsh ?
    Avez-vous testé ces trois shells ? Si oui, quel est votre retour d'expérience ?

    Voir aussi

    Apple remplace Bash par Zsh comme shell par défaut dans macOS Catalina, à partir de la version bêta de la nouvelle mise à jour

    Xonsh : un nouveau shell qui combine Python et les fonctionnalités des shell Bash, zsh et fish, est disponible sur Windows, Mac OS X et Linux

    Bash 5.0 est maintenant disponible, la cinquième version majeure du shell du projet GNU apporte de nouvelles fonctionnalités et corrections de bogues

    Babel Fish ou le traducteur vocal instantané, un projet de Google sur smartphones
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Invité
    Invité(e)

  3. #3
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 564
    Points : 7 285
    Points
    7 285
    Par défaut
    Citation Envoyé par Bill Fassinou Voir le message
    Quel shell utilisez-vous ? Quelles sont les raisons de votre choix ?
    J'utilise zsh depuis 2001 et je n'ai aucune raison d'en changer: tout ce qui est décrit au dessus existe déjà dans zsh. La complexion est très agréable (elle s'étend jusqu'aux options des programmes), pas de cochonneries comme un shell qui change de comportement au fur et à mesure qu'on l'utilise, et une configuration standard et facile.

    Et d'ailleurs:

    Citation Envoyé par Bill Fassinou Voir le message
    Fish est facile à comprendre et à installer par rapport à Zsh
    Ah, il y a plus facile qu'une commande du style sudo apt install zsh (ou l'équivalent clic en passant par l'interface graphique) ?

    Citation Envoyé par Bill Fassinou Voir le message
    Quel est votre avis sur le sujet ?
    Tant qu'on ne vient pas me l'imposer, tout va bien
    Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros!


    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
     
    int main(int argc, char **argv) {
     
        printf("So long, and thanks for the fish, Dennis...\n");
        return 0;
    }

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Bonjour

    Pas sûr que la confusion entre
    • interpréteur de commandes,
    • console
    • et éditeur texte,
    aident les utilisateurs à comprendre ce qu'il font. Ce qu'ils font vraiment.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  5. #5
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Philippines

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2005
    Messages : 244
    Points : 609
    Points
    609
    Par défaut
    J'utilise Fish depuis deux ans maintenant et je ne le recommande pas. Pourquoi?

    J'aime: Syntaxe sympa, shell puissant, pas mal d'amélioration en comparaison de Bash
    J'aime pas: Syntaxe pas compatible bash. Et c'est vraiment un probleme à la longue.
    Par exemple, si je copie une commande Bash venant d'une source internet dans mon terminal Fish, certaines syntaxes ne fonctionneront pas ( ex: `echo $(cat file)` devients `echo (cat file)` ). Pas de HEREDOC aussi.

    Pour tout cela, je ne conseille pas l'utilisation de Fish. Néanmoins je continue de l'utiliser, car en changer prendrait du temps (j'ai tout un ecosysteme dessus)

    Voilà pour mon avis

  6. #6
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    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 273
    Points : 12 708
    Points
    12 708
    Par défaut
    Il y a au moins 3 choses que bash ne sait pas faire: renommer et/ou effacer un fichier et créer un répertoire (d'ailleurs, je ne pense pas que les ksh ou zsh savent le faire), est-ce que fish shell sait le faire ?

    PS: ici, je parle de façon native, sans utiliser de commandes externes telles que mv, rm ou mkdir.
    Cordialement.

  7. #7
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par Bill Fassinou Voir le message
    Quel est votre avis sur le sujet ?
    Quel shell utilisez-vous ? Quelles sont les raisons de votre choix ?
    Selon vous, Fish est-il meilleur que Bash ou Zsh ? Pourquoi ?
    Quelle comparaison faites-vous entre Fish et Bash et entre Fish et Zsh ?
    Hello, je vais essayer d'apporter 1 réponse simple à ces 4 questions: Le meilleur shell est celui qui est disponible "partout", par défaut Bourne Shell (cf: #!/bin/sh) dont Bash, Zsh, et autres apportent une surcouche.
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  8. #8
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    par défaut Bourne Shell
    Est-ce que ce n'est pas théorique ? Les gens appellent leurs scripts machin.sh, et croient réellement faire du standard, alors que l'exécutable est un raccourci vers bash ou zsh; et dans le code, ils utilisent vraiment des particularismes bash. Bref, avalanche de faux-semblants pour faire croire qu'on fait "standard". L'exécutable "sh" est suranné.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  9. #9
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 564
    Points : 7 285
    Points
    7 285
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Il y a au moins 3 choses que bash ne sait pas faire: renommer et/ou effacer un fichier et créer un répertoire (d'ailleurs, je ne pense pas que les ksh ou zsh savent le faire), est-ce que fish shell sait le faire ?

    PS: ici, je parle de façon native, sans utiliser de commandes externes telles que mv, rm ou mkdir.
    ???

    Bash, Zsh et Fish sont des shells. Ce n'est pas leur rôle d'inventer des commandes, surtout quand il existe des commandes natives pour manipuler le système de fichier de manière efficace et sûre.

    Sans compter que ça limiterait leur portabilité: par exemple Bash existe sur GNU/Linux, sur plusieurs Unix avec des commandes natives ayant des options parfois différentes de la version GNU (et même sous Windows je crois, mais je peux me tromper).


    Citation Envoyé par Flodelarab Voir le message
    Est-ce que ce n'est pas théorique ? Les gens appellent leurs scripts machin.sh, et croient réellement faire du standard, alors que l'exécutable est un raccourci vers bash ou zsh; et dans le code, ils utilisent vraiment des particularismes bash. Bref, avalanche de faux-semblants pour faire croire qu'on fait "standard". L'exécutable "sh" est suranné.
    Alors c'est vrai que tu as souvent des scripts pour des logiciels tiers (c'est-à-dire hors distribution) qui mettent un ".sh" pour du script Bash. Maintenant, une bonne pratique c'est de regarder le contenu de tes scripts avant des les exécuter, du coup dès la première ligne #!, tu verras si tu fais du bash ou du sh.

    Maintenant, je pense que la remarque de Gugelhupf portait sur le fait que Bash et Zsh étendaient Bourne Shell (sh).
    Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros!


    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
     
    int main(int argc, char **argv) {
     
        printf("So long, and thanks for the fish, Dennis...\n");
        return 0;
    }

  10. #10
    Expert éminent
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    Avril 2016
    Messages
    1 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 469
    Points : 6 102
    Points
    6 102
    Par défaut
    Bash est adapté pour taper du write-only code en ligne de commande ou pour écrire de tout petits scripts vraiment très simples. Hélas, ce langage est vraiment mauvais quand le script grossit et croit en complexité. D'ailleurs, quand un script dépasse 100 lignes, le Shell Style Guide de Google conseille de réécrire le script dans un autre langage :
    If you are writing a script that is more than 100 lines long, or that uses non-straightforward control flow logic, you should rewrite it in a more structured language now. Bear in mind that scripts grow. Rewrite your script early to avoid a more time-consuming rewrite at a later date.
    C'est dommage car, techniquement, un langage bon pour faire du shell n'est pas obligé d'être aussi mauvais pour écrire des scripts à peine compliqués.

    Par exemple, récemment, j'ai commencé à tester XONSH, qui combine du shell et du Python. Je n'ai pas encore fini de l'explorer, mais cela m'a l'air très prometteur.

    Dans une de mes TODO-list, j'ai aussi prévu d'explorer peut-être le langage Oil qui affirme être une extension de Bash. Je ne sais pas encore ce que ça vaut.

    Je n'ai pas étudié Zsh et Fish mais, du peu que j'en ai vu, ce ne sont pas des améliorations ambitieuses de Bash pour pouvoir écrire des scripts dont la complexité peut croître. Cela ne me donne pas envie de consacrer du temps à les étudier.

  11. #11
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    halte au bash bashing !
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  12. #12
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 428
    Points : 43 051
    Points
    43 051
    Par défaut
    Je pense qu'il vaut mieux connaitre Bash que Zsh car plus répandu, et Fish perso jamais je l'installerais, car j'ai pas que ça à faire de tester des produits pour une ou deux nouvelles petites fonctionnalités.

    Pour des choses simples, ils feront tous le job. Pour les choses plus complexes, je suis d'accord avec la remarque qu'au-delà d'une certaine taille, il vaut mieux utiliser un langage, maintenant réécrire un truc from scratch ça prend du temps.

    Maintenant si vous êtes un pro de Bash (ou d'un autre shell), autant l'utiliser à fond.

    Il reste important pour l'innovation que ce type de produit sorte.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  13. #13
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    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 273
    Points : 12 708
    Points
    12 708
    Par défaut
    Citation Envoyé par kain_tn Voir le message
    ???

    Bash, Zsh et Fish sont des shells. Ce n'est pas leur rôle d'inventer des commandes, surtout quand il existe des commandes natives pour manipuler le système de fichier de manière efficace et sûre.

    Sans compter que ça limiterait leur portabilité: par exemple Bash existe sur GNU/Linux, sur plusieurs Unix avec des commandes natives ayant des options parfois différentes de la version GNU (et même sous Windows je crois, mais je peux me tromper).
    Je ne vois pas où est le soucis de la portabilité, puisque ce sont des appels systèmes que l'on peut appeler depuis la librairie standard du C.

    Et si tu vas par là, pourquoi celui-ci peut-il créer un fichier sans passer par touch ?
    Cordialement.

  14. #14
    Membre éprouvé

    Homme Profil pro
    Consultant ERP
    Inscrit en
    Janvier 2013
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 372
    Points : 1 202
    Points
    1 202
    Par défaut
    Je tenterai un jour, cool la complétion.

    J'aimerais surtout enfin que le monde Unix fasse son ménage et sorte un terminal+shell qui interprète Ctrl+C (^C) comme copier et non SIGINT.
    On est en 2021... Je ne supporte plus de polluer ma mémoire musculaire et d'ouvrir par erreur la console des navigateurs web en permanence quand je copie-colle entre navigateur et shell...
    passez moi SIGINT sur Ctrl+shift+C et que ça saute!
    Même le moderne alacritty ne le fait pas aux dernières nouvelles que j'ai.
    Et plus généralement, les commandes textuelles des navigateurs sont devenues le standard partout, de Ctrl+shift+T pour rouvrir le dernier onglet fermé à Ctrl+F pour la recherche textuelle... il faut suivre!

    Comment, c'est complexe comme problème? C'est à l'intersection du terminal / de l'émulateur de terminal (la "console") et du shell? Il faut se fader toute la spec stty, l'histoire en dix tomes des shells Unix pour ne froisser personne?
    A l'heure du terminal de M$, plus le temps de traîner.

  15. #15
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    PEBCAK !


    ce n'est pas le terminal qui ne respecte pas les règles; il était là avant.
    </hors-sujet>
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  16. #16
    Membre éprouvé

    Homme Profil pro
    Consultant ERP
    Inscrit en
    Janvier 2013
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 372
    Points : 1 202
    Points
    1 202
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    PEBCAK !


    ce n'est pas le terminal qui ne respecte pas les règles; il était là avant.
    </hors-sujet>
    Old man yells at cloud!

  17. #17
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 564
    Points : 7 285
    Points
    7 285
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Je ne vois pas où est le soucis de la portabilité, puisque ce sont des appels systèmes que l'on peut appeler depuis la librairie standard du C.

    Et si tu vas par là, pourquoi celui-ci peut-il créer un fichier sans passer par touch ?
    Au temps pour moi. Je ne sais pas pourquoi j'avais l'impression que tu parlais de construire des commandes par dessus les commandes natives.

    Par contre du coup j'ai un doute: dans ton premier post, tu parlais du langage bash pour scripter et non du shell? En gros, quand tu demandais des fonctions bash pour manipuler des fichiers, c'était pour éviter de faire référence aux commandes natives dans tes scripts, c'est bien ça?
    Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros!


    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
     
    int main(int argc, char **argv) {
     
        printf("So long, and thanks for the fish, Dennis...\n");
        return 0;
    }

  18. #18
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    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 273
    Points : 12 708
    Points
    12 708
    Par défaut
    Oui, le but est de pouvoir tout faire en Built-in bash (ou shell).
    Cordialement.

  19. #19
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 564
    Points : 7 285
    Points
    7 285
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Oui, le but est de pouvoir tout faire en Built-in bash (ou shell).
    Okay, je comprend mieux le sens de ton message

    Pour ma part, dès qu'un script devient un peu trop élaboré, je passe à Perl ou à Python.
    Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros!


    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
     
    int main(int argc, char **argv) {
     
        printf("So long, and thanks for the fish, Dennis...\n");
        return 0;
    }

  20. #20
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Je pense qu'il vaut mieux connaitre Bash que Zsh car plus répandu, et Fish perso jamais je l'installerais, car j'ai pas que ça à faire de tester des produits pour une ou deux nouvelles petites fonctionnalités.

    Pour des choses simples, ils feront tous le job. Pour les choses plus complexes, je suis d'accord avec la remarque qu'au-delà d'une certaine taille, il vaut mieux utiliser un langage, maintenant réécrire un truc from scratch ça prend du temps.

    Maintenant si vous êtes un pro de Bash (ou d'un autre shell), autant l'utiliser à fond.

    Il reste important pour l'innovation que ce type de produit sorte.
    Bonjour

    C'est mon opinion. Pour moi, sh et dans une moindre mesure bash/zsh sont un standard d'entreprise. Et encore! Je me souviens d'un collaborateur qui ne connaissait que zsh et qui s'est retrouvé paumé devant un environnement pur bash.
    Alors, les choses sont claires: sh/bash en entreprise (zsh étant une alternative).
    A la maison, ce que vous voulez ! D'ailleurs, personne n'a mentionné csh ;-)
    Et oui, les habitudes ont la vie dure en entreprise :-)
    C'est bien d'avoir un shell en plus mais, je suis mitigé quand à sa plus-value

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

Discussions similaires

  1. [AC-2013] Access - commande Like ou comme pour les champ vide ou null
    Par m_charmat dans le forum Access
    Réponses: 1
    Dernier message: 07/02/2019, 12h28
  2. Réponses: 1
    Dernier message: 14/08/2008, 09h48
  3. [SHELL] ligne de commande
    Par Youni_1989 dans le forum Linux
    Réponses: 5
    Dernier message: 06/11/2007, 09h54
  4. (shell) php, mysql en ligne de commande
    Par pinpom dans le forum Linux
    Réponses: 2
    Dernier message: 30/08/2007, 08h23

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