piątek,
Linux: Polecenia zewnętrzne i wbudowane
W systemach Linux istnieje rozróżnienie między zewnętrznymi poleceniami (znajdującymi się w systemie plików jako oddzielne programy) a wbudowanymi poleceniami powłoki (shell built-ins).
Polecenia zewnętrzne (external commands)
- Definicja
- Są to programy zainstalowane na dysku systemowym, które powłoka uruchamia jako oddzielne procesy.
- Przykłady
ls
,grep
,awk
,sed
,ping
.
- Lokalizacja
- Zwykle znajdują się w katalogach wskazanych przez zmienną środowiskową
PATH
, np./bin
,/usr/bin
.
- Zwykle znajdują się w katalogach wskazanych przez zmienną środowiskową
- Sposób identyfikacji
- Użyj polecenia
which
lubtype -a
w powłoce Bash, aby zlokalizować plik wykonywalny. Na przykład:which ls
lubtype -a ls
.
- Użyj polecenia
Polecenia wbudowane (shell built-ins)
- Definicja
- Są to polecenia zaimplementowane bezpośrednio przez powłokę (taką jak np. bash), nie jako oddzielne programy.
- Przykłady
cd
,echo
,history
,alias
,exit
.
- Funkcje
- Zwykle służą do manipulowania środowiskiem powłoki, zarządzania zadaniami i kontrolą przepływu w skryptach.
- Sposób identyfikacji
- Aby sprawdzić, czy polecenie jest wbudowane, użyj
type
. Na przykład:type cd
.
- Aby sprawdzić, czy polecenie jest wbudowane, użyj
Jak rozróżnić?
- Użyj polecenia
type
w bash. Na przykład, wykonanie komendytype [nazwa_polecenia]
da informację, czy jest to polecenie wbudowane, czy zewnętrzne. Przykład
type echo # Wbudowane type ls # Zewnętrzne
Uwagi
- Wbudowane polecenia są zwykle szybsze, ponieważ nie wymagają uruchamiania nowego procesu.
- Niektóre funkcje, takie jak zmiana katalogu roboczego (
cd
), muszą być wbudowane, ponieważ zmiana przez zewnętrzny proces nie wpłynęłaby na obecną powłokę. - Informacja, czy polecenie jest wbudowane, może być ważna podczas pisania skryptów, aby wiedzieć, jak będzie działać i jakie jest wymagane środowisko.
- Pamiętaj, że różne powłoki (bash, zsh, fish itd.) mogą mieć różne zestawy poleceń wbudowanych.