Partage
  • Partager sur Facebook
  • Partager sur Twitter

Différence entre bash et batch

et s'il existe d'autres "langages" de ce genre

Sujet résolu
20 janvier 2018 à 22:31:04

Bonjour j'ai essayer de chercher sur google et sur d'autres forums ( comme celui d'openclassrooms ) mais je ne trouve pas de réponse concrète à quelle est la différence entre batch et bash.

J'ai essayé de comprendre ( dites-moi si je me trompe ), mais je crois que que bash c'est pour la console de MS-DOS ( window ) et que batch, pour le terminal de UNIX ( OSX et LINUX), mais je ne suis pas dutout sûr.

Et j'aimerai aussi savoir (désolé si je suis énervant à poser plein de question mais je m'y perd ) à quoi nous serves ces "languages", quelle(s) possibilitée(s) nous offres t-ils ( créer des app, programmation, recherche plus rapide, programmer son ordi...). 

 Et y a t-il donc un de ces "langages" qu'il faudrai apprendre en priorité, ou les deux, ou même d'autres.

Merci d'avance pour vos réponses ( je sais que ça ne sera peut-être pas facile à expliquer mais je ferai de mon mieux pour comprendre)

PS : encore désolé pour le ta de questions, j'ai vraiment besoin d'être éclairé;

       Si jamais il y a besoin que j' approfondis une question, pas de soucis :)

-
Edité par anthony_delpuerto 20 janvier 2018 à 22:32:51

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
20 janvier 2018 à 22:42:14

Salut, alors je suis pas informaticien mais je vais essayer de te répondre malgré mes lacunes. Je sais pas si tu sais ce que c'est une console, en gros pour vulgariser c'est la couche la plus haute du système d'exploitation, c'est pour ça qu'on appelle ça un terminal ou un shell (coquille en anglais).

Voilà à quoi ça ressemble une console sur Windows :

 

C'est dans cette interface que tu vas pouvoir utiliser batch sous forme de script ou en commande.

Pour administrer un système on utilise différents langages qui sont spécifiques aux plateformes auxquelles ils se rapportent.

En gros sur  windows tu vas utiliser du batch ou du powershell et sur des distributions linux tu peux utiliser plusieurs langages (bash étant le plus utilisé).

En ce qui concerne l'utilisation, bash est vraiment plus agréable à utiliser que batch. 

-
Edité par Anonyme 20 janvier 2018 à 22:48:12

  • Partager sur Facebook
  • Partager sur Twitter
20 janvier 2018 à 22:46:24

C'est l'inverse en fait.

bash (Bourne Again Shell) est le successeur du bourne shell (sh)

batch est le langage du system DOS, de la console de windows (hors powershell qui est différent), et a été également utilisé par IBM sur OS/2

Tous deux permettent de manière assez facile de créer des scripts de commande permettant de gagner beaucoup de temps pour qui doit gérer un parc informatique. On peut faire beaucoup de choses que ce soit avec l'un ou l'autre. Ceci dit, l'étendue des capacités des langages de script dépend grandement de la bibliothègue de commandes disponibles.

Ainsi, bash sans les utilitaires de GNU n'ira pas loin. Tout comme batch sans les commandes de base disponibles sous les os MICROSOFT.

Ainsi, un administrateur réseau + parc informatique sous windows aura tout intérêt à maîtriser quelque peu les rudiments des scripts batch

Sous UNIX, il est indispensable de connaître un minimum de commandes standard ainsi que la syntaxe d'un langage de script. Car en effet, il existe de nombreux interpréteurs de commandes, et donc de langages de script différents. CSH, ZSH, sh, bash, dash (dérivé de ash pour Debian)

Il existe une littérature extrêmement fournie sur e net concernant les deux exemples que tu cites.

Bienvenue dans le monde du shell scripting, c'est très gratifiant et stimulant. On réussit en général à réaliser de petits projets plus rapidement qu'en C, et aussi vite qu'en python.

Le côté rébarbatif se trouve dans la syntaxe extrêmement rigoureuse et le debug parfois compliqué.

-
Edité par ezechiel203 21 janvier 2018 à 0:38:09

  • Partager sur Facebook
  • Partager sur Twitter
20 janvier 2018 à 23:46:24

batch n'est pas un langage, c'est un type de traitement (par lot);
de ce que je comprends, c'est la capacité d'un langage à enchaîner automatiquement des commandes, à être scripté en sorte (?).

le langage sur W$, c'est DOS.
sur UNIX/Linux, c'est (ba)sh, ou un des autres shells disponibles. ça dépend de la configuration assignée à l'utilisateur, ou choisie par ce dernier.

eze203 a écrit

Ainsi, un administrateur réseau + parc informatique sous windows aura tout intérêt à maîtriser quelque peu les rudiments des scripts en bash 

tu veux dire DOS, sous winDOwS ?

dash est une adaptation par Debian de ash (Almquist Shell)

  • Partager sur Facebook
  • Partager sur Twitter

Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

21 janvier 2018 à 0:01:36

Post écrit trop vite. cf correc.
  • Partager sur Facebook
  • Partager sur Twitter
21 janvier 2018 à 0:15:34

mais tu maintiens qu'il faut connaître bash pour entretenir un parc sous W$ ?
  • Partager sur Facebook
  • Partager sur Twitter

Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

21 janvier 2018 à 0:34:10

Merci pour ces réponses c'est super sympa et ça m'explique beaucoup de choses.

Juste, on programme bien  le terminal mac os avec bash ?

Et si j'ai bien compris il est plûtot important de connaître ces 2 languages.

Je n'ai juste pas compris à quoi ils pouvez concrètement servir ( les possibilités qu'ils offres et si ces 2 langages que sont bash et batch, offrent des possibilités différentes, lesquels)

Merci beaucoup d'avoir pris le temps de m'expliquer, c'est vraiment sympa merci

-
Edité par anthony_delpuerto 21 janvier 2018 à 0:36:34

  • Partager sur Facebook
  • Partager sur Twitter
21 janvier 2018 à 0:53:44

dantonq a écrit:

mais tu maintiens qu'il faut connaître bash pour entretenir un parc sous W$ ?


batch évidemment... La correction n''était pas passée...?

Je me permets de rectifier un peu. Le terme langage est impropre pour caractériser DOS. DOS est un OS. Ses commandes peuvent êtres articulées selon une syntaxe propre, qu'on appellera alors script de batch ou script batch . Le langage serait donc plutôt, pour être tout à fait précis, "langage de script de type batch basé sur les commandes ms-dos." (on peut faire l'analogie avec le C,  qui représente une grammaire et une syntaxe impératives, et sa librairie standard, qui permet de travailler avec des "outils" de base, tout comme les commandes des langages de shell. La comparaison s'arrête là.)

Anecdote assez amusante, DOS signifie au tout départ Dirty Operating System. 

bash, sh et consorts sont des interpréteurs de commande (et sont devenus par analogie des langages dans la phraséologie commune, bien qu'en toute rigueur, cette notion est erronée.). Les commandes sont fournies par le système sous-jacent (tout comme pour les scripts batch et les commandes DOS), qu'il soit UNIX pur, ou de type GNU/noyau. Le langage pour ce type d'interpréteur est un "langage de script shell basé sur les commandes de type *NIX".

On notera une certaine ressemblance au premier abord entre les divers langages de scripts, mais ce n'est qu'une façade. Leur syntaxe et grammaire sont hautement dépendants de la syntaxe des commandes de base. Autant la proximité est frappante entre les différents *NIX, autant le fossé est large entre les *NIX et les langages de script de Microsoft.

Pour répondre à Anthony, les possibilités des langages de scripts sont éminemment dépendantes des commandes qui l'accompagnent. De  manière tout à fait basique à mon humble avis pour connaître les deux,"out of the box", les possibilités des scripts batch sont inférieures à celles des scripts shell des UNIX et dérivés du fait d'une diversité plus grande de commandes de base. Ceci dit, il est tout à fait possible d'étendre les capacités de ces langages de script en ajoutant d'autres commandes qui répondent à un besoin précis.

On peut alors faire des  choses aussi diverses que de l'archivage compression de données, du traitement de fichiers en lot, du monitoring système, de la gestion de ressources et d'utilisateurs, de la gestion de la sécurité, de la gestion domotique, de la gestion de video surveillance, du loging (enregistrement d’événements sous forme de logs), de la gestion de parc informatique (on peut installer des centaines de machines simultanément avec un seul petit script, de la communication en réseau sous toutes les formes et avec tous les protocoles... j'en passe... Il existe même des possibilités de GUI via des commandes spécialisées. Comme tu le vois, on peut en faire des choses...

-
Edité par ezechiel203 21 janvier 2018 à 1:00:08

  • Partager sur Facebook
  • Partager sur Twitter
21 janvier 2018 à 2:04:46

anthony_delpuerto a écrit:

Je n'ai juste pas compris à quoi ils pouvez concrètement servir ( les possibilités qu'ils offres et si ces 2 langages que sont bash et batch, offrent des possibilités différentes, lesquels)

Deux exemples me viennent en tête (pour bash et autres shell d'Unix) :

1) Un script bash simple donne pour instruction au système de réaliser des sauvegardes incrémentales des données chaque vendredi soir à 22h (par exemple). Ainsi, l'utilisateur n'a rien à faire. On trouve des exemples sur Internet, ce genre de chose : https://artduweb.com/scripting/backup (c'est le premier lien que m'a donné Qwant).

2) L'exemple donné dans le cours de M. Nebra. Son script crée automatiquement des vignettes de ses images, puis crée automatiquement un fichier HTML qui lie ces vignettes aux images. Ainsi, ça engendre automatiquement une page HTML comprenant la liste de ses images sous forme de vignettes cliquables.

Un autre exemple me vient en tête : renommer les fichiers afin que les espaces du nom soient remplacés par des « _ » (sous Linux il est pratique d'avoir des noms de fichiers sans espace). [J'étais un jour tombé sur un script faisant ça, mais ça se trouve on peut le faire en une seule commande ?]

De façon générale, chaque fois qu'on effectue une tâche répétitive en ligne de commande, on peut en faire un script pour que tout soit réalisé automatiquement.

-
Edité par robun 21 janvier 2018 à 2:14:18

  • Partager sur Facebook
  • Partager sur Twitter
21 janvier 2018 à 13:38:53

D'accord, je vais donc commencer par bash.

Du coup, est ce que le terminal de mac os se programme avec le langage script bash ?

Et merci encore pour vos réponses :)

  • Partager sur Facebook
  • Partager sur Twitter
21 janvier 2018 à 15:29:35

Tout à fait. Le shell OSX est bash , bien qu’il fut tcsh

-
Edité par ezechiel203 21 janvier 2018 à 15:31:20

  • Partager sur Facebook
  • Partager sur Twitter
21 janvier 2018 à 16:27:45

D'accord ben merci je pense que je peux m’intentant déclarer ce sujet RÉSOLUT.

Un grand merci à vous, principalement à toi eze203, tu m'as beaucoup aidé et pris le temps de m'aider ; Sans oublié robun, merci à toi tu as bien répondu à ma problématique  , ainsi que dantonq et Aarmada.

-
Edité par anthony_delpuerto 21 janvier 2018 à 16:28:06

  • Partager sur Facebook
  • Partager sur Twitter
5 janvier 2024 à 15:21:39

Merci à vous tous pour vos explications limpides. cheers !
  • Partager sur Facebook
  • Partager sur Twitter
5 janvier 2024 à 21:05:11

@MahrezAITMOHAMMED Bonsoir, pour dire merci pas la peine de déterrer un sujet, vous avez la possibilité de cliquer sur les pouces levés des messages qui vous ont aidés.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ici.

  • Partager sur Facebook
  • Partager sur Twitter