Benutzer:Messerjokke79/Werkstatt/OS/Unix/sh

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

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.


  1. https://www.freebsd.org/doc/de_DE.ISO8859-1/articles/linux-users/shells.html https://www.freebsd.org/cgi/man.cgi?query=sh&sektion=1&manpath=freebsd-release-ports
  2. https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sh.html