Uważam, że niektóre polecenia, na przykład, ls
i pwd
mogą być stosowane w systemach Linux i Unix.
- Czy to dlatego, że wszystkie komendy Linuksa mogą być używane w systemach Unix, a wszystkie komendy Unixa mogą być używane w Linuksie?
- Lub po prostu, że wszystkie komendy Linuksa mogą działać na Uniksie, ale nie wszystkie komendy Unixa mogą działać na Linuksie.
- Czy też wszystkie polecenia Uniksa mogą działać w systemie Linux, ale nie wszystkie polecenia Linuxa mogą działać w systemie Unix?
- Czy jest też odniesienie, które pokazuje mi, które polecenia mogą być uruchamiane zarówno na Linuksie, jak i na Uniksie, i gdzie oba mają swoje własne unikalne polecenia?
Odpowiedzi:
Komentarz Daniela Anderssona na temat POSIX jest tutaj prawdziwą odpowiedzią: istnieje standard o nazwie POSIX, który definiuje jądro systemu podobnego do UNIX, zarówno pod względem poleceń powłoki, jak i wywołań systemowych. Teoretycznie, jeśli piszesz oprogramowanie zgodnie ze specyfikacją POSIX, powinna istnieć możliwość skompilowania i uruchomienia go na dowolnym systemie UNIX, Linux, BSD itp.
http://pubs.opengroup.org/onlinepubs/009695399/mindex.html poda ostateczną odpowiedź na temat tego, co stanowi POSIX, ale nie jest to przydatna odpowiedź do celów praktycznych. Ktoś inny może mieć dobre referencje poleceń dla typowych różnic między systemami Linux i innymi systemami podobnymi do UNIX.
Jeden konkretny przykład: „killall” w systemie Linux zabija wszystkie procesy o określonej nazwie. W systemie Solaris wyłącza system. Ważne, aby nie używać niewłaściwego.
źródło
cat
cat
Obecnie większość dystrybucji Linuksa zawiera wiele niezbędnych programów GNU i GNU Toolchain. GNU było projektem przepisania wolnej od wolności kopii systemu Unix, która później została sparowana z jądrem Linuksa. Kiedy używasz
ls
na maszynie uniksowej, używasz oryginału / co się stało z oryginałemls
. Kiedy używaszls
na GNU / Linux, używasz GNU,ls
który został napisany od zera, aby był taki sam jakls
. Jednak nie całe oprogramowanie GNU jest dokładnie takie samo jak jego uniksowe odpowiedniki. Teraz, gdy Unix zasadniczo zmienił się w BSD, dystrybucje GNU / Linux mogą również zawierać wersję tego narzędzia BSD. Na przykładbsdtar
itar
przyjdź do głowy.tl; dr: Nie są dokładnie tym samym kodem, ale w większości mają być dokładnie takie same.
źródło
ps
jest to najbardziej denerwujący przykład, jaki mogę wymyślić. Różne przełączniki w różnych systemach (Linux, AIX i Solaris). Również inny format wyjścia. Chociaż cel tego polecenia jest taki sam we wszystkich systemach.Nie określono, o którym systemie UNIX mówisz (BSD, System V ...). Nie ma uniwersalnej odpowiedzi (UNIX). Każdy wariant systemu UNIX ma własne polecenia niestandardowe (na przykład Mac OS X), więc nawet między systemami UNIX istnieją różne polecenia. Zwykle stare polecenia (takie jak ls, pwd, cd, cp, mv, rm ...) wydają się być takie same we wszystkich wersjach UNIX (w tym Linux).
źródło
Należy przede wszystkim wziąć pod uwagę, że polecenia to tak naprawdę małe programy, w tym sensie niekoniecznie część systemu operacyjnego, jeśli dzielisz włosy. Stare i klasyczne istnieją już od dawna i są zawarte w większości systemów * nix. To, jak „kompletny” jest system operacyjny, zależy od tego, co jest dostarczane z pakietem.
Jako przykład, że większość płyt CD do odzyskiwania / awaryjnych, z których można uruchomić, zawiera wąską dystrybucję Linuksa, można zauważyć, że niektóre typowe polecenia mogą nie być dostępne w tych systemach, tylko dlatego, że w większości przypadków nie byłyby potrzebne.
źródło
Na solaris musisz po prostu dodać
/usr/gnu/bin
swoją ścieżkę lub wymienić ją,/usr/bin
a twoje zestawy poleceń będą bardzo podobneźródło