一、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) o Solaris-testSparc SBUS体系结构,UPA接口 o Solaris-test2 o Server : E150,E3000 · 98--99 Solaris-test5 ,Solaris-test10 PCI体系结构 (IDE外设) o Solaris-test30,Solaris-test60 o 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 8) · 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系统安装和配置感兴趣的同事参考) (一) 系统配置步骤 主机名 testserver 网络连接(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.首先,将过程所用到的指令依顺序放入文档中,如下: