solaris编写shell脚本注意事项以及命令与linux区别

1、solaris中不支持$()

错误:

OS=$(cat /etc/release |grep Solaris |awk '{print $1,$2,$3}')

正确:支持``

OS=`cat /etc/release |grep Solaris |awk '{print $1,$2,$3}'`
2、赋值时=两边不能有空格

错误:

OS = `cat /etc/release |grep Solaris |awk '{print $1,$2,$3}'`

正确:

OS=`cat /etc/release |grep Solaris |awk '{print $1,$2,$3}'`
3、if后的条件中括号[]前后必须要有空格

错误:

if[-z $FS]; then

正确:

if [ -z $FS ] ; then
4、比较字符串

错误:

if [ $FS='' ] ; then
#或
if [ $FS -eq '' ] ; then
#或
#'这里的-z是判断FS长度是否为0'
if [ -z $FS ] ; then    

正确: 一定要加双引号""

if [ "$FS" = '' ] ; then
#或
#'这里的-z是判断FS长度是否为0'
if [ -z "$FS" ] ; then    
5、保留格式输出到文件

错误:

echo `df -h` >> $out_file

正确:

#需要先将有格式的内容用变量接下,再输出
result=`df -h`
echo "$result" >> $out_file
6、export变量

错误:

export JAVA_HOME=/EEIP/install/jdk1.6.0_13
export JRE_HOME=/EEIP/install/jdk1.6.0_13/jre

正确:需要换行

linux默认shell是bash,/bin/sh仅是一个指向到/bin/bash的符号链接,
而solaris的默认shell是Bourne shell,名为/bin/sh

JAVA_HOME=/EEIP/install/jdk1.6.0_13
export JAVA_HOME
JRE_HOME=/EEIP/install/jdk1.6.0_13/jre
export JRE_HOME
补充:
查看开放端口
Linux:    netstat -atn
Solaris:  netstat -P tcp -f inet -an
查看网卡/网络状态
Linux:   ifconfig
Solaris: ifconfig -a 或者 dladm show-dev 等
注:Linux 下每个网卡都是以 eth0,eth1 等来命名的,而 Solaris 则是以网卡驱动来命名的,如 rtls0, iprb0,
bge0, bge1,bnx0,e1000g1,nge1,xge0 等,可以通过man 来查看究竟是什么网卡,比如:man iprb
查看系统安装的所有软件包
Linux:   rpm -qa 或者 dpkg-query -l
Solaris: pkginfo
安装软件包
Linux:   rpm -ivh stardict.rpm
Solaris: pkgadd -d `pwd` SUNWstardict
卸载软件包
Linux:   rpm -e stardict
Solaris: pkgrm SUNWstardict
查看软件包的所有安装文件
Linux:   rpm -ql stardict
Solaris: pkgchk -l SUNWstardict | grep Pathname

根据某一个文件来判断该文件属于哪一个安装包

pkgchk -lp /usr/share/stardict/sounds/menushow.wav

rpm -qf /bin/ls
查看进程状态
Linux:   top
Solaris: prstat
在 Solaris 下可以通过pkg-get -i top 来下载安装 top软件,prstat -L 可以进一步显示每个线程的状态
查看系统服务
Linux:   chkconfig --list
Solaris: svcs
系统服务管理
Linux:   chkconfig samba off 或者 chkconfig samba on
Solaris: svcadm ensable svc:/network/smtp:sendmail 或者svcadm enable svc:/network/smtp:sendmail
Solaris 的 svcadm 可以通过-r 参数进一步把相关的服务开启或者禁止掉
查看 CPU信息
Linux:   more /proc/cpuinfo
Solaris: psrinfo -v 或者psrinfo -vp
查看内存大小
Linux:   more /proc/meminfo 或者top
Solaris: prtconf | grep ^M
监测网络
Linux:   tcpdump
Solaris: snoop
显示所有模块信息
Linux:   lsmod  
Solaris: modinfo
注:Linux 也支持modinfo,但是只显示某个模块信息,如 # modinfo fat
插入模块
Linux:   insmod/modprobe
Solaris: modload
卸载模块
Linux:   rmmod
Solaris: modload
注:Solaris 每个模块都有一个整数编号,要卸载需指定编号 modinfo | grep bge 174 ffffffffeff63000  12150 162   1  bge (BCM579x driver v0.51) modunload -i 174
查看 pci设备
Linux:   lspci -vn
Solaris: prtconf -vp
给网卡添加额外的 IP 地址
Linux:   ifconfig eth0:1 192.168.3.15
Solaris: ifconfig e1000g addif 192.168.3.15/24 up
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值