Solaris 命令 小结
 prstat -a 系统进程监控
 Solaris 10默认的shell是sh,可以改成bash
 #useradd -m -d /home/dave dave -s /bin/bash

一、Sun发展简史
 (本节不作学习要求)
 (一)硬件体系
 81--89 Sun1/2/3 CISC Motrala 680x0系列
 89--94 Sun4/60 sparc1 Risc sparc:  65 sparc1+ ; 70 sparc2; Server : Sun/290/670/690
 93--96 Sparc10/20 SuperSparc: Server : 1000/2000
 96--97 Solaris-test1(140/170/170E/200E)
 Solaris-testSparc SBUS体系结构,UPA接口
 Solaris-test2
 Server : E150,E3000
 98--99 Solaris-test5 ,Solaris-test10 PCI体系结构 (IDE外设)
 Solaris-test30,Solaris-test60
 Server : E250,E450,E3500
 00-04 …..
 Solaris 1.x SunOS 4.1.3+OpenWindow 1.x BSD
 Solaris 2.x System V 32bit
 2.5.1 SunOS 5.5.1 +OpenWindows
 2.6 SunOS5.6+CDE1.2
 Solaris 2.7(7) 64 bit
 Solaris 5.8  (Solaris 
 Solaris 10
 (二)软件体系
二、PROM状态命令与参数
(本节不作学习要求)
(一)指令集
 格式: OK> 指令
 1.banner 显示当前机器配置状况,CPU,内存,hostid,EtherNet
 2.probe-scsi 显示内部SCSI通道所挂接设备
 3.probe-scsi-all 显示所有SCSI通道及所挂接设备
 4.probe-ide 显示所有IDE通道及所挂接设备(针对U10,U5) probe-fcal-all
 5.devalias 显示设备别名,如 cdrom,disk,disk0,disk1等
 6.printenv 无参数,显示环境变量或参数为环境变量名 如: printenv auto-boot?
 7.setenv 设置环境变量,如: setenv auto-boot? false
 8.set-default 恢复环境变量预定值 如:set-default auto-boot?
 9.set-defaults 恢复所有环境变量预定值
 10.boot device [option] 启动主机
 device :设备别名,如:cdrom,disk,net 或直接设备名。如:Solaris-test60 外置CDROM/pci@1f,4000/scsi@3,1/disk@6,0:f
 option : -r 系统重新配置 -s 启动单用户环境
 如,捷迅的Unix系统都是从网络来安装的,我们在运行进用如下命令即可:
 boot net
 11.eject [cdrom|floppy] 弹出cdrom或floppy
 12.reset 复位
 
(二)环境变量
 1.auto-boot? 预定值=true 自动启动 =false 进入PROM状态
 2.diag-switch? 预定值=false 启动状态,启动设备名为boot-device =true 诊断状态,启动设备名为diag-device
 3.boot-device 预定值=disk
 4.diag-device 预定值=net
 5.tpe-link-test? 网络检测 =true 检测网络(一部分机器具有此变量)
三、系统安装
 (本节不作学习要求,主要是我的安装和配置的经验,仅供对Solars系统安装和配置感兴趣的同事参考)
(一) 系统配置步骤
 主机名 luhua
 网络连接(y/n) y
 IP地址 172.16.12.121
 命名服务 agile.agilesoft.com
 子网(y/n) y
 地理,时区 PRC
 时间
(二) 系统安装步骤
 系统安装 初始化
 软件安装 完全
 硬盘分区 手动,用户化
 / 4000
 swap 300
 backup 4300
(三)安装Solaris之后的9个主要的设置
  1. 下载并安装最新的补丁
 e.g.
 ftp://sunsolve.sun.com/pub/patches/
 8_Recommended.zip
 J2SE_Solaris_8_Recommended.zip
 安装补丁前,kill dtlogin 和inetd进程,以确保没有人登录进系统。安装后重启系统。
  2. 设置路由: vi /etc/defaultrouter, add the default gateway to the file.
 # cat /etc/defaultrouter
 10.6.2.1
  3. 设置DNS:vi /etc/resolv.conf
 # cat /etc/resolv.conf
 nameserver 10.6.2.15
 nameserver 10.0.13.11
 search sz.mydomain.com abcd.mydomain.com mydomain.com abcd.com
  4. vi /etc/nsswitch.conf 在hosts:file 后,加上dns, e.g.
 # cat /etc/nsswitch.conf
 hosts: files dns
 ......
  5. 把管理域的域名加到 /etc/defaultdomain中。 e.g.
 # cat /etc/defaultdomain
 abcd.sz
 注意:这个域名与主机的DNS域名是两个概念。这是基于管理的需要而设,与实际DNS可不相同。
  6. vi /etc/hosts
 # cat /etc/hosts
 #
 # Internet host table
 #
 127.0.0.1 localhost
 10.6.3.191 admin
 #
 10.6.3.192 db1
 10.6.3.193 app1
 10.0.13.5 loghost
  7. 为man建立index,这样就可用man -k搜索。
 catman -w
  8. 建立一个管理用户作为远程登录,用su来管理
 # user add -s /usr/bin/bash -d /export/home/admin -m admin
 # passwd admin
  9. 下载并安装Sudo
 请参考:
 http://www.chinaunix.net/bbsjh/3/10466.html
 实际工作中,这是很有用的:不必告诉有特殊需要的普通用户关的Root的帐号,但给他权限。Sudo的操作是有记录可查的,可将log放到远程的log服务器中。[
(四)、安装Solaris之后NFS安装和配置
  NFS服务器(被共享)
  1.启动服务
 /etc/rc3.d/S15nfs.server start
  2:共享目录
 vi /etc/dfs/dfstab
 e.g.
 # hostname admin
 # cat /etc/dfs/dfstab
 share -F nfs -o ro=db1:app1:app2:app3:app4,anon=0 /usr/js
 share -F nfs -o rw=db1:app1:app2:app3:app4,nosuid /home
  3. 诊断
 查看服务器的已共享资源 dfshares
 查看共享资源被利用的状况 dfmounts
  NFS客户端(使用共享)
  1.启动服务
 /usr/lib/nfs/statd
  2. 运行mount , e.g.
 app4# mount admin:/home /home
  3. 开机自动mount
 vi /etc/vfstab, 加入新的一行启动mount配置:
 e.g
 app4:~% cat /etc/vfstab
 #device         device          mount           FS      fsck    mount   mount
 admin:/home     -               /home           nfs     -       yes     -
 .....
 这样,开机后,系统自动将admin:/home目录 mount 到app4的/home目录.
  关于Linux的NFS与Solaris不同点:
 1. Solaris的目录共享设置文件是/etc/dfs/dfstab, 而RadHat Linux共享目录设置文件是/etc/exports
 2. Solaris开机自动mount设置文件是/etc/vfstab, 而RadHat Linux开机自动mount设置文件是/etc/fstab
 
(五)、安装Solaris之后NIS安装和配置
 参见:http://www.chinaunix.net/bbsjh/3/13779.html
  Server
  1. /etc/nsswitch.conf
 e.g.
 # cat /etc/nsswitch.conf
 passwd:     files nis
 group:      files nis
 netgroup:   files nis
 ...
  2. vi /etc/defaultdomain
 e.g.
 # cat /etc/defaultdomain
 agile.sz
 注意:这个域名与主机的DNS域名是两个概念。这是基于管理的需要而设,与实际DNS可不相同。
  3. /var/yp/Makefile
  4. ypinit -m
  5. 启动 /usr/lib/netsvc/yp/ypstart
  6. 诊断
 ypcat hosts
 ypcat passwd
 yp which -m
 
  Client
  1. /etc/nsswitch.conf
 e.g.
 # cat /etc/nsswitch.conf
 passwd:     files nis
 group:      files nis
 netgroup:   files nis
 ...
  2./etc/hosts
 #app4:~% cat /etc/hosts
 10.6.3.197      app4.sz
 10.6.3.191      admin
  3. /etc/defaultdomain
 #app4:~% cat /etc/defaultdomain
 agile.sz
 注意:要与Server的设置相同。
  4. ypinit -c
  5./usr/lib/netSvc/yp.ypstart
 根据所示,输入NIS Server的hostame:admin
  6. 诊断
 ypcat hosts
 ypcat passwd
  7.增加NIS用户: 
 login to nis server:admin
 run
 /var/yp/etc/adduser to add NIS users,
 run /var/yp/etc/rsetpass to change Nis users password.
  
 If you want to perm change and IP, you need to change files:
 /etc/hosts
 /etc/hostname.interfacename
 depends on your network configuration, you might also need to change:
 /etc/defaultrouter
 /etc/netmasks
  
 Reset the hostname---use this command:
 uname -S newname
 reboot
 
四、Unix 命令 (重点)
(本节为重点,所有的Unix初学者要精读)
(一)基本命令
  命令格式: 命令 参数
  1. ls 显示文件名,等同于dos下dir命令
 命令格式:ls [option] file
 option:
 -l 显示详细列表
   文件类型和权限 | 文件连接数 |所有者| 用户组脉| 文件长度 | 修改日期 | 文件名
 -a 显示所有文件,包含隐藏文件(以. 起头的文件名)
 -R 显示文件及所有子目录
 -F 显示文件(后跟*)和目录(后跟/)
 -d 与l选项合用,显示目录名而非其内容
 -p
  2. cd 目录转换,等同于dos下cd命令
 注意目录分隔符为“/”,与dos相反
 命令格式:cd dirname
  3. pwd 显示当前路径
  4. cat 显示文本内容,等同于dos下type命令
 命令格式:cat filename
  5. more 或pg 以分页方式查看一个长文本文件内容.
 命令格式:more filename
  6. rm 删除文件
 命令格式: rm [-r] filename (filename 可为档名,或档名缩写符号.)
 例子 :
 rm file1 删除档名为 file1 之文档.
 rm file? 删除档名中有五个字元,前四个字元为file 之所有文档.
 rm f* 删除档名中,以 f 为字首之所有文档.
 rm -r dir1 删除目录 dir1,及其下所有文档及子目录.
  7. mkdir 创建目录
 命令格式: mkdir [-p] directory-name
 Exmaple :
 mkdir dir1 (建立一新目录 dir1.)
 mkdir -p dir/subdir (直接创建多级目录)
  8. rmdir 删除目录
 目录必须首先为空
 命令格式: rmdir directory
  9. cp 文档复制 | cp –r 目录复制
 命令格式: cp [-r] source destination
 Exmaple:
 Cp -i file1 file2               (将文档 file1 复制成 file2 . –i为提示确认。)
 cp file1 dir1               将文档 file1 复制到目录 dir1 下,文件名仍为 file1.
 cp /tmp/file1 .               将目录 /tmp 下的文档 file1复制到现行目录下,档名仍为 file1.
 cp /tmp/file1 file2               将目录 /tmp 下的文档 file1现行目录下,档名为file2
 cp -r dir1 dir2               (recursive copy) 复制整个目录.若目录 dir2 不存在,则将目录dir1,及其所有文档和子目录,复制到目录 dir2 下,新目录名称为dir1.若目录dir2不存在,则将dir1,及其所有文档和子目录,复制为目录 dir2.
  10. mv 文件移动 | 重命名
 命令格式: mv source destination
 Exmaple:
 mv file1 file2 将file1重命名为 file2.
 mv file1 dir1 将文档 file1,移到目录 dir1 下,档名仍为 file1.
 mv dir1 dir2 若目录 dir2 不存在,则将目录 dir1,及其所有档
 案和子目录,移到目录 dir2 下,新目录名称为 dir1.
 若目录 dir2 不存在,则将dir1,及其所有文档和子
 目录,更改为目录 dir2.
  11. du 查看目录所占磁碟容量
 命令格式: du [-sk] directory
 例子 :
 du dir1 显示目录 dir1 的总容量及其次目录的容量
 du -sk dir1 显示目录 dir1 的总容量,以k bytes为计量
  12. find 查找文件
 命令格式: find dir -name filename command
 例子:
 find . -name hello -print 寻找目前目录及所有的子目录内叫
 hello的文档.
 find . -ctime +7 -print 找出七天内未被更动的文档
 find . -size +2000m -print 找出大小超过2000 bytes的文档
 find /tmp -user b1234567 -print 在/tmp下属於b1234567的文档
 find . -name '*.c' -exec rm {} 删除所有的.c档
 find . -name test\* -print 显示当前目录及其子目录文件名前4
 位为test的文件名
  13. vi 编辑器
    命令状态:
 j,k,h,l:上下左右
 0: 行首
 $: 行尾
 i,I :插入命令,i 在当前光标处插入 I 行首插入
 a,A:追加命令,a 在当前光标后追加,A 在行末追加
 o,O:打开命令,o 在当前行下打开一行,O在当前行上插入一行
 r,R :替换命令,r 替换当前光标处字符,R从光标处开始替换
 数字s: 替换指定数量字符
 x: 删除光标处字符
 dd: 删除当前行
 d0: 删除光标前半行
 d$: 删除光标后半行
 ctrl+f :后翻页
 ctrl+b:前翻页
 G : 文件尾
 数字G: 数字所指定行
 /string 查找字符串
 n 继续查找
 N 反向继续查找
 % 查找对应括号
 u 取消上次操作
    ex命令状态
 :set number 显示行号
 :set smd 显示显示状态
 :0 文件首
 :1,5 copy 7 块拷贝
 :1,5 del 块删除
 :1,5 move 7 块移动
 :1,$s/string1/string2/g 全文件查找string1并替换为string2
 :wq! 存盘退出
  14. dtpad 或 txetedit
 相当于Windows的记事本,对不习惯vi的人很有用
  15. head -5 filename 显示文件的前5行
 tail -5 filename显示文件的最后5行
  16. sort 按次序显示文件
  17. hostname
  18. lp 打印
  19. unix2dos 文件格式转化
  20. echo显示文本
  21. date
  22. script记录一个solaris会话
(二) 增强命令
  1. ln 文档连结
 命令格式:ln -s oldname newname ( Hard link )
 同一文档,可拥有一个以上之名称,可将文档做数个连结.例子 :
 ln -s file1 file2   将名称 file2,连结至文档 file1.
  2.grep 查找一个字符串
 命令格式:
 grep string filename
 寻找字串的方法很多,比如说我想找所有以M开头的行.此时必须引进pattern的观
 念.以下是一些简单的□例,以及说明: 
 ^M 以M开头的行,^表示开始的意思
 M$ 以M结尾的行,$表示结束的意思
 ^[0-9] 以数字开始的行,[]内可列举字母
 ^[124ab] 以1,2,4,a,或b开头的行
 ^b.503 句点表示任一字母
 * 星号表示0个以上的字母(可以没有)
 + 加号表示1个以上的字母
 \. 斜线可以去掉特殊意义
 <eg> cat passwd | grep ^b 列出大学部有申请帐号者名单
 cat passwd | grep ^s 列出交换学生申请帐号者名单
 cat passwd | grep '^b.503' 列出电机系各年级...
 grep '^\.' myfile.txt 列出所有以句点开头的行
  3.fgrep 搜索字符串
 命令格式:fgrep string file
  4.file 显示文件类型
 命令格式:file fileall
 文件类型为shell script,ELF 32bit,ASCII text,data or tar file
  5.diff 比较文档或目录之不同内容
 命令格式:diff [-r] name1 name2 ( name1 name2 可同时为档名,或目录名称.)
 例子 :
 %diff file1 file2
 比较文档 file1 与 file2 内,各行之不同处.
 %diff -r dir1 dir2
 比较目录 dir1 与 dir2 内,各文档之不同处
  6.cmp 比较文档相同部分
 命令格式:cmp file1 file2
  7.ftp 远程文件传输
 命令格式: ftp [hostname|IP address]
 在进入 ftp 之後,如果与 remote host 连接上了,它将会询问你 username 与密码,如果输入对了就可以开始进行文档传输.
 注意:如用户无密码,无法注册
    (1) ftp 命令
 ascii 将传输模式设为 ascii 模式.通常用於传送文字档.
 binary 将传输模式设为 binary 模式,通常用於传送执行档,压缩档与影像档等.
 cd remote-directory 将远程主机上的工作目录改变.
 lcd [ directory ] 更改本地主机的工作目录.
 ls [ remote-directory ] [ local-file ] 列出远程主机上的文档.
 get remote-file [ local-file ] 取得远方的文档.
 mget remote-files 可使用通用字元一次取得多个文档.
 put local-file [ remote-file] 将本地主机的文档送到远程主机.
 mput local-files 可使用通用字元一次将多个文档放到远程主机上.
 help [ command ] 线上辅助指令.
 mkdir directory-name 在远程主机创建一个目录.
 prompt 更改交谈模式,若为 on 则在 mput 与 mget 时每作一个文档之传
 输时均会询问.
 quit/bye 离开ftp .
    (2) 后台执行ftp
 1.首先,将过程所用到的指令依顺序放入文档中,如下:
 %cat ftp_command
 !mkdir test
 lcd test
 cd test
 prompt
 binary
 mget *.*
 bye
 2.其次,建一个.netrc档,属性为400,让ftp 自动到此读取Username
 与Password,方可顺利login 到的主机,如下:
 %cat .netrc
 machine remote login anonymous password guest
 3.最後再执行下面指令即可.
 %nohup ftp remote < ftp_command > message &
  8.telnet 远程终端访问
 命令格式:
 telnet [hostname|IP address]
  9.IO 重新导向
 UNIX所有的程式执行时,均需要资料的输入以及输出资料.一般而言,资料是从键盘输入,并将资料输出到萤幕上,这就叫做标准输入及标准输出,而我们可以更改标准出输出入.
 A. 更改标准输入 —— 在命令後方加"< <filename>" ,即可从<filename>这个文档输入资料.
 B. 更改标准输出 —— 在命令後方加"> <filename>" ,即可将萤幕输出的资料导向到<filename>这个文档上.
 C. 更改标准输出 —— 在命令後方加">> <filename>",功能与B.相似,只不过这会将资料加在文档後方.
 D. 管道 —— 在两个命令中间加上'|',即可将前方指令的输出当成後方指令
 D. 管道 —— 在两个命令中间加上'|',即可将前方指令的输出当成後方指令的输入.
 例:
 cd /tmp
 ls -l > /tmp/ls.out
 cat /tmp/ls.out
 more /tmp/ls.out
 rm /tmp/ls.out
 ls | more
 ls | wc -l (word count, count line number,算出文档数目)\
 
五、用户管理(重点)
 (本节为重点,所有的Unix初学者要精读)
(一) 用户基本知识
  1.文件信息
 ls -l
 drwxrwxrwx filename
    (1)访问权限
 mode : rwx rwx rwx r:read w:write x:execute
 user group other
 缩写 : (u) (g) (o)
    (2) 文件类型
 : 普通文件
 b : 块特殊文件,如硬盘和CDROM设备
 c : 字符文件设备
 l : 符号连接
 p : 管道或流,用于进程通讯
 d : 目录
  2.缺省权限
 创建文件和目录时,系统自动设置一定的权限.缺省权限由用户mask码控制
 ?$umask  显示用户umask码
 umask 设置 文件 目录
 022 新文件属主有读权和修改权 用户组和其他用户有读权和修改权用户组和其他用户只有读权可用umask maskvalue 改变缺省权限
  3.系统安全文件
 (1) /etc/passwd
 (2) /etc/shadow
 /etc/group
 /etc/default/login
(二)相关命令
  1. chmod 改变文档或目录之属性
 命令格式:chmod [-R] mode name
 ( name 可为档名或目录名;mode可为 3 个 8 位元之数字,或利用ls -l命令,列出文档或目录之读、写、执行允许权之文字缩写.)
 例子 :
 chmod 755 dir1 将目录dir1,设定成任何使用者,皆有读取及执行之权利,但只有拥有者可做修改.
 chmod 700 file1
 将文档file1,设定只有拥有者可以读、写和执行.
 chmod o+x file2 (u:user g:group o:other a:all) (r:read w:write x: execute)
 将文档file2,增加拥有者可以执行之权利.
 chmod g+x file3
 将文档file3,增加群组使用者可执行之权利.
 chmod o-r file4
 将文档file4,除去其它使用者可读取之权利.
  2.chown 改变文档或目录之拥有权
 命令格式:chown [-R] username name ( name 可为档名或目录名.)
 例子 :
 chown Karen file1 将文档 file1 之拥有权,改为使用者 Karen 所有.
 chown -R luhua dir1 将目录dir1及其下所有文档和子目录之拥有权,改为luhua 所有.
  3.chgrp 改变文档或目录之群组拥有权
 命令格式:chgrp [-R] groupname name ( name 可为档名或目录名 )
 例子 :
 chgrp PSI file1 将文档 file1 之群组拥有权,改为 PSI 群组.
 chgrp -R Oracle dir1 将目录dir1,及其下所有文档和子目录,改为 Oracle 群组.
  4.touch 改变文档或目录之最後修改时间
 命令格式:touch name ( name 可为文档或目录名称.)
  5.who 查看当前系统上的用户名单
 who am i 显示当前用户
 finger 列出所有用户名单
 W:
  6. id 查看当前用户用户号和组号
  7. passwd 修改用户口令
 命令格式:passwd username
 无用户参数修改本用户口令
  8. su 转换用户
 命令格式: su [-] username
 无用户参数为转换到超级用户
 - :执行新用户环境设置
  
六、文件系统管理
(一)硬盘和文件资源
 硬盘和CD-ROM设备使用块设备接口.硬盘设备文件存储在/dev目录下.
 字符设备文件存于rdsk子目录下,块设备文件存在dsk子目录下.
  1. 逻辑硬盘设备命名的约定
 /dev/[r]dsk/cwtxdysz
 例子:
 /dev/dsk/c0t3d0s0
 Cn:controller number 控制器号,标识被硬盘控制的加到系统上的逻辑顺序.
 c0代表第一个硬盘控制器,c1代表第二个硬盘控制器,类推.
 tn:target number 目标号,是位于控制器内的地址,通常在外围设备的背面能找到目标号.
 Dn:disk number 硬盘号,代表连在目标上的设备的逻辑单位号.d0代表第一个硬盘,d1代表第二个硬盘,依次类推.对嵌入式SCSI控制器,硬盘驱动号总是0.
 Sn:slice or portition number 片或分区号,标识硬盘的分区.
  2. dmesg命令
 dmesg命令用实例名和物理名来标识连到系统上的设备.dmesg命令也显示系统诊断信息、操作系统版本号、物理内存的大小以及其他信息.
 例子:
 下面的输出信息是从前面的dmesg例子的输出信息中提取出来的,标识着连到系统上的硬盘设备。对每个硬盘设备,输出三行信息,分别表示:
 硬盘的实例名。
 硬盘的物理设备名.
 硬盘的市场名和硬盘的外形信息特征.
 硬盘的逻辑设备名是对硬盘的物理设备名的符号连接.
 硬盘的实例名是对物理设备命的内核的缩写.
 Solaris命令不用此来表示硬盘.
(二)硬盘分区
 利用在设备目录下的字符设备文件和块设备文件对硬盘进行访问.然而,硬盘不是由用户直接访问的,是通过分区对它进行访问的,分区由设备目录下的设备文件来表示.“片”是“分区”的另一种说法 .
 分区是管理数据的一个方便的方法.重要的系统文件和程序可以存在一个分区,而用户产生的文件放在另一个分区.它保持不同类型的数据在不同的分区.这使系统管理员能灵活地利用数据或使用不同的备份机制.因为用户的数据每天都发生变化,系统管理员应每天作备份.而重要的系统数据不是经常变化,也就不需经常做备份.由Sun提供的硬盘分区可多达8个,用1-7标识.
 分区2表示整个硬盘.分区5表示/opt文件系统,此文件系统用来存贮那些未随操作系统一起提供的软件.分区6 是/usr分区,此文件系统包含那些只能在某些类型的系统上运行的文件(如SPARC executables)和一些能在所有系统类型上运行的文件(如联机手册放在/usr/share目录下).分区7的文件系统称为/export/home.这是挂接用户主目录的挂接点.硬盘分区通过在/dev目录下的逻辑设备文件加以访问.如/dev/dsk/c0t0d0s0表示在第一个硬盘上的第一分区.
  1.format实用程序
 format程序是一个硬盘维护工具,由系统管理员使用,完成以下任务:
 重新格式化硬盘.
 改变分区大小.
 修理和分析硬盘扇区.
 Part 标识分区号0-7.
 Tag 显示分区标签,分区标签用于标识该分区所用的目的(root,usr,home,交换区).
 Flag 显示分区标志,用以标识访问权限.
 Cylinders 显示起始和终止的柱面号.
 Size 按一定方式,以Mbytes或Gbytes为单位显示分区大小.
 Blocks 按柱面数、磁头数和扇区数来标识分区的大小.
  2.newfs 创建文件系统
 命令格式:newfs raw-device
 例子:newfs /dev/rdsk/c0t1d0s0
 3.fsck 修复文件系统
 命令格式:fsck raw-device
 例子:fsck /dev/rdsk/c0t1d0s0
(三)挂接文件资源
  1.mount 文件系统挂接
 本地或远程文件资源被接到根文件层次,看起来就象是一个单一的文件系统.这个
 连接操作称为“挂接”,利用mount命令完成 文件资源挂接到根文件层次的目录被
 称为挂接点.在调用挂接命令前,挂接点必须存在.
 命令格式:
 mount file_name mount_point
 没有选项的mount命令显示当前已挂接的文件资源.
 例子:
 # mount /dev/dsk/c0t3d0s0 /export/home
 监视文件系统
  2. df 显示文件系统所占用的硬盘空间
 df -k命令按Kbytes显示可用硬盘空间的总量和已用的硬盘空间.
 各域的含义为:
 Filesystem 被挂接的文件系统.
 Kbytes 按Kbyte计算的文件系统大小.
 Used 已用的数量(Kbytes).
 Avail 可用的数量(Kbytes).
 Capacity 已用的百分比.
 Mounted on 挂接点.
 注意:大约10%的硬盘空间为文件系统保留,在df -k命令的输出中没有反映这一点.
  3.umount 摘下文件资源
 从本地系统上摘下文件资源,超级用户可使用umount命令.
 命令格式:
 # umount mount_point
 如果在被挂接的文件资源目录里有活动,则文件资源不可摘下.在摘下前cd至/ 目录是一个很好的习惯,不要不加区别地将系统正常运转所需要的文件系统摘下.
(四) 自动挂接文件资源
 /etc/vfstab文件
 系统引导时读/etc/vfstab文件以自动挂接文件资源.该文件包含本地和远程文件资源的登记项.各域的含义:
 Device-to-mount 标识NFS服务器和文件系统,或被挂接的本地文件系统.
 Device-to-fsck 标识用于执行fsck的本地原始设备.
 Mount point 挂接点路径.
 FS-type 文件系统类型,通常是ufs用于本地文件系统,nfs用于远程文件系统.
 Fsck-pass 此域中的数字是fsck经过文件系统检查的顺序,相重的数字表示检查并行进行.
 Mount-at-boot 决定文件系统是否在系统引导时被自动挂接.
 Mount-options 定义挂接选项,如读/写访问.
 域中的-表示无选项.
 /dev/[r]dsk/cwtxdysz用于本地ufs文件系统.w,s,y,z分别表示控制器、目标、设备、片.一旦系统建立,手工在单机系统的/etc/vfstab文件中加入远程文件资源登记项.
(五)NFS资源
 Sun的NFS分布式文件系统允许在网络上的机器共享他们的资源.NFS文件系统使机器共享本地文件系统和目录,允许远程用户象本地用户那样访问这些文件系统和目录.
  1.share,shareall 共享文件资源
 share –o ro user directory
 /etc/init.d/nfs.server start
  2.dfshares 显示远程机共享资源
 dfshares remote
  3.mount 挂接远程文件资源
 mount remote:directory localdir
(六)卷管理
  1./etc/init.d/volmgt [start|stop] 启动卷管理
  2.volcheck 检查软盘,如有挂接在floppy目录下
  3.eject [cdrom|floppy] 弹出设备
 
七、进程管理
  1.ps 显示进程号 命令格式:ps -ef
  2.kill 清除进程 命令格式: kill -9 pid
  3.nohup 非挂起运行
 
八、软件包管理
  1.pkginfo 显示软件包信息
 命令格式: pkginfo -d[ device|pathname] -l pkg_name
 例子:
 这三个域为:
 pkg_category 软件包种类,可为application,graphics 或system.
 pkg_name 软件包名字,如为SUN产品则机SUNW 起 头.
 Description 软件产品的简单说明.
 例子:
 # pkginfo -d /cdrom/solaris_2_2/s0/Solaris_2.2 |more
 利用pkginfo -l 命令显示关于软件包的详细信息,包括软件包的大小(按硬盘块大小计算).
 # pkginfo -d /cdrom/solaris_2_2/s0/Solaris_2.2 -l SUNWaudio
 上面输出的最后一行指示软件包的大小. 利用此信息和df -k命令来确定你是否拥有足 够硬盘空间来安装此软件包.
  2. pkgadd 增加软件包
 利用pkgadd 命令增加软件包,当软件包被成功地安装以后,向root发送一个邮件.
 命令格式:
 pkgadd -d [device | pathname] pkg_name
 例子:
 # pkgadd -d /cdrom/solaris_2_2/s0/Solaris_2.2 SUNWaudio
  3.pkgchk 校验软件包的安装
 pkgchk命令通过将软件包的属性及路径名内容与系统记录文件中的值进行对比来校验.命令格式:
 pkgchk [-p path1 [path2...]]
 此命令可以检查整个软件包或通过指定-p选项对一特殊路径名进行检查,无输出则意味 着没有问题被检查出.由于/etc/group 文件大小已被改变,所以文件内容的checksum就不对.考察软件包信息pkgadd命令更新文件/var/sadm/install/contents、 此文件为系统中所有已安装软件包的记录文件.没有简单的方法来确定某软件包具有某一特殊文件(或命令).对于已安装的软件包,从/var/sadm/install/contents 记录文件中查找此软件包的路径 名.
  4.pkgrm 删除软件包
 命令格式: pkgrm pkgname1 pkgname2 …
 在调用pkgrm 命令后,将向你警告有依赖关系的软件包信息,并提供放弃此操作的提示.当软件包被成功地删除后,向root发送一个邮件.pkgrm命令通过文件/var/sadm/install/contents 来确定软件包的地址,并且当软件包被删除以后,更新此文件.假如此软件包被两个或更多的包共享,则一定得将这些依赖于此包的所有软件包删除以后才删除此软件包.
  5.spooling 软 件 包
 一个软件包可以由安装CD-ROM中拷贝过来存放在系统中,但并没有安装此软件包。例如,一个服务器可以拷贝存储一个软件包,一个没有CD-ROM设备的系统可以从服务器上挂接此软件包,用以安装。软件包也可以利用Software Manager远程安装,暂 略.
 服务器下面两个pkgadd命令用以说明如何spool一个软件包到/var/spool/pkg目录下或到一个你指定的目录下.pkgadd命令的-s spool选项会缺省地将软件包拷贝到/var/spool/pkg目录下.
 你可以指定一个目录作为-s选项的参数.
 客户假如服务器共享了/export/pkgs目录,则客户系统可以挂接目录/export/pkgs并安装软件包.
 # mkdir /export/pkgs
 # mount venus:/export/pkgs /export/pkgs
 # pkgadd -d /export/pkgs SUNWaudio
 删除Spooled软件包
 在服务器上可以利用-s选项从spooling目录中删除一个软件包.
 # pkgrm -s /export/pkgs SUNWaudio
 与软件包管理有关的文件和目录
 /var/sadm 包含系统记录文件和管理文件的目录
 /opt/pkgname 安装未随操作系统一起提供的、名为pkgname的软件包的推荐目录.
 /opt/pkgname/bin
 /opt/bin 未随操作系统一起提供的、名为pkgname的执行文件的推荐目录.
 var/opt/pkgname
 /etc/opt/pkgname 未随操作系统一起提供的、名为pkgname的记录文件的推荐目录.
 /var/sadm/install/contents 整个系统的软件包映象.
 
九、数据备份和传输工具
(一) 数据设备名
  1.磁带
 类型 设备名 容量 机器类型
 8mm D8112 5G 8205
 8mm D8160 7G 8505-8705
 8mm D8170 20G 8900
 4mm DDS1(60m) 1.3G  
 4mm DDS2(120m) 7G  
 4mm DDS3(125m) 12G  
 设备名: /dev/rmt/0,/dev/rmt/0n(不倒带)
  2.软盘
 设备名:/dev/fd0
  3.文件
(二) 数据备份命令
 Solaris 2.x计算环境提供了几个命令用于备份和恢复文件和文件系统.
 多卷备份 连接 系统跨接
 ufsdump
 ufsrestore Yes No No
 tar No Yes Yes
 cpio Yes Yes Yes
  1.ufsdump命令
 对系统管理员而言,ufsdump命令很有用,可对整个文件系统做完全或增量转储.
 完全转储是对整个文件系统做备份.在较长的间隔做一次,如一星期或一月.
 增量转储是对新创建或修改的文件进行备份.增量转储更频繁一些,可能一天一次.
 ufsdump命令提供了不同等级的转储,从0至9.转储等级用来确定对哪些文件备份.0级指定完全转储,1至9指定不同等级的增量转储.例如,增量转储(1等级)将对在上一次低等级(0级)转储后修改或创建的文件进行备份.对文件系统作备份时,应将系统转至运行等级S.如系统在运行等级3时,文件可能正在使用,于是可能造成无效备份.
 例子:
 # ufsdump 0uf /dev/rmt/0 /export/home
 选项及参数:
 0 指定0级(完全)转储.
 u 更新文件/etc/dumpdates,以记录成功的转储.
 f 与下面的/dev/rmt/0参数一起确定转储的磁带设备.
 /dev/rmt/0 转储的磁带设备.
 /export/home 指定要转储的文件系统.
  2.ufsrestore命令
 ufsrestore命令从备份磁带上拷贝文件至当前目录下.
 ufsrestore命令可用于重载转储好的整个文件系统或备份带上的单个或多个文件.
 ufsrestore命令的选项用来指定磁带设备名和被恢复文件的路径名.
 恢复过程
 用ufsrestore命令按以下步骤恢复一个文件:
 # cd /newdir
 # ufsrestore tuf /dev/rmt/0
  3.tar命令
 tar命令是用户级的备份命令,用于备份和恢复文件或目录.
 命令格式: tar options tape_device_name [filename]
 option c-建立新文档 v-显示路径
 t-显示文件列表 f-指定设备
 x-抽取文件 i-交互式
 例子:
 (1)备份过程:
 $ tar cvf /dev/rmt/0 *
 (2)恢复过程:
 $ tar xvf /dev/rmt/0
 (3)目录复制
 $ tar cvf - mydir|(cd newdir;tar xvf -)
 (4) 异地拷贝(必须为可信任用户)
 $ tar cvf - mydir|rsh remote tar xvf -
  4.cpio命令
 cpio(copy in/out)命令是能产生多卷备份的用户级命令.
 命令格式:
 cpio -ov >tape_device_name
 cpio -i [vt] <tape_device_name
 一旦它识别出介质的尾部,它就提示你插入另一磁带.
 cpio命令利用ls或find命令的输出进行文件列表,将这些文件输出到一个文件,
 如磁带设备.它在文件之间插入标题以便于恢复,所以比tar命令慢.
 cpio命令可用通配符作为参数,然而,cpio反着用通配符,即除满足匹配条件的文件以外,它将备份所有文件.
 备份过程
 $ find . -depth -print | cpio -ov > /dev/rmt/0
 find命令给cpio命令提供文件和目录名的列表.
 -o选项表示从标准输出读.
 /dev/rmt/0参数确定磁带设备.
 例子:
 用find和cpio命令将主目录备份到磁带上:
 恢复过程
 用cpio命令按以下步骤从磁带上检索文件和目录.
 1.将磁带插入磁带设备.
 2.改变目录至/tmp目录.
 3.用以下cpio目录确定要恢复的文件的路径名.
 $ cpio -iv < /dev/rmt/0
 -i选项抽取文件,v(verbose)选项与t选项合用则按ls -l格式列出文件,
 使用此复合选项只显示文件信息,不抽取文件.
 4.用以下cpio命令恢复文件至/tmp目录.
 $ cpio -iv < dev/rmt/0 test.file
 选项i抽取文件,v表示恢复时显示文件名.
 5.从目录/tmp拷贝文件至所需目录.
 6.取出磁带.
 下面的例子说明如何用cpio命令恢复一个文件.
  5.compress,uncompress,zcat 命令
 compress命令利用一特殊格式来压缩文件,以减少文件大小.压缩比从20%至80%.
 例如,用-v选项对名为bin.file的文件进行压缩:
 此文件被压缩后,加上后缀.Z.
 zcat < file.taz|tar xvf –
 uncompress 解压缩
 tar 打包. Tar –cvf 目标文件 源文件。 Tar –xfv ***.tar 解包
 gzip / gunzip
  6.mt 命令
 mt -f /dev/rmt/0 status 报告设备状态
 mt -f /dev/rmt/0 rew 倒带
 mt -f /dev/rmt/0n fsf 1 前进一段
 mt -f /dev/rmt/0n bsf 3 后退两段
  7.dd 命令
 dd if=/dev/rmt/0 of=/tmp/file bs=1024
  8.异地使用磁带机(必须为可信任用户)
 (1)备份数据至异地磁带机
 tar cvf - dirname|rsh remote dd of=/dev/rmt/0
 (2)从异地磁带机读取数据
 rsh remote dd if=/dev/rmt/0 tar xvf -
 
十、改变运行等级
 本章介绍基本的系统操作模式、启动和关闭系统的过程等.
 关闭系统有几种情况,系统可以彻底关闭,或转入一个中等等级以便完成诸如备份之类的维护工作.
(一)系统引导
 启动和关闭系统是系统管理的一个重要部分.
 启动(或引导)系统是指操作系统的一部分被装入内存并开始初始化自身.由于系统必须“由自身的自举来将自己提起”所以称为引导或自举.
 系统引导后,可用的内存和硬盘设备都被确定下来.系统挂接/(root)文件系统并开始重要的系统处理(如init,pscked,sendmail等).然后使得用户可用注册.
 由/sbin/init进程启动一系列shell脚本,完成以下任务:设定系统的宿主名,执行文件系统检查程序(fsck),启动守护程序和网络服务。
 一旦脚本执行完毕,系统处在等级3.
 有时系统管理员必须修改启动shell脚本以便开始新增加的服务.
(二)系统操作等级
  1. 运行等级说明
 在Solaris 2.x环境中有8个系统运行等级,这里涉及到4个等级:
 (1) 运行等级3
 运行等级3也就是完全多用户模式.这是系统的缺省运行等级,也是系统的缺省状态所有系统处理均被执行,文件资源可用挂接,用户可用注册.
 (2) 运行等级s,S
 运行等级S是单用户模式,是一个特殊的运行等级.操作系统正在执行,但是所有用户均被注销,大多数系统处理如打印、邮件等都没有执行.只有一个用户,即超级用户向系统注册.
 运行等级S对执行备份是很方便的,因为没有用户注册,所以所有数据都是稳定的. 系统由shutdown命令带入运行等级s,S.
 (3) 运行等级0
 该等级关闭(shutdown)系统至PROM等级,所以此等级对于关电源是安全的.
 (4) 运行等级5
 该等级关闭(shutdown)系统至关电源状态.
 (5) 运行等级6
 运行等级6用于关闭(halt)系统至等级0并重新引导至等级3.
  2. 显示运行等级
 调用who -r命令可以显示系统的运行等级.
 $ who -r
 run-level 3 Feb 6 15:46 3 2 S
 在此例中,系统在缺省等级3.其他域表示:
 Feb 6 15:46 最后一次运行等级改变的日期和时间.
 3 当前运行等级.
 2 最后一次再引导后在此运行等级的次数.
 S 前一运行等级.
  3.关闭系统的原因
 (1)SunTM工作站设计为大部分时间是工作时间.但也有必须关闭系统的时候,运行 等级S用于系统维护,如完成备份等.这一系统等级的变化仍被认为是关闭.
 (2) 改变一个系统的配置,如增加或删除某个磁带机或CD-ROM机.
 (3) 改变系统硬件配置,如增加或去除一个CPU板子.
 (4) 从极端情况的恢复,假如一个挂起的工作站对所有的恢复工作都不反应,可能就必须关掉电源重新开始.
  4.关闭系统(shutting down)
 关闭系统的方式根据关闭的原因而不同.执行关闭有的是为了转至执行等级S,有的是要停止操作系统并关闭设备的电源.
 halt
 init 0
  5.紧急关闭
 紧急情况,按Stop_A,如Stop_A不起作用,则将设备电源关闭再打开.这是不得已的极端情况.这两种方法不是干净的关闭,是突然关闭的,仅在紧急情况使用.
(三)例子:
  1.增加一个磁带机并完成重新配置引导:
 (1)成为超级用户,并确认在/(root)目录下.
 (2)键入touch命令:
 # touch /reconfigure
 (3)键入如下关闭命令:
 # halt
 (4) 关闭设备电源.
 (5) 增加磁带机.
 (6) 给设备通电.
  2.从挂起的工作站上恢复
 如一挂起的工作站对所有键入的命令无反应时,用以下过程恢复:
 (1) 按下Stop_A放弃系统并移至PROM监控等级,提示符为: > 或ok
 (2)键入sync命令来同步磁盘.
 (3)一旦看见“Syncing file system ... done”信息,再按下Stop_A.
 (4)发出boot命令来返回至多用户模式.
  3.从轻微问题中恢复
 如/etc/default/login登记项阻止超级用户注册,也没有用户帐号可以注册,可采用以下步骤恢复:
 (1) 按Stop_A放弃系统并移至PROM监控等级.
 (2) 输入sync命令来同步磁盘.
 (3) 一旦看见“Syncing file system ... done”信息,再按下Stop_A.
 (4) 发出boot -s命令至执行等级S.
 ok boot -s
 (5) 修改/etc/default/login文件以使得root可以注册.
 # cd /etc/default
 # vi login
 (6) 按Control_D,进入运行等级3.
 在此过程中,你可能会被提示要输入root口令.
  4.从重要问题中恢复
 如果你忘记了root口令,或是在/etc/passwd文件中root项无效,则可用以下步骤恢复:
 (1) 从Solaris 2.x安装CD-ROM盘上作单独引导.
 # boot cdrom -sw
 (2) 如需要,可设置终端类型.
 #TERM=sun; export TERM
 (3) 挂接适当的文件系统并编辑passwd和shadow文件.
 # cd /
 # mount /dev/dsk/c0t3d0s0/mnt
 # cd /mnt/etc
 # vi shadow
 (4) 卸下文件系统.
 # umount /mnt
 (5) 重新引导系统.
 # reboot
十一、网络应用配置
(一) 网络基本配置文件
  1./etc/hosts 主机名解析
  2./etc/defaultrouter网关
  3./etc/nsswitch.conf 指定查询服务顺序
  4./etc/resolv.conf 指定域和域名服务器
  5./etc/hostname.hme0 网络接口名
  6./etc/netmasks 网络掩码
  7./etc/inetd .conf 服务项目定义
(二) 远程访问命令
  1. rlogin 在远程机上注册
 命令格式 : rlogin hostname -l username
  2. rsh 在远程机上执行一个程序
 命令格式 : rsh hostname -l username order
  3. rcp 在远程系统之间拷贝文件
 命令格式 : rsh host:filename filename
(三)访问鉴别相关文件
 当rlogin,rsh,rcp命令时,有几个文件对网络安全是很重要的.
 /etc/passwd
 如远程系统的口令文件有本拥护的登记项,否则必须使用 [-l] 选项以指明不同用户
 $home/.rhosts
 rlogin,rsh,rcp首先检查用户主目录下的.rhosts文件,如主机及用户被列在文件中,则此用户为可信任主机,不需口令即可登录,如远程鉴别失败,则正常询问口令
 /etc/.hosts.equiv
 作用与.rhosts 文件类似,文件中列出用户对于本机为可信任用户,不需口令即可登录(除超级用户)。
(四)网络监控
  1.rusers 标识网络上注册用户
 命令格式:rusers -la
  2.rup 标识网络上主机
 命令格式:rup
  3.ping 检测主机连接状况
 命令格式:ping -s [hostname|IP address]
  4.spray ping命令格式为低层协议,spray使用高层协议
 命令格式:spray hostname
  5.netstat 显示与网络有关的各种数据结构
 命令格式:netstat -[r| i]n
 -r :显示路由信息
 -i :显示接口信息
  6.ifconfig 显示网络接口
 命令格式:ifconfig -a
 其中 lo0: 本机自回馈接口
 le0: 10M接口
 hme0:100M接口
 hme1:第二100M接口
  7.route 路由设置
 命令格式:route [add|delete] 设置网络路由
 defaultrouter <-缺省静态路由
  8.arp 反响解析
 命令格式:arp -[a|s]
 
十二、图形窗口配置
 (本节不作学习要求)
  1.双屏配置
 (1) /usr/openwin/bin/openwin -dev /dev/fb0 -dev /dev/fb1
 (2) /usr/dt/config/Xservers 文件
  2.ffbconfig 分辨率调整
 命令格式:ffbconfig -dev /dev/fb0 -res mode
 此命令只针对creator,creator3D卡
 mode : ? 或 1280x1024x76
 查看 creator/creator3d: ffbconfig -prconf
  3.xwininfo 分辨率确认
  4.xhost
 命令格式: xhost + 〈- 使能客户显示
  5.openwin 初始化
 /usr/openwin/lib/openwin-init $home/.openwin-init
 /usr/openwin/lib/openwin-menu-programs
  6.CDE桌面初始化
 /usr/dt/appconifg/C/sys.dtwmrc
  7.终端窗口控制字符
 erase ^H intr ^C kill ^U start ^Q stop ^S susp ^Z
 定义方式:stty erase ^H
 
详细出处参考:http://www.jb51.net/os/Solaris/18533.html

04-28 13:45