Encuentro que algunos comandos, por ejemplo, ls
y 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?
Respuestas:
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.
fuente
cat
acat
, 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.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
ls
en una máquina Unix, está usando el original / lo que se ha convertido del originalls
. Cuando lo usals
en GNU / Linux, está usando el GNUls
que fue escrito desde cero para que sea el mismols
. 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,bsdtar
ytar
viene a la mente.tl; dr: No son exactamente el mismo código, pero en su mayoría deben ser exactamente iguales.
fuente
ps
es 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.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).
fuente
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.
fuente
En solaris solo tiene que agregar
/usr/gnu/bin
a su ruta o intercambiarla/usr/bin
y sus conjuntos de comandos serán muy similaresfuente