命令差别绝大多数linux命令都有两种类型的选项:简洁式(short form,比如-v)和长格式(long form,比如--version)。

而Solaris的命令,除非是GNU版本的以外,通常都没有长格式。

Linux命令可使用"--help"查看简要帮助,Solaris部分新命令可使用"-?"达到同样的效果,比如pkginfo -?

如果从linux移植脚本到solaris,就必须注意这点区别,用GNU版本的命令来替代或把这些Solaris没有的选项替换成对应的简洁式选项。inux和Solaris之间相互匹配的命令清单,可到网站查看:。本文仅列出一些常见命令的区别点:awkbasenamecatchown

dfdupssetfacl

getfacltaruesraddgroupadd

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/awkXPG4的awk.当从移植脚本到Solaris时,可使用XPG4 awk。

/opt/sfw/bin/gawkGNU awk.配套CD上的awk.和其他版本相比,gawk和的awk的兼容性最高。Solaris 10配套CD中的GNU awk版本为3.0.6

basename

Linux和Solaris上的basename命令的基本功能都相同。

Solaris提供两个basename命令:/usr/ucb/bin/basename和版本的basename命令相同

/usr/bin/basename的功能更强,可以通过表达式模型匹配后缀(可参见)

cat

Linux和Solaris的cat命令非常类似,有些选项有细微差别,如下所示:LinuxSolaris

-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这两个基本选项。若指定的文件是指向到目录的符号链接均需使用扩展选项-f(强制执行,不报告错误)

-R(递归,遇到符号链接仅改变链接的目标,符号链接自身不会改变,不会遍历符号链接的目标目录)

Solaris提供了两个版本的chown命令,/usr/bin/chown和/usr/ucb/chown./usr/ucb/chown只支持两个选项:-f和-R

/usr/bin/chown除了-f和-R外,还支持-h,-H,-L,-P这些扩展选项(要和基本选项-f,-R一起使用).

除非使用-h,-P选项,否则符号链接自身的拥有者不会改变Solaris的/usr/bin/chown的-h,-H,-L,-PSolaris的-h等同于Linux的-h or --no-dereference.比如lncht是指向到cht目录的符号链接# chown -R solaris lncht     仅改变目标目录cht的所有者,符号链接自身不会改变,不会遍历符号链接的目标目录

# chown -Rh solaris lncht   与仅使用-R相比,-Rh把符号链接lncht自身的所有者也改了,其他相同-H 如果是指向到目录的符号连接,则目录和其下的文件的所有者发生改变。但若目录下的文件也是个符号链接,则目标文件的所有者被改变,但不会再次进行递归操作。

-L 和-H类似,但更彻底,在遍历时遇到指向到目录的符号链接,不仅改变目标目录的所有者,同时还会继续遍历目标目录进行改变操作。

-P 指定的文件或在遍历各级目录时遇到的文件是符号链接,则改变符号链接的所有者。-P不会对符号链接的目标目录进行遍历。-P类似于--no-dereference

-P>-L>-HLinux的chown命令的扩展选项:-c or --changes 类似于详细模式,但仅报告被改变的部分

--dereference 命令对符号链接起效,这是solaris的默认行为。移植脚本时需注意此项

--from= 仅改变符合指定的属主/属组的文件的所有者。solaris没有对应的选项,可用find命令的-ower or -group选项把查找结果传递给chown

df

Solaris支持df命令的多种实现方式,比如/usr/ucb/df  可使用-v选项,-v选项除了大小以(每个文件系统所支持的最小的)块的为单位显示外其他都和df -k相同。

/usr/xpg4/bin/df  可使用附加的-P标记,大小以512字节为单位,其他与-k选项相同。

du

Solaris提供了多个du命令,其中-H选项的含义和Linux的du命令不同.Linux的du的-H和-si选项作用相同,表示以1000为单位而不是1024,

Solaris的-H选项这是表示处理符号链接所指向的实际目标文件,类似于Linux du的-L.其他的差别如下所示(减号"-"表示无对应选项):Linuxsolarissolarissolaris

可匹配的选项/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---

部分选项简要说明:-b,-block-size=SIZE 以字节为单位显示大小

-c produce a grand total

-l 统计链接

-L  处理符号链接实际指向的目标

-m 以MB为单位显示

ps

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

setfacl

/usr/bin/setfacl用来管理文件的访问控制列表。两个系统上的这个命令的语法和选项不同。

Solaris的setfacl语法:setfacl [-r] -s acl_entries file

setfacl [-r] -md acl_entries file

setfacl [-r] -f acl_file file-s 设置ACL,旧的ACL会被新指定的清空或覆盖-m用于添加ACL或修改现有的ACL,也会覆盖现有的ACL条目.-d 删除ACL条目-r 重新计算ACL的mask两个系统的ACL条目的格式很相似,Linux支持Solaris的ACL条目格式,但Solaris不支持某些Linux特有的ACL条目格式。Linux接受在other和mask关键词之后使用一个附加的冒号":",但Solaris不行。

权限由rwx或数字组成,比如"r-x"表示读和执行权限.Linux支持缩写成"rx",而Solaris不行

Solaris的setfacl能够使用另外一个文件的ACL来设置指定文件的ACL(使用-f选项,Linux版本的setfacl没有这个选项)下表列出了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查看命令的简要使用帮助

--命令行结束

-如果文件名参数是一个单破折号"-",表示从标准输入读取文件列表

solaris的getfacl命令不支持长格式选项。

Linux的getfacl支持,而Solaris的getfacl不支持的简洁式选项:-R,-L,-P,以及-。

tar

Linux的tar命令是GNU tar,Solaris的tar是System V版本.

这两种版本的tar命令有很大的不同,最好参考它们各自的命令帮助手册.

solaris的tar不支持使用外部压缩程序,因此没有-Z,-z,-j这些压缩选项

Solaris的GNU tar命令为/usr/sfw/bin/gtar,安装包为SUNWgtar如果脚本中有使用tar命令,在移植时有两种方法重新编辑tar命令的用法,采用等价的tar选项,或者使用管道符把结果传递给压缩或解压程序。

如果solaris安装了SUNWgtar,则可以在脚本中使用gtar来代替tar.

groupadd两个系统的groupadd命令也极为相似,绝大多数时候两个命令的选项(-g指定gid,-o允许gid重复)和操作都完全一致。

Linux的groupadd有两个专用选项(这两个选项由红帽子“redhat linux”加入);

-r 添加一个系统账号,若未指定gid,默认采用小于499的第一个数字

-f 强制选项

useradd

两个系统的useradd命令非常相似,很多选项的作用几乎完全一致,主要区别如下:

Solaris版的useradd有额外的选项以支持RBAC。

另外一个明显的区别是-p选项。linux中,这个选项用来指定账号的密码,这是一种不安全的做法。Solaris中-p选项用来指定账号所属的项目(project),指定账号所开启的所有进程将都属于这个项目.另外一些具体的区别如下表所示:

LinuxSolaris命令解释

-e expire_date-e expire_date指定过期时间,日期的格式有所不同

-f inactive-f inactiveLinux中,指过期后多久变成永久禁用

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设置账号的默认过期时间,日期格式有所不同

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

sunos与linux区别,linux与solaris的联系与区别总结:命令的异同相关推荐

  1. 【学点Linux】linux和unix的区别以及 类Unix

    linux和unix的区别 文章目录 linux和unix的区别 从发展的背景看 从使用费用上看 从产品方面看 从价格来看 从性能上看 UNIX与Linux的亲密关系 UNIX/Linux系统结构 1 ...

  2. linux进程同步/通信,线程同步/通信的区别

    大家常问的是线程的同步和进程的通信,较少问线程通信和进程同步的,那它们有什么区别呢?其实它们没啥区别,线程同步和线程通信其实就是一回事,进程通信和进程同步也是一回事,不要被这些搞混了. linux线程 ...

  3. linux中export和source的作用和区别

    linux中export和source的作用和区别 2013-11-12 12:36 1039人阅读 评论(0) 收藏 举报 分类: linux(82) shell与export命令 用户登录到Lin ...

  4. 【Linux系统编程】进程和线程的区别

    00. 目录 文章目录 00. 目录 01. 进程和线程区别 02. 附录 01. 进程和线程区别 在许多经典的操作系统教科书中,总是把进程定义为程序的执行实例,它并不执行什么, 只是维护应用程序所需 ...

  5. linux中s权限大小写的区别,Linux中的权限

    1.文件与目录权限 1)UID与GID ØUID UID是一个数值,是Linux系统中唯一的用户标识,用于区别不同的用户.在系统内部管理进程和文件保护时使用UID字段.在Linux系统中,注册名和UI ...

  6. linux内存管理之RSS和VSZ的区别

    [译] linux内存管理之RSS和VSZ的区别 阅读 724 收藏 0 2019-08-25 原文链接: pengrl.com RSS是Resident Set Size(常驻内存大小)的缩写,用于 ...

  7. 【Linux】Linux简介以及 与UNIX区别

    一直以来对Linux.Unix.linux内核.linux发行版的概念比较模糊,最近查找资料并经过自己的整理,主要总结了Linux和UNIX的区别和联系.内核和操作系统的关系.Linux操作系统和结构 ...

  8. linux源码包与RPM包的区别

    linux源码包与RPM包的区别 1.区别 .安装之前的区别:概念上的区别 比如说:源码包是开源的,比RPM包安装更自由,但是它安装更慢,更容易报错:RPM包是经过编译的,不能看到源代码,但是它安装更 ...

  9. linux的wq 与wq的区别,Linux ESC :wq 和:wq!的区别

    Linux ESC :wq 和:wq!的区别 Linux ESC:wq 和:wq!的区别 发布者:IT人在线 | 发表时间:2018-12-4 17:20:43 Linux ESC :wq esc(键 ...

最新文章

  1. JAVA入门到精通-第71讲-学生管理系统3-增删改查
  2. 2018 Spring Team Contest B
  3. sklearn自学指南(part22)--支持向量机的分类与回归
  4. Springboot项目修改html后不需要重启---springboot项目的热部署
  5. 适合计算机64位的cad,【1人回答】求一个能适用于CAD2008的纬地,我的电脑是Win7 64位的-3D溜溜网...
  6. 基于GET报错的sql注入,sqli-lab 1~4
  7. reids和memcache的区别和一些常见的问题
  8. this(C# 参考)
  9. 判断Object对象属性的类型
  10. Arcgis更换布局模板_小美AI触屏音箱评测 美的布局AloT的关键一环
  11. pcap文件linux怎么打开,pcap文件用什么打开
  12. java字符编码方式_java字符编码方式总结
  13. Http权威指南笔记(三)——HTTP报文
  14. AD-001 CR11220纽扣电池库文件
  15. 【毕业设计】基于STM32的智能药箱系统设计与实现 - 物联网 单片机
  16. 蓝桥杯单片机 第十届 测频代码
  17. 第一章 : JVM与体系结构
  18. 2019年终总结,一朝看尽长安花
  19. stm32芯片休眠模式_STM32睡眠模式低功耗(停止模式)
  20. LeetCode 881 救生艇

热门文章

  1. 目标检测中的数据增强,包括bbox的变换
  2. x2检验(chi-square test)/ 卡方检验
  3. android使用连连支付进行银行卡支付
  4. 美团点评java面试题_最新美团面经Java,美团点评一面(面试题)
  5. 信息学奥赛一本通 1081:分苹果 | OpenJudge NOI 小学奥数 7826:分苹果
  6. Matlab:Matlab编程语言应用之三维绘图可视化(基础知识点基本函)的使用方法简介、案例实现(三维曲线图机械阻尼振动三维等高线图等案例)之详细攻略
  7. 面试题(部分有答案)
  8. 2.1 法学的历史(一):西方法学的历史
  9. 【oracle数据库数据恢复】技术人员误操作导致的oracle数据库误删除后的数据恢复
  10. 左程云算法 - 公开课笔记