因此,我们最近才迁移到基于 opensolaris 而不是 linux 变体的主机。我发现有一堆命令不像我在 linux 机器上习惯的那样运行。我只是想知道其他人在 linux 和 opensolaris 中使用什么命令等效项,反之亦然。
一些例子:(linux->opensolaris)
ifconfig -> ifconfig -a
grep -r "pattern" dir/ -> find dir/. | xargs grep "pattern"
特别是我仍在试图弄清楚的一个:
netstat -tnlp -> ??
(-lnpt 显示所有 tcp (-t) 连接的侦听 (-l) 进程 (-p) 名称、pid 和数字地址 (-n))
当我知道自己想做什么但只知道另一个操作系统上的命令时,我使用Rosetta Stone for Unix作为我在操作系统上查找命令的资源。
这绝对是辉煌的。选择您感兴趣的操作系统,然后单击“绘制表格”。它会减少表格,所以你看到的只有 Linux 和 Solaris。
Sun wiki 上列出了许多指向命令翻译(Linux -> OpenSolaris)的良好链接。(查看页面底部的链接)
OpenSolaris 和 Linux 之间的差异
总的来说,我想你会发现 opensolaris 没有 linux 那么多的“便利”特性。你上面的两个例子也是很好的例子。
您可以在 solaris 上安装许多工具的 gnu 版本(与 linux 上可用的版本相同),并且可能已经安装了它们。一个好的经验法则是尝试在您感兴趣的命令名称前加上“g”:gtar、ggrep。这些当然需要安装正确的软件包 - SUNWgtar、SUNWggrp 用于 Solaris 10 上的上述示例。查看 /usr/sfw/bin(如果还没有,请将其添加到您的路径中)以查看哪些工具你有空。并不是所有的东西都可以通过这种方式获得,有些命令(比如上面提到的 ifconfig )你只需要学习不同的命令变体(ifconfig -a 也适用于 linux)。
我发现自己必须记住的另一个常见的语法是用于查看所有进程的 ps 语法:BSD:ps ax,Solaris:ps -ef,Linux:任何一种语法都有效。在相关说明中 - 使用 pkill 而不是 killall 来杀死具有特定名称的所有进程。Solaris 上的 Killall 执行命令名称所暗示的操作并杀死所有进程,而不仅仅是您命名的进程。
我来自 dpkg/apt 世界 (Debian/Ubuntu),所以在学习 OpenSolaris 包管理 (IPS) 时,我创建了一个很好的备忘单。
这是基于 OpenSoalris.org比较 apt 和 IPS的过时页面。