Benutzer:Messerjokke79/Werkstatt/OS/Unix/sh
Unter sh ist einerseits eine durch POSIX genormte ideelle Shell mit Befehlszeileninterpreter zu verstehen.
Andererseits meint sh eine ausführbare Datei in aktuellen Unix- und ähnlichen Betriebsystemen, deren Aufruf eine reelle POSIX-konforme/-kompatible Shell startet. Diese Datei liegt in der Regel unter /bin/sh. Oftmals ist dies eine symbolische Verknüpfung zu der Programmdatei oder eine Kopie der Programmdatei einer Shell wie Bash (/bin/bash), Dash (/bin/dash), Kornshell (/bin/ksh), Zsh (/bin/zsh) etc. Bei FreeBSD hingegen ist sh unter /bin/sh tatsächlich eine POSIX-kompatible Shell mit dem schlichten Namen Shell.[1]
Lediglich in einem historischen Kontext ist mit sh konkret die alte Bourne-Shell aus AT&T UNIX V7 gemeint, die unter /bin/sh ihren Platz hatte. Die Bourne-Shell ist nicht POSIX-kompatibel da der Standard erst viel später entstand. POSIX ist allerdings kompatibel zur Bourne-Shell da für die Entwicklung des Standards die Kornshell als Grundlage herangezogen wurde, welche ebenfalls bei AT&T entstand und eine abwärtskompatible Weiterentwicklung der Bourne-Shell mit C-Shell-Elementen darstellt.
POSIX gibt keinen Pfad für die ausführbare Datei sh vor.[2] Üblicherweise befindet sie sich unter /bin/sh.