Les commandes Linux sont-elles interchangeables avec les commandes Unix?


21

Je trouve que certaines commandes, par exemple, lset pwd, peuvent être utilisées sur les systèmes Linux et Unix.

  • Est-ce que toutes les commandes Linux peuvent être utilisées dans les systèmes Unix et toutes les commandes Unix peuvent être utilisées sous Linux?
  • Ou tout simplement que toutes les commandes Linux peuvent s'exécuter sur Unix mais pas toutes les commandes Unix peuvent s'exécuter sur Linux.
  • Ou que toutes les commandes Unix peuvent s'exécuter sur Linux, mais toutes les commandes Linux ne peuvent pas s'exécuter sur Unix?
  • Ou existe-t-il une référence pour me montrer quelles commandes peuvent s'exécuter à la fois sur Linux et Unix, et où les deux ont leur propre commande unique?

28
Lisez à propos de "POSIX".
Daniel Andersson

1
Notez que ce n'est pas une commande "Linux", c'est une commande GNU. Les outils GNU peuvent être installés sur FreeBSD, par exemple.
new123456

2
Heck, les outils GNU peuvent même être installés sur Unix.
MSalters

Réponses:


37

Le commentaire de Daniel Andersson sur POSIX est la vraie réponse ici: il existe une norme appelée POSIX qui définit le cœur d'un système de type UNIX, à la fois en termes de commandes shell et d'appels système. En théorie, si vous écrivez un logiciel dans la spécification POSIX, il devrait être possible de le compiler et de l'exécuter sur n'importe quel système UNIX, Linux, BSD, etc.

http://pubs.opengroup.org/onlinepubs/009695399/mindex.html vous donnera une réponse définitive quant à ce qui constitue POSIX, mais ce n'est pas une réponse utile à des fins pratiques. Quelqu'un d'autre peut avoir de bonnes références de commande pour les différences communes entre les systèmes Linux et d'autres systèmes de type UNIX.

Un exemple spécifique: "killall" sur Linux tue tous les processus avec un nom particulier. Sous Solaris, il arrête le système. Important de ne pas utiliser le mauvais.


10
@ tchrist- si vous pensez vraiment cela, tapez "sudo apt-get" sur Mac OS X et voyez jusqu'où cela vous mène.
David Robinson

7
@tchrist lorsque Ted Wong a mentionné Linux, il parlait évidemment du système d'exploitation qui est également connu sous le nom de GNU / Linux et il dit juste là au nom que "GNU's Not Unix!" ;)
João Portela

4
En fait, si je comprends bien, Mac OS X EST un Unix certifié - quelque chose que très peu (le cas échéant) des variantes Linux ont atteint. Évidemment, ce ne serait qu'une question de certification selon une norme très basique.
Bill K du

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

4
@Dave Bah. Ne sois pas boiteux. Appelez un chat un chat, un cata cat, et rappelez-vous qu'une rose sous un autre nom aura toujours une odeur douce. Hie thee à une boîte Windows et découvrez ce qu'Unix n'est pas . Mais Linux est bien sûr Unix.
tchrist

18

Aujourd'hui, la plupart des distributions Linux sont livrées avec de nombreux logiciels GNU essentiels et la chaîne d'outils GNU. GNU était un projet de réécriture d'une copie libre en liberté d'Unix qui a ensuite été couplée avec le noyau Linux. Lorsque vous utilisez lssur une machine Unix, vous utilisez l'original / ce qui est devenu l'original ls. Lorsque vous utilisez lssur GNU / Linux, vous utilisez le GNU lsqui a été écrit à partir de zéro pour être le même que ls. Cependant, tous les logiciels GNU ne sont pas exactement les mêmes que leurs homologues Unix. Maintenant qu'Unix est devenu essentiellement BSD, les distributions GNU / Linux peuvent également contenir la version BSD de cet outil. Par exemple, bsdtaret tarvenez à l'esprit.

tl; dr: Ils ne sont pas exactement le même code, mais ils sont pour la plupart exactement identiques.


2
En ce qui concerne les différences, psc'est l'exemple le plus ennuyeux auquel je puisse penser. Différents commutateurs sur différents systèmes (Linux, AIX et Solaris). Format de sortie également différent. Bien que le but de cette commande soit le même sur tous les systèmes.
elmo

5

Vous n'avez pas spécifié de quel UNIX vous parlez (BSD, System V ...). Il n'y a pas de réponse universelle (UNIX). Chaque variante UNIX a ses propres commandes personnalisées (prenez Mac OS X par exemple), donc même entre UNIX il existe des commandes différentes. Habituellement, les anciennes commandes (comme ls, pwd, cd, cp, mv, rm ...) ont tendance à être les mêmes sur toutes les versions UNIX (y compris Linux).



4

Ce que vous devez d'abord considérer, c'est que les commandes sont en fait de petits programmes, en ce sens, ne font pas nécessairement partie du système d'exploitation si vous divisez les cheveux. Les anciens et les classiques existent depuis longtemps et sont inclus dans la plupart des systèmes * nix. Le degré de "complet" du système d'exploitation dépend de ce qui est fourni avec le package.

À titre d'exemple, la plupart des CD de récupération / d'urgence à partir desquels vous pouvez démarrer contiennent une distribution Linux mince, vous constaterez que certaines commandes typiques peuvent ne pas figurer dans ces systèmes, uniquement parce qu'elles ne seraient pas nécessaires dans la plupart des cas.


3

Sur Solaris, il vous suffit d'ajouter /usr/gnu/binà votre chemin ou de l'échanger /usr/binet vos ensembles de commandes seront très similaires

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.