F Qu'est-ce qu'un fichier avec l'extension .sh ?
Il s'agit d'un Bourne shell script . Ils sont utilisés dans de nombreuses variantes de systèmes d'exploitation de type UNIX. Ils n'ont pas de "langage" et sont interprétés par votre shell (interpréteur de commandes de terminal) ou si la première ligne est de la forme
#!/path/to/interpreter
ils utiliseront cet interpréteur particulier. Votre fichier contient la première ligne :
#!/bin/bash
et cela signifie qu'il utilise le Bourne Again Shell, appelé bash. Il s'agit, à toutes fins utiles, d'un remplacement du bon vieux sh.
En fonction de l'interprète, vous aurez une langue différente dans laquelle le fichier est écrit.
Gardez à l'esprit que dans le monde UNIX, ce n'est pas l'extension du fichier qui détermine ce qu'est le fichier (voir Comment exécuter un script shell).
Si vous venez du monde de DOS/Windows, vous connaissez les fichiers portant l'extension .bat ou .cmd (fichiers batch). Ils ne sont pas similaires en termes de contenu, mais se ressemblent en termes de conception.
Comment exécuter un shell script
Contrairement à certains systèmes d'exploitation peu sûrs, *nix ne se base pas exclusivement sur les extensions pour déterminer ce qu'il faut faire avec un fichier. Les permissions sont également utilisées. Cela signifie que si vous essayez d'exécuter le shell script après l'avoir téléchargé, ce sera la même chose que d'essayer d'"exécuter" n'importe quel fichier texte. L'extension ".sh" n'est là que pour votre confort afin de reconnaître ce fichier.
Vous devrez rendre le fichier exécutable. Supposons que vous ayez téléchargé votre fichier en tant que file.sh
que vous pouvez ensuite exécuter dans votre terminal :
chmod +x file.sh
chmod
est une commande permettant de modifier les permissions d'un fichier, +x
définit les autorisations d'exécution (dans ce cas pour tout le monde) et enfin vous avez votre nom de fichier.
Vous pouvez également le faire dans l'interface graphique. La plupart du temps, vous pouvez faire un clic droit sur le fichier et sélectionner les propriétés, dans XUbuntu les options de permissions ressemblent à ceci :
Si vous ne souhaitez pas modifier les permissions. Vous pouvez également forcer le shell à exécuter la commande. Dans le terminal, vous pouvez exécuter :
bash file.sh
Le shell doit être le même que dans la première ligne de votre script.
Est-ce que c'est sûr ?
Vous pouvez trouver bizarre de devoir effectuer une autre tâche manuellement afin d'exécuter un fichier. Mais cela s'explique en partie par un fort besoin de sécurité.
Fondamentalement, lorsque vous téléchargez et exécutez un script bash script, c'est la même chose que quelqu'un qui vous dit "exécutez toutes ces commandes en séquence sur votre ordinateur, je vous promets que les résultats seront bons et sûrs". Demandez-vous si vous faites confiance à la partie qui a fourni ce fichier, demandez-vous si vous êtes sûr d'avoir téléchargé le fichier du même endroit que vous pensiez, peut-être même jetez un coup d'oeil à l'intérieur pour voir si quelque chose ne semble pas à sa place (bien que cela nécessite que vous connaissiez quelque chose aux commandes *nix et à la programmation bash).
Malheureusement, en dehors de l'avertissement ci-dessus, je ne peux pas donner une description étape par étape de ce que vous devez faire pour empêcher que des choses maléfiques ne se produisent avec votre ordinateur ; gardez donc à l'esprit que chaque fois que vous recevez et exécutez un fichier exécutable de quelqu'un, vous dites en fait : "Bien sûr, vous pouvez utiliser mon ordinateur pour faire quelque chose".