Czy polecenia Linuksa są wymienne z poleceniami Uniksa?

21

Uważam, że niektóre polecenia, na przykład, lsi pwdmogą 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?
Ted Wong
źródło
28
Przeczytaj o „POSIX”.
Daniel Andersson,
1
Zauważ, że to nie jest polecenie „Linux”, to polecenie GNU. Narzędzia GNU można na przykład zainstalować na FreeBSD.
new123456
2
Heck, narzędzia GNU można nawet zainstalować na Uniksie.
MSalters

Odpowiedzi:

37

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.

pjc50
źródło
10
@ tchrist- jeśli naprawdę tak myślisz, wpisz „sudo apt-get” w systemie Mac OS X i sprawdź, jak daleko cię to zaprowadzi.
David Robinson
7
@ tchrist, kiedy Ted Wong wspomniał o Linuksie, najwyraźniej mówił o systemie operacyjnym, który jest również znany jako GNU / Linux, i mówi wprost tam, że „GNU nie jest Uniksem!” ;)
João Portela
4
W rzeczywistości, jak rozumiem, Mac OS X JEST certyfikowanym Uniksem - osiągnięto bardzo niewiele (jeśli w ogóle) wariantów Linuksa. Oczywiście byłoby to tylko kwestia certyfikacji na bardzo podstawowy standard.
Bill K
2
@ tchrist L inux I s N ot U ni X
Dave
4
@Dave Bah. Nie bądź kulawy. Nazwać rzeczy po imieniu, o i pamiętaj, że róża pod inną nazwą będą nadal jak słodki zapach. Przyjdź do okna Windows i dowiedz się, czym nie jest Unix . Ale Linux to oczywiście Unix. catcat
tchrist
18

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 lsna maszynie uniksowej, używasz oryginału / co się stało z oryginałem ls. Kiedy używasz lsna GNU / Linux, używasz GNU, lsktóry został napisany od zera, aby był taki sam jak ls. 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ład bsdtari tarprzyjdź do głowy.

tl; dr: Nie są dokładnie tym samym kodem, ale w większości mają być dokładnie takie same.

Jimmy Zelinskie
źródło
2
Jeśli chodzi o różnice, psjest 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.
elmo
5

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).

m0skit0
źródło
4

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.

posdef
źródło
3

Na solaris musisz po prostu dodać /usr/gnu/binswoją ścieżkę lub wymienić ją, /usr/bina twoje zestawy poleceń będą bardzo podobne

Linda Kateley
źródło