Hallo!
Shell-internal: Shell-interne Befehle sind in die Shell eingebaut. Bei allen Shell integrierten Befehlen ist die Ausführung gleich schnell, da "die Shell" nicht den angegebenen Pfad in der PATH-Variable suchen muss und auch kein Prozess zum Ausführen erzeugt werden muss.
Shell-external: Shell-externe Befehle sind nicht im Shell integriert. Wenn ein externer Befehl ausgeführt werden muss, sucht "die Shell" nach dem in der PATH-Variable angegebenen Pfad. Außerdem muss ein neuer Prozess erzeugt und der Befehl ausgeführt werden. Sie befinden sich normalerweise in /bin oder /usr/bin. Wenn Sie beispielsweise den Befehl "cat" ausführen, der sich normalerweise in /usr/bin befindet, wird die ausführbare Datei /usr/bin/cat ausgeführt.
In Linux kann dies sehr leicht getestet werden mit dem Befehl type [argument] und argument ist hier der Befehl. Im Screenshot unten kann man erkennen, dass cd, pwd und exit Shell-interne Befehle sind, im Gegensatz zu clear und ls, welche Shell-externe Befehle sind. In meinem Fall wird unter ls nur is aliased angezeigt, jedoch ist ls auch ein externer Befehl.
Ich hoffe, dass ich dir helfen konnte.
LG