SmartOS 与 Linux 不同点总结(Cheat Sheet )

标签: smartos linux cheat | 发表时间:2013-03-10 18:52 | 作者:babyfacer
出处:http://blog.csdn.net

介绍了 《风起亚洲(Fengqi.Asia)公共云详细介绍》《SmartOS——与众不同的虚拟化技术》后,SmartOS的概貌也许渐渐被各位所了解,不过其中技术细节还有很多,容我在此专栏中慢慢道来。

在SmartOS用户中最常见的问题之一就是,既然说SmartOS和Linux类似,那除了那些看不见的技术细节,在使用时到底有什么不同呢?如果已经熟练操作Linux,那SmartOS能快速上手么?答案是当然能,其实常用的不同之处并不多。这篇文章将回答Linux与SmartOS在操作上的不同之处。

原文链接: http://wiki.joyent.com/wiki/display/jpc2/The+Joyent+Linux-to-SmartOS+Cheat+Sheet
原文标题:The Joyent Linux-to-SmartOS Cheat Sheet

SmartMachine和其他类Unix系统不同之处主要在于两类:

  • 命令类似,但在SmartOS中用不同的名字
  • 完成类似的任务,但在SmartOS中有不同的实现过程

这里列出一个命令列表,用来帮助Linux用户找到在SmartOS中与Linux对等的命令。

  • Linux 和 SmartOS 命令对比列表
  • 不同使用语境(Use Context)的例子
    • 检查进程和内存
    • 启动和停止服务

Linux and SmartOS 命令对比列表

任务 / 操作系统 Linux SmartOS
表中某些键值的含义
(rh) = Red Hat, Mandrake, SUSE,...
(deb) = Debian, Libranet,...
(fed) = Fedora 
(gen) = Gentoo 
(md) = Mandrake/Mandriva
(SUSE) = SUSE
Joyent SmartOS

开源版本可参见链接 http://smartos.org
管理用户
managing users
useradd
usermod
userdel
adduser
chage 
getent
useradd
userdel
usermod
getent
logins
/usr/sadm/bin/smuser
groupadd
列举硬件配置信息
list hardware configuration

arch
uname
dmesg  (if you're lucky)
cat /var/log/dmesg
/proc/*
lshw
dmidecode
lspci
lspnp
lsscsi
lsusb
lsmod
(SUSE) hwinfo
/sys/devices/*
prtconf -v
arch -k
psrinfo -v
isainfo -v
dmesg
iostat -En
prtfru
cfgadm -l
/etc/path_to_inst
read a disk label fdisk -l prtvtoc
label a disk cfdisk
fdisk
e2label
format
prtvtoc
磁盘分区
partition a disk
parted  (if you have it)
cfdisk
fdisk
pdisk  (on a Mac)
(deb) mac-fdisk (on a Mac)_
(md) _diskdrake
format
fmthard
kernel /boot/vmlinuz*
/boot/bootlx
(see /etc/lilo.conf or /boot/grub/menu.lst)
/kernel/genunix
/platform/`uname -m`/
 kernel/unix

show/set kernel parameters /proc/*
/proc/sys/*
sysctl
/etc/sysctl.conf
sysdef
getconf 
cat /etc/system
ndd
adb -k
loaded kernel modules lsmod modinfo
load module modprobe
insmod
modload
unload module rmmod
modprobe -r
modunload
启动脚本
startup scripts
/etc/rc* (but may vary)
/etc/init.d/
/etc/rc*
/etc/init.d/
 svcadm
svcs
启动/停止/配置 服务
start/ stop/ config services
(rh) _service
(rh) _chkconfig
(deb) _sysv-rc-conf
svcs
svcadm 
终止或关机
shutdown (& power off if possible)
shutdown -Ph now 
shutdown -y -g0 -i0
halt
poweroff
shutdown -y -g0 -i5
run levels
*=normal states 
更多细节可参见
www.phildev.net/runlevels.html
(set in /etc/inittab)
0: halt
s,S,1:  vendor-dependent
1: single-user
2-5*: multiuser
6: reboot
0: firmware monitor
s,S: single-user
1: sys admin
2: multiuser
3*: share NFS
4*: user-defined
5: power-down if possible
6: reboot
show runlevel  /sbin/runlevel who -r
时区信息
time zone info
/usr/share/zoneinfo/
/etc/localtime
/usr/share/lib/zoneinfo/
检查交换空间
check swap space
swapon -s
cat /proc/meminfo
cat /proc/swaps
free
swap -s
swap -l
bind process to CPU taskset (sched-utils) pbind
“正常”的文件系统
"normal" filesystem
ext2
ext3
ReiserFS
zfs  (OpenSolaris)
文件系统描述
file system description
/etc/fstab /etc/vfstab 
创建文件系统
create filesystem
mke2fs
mkreiserfs
mkdosfs
mkfs
zfs 
文件系统调试和恢复
file system debugging and recovery
fsck
debugfs
e2undel
fsck
fsdb
clri
create non-0-length empty file dd if=/dev/zero of= filename 
bs=1024k count= desired
mkfile
创建/挂载 ISO 镜像
create/mount ISO image
mkisofs
mount -o loop  pathToIso
mountPoint
mkisofs;DEVICE=`lofiadm -a / absolute_pathname/ image.iso` ; mount -F hsfs -o ro
$DEVICE
ACL management getfacl
setfacl
getfacl
setfacl
NFS share definitions /etc/exports /etc/dfs/dfstab
dfshares
NFS share command /etc/init.d/nfs-server reload_(rh)__ _exportfs -a share
shareall
NFS information cat /proc/mounts showmount
nfsstat
name resolution order /etc/nsswitch.conf
/etc/resolv.conf
/etc/nsswitch.conf
getent
显示网络接口信息
show network interface info
ifconfig
ethtool
dladm
ndd
ifconfig -a
netstat -in
dladm
修改IP
change IP
Joyent 公共云IP地址在云管理平台中设置 Joyent 公共云IP地址在云管理平台中设置
ping one packet ping -c 1  hostname ping  hostname  packetsize 1
监听网络
sniff network
etherfind
tcpdump
wireshark ( formerly _ethereal)
etherape
snoop
route definitions route
(rh) /etc/sysconfig/network
(rh) /etc/sysconfig/static-routes
(deb) /etc/init.d/network
(deb) /etc/network
/etc/defaultrouter
/etc/notrouter
/etc/gateways
in.routed
netstat -r
route add
telnetd, ftpd banner /etc/issue.net  (telnet)
(ftp varies; can use tcp wrappers)
/etc/default/telnetd
/etc/default/ftpd
设置日期/时间
set date/time

(from net: ntp or other)
ntpdate
rdate
netdate
ntpdate
rdate
auditing auditd
/var/log/faillog
audit
auditd
auditreduce
praudit
加密后的密码在
encrypted passwords in
/etc/shadow  (may vary) /etc/shadow
最小密码长度
min password length
/etc/pam.d/system-auth /etc/default/passwd
允许/禁止 root 登录
allow/deny root logins
/etc/securetty
/etc/default/login
防火墙配置
firewall config
iptables
ipchains
ipfwadm
(rh) redhat-config-
securitylevel
/etc/ipf/ipf.conf
显示已安装的软件
show installed software
(rh) _rpm -a -i
(rh) _rpm -qa 
(rh) yum list installed
(deb) dselect
(deb) aptitude
(deb) dpkg -l
(gen) _ls /var/db/pkg/*
(gen) _eix -I
pkgin list
安装/添加软件
add software
(rh) _rpm -hiv 
(rh) yum install  pkg
(deb) dselect
(deb) _apt-get install _pkg
(deb) dpkg -i
pkgin install
预编译的二进制版本
(GPLware and freeware)
www.linux.org
linux.tucows.com
sourceforge.net
rpmfind.net
(deb)  ftp.debian.org
(deb)  packages.debian.org
(gen)  packages.gentoo.org
(gen)  gentoo-portage.com;
(md)  easyurpmi.zarb.org
pkgsrc.joyent.com/sdc6/
www.sunfreeware.com
www.blastwave.org
C 编译器
C compiler
cc
gcc
/opt/SUNWspro/
bin/cc
configure/show  runtime linking

ldconfig
ldd
lsmod
crle
ldd
pldd
modinfo
LD_PRELOAD
链接库路径
link library path
$LD_LIBRARY_PATH
/etc/ld.so.conf
$LD_LIBRARY_PATH
跟踪工具
tracing utility
strace
ltrace
truss
sotruss
dtrace
定义用户默认配置
define user defaults
/etc/profile
/etc/security/
/etc/skel/
/etc/profile.d/*
/etc/default/login
/etc/profile
/etc/security/
csh global .login /etc/csh.login /etc/.login
默认的 syslog 和 信息
default syslog and messages
/var/log/syslog
/var/log/messages
/usr/adm/messages 
/var/log/maillog
/var/adm/messages
/var/log/syslog
softpanorama.org/Logs/solaris_logs.shtml
system error reporting tool dmesg_(deb)_ reportbug prtdiag
性能监测
performance monitoring
vmstat
procinfo -D
top
htop
pstree
prstat
ostat
kstat
mpstat
netstat
nfsstat
trapstat
vmstat
ptree


match process to file or port lsof
netstat -atup
fuser
pfiles
维基百科
Wikipedia
Linux
Illumos

不同使用语境(Use Context)的例子

比如,一些常见的Linxu命令的工作过程有些不同。, here are some common Linux commands that work differently.

命令 在SmartMachine上有何不同
df 在大多数SmartOS镜像,它是使用的 GNU 版本。可以用 /usr/bin/df 来运行 native 版本
lsof SmartMachine 使用不同的命令集来检查进程,下面会谈及。
ping 返回host主机是否有响应,使用 ping -s 返回持续的响应
top top/opt/local/bin 里面,但 prstat -Z 提供比 top 有关资源池更多且更准确的信息

  Rosetta Stone for Unix 是一个有用的资源,可以帮你看看你经常使用的UNIX版本和其他的UNIX版本(包括Mac)有何不同,并如何对应。

检查进程和内存


在旧的SmartOS镜像中,这些命令提供了端口和相关资源的信息,使用root或sudo可运行它们。
新的镜像使用的是 SmartMachine 工具包(Tools Package)

命令 描述 例子
pcp 显示被进程使用的端口们,或者进程们使用哪个端口 /root/bin/pcp -p 80 显示所有使用80端口的进程 
/root/bin/pcp -P 28068 显示进程28068使用的所有端口 
/root/bin/pcp -a 显示所有端口的端口及进程信息
jinf 显示你的SmartMachine正如何使用它的资源 /root/bin/jinf -c 显示CPU的使用信息 
/root/bin/jinf -m 显示内存使用信息 
/root/bin/jinf -s 显示交换空间使用信息

SmartOS 提供了一个工具套件来检查进程,可以在 proc 的 man page 中学习到更多内容。

工具 描述
prstat 这个工具显示活动的进程列表,类似Linux中的 top 命令 
prstat -Z 将为提供你的SmartMachine状态的摘要信息
pgrep 根据指定的条件或模式返回进程的进程ID(PID)列表,一般是用来判断程序是否正在运行。
pkill 根据指定的条件或模式中止进程
pfiles 返回属于某个进程的所有打开文件列表
pstack 显示指定进程所有的线程的调用栈
ptree 显示所有进程或指定进程的进程树
ls /proc 列举所有正在运行的进程ID

你可以将 pgrep 的结果和其他 proc 工具合并显示。比如,显示与 http 进程相关的所有文件,可以使用如下命令来替代 lsof:

$ sudo pfiles $(pgrep http)

若要限制 prstat 显示 http 进程,可以使用命令:

$ prstat $(pgrep -d , http)
注意:如果 prstat 显示改变了你的终端设置,可以使用 reset 命令返回到正常状态

对于 vmstatmpstatpsrinfo 命令,主要显示物理机中处理器和内存的统计信息。这些输出一般来说对于SmartMachine的管理员才有用。


启动和停止服务

在其他系统中,你也许习惯使用命令在  /etc/init.d 来启动或停止服务。
SmartMachines 使用 Service Management Facility 来做到这些。

命令 svcssvcadm 是你经常会使用到的。有些命令把 service identifier 叫做FMRI(Fault Management Resource Identifier)。
你可以使用 svcs 命令列举一个服务所有的 identifier 。

命令 描述
svcs 列举所有已启用的服务
svcs -a 列举所有服务,即使有些已经被禁止或offline
svcadm enable apache 使用apache FMRI 启用所有进程
svcadm disable apache 使用apache FMRI 禁止所有进程
svcadm restart apache 使用apache FMRI 重启所有进程

比如,如果你想更改 /etc/ssh/sshd_config 后重启SSH,可以这样做:

$ sudo svcadm restart ssh


最后,如果有任何问题,欢迎与我联系:michaelcxw(AT)gmail.com
作者:babyfacer 发表于2013-3-10 18:52:13 原文链接
阅读:82 评论:0 查看评论

相关 [smartos linux cheat] 推荐:

SmartOS 与 Linux 不同点总结(Cheat Sheet )

- - CSDN博客云计算推荐文章
介绍了 《风起亚洲(Fengqi.Asia)公共云详细介绍》和 《SmartOS——与众不同的虚拟化技术》后,SmartOS的概貌也许渐渐被各位所了解,不过其中技术细节还有很多,容我在此专栏中慢慢道来. 在SmartOS用户中最常见的问题之一就是,既然说SmartOS和Linux类似,那除了那些看不见的技术细节,在使用时到底有什么不同呢.

备份:html5 canvas cheat sheet

- - 膘叔
纯备份资料,HTML5的canvas资料.

SmartOS:基于Solaris/IllumOS的发行版

- tinda - Solidot
Joyent发布了一个新的基于Solaris/IllumOS的发行版SmartOS. SmartOS将过去十年四项最具有革命性的操作系统技术——操作系统级的虚拟化技术Solaris Zones、文件系统ZFS,动态跟踪框架DTrace和Linux虚拟机技术KVM(从Linux移植到Solaris)——整合进一个单一操作系统,能把任何服务器变成多租户、机器到机器或者是存储应用的托管平台.

Hadoop调优与实践的Cheat Sheets

- alex - NoSQLFan
虽然只有一张图,但是内容却非常丰富,可以说是Hadoop调优的Cheat Sheets. NoSQLFan已将图片转存到115网盘以便大家下载. 115地址:http://u.115.com/file/aqzdgi99. 原地址:HadoopPerformanceTuningGuide.pdf. 百度Hadoop分布式系统揭秘:4000节点集群.

Joyent 发布 SmartOS 开源操作系统

- ArBing - vpsee.com
以 OpenSolaris 为基础架构的云计算公司 Joyent 上周发布了他们自己的操作系统 SmartOS,并在 github 上公开了其所有的源代码,很高兴看到又一个云计算厂商加入到开源的队伍. 和其他依赖 Linux 的云计算系统不同,Joyent 提供的 SmartOS 基于 illumos(SUN 被 Oracle 收购后,OpenSolaris 分裂出来的版本).

Javascript 里跑Linux

- rockmaple - Shellex's Blog
牛逼到暴的大拿 Fabrice Bellard,用Javascript实现了一个x86 PC 模拟器,然后成功在这个模拟器里面跑Linux(请用Firefox 4 / Google Chrome 11打开,Chome 12有BUG). 关于这个东西… 伊说 “I did it for fun“,大大啊大大啊….

Linux Ksplice,MySQL and Oracle

- Syn - DBA Notes
Oracle 在 7 月份收购了 Ksplice. 使用了 Ksplice 的 Linux 系统,为 Kernel 打补丁无需重启动,做系统维护的朋友应该明白这是一个杀手级特性. 现在该产品已经合并到 Oracle Linux 中. 目前已经有超过 700 家客户,超过 10 万套系统使用了 Ksplice (不知道国内是否已经有用户了.

linux makefile编写

- hl - C++博客-首页原创精华区
在讲述这个Makefile之前,还是让我们先来粗略地看一看Makefile的规则. target也就是一个目标文件,可以是Object File,也可以是执行文件. prerequisites就是,要生成那个target所需要的文件或是目标. command也就是make需要执行的命令. 这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在 command中.

Linux下的VDSO

- 圣斌 - Adam's
VDSO(Virtual Dynamically-linked Shared Object)是个很有意思的东西, 它将内核态的调用映射到用户态的地址空间中, 使得调用开销更小, 路径更好.. 开销更小比较容易理解, 那么路径更好指的是什么呢. 拿x86下的系统调用举例, 传统的int 0×80有点慢, Intel和AMD分别实现了sysenter, sysexit和syscall, sysret, 即所谓的快速系统调用指令, 使用它们更快, 但是也带来了兼容性的问题.

Linux wget命令

- - CSDN博客推荐文章
wget是linux最常用的下载命令, 一般的使用方法是: wget + 空格 + 要下载文件的url路径. 例如: # wget  http://www.linuxsense.org/xxxx/xxx.tar.gz. 简单说一下-c参数, 这个也非常常见, 可以断点续传, 如果不小心终止了, 可以继续使用命令接着下载.