SH (script shell Unix) — fichier .sh

pérenne

Script de commandes texte pour l'interpréteur shell Unix/Linux, généralement identifié par un shebang.

Le SH est un script de commandes destiné à l’interpréteur shell Unix (bash, sh, zsh, entre autres), l’équivalent du BAT dans l’écosystème Unix/Linux/macOS, capable d’automatiser des tâches système avec une richesse de contrôle bien supérieure à celle du batch Windows classique.

Ce format n’a pas de signature binaire garantie au sens strict. La convention du “shebang” — une première ligne commençant par “#!” suivie du chemin de l’interpréteur à utiliser, comme “#!/bin/sh” — permet à un système Unix de savoir avec quel programme exécuter le script, mais la norme POSIX précise explicitement que le comportement d’un script sans shebang reste non spécifié : un script shell portable n’est donc pas tenu d’en comporter un.

Un script shell doit disposer du droit d’exécution sur le système de fichiers pour être lancé directement ; sans ce droit, il ne peut être exécuté qu’en le passant explicitement en argument à un interpréteur shell, une distinction propre aux systèmes Unix qui n’a pas d’équivalent direct sous Windows.

Plusieurs interpréteurs coexistent sous une même famille de scripts shell (sh POSIX minimal, bash très répandu et enrichi, zsh, fish à la syntaxe plus divergente), ce qui signifie qu’un script portable doit se limiter aux fonctionnalités communes ou déclarer explicitement l’interpréteur précis qu’il requiert via son shebang.

Debian et Ubuntu, parmi les distributions Linux les plus répandues, font pointer /bin/sh vers dash plutôt que vers bash pour des raisons de rapidité de démarrage : un script écrit avec un shebang #!/bin/sh mais utilisant des extensions propres à bash (“bashismes”) peut donc échouer silencieusement ou se comporter différemment sur ces systèmes, un piège classique pour qui suppose à tort une équivalence totale entre les deux interpréteurs.

Signature binaire

Ce format n'a pas de signature binaire fiable : il ne peut pas être identifié de façon certaine par ses seuls premiers octets.

Vérifier qu'un fichier porte bien cette signature →

Sécurité

Peut contenir des scripts exécutables.

Exécute directement des commandes système : un script malveillant peut modifier ou endommager le système, en fonction des droits accordés à son exécution.

Auditer les métadonnées de ce format →

Questions fréquentes

Comment ouvrir un fichier .sh ?

Terminal Unix/Linux/macOS (exécution native) permet d'ouvrir gratuitement un fichier .sh. Voir la liste complète des logiciels compatibles ci-contre.

Quel est le type MIME du format SH (script shell Unix) ?

Le type MIME du format SH (script shell Unix) est text/x-shellscript.

Le format SH (script shell Unix) (.sh) est-il encore utilisé aujourd'hui ?

Oui, le format SH (script shell Unix) est pérenne : il reste activement utilisé et pris en charge par les logiciels actuels.

Peut-on ouvrir un fichier .sh sur mobile, sans installer d'application ?

Aucun outil web n'est référencé sur cette fiche pour ce format : l'ouverture nécessite un logiciel de bureau (voir la liste « Avec quoi l'ouvrir » ci-contre).

Pourquoi mon fichier .sh ne s'ouvre-t-il pas ?

Les causes les plus fréquentes sont l'absence de logiciel compatible installé, un téléchargement ou un transfert incomplet, ou une extension qui ne correspond plus au contenu réel du fichier. Voir le guide complet sur les causes possibles, ou vérifier le format réel avec l'identifieur de fichier.

Un fichier .sh présente-t-il des risques de sécurité ?

Exécute directement des commandes système : un script malveillant peut modifier ou endommager le système, en fonction des droits accordés à son exécution. Il peut contenir des scripts exécutables.

Un fichier ne s'ouvre pas : les causes possibles →

Comment savoir si un fichier est corrompu →

Sources

Dernière mise à jour :