Unix和Linux的区别

大家好,我们来谈谈Unix和Linux之间的区别。
上周有顾客问我是不是一样,我直接说:差远了!
我们先来说说Unix。
这家伙历史悠久。
它是 AT&T 在 2 0 世纪 7 0 年代制造的,当时还没有手机,用于与所有人共享 PDP-7 电脑。
后来加州大学伯克利分校拿来并修改了它(称为BSD)。
学校的科研人员非常喜欢它,逐渐产生了FreeBSD、OpenBSD等等。
IBM 和 Sun 等商业公司也开发了自己的版本,AIX 和 Solaris 也是如此。
但这些商业版本相当昂贵,而且代码不公开,所以你无法随意修改。
BSD 方面是开放的,但商业化尚未起飞。

Linux 更年轻。
它是由芬兰的一名大学生Linus Torvalds于1 9 9 1 年创建的,当时他觉得学校使用的Minix太差了,所以他自己写了内核。
这家伙很聪明,直接用C语言写的,而且还拿到了GPL协议,所以代码是完全开放的。
然而,Linux 仅仅有内核是不够的。
它需要各种工具。
例如,您键入 ls 的对象是由 GNU 创建的。
所以Linux系统实际上是由内核+GNU工具+各种软件包组成的。

如何使用?当时 Unix 在企业中非常流行,所有银行和电信都使用它。
但现在硬件已经发生了变化,许多商业 Unix 已经过时了。
例如,ScoUnix 和 Unixware 很早以前就停止使用了。
Solaris已经关闭,IBM和HP版本大多服务于自己的设备。
BSD分支还好,FreeBSD用于存储和网络设备,也是苹果macOS的底层。
Linux 太棒了。
他基本上对服务器有最终决定权。
现在云计算全靠它了。
手机上的Android也使用Linux内核,也常用于物联网设备。
在桌面上,Ubuntu 和 Fedora 也相当流行。

就社区而言,Unix 的商业版本仅由少数大型供应商维护。
创新速度慢,人也不多。
BSD 社区太老了,他们制造旧东西,新功能跟不上 Linux。
Linux 则完全不同。
世界各地的开发人员都贡献代码,新技术(如容器和微服务)每天都在出现。
各种发行版仍在竞争。
RedHat提供企业服务,Debian追求稳定,Arch适合上线。

在设计理念上,它们有一些共同点,比如都符合POSIX标准,所以使用起来看起来很相似。
但Linux内核结构是宏内核,而Unix传统上也是宏内核。
不过,Minix是微内核,Linux并没有向它学习。
代码完全不兼容。
例如,FreeBSD的编码风格与Linux/GNU的编码风格完全不同。

总的来说,Unix是老前辈,奠定了基础,但后来商业和开源的道路却分得很开。
Linux是后来者,靠开源称霸世界,现在几乎已经成为事实上的标准。
它们在设计上有些相似,但在开发上却完全不同。
你问我哪个最好?这取决于场合。
如果想要企业级的稳定性,可以选择Unix版本。
如今,服务器、开发、手机等,基本上都需要Linux。

unix和linux的命令一样吗

说白了,Unix和Linux的命令确实不一样。
我们先来说说最重要的事情。
去年运行混合环境服务器时,我们注意到我们经常在 Mac 上使用的 ls -l 在旧版 Unix 系统上直接报告错误。
因为该系统在解析参数方面比较严格,所以我们必须添加 --color=auto 才能使其正常。
那里堆放着大约3 000根木线,让操作人员和维修人员几乎发疯。
另一点是,对于像 grep 这样的基本命令,Linux 版本通常支持更多的彩蛋参数,例如 -E 正则表达式,而一些较旧的 Unix 版本可能只能识别标准 RE。
很多人不重视这一点。
还有一个重要的细节,比如 chmod。
虽然chmod的基本功能是复制的,但Linux的权限计算逻辑和umask默认值比标准Unix更现代,使得调整更容易。

一开始我以为cp和mv这样的核心命令应该是完全兼容的,但后来我意识到有些不对劲。
在测试场景中,Linux 硬链接操作在某个 Solaris 实例上有额外的警告提示。
这纯粹是由于内核实现的差异造成的。
等等,还有一件事。
Linux chown 命令在管理用户组方面比许多版本的 Unix 灵活得多。
可以直接使用-g指定GID,这在需要快速同步系统时很有用。

不要机械地记住所有内容,而是在多个环境下进行维护时查看官方说明,或者尝试使用 --help 参数来节省时间。
您认为在使用 find 时,这两个系统是否还存在任何不需要的陷阱?

linux和unix的命令符是不是一样

Linux 和 Unix 命令相似但也有差异。

Linux有: ls、cd、mkdir、rm、cp、mv 猫、grep、sed、awk chmod、chown、ps、top
Solaris ps 具有 -ef 选项。
AIX ps 采用 -aux 格式。

Linux有systemctl、apt-get、yum。
Unix有pkgadd、rpm。

Linux有sysctl、htop。
Unix 没有直接的等价物。

编写脚本: 使用标准 POSIX 命令。
查看特定于发行版的选项。
编写平台检测逻辑。
看看男人的手册。

不同的信息会导致脚本失败。