Sie können nicht definitiv feststellen, ob ein Befehl intern oder extern ist, indem Sie ihn in einer Eingabeaufforderung betrachten. Hier ist der Grund:
Was sind interne und externe Befehle?
* interne Befehle sind in der Schale selbst eingebaut (wie Bash oder ZSH). Sie sind keine separaten Programme und führen direkt im Shell -Prozess aus. Beispiele:`CD`,` echo`, `exit``.
* externe Befehle sind separate Programme, die auf dem Dateisystem gespeichert sind (normalerweise in Verzeichnissen wie /bin, /usr /bin usw.). Die Shell muss diese Dateien lokalisieren und ausführen. Beispiele:`ls`,` cat`, `grep`.
Warum Sie nicht nur schauen:
1. Keine visuelle Unterscheidung: Shells differenzieren in der Eingabeaufforderung nicht visuell zwischen internen und externen Befehlen. Beide sehen gleich aus, wenn Sie sie eingeben.
2. Alias und Funktionsmaskierung: Sie können Aliase oder Funktionen erstellen, die externe Befehle mit demselben Namen maskieren. Zum Beispiel könnten Sie einen Alias namens "Ls" haben, der `ls -lrt` ausgeführt wird.
So finden Sie heraus, ob ein Befehl intern oder extern ist:
1. `type` Befehl: Die zuverlässigste Methode ist die Verwendung des Befehls "Typ". Es gibt Ihnen die Art von Befehl und seinen Standort mit, wenn es extern ist.
`` `bash
Typ CD
Typ ls
`` `
2. Befehl `help` (für einige Shells): In einigen Shells (wie Bash) können Sie den Befehl "help" verwenden. Wenn es sich um einen internen Befehl handelt, zeigt es Ihnen seine Verwendung. Wenn nicht, bedeutet dies normalerweise, dass es extern ist.
`` `bash
Hilf CD
Helfen Sie Ls
`` `
3. `welch 'Command (für externe Befehle): Mit dem Befehl "welch" hilft Ihnen die ausführbare Datei eines * externen * Befehls zu finden. Wenn es es nicht findet, kann es ein interner Befehl sein oder nicht existieren.
`` `bash
welches ls
`` `
Kurz gesagt, verlassen Sie sich nicht auf visuelle Hinweise. Verwenden Sie die entsprechenden Befehle, um festzustellen, ob ein Befehl intern oder extern ist.