如何判断我的系统是Unix还是Linux?


8

如何判断我的系统是Unix还是Linux?

我正在使用2010年份的Macbook Pro。


7
你为此花了多少钱?
mikeserv

3
术语“ Unix”至少有四个不同的定义:1)Bell Labs的一系列操作系统,2)从1)的源代码派生的操作系统家族,3)任何操作系统已通过The Open Group认证的系统(或3a),将通过The Open Group认证但负担不起认证费的任何操作系统),4)任何外观和感觉类似“ Unix”的操作系统。例如,除了像Android这样的专业发行版外,大多数Linux发行版都属于4),一些低于3a)和少数低于3)。
约尔格W¯¯米塔格

1
OTOH,即使OSX低于2)和3),我也认为它不低于4)。Windows NT(至少在某些版本中)满足3),但绝对不能满足4)。
约尔格W¯¯米塔格

Answers:


17

POSIX定义uname(“ Unix名称”)以提供有关操作系统和硬件平台的信息;running uname给出了操作系统实现的名称(或根据coreutils文档,是内核)。您可以在终端中以交互方式执行此操作,也可以在脚本中使用输出。

在Linux系统上,uname将打印Linux

在Mac OS X系统上,uname将打印Darwin。(严格来说,任何具有Darwin内核的操作系统都会产生这种情况,但是在这种情况下,除了Mac OS X之外,您几乎不可能遇到其他任何情况。)

这将使您能够确定正在运行的Mac。正如Rob所指出的,如果您正在运行Mac OS X(Darwin如所指示uname),则您正在运行Unix认证版本;如果您正在运行Linux,那么您就不是。

在Mac上,还有许多其他可能性。你的脚本最终可能会在Solaris上运行(uname将打印SunOS的话),在FreeBSD(FreeBSD使用Cygwin(),在Windows上CYGWIN),MSYS或MSYS2( MSYS),一个与MinGW或MinGW的-W64外壳(MINGW64MINGW32)的Interix( Interix),并可能其他人我不知道

uname -a会打印出由确定的所有可用信息uname,但是很难解析。


问题是,uname不能证明它正在运行Unix。它仅给出可能不是Unix系统的OS的名称。例如,Linux不是Unix。
罗布(Rob)2015年

@Rob,斯特凡还是我都没有这样说过;实际上,我们在Linux和Unix(或Mac OS X)之间有明显的区别。
Stephen Kitt 2015年

3

除非您安装了其他软件,否则Mac不会运行Linux。Macbook确实运行Apple的OSX操作系统,该操作系统已通过Unix认证,因此可以回答您的问题。


当然,某些版本的Linux也已通过Unix认证,因此问题就变成了它在运行Linux还是Unix?
约尔格W¯¯米塔格

@JörgWMittag我看到唯一被认证为Unix的Linux版本是运行IBM的SUSE的LDAP服务器,但是没有其他人曾经或曾经或可能曾经有过。我的答案还是一样。如果他未在Mac上安装Linux,则他正在运行OSX,即Unix。
罗布(Rob)2015年

2

答案是:

uname -a

要么:

cat /proc/version

打开一个终端窗口,然后输入“ uname -a”,然后返回。
Baazigar 2015年

1
如果cat /proc/version产生错误消息,我可以推断出什么操作系统cat: /proc/version: No such file or directory
kasperd

看它/ etc / fstab,看那里指示的文件类型。如果像ext3,ext4,xfs一样,那就是linux。如果它像jfs,gpfs,hfs,hfs +,则是unix。
Baazigar 2015年

如果您看到xfs它可能是IRIX ;-)。(但不能在Mac上,我给你!)
Stephen Kitt 2015年
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.