Linux命令可以与Unix命令互换吗?


21

我发现某些命令(例如lspwd)可以在Linux和Unix系统上使用。

  • 是否所有Linux命令都可以在Unix系统中使用,并且所有Unix命令都可以在Linux中使用?
  • 或者仅仅是所有Linux命令都可以在Unix上运行,但并非所有Unix命令都可以在Linux上运行。
  • 还是所有Unix命令都可以在Linux上运行,但不是所有Linux命令都可以在Unix上运行?
  • 还是有参考资料可以告诉我哪些命令可以在Linux和Unix上运行,而哪些地方都有自己的独特命令?

28
了解有关“ POSIX”的信息。
Daniel Andersson '02

1
请注意,这不是“ Linux”命令,而是GNU命令。例如,可以将GNU工具安装在FreeBSD上。
new123456'2

2
哎呀,GNU工具甚至可以安装在Unix上。
MSalters 2012年

Answers:


37

丹尼尔·安德森(Daniel Andersson)对POSIX的评论才是真正的答案:有一个名为POSIX的标准,它在外壳命令和系统调用方面定义了类UNIX系统的核心。从理论上讲,如果您按照POSIX规范编写软件,则应该可以在任何UNIX,Linux,BSD等系统上进行编译和运行。

http://pubs.opengroup.org/onlinepubs/009695399/mindex.html将为您提供有关POSIX组成的明确答案,但这对于实际目的不是一个有用的答案。对于Linux系统和其他类似UNIX的系统之间的常见差异,其他人可能会有很好的命令参考。

一个特定的示例:Linux上的“ killall”杀死具有特定名称的所有进程。在Solaris上,它将关闭系统。重要的是不要使用错误的一个。


10
@ tchrist-如果您真的这么认为,请在Mac OS X上键入“ sudo apt-get”,然后看它能走多远。
David Robinson

7
@tchrist,当Ted Wong提到Linux时,他显然是在谈论也称为GNU / Linux的操作系统,并以“ GNU不是Unix!;)
JoãoPortela 2012年

4
实际上,据我了解,Mac OS X是经过认证的Unix,几乎没有Linux变体(如果有的话)。显然,这仅仅是对非常基本的标准进行认证的问题。
Bill K

2
@tchrist 大号 inux下小号Ñ OT Ü NI X
戴夫

4
@戴夫·巴 不要la脚。实话实铁锹,一个cat一个cat,记住玫瑰的任何其他名称仍应照样芳香。将您带到Windows盒中,了解Unix 不是什么。但是Linux当然是Unix。
tchrist 2012年

18

如今,大多数Linux发行版都附带了许多基本的GNU软件和GNU工具链。GNU是一个项目,用于重写Unix的自由复制版本,该副本后来与Linux内核配对在一起。在lsUnix机器上使用时,您使用的是原始文件/原始文件的内容lsls在GNU / Linux上使用时,您使用的是GNU ls,它是从头开始编写的,与相同ls。但是,并非所有GNU软件都与Unix版本完全相同。既然Unix已经基本上变成了BSD,GNU / Linux发行版可能还包含该工具的BSD版本。例如,bsdtartar脑海里浮现。

tl; dr:它们不是完全相同的代码,但是它们在大多数情况下都应该完全相同。


2
至于差异,这ps是我能想到的最令人讨厌的例子。不同系统(Linux,AIX和Solaris)上的不同开关。输出的格式也不同。尽管该命令的目的在所有系统上都是相同的。
elmo '02

5

您没有指定要谈论的UNIX(BSD,System V ...)。没有通用(UNIX)答案。每个UNIX变体都有其自己的自定义命令(例如Mac OS X),因此,即使在UNIX之间,也存在不同的命令。通常,旧命令(例如ls,pwd,cd,cp,mv,rm等)在所有UNIX版本(包括Linux)上通常都是相同的。



4

您首先需要考虑的是命令实际上是小型程序,从这种意义上说,如果您割断头发,它们不一定是操作系统的一部分。古老的和经典的已经存在很长时间了,并且被大多数* nix系统所包含。操作系统到底有多“完善”取决于软件包附带的内容。

例如,您可以从中启动的大多数恢复/紧急CD都包含一个苗条的Linux发行版,您会发现这些系统中可能未包含一些典型命令,纯粹是因为在大多数情况下并不需要它们。


3

在solaris上,您只需添加/usr/gnu/bin或交换路径/usr/bin,命令集将非常相似

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.