Z twoich komentarzy wydaje się, że nie rozumiesz dokładnie, czym jest powłoka . Jądro jest odpowiedzialne za zarządzanie systemem. Jest to część, która faktycznie ładuje i uruchamia programy, uzyskuje dostęp do plików, przydziela pamięć itp. Ale jądro nie ma interfejsu użytkownika; możesz się z nim komunikować tylko za pomocą innego programu jako pośrednika.
Powłoka to program, który drukuje monit, odczytuje wiersz danych wejściowych, a następnie interpretuje go jako jedno lub więcej poleceń do manipulowania plikami lub uruchamiania innych programów. Przed wynalezieniem GUI powłoka była podstawowym interfejsem użytkownika systemu operacyjnego. W MS-DOS wywołano powłokę command.com
i niewiele osób próbowało użyć innej. Jednak w Uniksie od dawna istnieje wiele powłok, z których użytkownicy mogą wybierać.
Można je podzielić na 3 typy. Powłoki kompatybilne z Bourne używają składni pochodzącej z oryginalnej powłoki Bourne . Muszli C stosować składnię z pierwotnej powłoki C . Są też nietradycyjne powłoki, które wymyślają własną składnię lub pożyczają jedną z jakiegoś języka programowania i są na ogół znacznie mniej popularne niż dwa pierwsze typy.
Wbudowane polecenie jest po prostu poleceniem wykonywanym przez powłokę, zamiast interpretować ją jako żądanie załadowania i uruchomienia innego programu. Ma to dwa główne efekty. Po pierwsze, zwykle jest szybszy, ponieważ ładowanie i uruchamianie programu wymaga czasu. Oczywiście im dłużej trwa uruchomienie polecenia, tym mniej znaczący jest czas ładowania w porównaniu do całkowitego czasu pracy (ponieważ czas ładowania jest dość stały).
Po drugie, wbudowane polecenie może wpływać na wewnętrzny stan powłoki. Dlatego polecenia takie cd
muszą być wbudowane, ponieważ zewnętrzny program nie może zmienić bieżącego katalogu powłoki. Inne polecenia, na przykład echo
, mogą być wbudowane w celu zwiększenia wydajności, ale nie ma żadnego wewnętrznego powodu, że nie mogą to być polecenia zewnętrzne.
To, które polecenia są wbudowane, zależy od używanej powłoki. Będziesz musiał zapoznać się z jego dokumentacją, aby uzyskać listę (np. bash
Wbudowane polecenia są wymienione w rozdziale 4 podręcznika ). type
Polecenie może powiedzieć, czy polecenie jest wbudowane (jeśli powłoka jest zgodny z POSIX), ponieważ POSIX wymaga, by type
być wbudowane. Jeśli which
nie jest wbudowany w twoją powłokę, to prawdopodobnie nie będzie wiedział o wbudowanych powłokach, ale będzie po prostu szukał programów zewnętrznych.