Mit Ausnahme der eingebauten POSIX-Kommandos ist jedem Kommando eine Datei im POSIX-Dateisystem zugeordnet. Die Namen der meisten Kommandodateien sind im Dateiverzeichnis /usr/bin eingetragen. Die Shell-Variable PATH enthält eine Liste von Dateiverzeichnissen, in denen die Kommandos gesucht werden. Bei der Ausführung eines Kommandos liest die POSIX-Shell das Kommando, sucht in den in PATH enthaltenen Dateiverzeichnissen nach dem Dateinamen, der mit dem Kommandonamen identisch ist, und führt das Kommando aus.
Für die Ausführung der nicht eingebauten Kommandos erzeugt die POSIX-Shell einen neuen Prozess und wartet dann, bis dieser fertig ist. Anschließend gibt die POSIX-Shell den Wert der Shell-Variablen PS1 als Bereitzeichen aus (standardmäßig $ für nichtprivilegierte Benutzer oder # für priviligierte Benutzer ); sie kann jetzt ein neues Kommando verarbeiten. Wenn Sie z.B. das Kommando date eingeben, bekommen Sie umgehend das aktuelle Datum ausgegeben. Anschließend gibt die POSIX-Shell das Bereitzeichen aus und ist damit bereit, ein neues Kommando zu verarbeiten.
Bei einem Kommando wie date ist die Zeitspanne sehr klein, die zwischen der Eingabe des Kommandos und der erneuten Empfangsbereitschaft der POSIX-Shell vergeht. Diese Zeitspanne kann aber bei Eingabe eines anderen Kommandos wesentlich größer sein, z.B. beim Übersetzen einer Datei. Denn die POSIX-Shell meldet sich erst zurück, nachdem sie ein Kommando ausgeführt hat. Um längere Wartezeiten an der Datensichtstation zu vermeiden, gibt es das Sonderzeichen &. Wenn Sie eine Kommandoeingabe mit diesem Zeichen beenden, meldet sich die POSIX-Shell sofort mit dem Bereitzeichen am Bildschirm zurück, ohne auf die Ausführung des eingegebenen Kommandos zu warten. Kommandos, die mit & abgeschlossen werden, werden als Hintergrundprozess gestartet, um den Sie sich nicht weiter kümmern müssen.