Chinaunix

标题: 他山之石可以攻玉,从Linux到Solaris(01&02):概述和命令差异 [打印本页]

作者: yuhuohu    时间: 2007-10-12 17:53
标题: 他山之石可以攻玉,从Linux到Solaris(01&02):概述和命令差异
本帖最后由 yuhuohu 于 2010-11-30 10:09 编辑

前人种树,后人乘凉,开源世界,自由分享


做系统管理的不可能单纯的仅接触solaris,unix大同小异,完全可以从solaris出发达到触类旁通的目的。近日有空,看些Linux的管理文档,主要是看Linux和Solaris的区别点,顺手发些心得,这是第一篇:差别概览。二楼是第二篇:命令差别

从Linux到Solaris
(updating)

目录:


zhangzhu1984 整理的chm版 下载:


作者保留版权,转载请注明出处,来自cu-yuhuohu.

第一章:差别概览


首先一个区别:默认shell
  1. 两个操作系统的默认shell虽然都是/bin/sh,
  2. 但linux默认shell是bash,/bin/sh仅是一个指向到/bin/bash的符号链接。
  3. 而solaris的默认shell是Bourne shell,名为/bin/sh。
复制代码

第二个区别:文件系统
  1. 标准的solaris文件系统格式是UFS,还可以使用VxFS,QFS,从Solaris 10 u2版开始,还可以使用ZFS。
  2. Linux通常使用ext3 or ext2,reiser,JFS,XFS其中一种。
复制代码

区别3:文件系统目录布局
  1. 最值得注意的是/proc目录。
  2. Linux的/proc目录存放与系统配置以及进程有关的信息,可以修改这些文件以更新内核变量和进程信息。
  3. 而Solaris的/proc目录仅包含进程信息,不能从/proc目录获取系统信息或调整内核变量,但Solaris使用/platform目录,这个目录包含平台特定的信息和应用,Linux没有与Solaris的/platform对应的目录。
复制代码

区别4:命令
为了保持对System V,BSD,GNU软件的兼容性,除了常规的/bin(/usr/bin)和/sbin(/usr/sbin)目录外,Solaris还使用了一些扩展的命令目录,这些目录如下所示:

其中:
有些命令在这两个目录中都有,但用法可能不同,比如
          basename      df             du        echo         expr        fastboot
          fasthalt      file            from      groups       install     ld
          lint          ln             lpc       lpq          lpr         lprm
          lptest        ls             mkstr     printenv     ps          rusage
          sed           shutdown       stty      sum          test        touch
          tr            tset           users     vipw         whereis     whoami

免费软件的部署Linux和Solaris相同,这些GNU的命令在Solaris中通常都以g字母开头,比如gtar。

System V和BSD中有两个目录包含免费软件:/usr/sfw/bin和/opt/sfw/bin。前者包含从安装介质中安装的免费软件,后者则是从配套CD中安装的软件。

随着Solaris版本的更新,有可能会把配套CD上的软件放入Solaris安装介质中,因此需要注意在旧版本上的/opt/sfw/bin目录中的命令可能会被移植到/usr/sfw/bin中。凡是在/usr/sfw/bin中的软件,表示能够通过Sun的标准支持通道获得完全技术支持,而/opt/sfw/bin中的软件则通常是由开源软件组织获得技术支持。

作者保留版权,转载请注明出处,来自cu-yuhuohu.


区别5:网络配置文件
     Linux                                                                         Solaris
     /etc/ntp.conf                                                               /etc/inet/ntp.conf
     /etc/[x]inetd.conf                                                        /etc/inet/inetd.conf
     /etc/sysconfig/network-scripts/ifcfg-{interface}           /etc/hostname.{interface}  and   /etc/inet/netmasks
     /etc/sysconfig/network                                     /etc/nodename and /etc/defaultrouter
     /etc/networks                                              /etc/networks -> /etc//inet/networks(链接到这个文件)


区别6:文件系统配置文件
  1.               Linux                  Solaris
  2.               /etc/fstab             /etc/vfstab
  3.               /etc/exports           /etc/dfs/dfstab (format is different)
  4.               /etc/auto.master       /etc/auto_master
  5.               /etc/auto.home         /etc/auto_home
复制代码

区别7:mail
  1.                            Linux            Solaris
  2.                            /etc/aliases     /etc/mail/aliases
  3.                            /etc/mail.rc     /etc/mail/Mail.rc
  4.                                                 /etc/mail/mailx.rc
复制代码

区别8:日志文件
在Linux系统中,日志文件的主目录为/var/log,各种系统守护进程的日志文件均存在此处。

Solaris稍有不同,/var/log目录存放syslog和authlog的日志文件,而/var/adm目录则存放消息日志文件,

在缺省配置时,solaris的/var/adm/messages文件(redhat对应的文件为/var/log/messages)包含所有的日志记录(可通过修改syslog.conf文件为不同的日志指定不同的消息记录文件)。

区别9:脚本移植
如果要把脚本从Linux移植到Solaris,需要注意以下几点:

区别10:查看帮助信息
1、共同点:

2、man的差异
                             printf               (1)  - format and print data
                             printf               (3)  - formatted output conversion
                             printf [builtins]    (1)  - bash built-in commands, see bash(1)
                             printf          printf (1)      - write formatted output
                             printf          printf (3c)     - print formatted output
                             printf          printf (3ucb)   - formatted output conversion
                             MANPATH=$MANPATH:/opt/man
                             export MANPATH

3、Linux特有的帮助:

先来第一篇,周末该休息了,后面的内容等上班了再补上。

二楼还有一篇:命令差异,继续往下拉!

作者保留版权,转载请注明出处,来自cu-yuhuohu.

[ 本帖最后由 yuhuohu 于 2009-7-4 20:27 编辑 ]
作者: yuhuohu    时间: 2007-10-12 20:25
哥们,看帖要推荐啊,点这里\"\"


第二章:命令差别




如果从linux移植脚本到solaris,就必须注意这点区别,用GNU版本的命令来替代或把这些Solaris没有的选项替换成对应的简洁式选项。inux和Solaris之间相互匹配的命令清单,可到网站查看:http://bhami.com/rosetta.html。本文仅列出一些常见命令的区别点:
awkbasename cat chown
df du ps setfacl
getfacl tar uesradd groupadd


作者保留版权,转载请注明出处,来自cu-yuhuohu.

awk
Linux使用的是GNU版本的awk命令。
Solaris默认使用System V版本的awk,GNU的awk有一些System V不具备的扩展功能。但Solaris也提供了其他几种版本的awk命令,分别放置在以下几个目录中:
/usr/bin/awk
标准的System V版本的awk
/usr/bin/nawk
新版的System V awk,比前者多了许多扩展特性
/usr/xpg4/bin/awk
XPG4的awk.当从Linux移植脚本到Solaris时,可使用XPG4 awk。
/opt/sfw/bin/gawk
GNU awk.配套CD上的awk.和其他版本相比,gawk和Linux的awk的兼容性最高。Solaris 10配套CD中的GNU awk版本为3.0.6

basename
Linux和Solaris上的basename命令的基本功能都相同。
Solaris提供两个basename命令:

cat
Linux和Solaris的cat命令非常类似,有些选项有细微差别,如下所示:
Linux Solaris
-a,--show-all -vet
--number-nonblank -b
-e
-ve
-E,--show-ends -ve
-s,--squeeze-blank
-t -vt
-T,--show-tabs -vt
-u(ignored) -u(输出不使用缓冲,默认为缓冲输出)
--show-nonprinting -v
--help
--version



chown
两个操作系统都支持-f和-R这两个基本选项。若指定的文件是指向到目录的符号链接均需使用扩展选项

Solaris提供了两个版本的chown命令,/usr/bin/chown和/usr/ucb/chown.
Solaris的/usr/bin/chown的-h,-H,-L,-P
# chown -R solaris lncht     仅改变目标目录cht的所有者,符号链接自身不会改变,不会遍历符号链接的目标目录
# chown -Rh solaris lncht   与仅使用-R相比,-Rh把符号链接lncht自身的所有者也改了,其他相同

Linux的chown命令的扩展选项:
作者保留版权,转载请注明出处,来自cu-yuhuohu.


df
Solaris支持df命令的多种实现方式,比如


du
Solaris提供了多个du命令,其中-H选项的含义和Linux的du命令不同.
其他的差别如下所示(减号"-"表示无对应选项):

Linux solaris solaris solaris
可匹配的选项 /usr/bin /usr/xpg4/bin /usr/ucb
-a,--all-a
-a-
-a
--block-size=SIZE
- - -
-b,--bytes - - -
-c,--total - - -
-D,--dereference-args -L-L
-L
-h,--human-readable -h -h -h
-H,-si - - -
-k,--kilobytes -k  -k  -k
-l,--count-links- - -
-L,--dereference -L -L -L
-m,-megabytes-
-
-
-S,-separate-dires-o
-
-
-s,-summarize -s -s -s
-x,-one-file-system -d -x -d
-X FILE,-exclude-from=FILE
- - -
--exclude=PAT - - -
--max-depth=N - - -
--help - - -
--version - - -

部分选项简要说明:
作者保留版权,转载请注明出处,来自cu-yuhuohu.

ps
Solaris的/usr/ucb/ps是BSD风格的命令,和Linux的ps命令相当,但命令输出可能会有所不同

setfacl
/usr/bin/setfacl用来管理文件的访问控制列表。两个系统上的这个命令的语法和选项不同。
Solaris的setfacl语法:
两个系统的ACL条目的格式很相似,Linux支持Solaris的ACL条目格式,但Solaris不支持某些Linux特有的ACL条目格式。
下表列出了Linux的setfacl命令独有的一些选项:

Linux独有的setfacl选项 解释
-b,--remove-all 删除所有的ACL
-k,--remove-default 删除默认的ACL
-n,--no-mask 不重新计算有效权限掩码,等于solaris中不使用-r选项的setfacl命令
--mask 重新计算有效权限掩码,等于solaris的-r选项
-d,--default 所有的操作作用于默认的ACL
--restore=file 从"getfacl -R"创建的权限备份中恢复权限
--test 测试模式
-R,--recursive 递归模式,应用到所有的文件和目录
-L,--logical 与-P现对,对符号链接有效(follow the symbolic links)
-P,--physical 忽略所有的符号链接
--version 查看命令版本
--help 查看命令的简要使用帮助
-- 命令行结束
- 如果文件名参数是一个单破折号"-",表示从标准输入读取文件列表

作者保留版权,转载请注明出处,来自cu-yuhuohu.

getfacl
/usr/bin/getfacl用来查看文件的访问控制列表。虽然Linux和Solaris的getfacl命令的功能相同且输出格式也很类似,但它们的可用选项有区别。


tar
Linux的tar命令是GNU tar,Solaris的tar是System V版本.
这两种版本的tar命令有很大的不同,最好参考它们各自的命令帮助手册.
如果脚本中有使用tar命令,在移植时有两种方法

useradd
两个系统的useradd命令非常相似,很多选项的作用几乎完全一致,主要区别如下:
另外一些具体的区别如下表所示:
Linux Solaris 命令解释
-e expire_date
-e expire_date 指定过期时间,日期的格式有所不同
-f inactive
-f inactive Linux中,指过期后多久变成永久禁用
Solaris中,指到账号无效为止的最大天数
-M

不创建用户的家目录

-m
如果家目录不存在,就创建
-n

创建一个和账号同名的组
-o
-o
允许使用非唯一性uid
-p passwd

指定加密后的密码串(用crypt加密)

-p profile
指定用户属于哪个项目
-r

创建一个系统账号(默认使用一个比UID_MIN小的uid,UID_MIN在/etc/login.defs中定义)。这个是redhat专用选项

-K key=value
(RBAC使用)设置key/value对

-A authorization
(RBAC使用)设置授权

-P profile[,profiles...]
(RBAC使用)设置权力配置
-D -e default_expire_date
-D -e default_expire_date 设置账号的默认过期时间,日期格式有所不同


作者保留版权,转载请注明出处,来自cu-yuhuohu.

groupadd
两个系统的groupadd命令也极为相似,绝大多数时候两个命令的选项(-g指定gid,-o允许gid重复)和操作都完全一致。
Linux的groupadd有两个专用选项(这两个选项由红帽子“redhat linux”加入);
有关账号管理的差异请参见《从Linux到Solaris:系统管理》:http://bbs.chinaunix.net/thread-1003928-1-1.html


再来第二篇,天黑该休息了。
PS:这次坑挖大了,填死我啦!!

作者保留版权,转载请注明出处,来自cu-yuhuohu.

[ 本帖最后由 yuhuohu 于 2007-10-30 14:34 编辑 ]
作者: susbin    时间: 2007-10-12 23:05
学习。

文件系统目录布局里,/home 也有差别。
作者: swordfish.cn    时间: 2007-10-13 11:39
我是要从 Linux 到 Solaris ,也是一样的。
作者: isun    时间: 2007-10-13 14:44
楼主应该注明所说的Linux是redhat系列的
作者: netkiller    时间: 2007-10-15 10:01
烦死了,每个系统多不一样。
作者: ShareThought    时间: 2007-10-15 11:05
原帖由 netkiller 于 2007-10-15 10:01 发表
烦死了,每个系统多不一样。

真的很烦!
作者: aut00000run    时间: 2007-10-15 11:13
原帖由 netkiller 于 2007-10-15 10:01 发表
烦死了,每个系统多不一样。

从这个意义上来说,win也并非一无是处。
作者: yuhuohu    时间: 2007-10-15 16:17
这次挖坑挖大了,填死我了.后面的章节将继续挖坑,然后逐步补上。苦啊 苦啊

这个系列的所有章节都会不断修订更新!


此楼作为本人的修订备忘录

swap
linux
# mkswap /dev/hdc6
# swapon /dev/hdc6
# cat /proc/swaps

man
$whatis printf
linux
man 3 printf
man -S 3 printf
solaris
man -s 3c printf

[ 本帖最后由 yuhuohu 于 2007-10-22 10:29 编辑 ]
作者: doni    时间: 2007-10-15 17:43
原帖由 netkiller 于 2007-10-15 10:01 发表
烦死了,每个系统多不一样。


所以才能"活到老,学到老","生命不息,学习不至"
作者: lang8888511    时间: 2008-01-24 16:59
学习了
作者: ChestHair    时间: 2008-01-25 15:28
楼主继续....这个坑越大越好
作者: guopy007    时间: 2008-01-26 10:54
很长呀  慢慢看吧
作者: chenjianbin    时间: 2008-01-28 13:25
标题: 回复 #1 yuhuohu 的帖子
好贴,搂主继续
作者: fusm    时间: 2008-01-28 15:19
大仙人呢?期待下文啊
作者: smilecat    时间: 2008-02-24 10:58
好多不一样啊,突然觉得WINDOWS好简单!支持楼主,期待下文!!!
作者: godspeed257    时间: 2008-02-25 09:43
这个要顶一下 !!
太感谢了
作者: fish_happy    时间: 2008-05-15 19:11
ok,ddddddddddddddd
作者: ben1984    时间: 2008-05-23 12:27
提示: 作者被禁止或删除 内容自动屏蔽
作者: ben1984    时间: 2008-05-23 12:29
提示: 作者被禁止或删除 内容自动屏蔽
作者: zhengweiorg    时间: 2008-05-26 10:25
谢谢楼主分享资料~学习中
作者: ThomasLiu83    时间: 2008-05-31 22:12
搬个凳子,学习之...
作者: lovefish624    时间: 2008-06-24 00:14
标题: 好贴,学习了
学习中
作者: zhengweiorg    时间: 2008-08-19 20:32
谢谢您的资料,学习了
作者: linuxkumao    时间: 2008-09-27 16:56
好牛的帖子,谢谢LZ!
作者: hexilanlan    时间: 2008-09-28 09:49
顶个,收藏了。
作者: yulemi    时间: 2008-10-24 10:16
写的还不够详细啊!大哥…………
作者: 何足道    时间: 2008-10-24 12:47
原帖由 yulemi 于 2008-10-24 10:16 发表
写的还不够详细啊!大哥…………


做人不能太CCTV,再细LZ又可以出另外一本书了
作者: hndfsk    时间: 2008-10-24 14:49
标题: 回复 #1 yuhuohu 的帖子
chm制作的有问题啊,我用xp打开没有文字
作者: hndfsk    时间: 2008-10-24 14:50
标题: 回复 #19 ben1984 的帖子
你可以修改下shell,比如修改为bash,默认的是bourne shell
作者: shijiang1130    时间: 2008-10-24 16:35
:wink: 一定要支持无私奉献!
作者: flycentos    时间: 2008-11-13 21:02
赞一个
作者: fhk    时间: 2008-12-07 20:45
正学习当中,赞!!!!
作者: allon8148    时间: 2009-01-05 20:08
好帖啊,一定要顶!:em11:
作者: 398641310    时间: 2009-04-29 15:12
标题: 回复 #2 yuhuohu 的帖子
好东东!
谢谢lz!
作者: xxdtpyy    时间: 2009-05-04 16:06
标题: 回复 #1 yuhuohu 的帖子
多谢楼主!
作者: lvan6750    时间: 2009-05-12 11:10
老大,电子书没法显示
作者: 瞬间烟火    时间: 2009-08-05 16:32
这样的好东西,不支持都不行,太感谢了
作者: hwwh1999    时间: 2009-08-05 19:31
楼主辛苦了,感谢,学习了!
作者: lepnardo    时间: 2009-11-27 16:50
thanks!
作者: renxiao2003    时间: 2009-11-27 17:27
好好学习一下啊。
作者: marvin402    时间: 2009-12-05 19:40

sysadmin_guide.pdf

365.04 KB, 下载次数: 74


作者: 不进一环    时间: 2009-12-05 20:56
看了这些,感觉就是: 地球上没linux这山寨货该多好
作者: leal402    时间: 2009-12-06 17:28
原帖由 yuhuohu 于 2007-10-12 17:53 发表
哥们,看帖要推荐啊,点这里


做系统管理的不可能单纯的仅接触solaris,unix大同小异,完全可以从solaris出发达到触类旁通的目的。近日有空,看些Linux的管理文档,主要是看Linux和Solaris的区别点, ...

哈哈,不是原创,是翻译!!!! 请看第42楼!!!!!
作者: waily    时间: 2009-12-06 19:11
原帖由 leal402 于 2009-12-6 17:28 发表

哈哈,不是原创,是翻译!!!! 请看第42楼!!!!!


还是看中文舒服 管他原版是啥样 人家lz也没说是原创哇
作者: yuhuohu    时间: 2009-12-07 08:54
原帖由 leal402 于 2009-12-6 17:28 发表

哈哈,不是原创,是翻译!!!! 请看第42楼!!!!!


被发现了哈 惭愧惭愧 当初就没敢吹嘘说是原创
作者: arlikiss    时间: 2010-02-25 11:51
学习了,有没有与freebsd的比较呀!!!
作者: robmc    时间: 2010-02-26 05:50
这个要顶!!
作者: 风之幻想    时间: 2010-03-02 10:40

作者: 大鬼不动    时间: 2010-03-19 15:05
斑竹发贴必属精品!收藏学习!{:3_192:}
作者: owenchn    时间: 2010-03-22 14:18
总结得太好了啊,支持一下
作者: chen_note    时间: 2010-05-24 10:55
好东西,从SOLARIS到LINUX经常发现命令不同,目录位置不同找不到命令的情况
作者: sun-start    时间: 2010-05-24 16:32
好的,下下来慢慢研究
作者: easybegin    时间: 2010-05-24 19:40
收藏
作者: dskedou    时间: 2010-06-17 01:42
排版排得很精美呀。
作者: hgk117    时间: 2010-06-17 16:41
谢谢你了黄大师。
作者: redsunchina    时间: 2010-06-18 12:26
lz又打算出什么书?
作者: __Aaron    时间: 2010-06-18 15:49
总结得太好了啊,支持一下
作者: SMEWL    时间: 2010-07-31 20:37
学习了,支持。。。。
作者: L_kernel    时间: 2010-11-28 23:16
/usr/openwin
/usr/dt/bin
/usr/sfw/bin
/opt/sfw/bin
/usr/xpg4/bin
/usr/ccs/bin
/usr/ucb
关于目录的描述应该是这样子。
作者: o0不知火舞0o    时间: 2010-11-29 12:30
好东西,顶起来
作者: 博客教主    时间: 2011-07-18 17:04
谢谢分享,很久没接触Solaris了,现在又想学习下。和linux确实差别不少。
作者: oraclevampire    时间: 2011-08-08 13:55
好帖,强贴,顶啊
作者: llxyzll    时间: 2011-09-16 15:46
顶起。。。。。。。
作者: Tommyls    时间: 2012-03-28 13:11
楼主太强了 佩服的五体投地
作者: 雨点的尾巴    时间: 2012-11-01 21:45
感谢分享!!
作者: Pugna_zfr    时间: 2014-06-09 13:49
不错,感谢分享!
作者: dba_xyx    时间: 2014-09-16 16:12
前人栽树后人乘凉,感谢
作者: alex_xie    时间: 2014-10-11 21:04
谢谢提供,很久没玩了。 要重拾一下。
作者: 单翅飞行lan    时间: 2015-02-17 14:44
新人,谢谢!
作者: aeron_989    时间: 2015-09-25 04:19
好东西,顶一下!
作者: 残愚    时间: 2016-06-06 21:29
告一声:辛苦了!我用solaris11.2测试了一遍,没毛病,只是有些命令两个都支持。 BULLSHIT,我还是忍不住要喊一声:基础太扎实了!!!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2