Linux komutları Unix komutlarıyla değiştirilebilir mi?


21

Bazı komutlar, örneğin, bulmak lsve pwdhem Linux ve Unix sistemleri üzerinde de kullanılabilir.

  • Tüm Linux komutlarının Unix sistemlerinde kullanılabildiği ve tüm Unix komutlarının Linux'ta kullanılabildiği mi?
  • Veya sadece tüm Linux komutları Unix'te çalışabilir, ancak tüm Unix komutları Linux'ta çalışamaz.
  • Ya da tüm Unix komutlarının Linux üzerinde çalışabildiğini, ancak tüm Linux komutlarının Unix üzerinde çalışamadığını?
  • Yoksa hem Linux hem de Unix'te hangi komutların çalıştırılabileceğini ve her ikisinin de kendi benzersiz komutlarının nerede olduğunu bana gösteren bir referans var mı?

28
"POSIX" hakkında okuyun.
Daniel Andersson

1
Bunun bir "Linux" komutu olmadığını, bir GNU komutu olduğunu unutmayın. Örneğin GNU araçları FreeBSD'ye kurulabilir.
yeni123456,

2
Heck, GNU araçları Unix'e bile kurulabilir.
MSalters

Yanıtlar:


37

Daniel Andersson'ın POSIX hakkındaki yorumu burada gerçek bir cevaptır: Hem kabuk komutları hem de sistem çağrıları açısından UNIX benzeri bir sistemin özünü tanımlayan POSIX adı verilen bir standart vardır. Teoride, eğer POSIX'e yazılım yazarsanız, onu herhangi bir UNIX, Linux, BSD etc sisteminde derlemek ve çalıştırmak mümkün olmalıdır.

http://pubs.opengroup.org/onlinepubs/009695399/mindex.html , POSIX’in ne olduğuna dair kesin bir cevap verecektir , ancak bu pratik amaçlar için kullanışlı bir cevap değil. Başka birinin Linux sistemleri ve diğer UNIX benzeri sistemler arasındaki ortak farklar için iyi komut referansları olabilir.

Belirli bir örnek: Linux'taki "killall", tüm işlemleri belirli bir adla öldürür. Solaris'te sistemi kapatır. Yanlış olanı kullanmamak önemlidir.


10
@ tchrist- gerçekten düşünüyorsanız, Mac OS X'e "sudo apt-get" yazın ve sizi ne kadar uzağa götürdüğünü görün.
David Robinson

7
Ted Wong, Linux’tan bahsettiğinde, GNU / Linux olarak da bilinen işletim sisteminden bahsediyordu ve orada “GNU’nun Unix değil!” adını yazıyordu. ;)
João Portela,

4
Aslında, anladığım kadarıyla Mac OS X sertifikalı bir Unix'tir - elde edilen Linux değişkenlerinden çok az (varsa) bir şey. Açıkçası bu sadece çok temel bir standarda bir sertifikalandırma meselesi olacaktır.
Bill K

2
@tchrist L inux I s N yerine U ni X
Dave

4
@Dave Bah. Topal olma. Bir dobra dobra Çağrı Bir cata catve diğer adıyla bir gül hala tatlı olarak kokusu olacaktır unutmayın. Seni bir Windows kutusuna götür ve Unix'in ne olmadığını öğren . Fakat Linux elbette Unix'tir.
tchrist

18

Bugün çoğu Linux dağıtımı birçok temel GNU yazılımı ve GNU Toolchain ile birlikte gelir. GNU, daha sonra Linux çekirdeğiyle birlikte eşleştirilen Unix'in özgürce özgür bir kopyasını yeniden yazma projesiydi. Bir lsUnix makinesinde kullanırken, orijinali / orijinali olanı kullanırsınız ls. Eğer kullandığınız zaman ls, GNU / Linux üzerinde, GNU'yu kullandığınız lsaynı olacak şekilde sıfırdan yazılmıştır ls. Bununla birlikte, tüm GNU yazılımları Unix benzerleriyle aynı değildir. Şimdi Unix temel olarak BSD'ye dönüştüğü için, GNU / Linux dağıtımları da bu aracın BSD versiyonunu içerebilir. Örneğin, bsdtarve tarakla gelen.

tl; dr: Tam olarak aynı kod değiller, ancak çoğu zaman tamamen aynı olması gerekiyor.


2
Farklılıklara gelince ps, düşünebildiğim en can sıkıcı örnek. Farklı sistemlerde farklı anahtarlar (Linux, AIX ve Solaris). Ayrıca farklı çıktı formatları. Bu komutun amacı tüm sistemlerde aynı olmasına rağmen.
Elmo

5

Hangi UNIX'ten bahsettiğinizi belirtmediniz (BSD, Sistem V ...). Evrensel (UNIX) bir cevap yok. Her UNIX varyantının kendi özel komutları vardır (örneğin Mac OS X'i alın), bu nedenle UNIX'ler arasında bile farklı komutlar vardır. Genellikle eski komutlar (ls, pwd, cd, cp, mv, rm ... gibi) tüm UNIX lezzetlerinde (Linux dahil) aynı olma eğilimindedir.



4

Öncelikle düşünmeniz gereken şey, komutların aslında küçük programlar olduğu, bu nedenle eğer tüyleri ayırırsanız işletim sisteminin bir parçası olması gerekmez. Eskiler ve klasikler uzun zamandır etraftalar ve çoğu * nix sistemlerine dahil edilirler. İşletim sisteminin ne kadar “eksiksiz” olduğu, pakette neyin geldiğine bağlı.

Örnek olarak, önyükleyebileceğiniz çoğu kurtarma / acil durum CD'si ince bir Linux dağıtımı içeriyorsa, çoğu durumda gerekmeyeceğinden, bazı tipik komutların bu sistemlerde bulunmayabileceğini görebilirsiniz.


3

Solaris'te /usr/gnu/binyolunuza eklemeniz ya da onunla değiş tokuş etmeniz gerekiyor /usr/binve komut kümeleriniz çok benzer olacak

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.