¿Los comandos de Linux son intercambiables con los comandos de Unix?

21

Encuentro que algunos comandos, por ejemplo, lsy pwd, pueden usarse en sistemas Linux y Unix.

  • ¿Es que todos los comandos de Linux se pueden usar en los sistemas Unix y todos los comandos de Unix se pueden usar en Linux?
  • O simplemente que todos los comandos de Linux pueden ejecutarse en Unix, pero no todos los comandos de Unix pueden ejecutarse en Linux.
  • ¿O que todos los comandos de Unix pueden ejecutarse en Linux, pero no todos los comandos de Linux pueden ejecutarse en Unix?
  • ¿O hay una referencia para mostrarme qué comandos pueden ejecutarse tanto en Linux como en Unix, y dónde ambos tienen su propio comando único?
Ted Wong
fuente
28
Lea sobre "POSIX".
Daniel Andersson
1
Tenga en cuenta que no es un comando "Linux", es un comando GNU. Las herramientas GNU se pueden instalar en FreeBSD, por ejemplo.
nuevo123456
2
Diablos, las herramientas GNU incluso se pueden instalar en Unix.
MSalters

Respuestas:

37

El comentario de Daniel Andersson sobre POSIX es la respuesta real aquí: hay un estándar llamado POSIX que define el núcleo de un sistema similar a UNIX, tanto en términos de comandos de shell como de llamadas al sistema. En teoría, si escribe software para la especificación POSIX, debería ser posible compilarlo y ejecutarlo en cualquier sistema UNIX, Linux, BSD, etc.

http://pubs.opengroup.org/onlinepubs/009695399/mindex.html le dará una respuesta definitiva sobre lo que constituye POSIX, pero esa no es una respuesta útil para fines prácticos. Alguien más puede tener buenas referencias de comandos para diferencias comunes entre sistemas Linux y otros sistemas similares a UNIX.

Un ejemplo específico: "killall" en Linux mata todos los procesos con un nombre particular. En Solaris, apaga el sistema. Importante no usar el incorrecto.

pjc50
fuente
10
@ tchrist- si realmente piensa eso, escriba "sudo apt-get" en Mac OS X y vea hasta dónde llega.
David Robinson
77
@tchrist cuando Ted Wong mencionó Linux, obviamente estaba hablando del sistema operativo que también se conoce como GNU / Linux y dice allí mismo en el nombre que "GNU's Not Unix!" ;)
João Portela
44
En realidad, según tengo entendido, Mac OS X ES un Unix certificado, algo que muy pocas (si alguna) de las variantes de Linux lograron. Obviamente, esto sería solo una cuestión de certificación según un estándar muy básico.
Bill K
2
@tchrist L inux I s N ot U ni X
Dave
44
@Dave Bah. No seas cojo. Llame a las cosas por su nombre, a cata cat, y recuerde que una rosa con cualquier otro nombre todavía huele tan dulce. Acércate a un cuadro de Windows y descubre qué no es Unix . Pero Linux es, por supuesto, Unix.
tchrist
18

La mayoría de las distribuciones de Linux hoy vienen con un montón de software GNU esencial y la cadena de herramientas GNU. GNU fue un proyecto para reescribir una copia gratuita de Unix que luego se emparejó con el kernel de Linux. Cuando lo usa lsen una máquina Unix, está usando el original / lo que se ha convertido del original ls. Cuando lo usa lsen GNU / Linux, está usando el GNU lsque fue escrito desde cero para que sea el mismo ls. Sin embargo, no todo el software GNU es exactamente igual a sus contrapartes de Unix. Ahora que Unix se ha convertido esencialmente en BSD, las distribuciones de GNU / Linux también pueden contener la versión BSD de esa herramienta. Por ejemplo, bsdtary tarviene a la mente.

tl; dr: No son exactamente el mismo código, pero en su mayoría deben ser exactamente iguales.

Jimmy Zelinskie
fuente
2
En cuanto a las diferencias, este pses el ejemplo más molesto que se me ocurre. Diferentes conmutadores en diferentes sistemas (Linux, AIX y Solaris). También diferente formato de salida. Aunque el propósito de ese comando es el mismo en todos los sistemas.
elmo
5

No especificó de qué UNIX está hablando (BSD, System V ...). No hay una respuesta universal (UNIX). Cada variante de UNIX tiene sus propios comandos personalizados (tome Mac OS X por ejemplo), por lo que incluso entre UNIX hay diferentes comandos. Por lo general, los comandos antiguos (como ls, pwd, cd, cp, mv, rm ...) tienden a ser los mismos en todos los sabores de UNIX (incluido Linux).

m0skit0
fuente
4

Lo que debe considerar primero es que los comandos son en realidad programas pequeños, en ese sentido, no necesariamente una parte del sistema operativo si divide los pelos. Los antiguos y los clásicos han existido durante mucho tiempo, y están incluidos en la mayoría de los sistemas * nix. Qué tan "completo" es el sistema operativo depende de lo que viene con el paquete.

Como ejemplo, la mayoría de los CD de recuperación / emergencia desde los que puede arrancar contienen una distribución delgada de Linux, encontrará que algunos comandos típicos podrían no aparecer en estos sistemas, simplemente porque no serían necesarios en la mayoría de los casos.

posdef
fuente
3

En solaris solo tiene que agregar /usr/gnu/bina su ruta o intercambiarla /usr/biny sus conjuntos de comandos serán muy similares

Linda Kateley
fuente