Solaris 系统管理员培训
第一章:系统概念(System Concepts) .....................................................................................1
第二章 OpenBoot PROM.........................................................................................................2
第三章 安装 Solaris 操作系统 ................................................................................................6
第四章 软件包管理..................................................................................................................7
第五章 补丁维护....................................................................................................................10
第六章 启动过程....................................................................................................................11
第七章 系统安全....................................................................................................................13
第八章 用户管理....................................................................................................................17
第九章 初始化文件管理........................................................................................................18
第十章 进程控制....................................................................................................................18
第十一章 磁盘配置和命名....................................................................................................19
第十二章 磁盘、分区和格式化............................................................................................21
第十三章 文件系统介绍........................................................................................................22
第十四章 文件系统挂接........................................................................................................25
第十五章 网络文件系统........................................................................................................26
第一章 系统概念(System Concepts)
操作系统的主要三个部分
UNIX 操作系统是基于文件的,操作系统的主要三个部分是:
Kernel
Shell
File structure
1. Kernel 是操作系统的核心,它的主要功能是:
管理系统的设备、内存、进程以及守护进程
系统程序与系统硬件之间接口
执行所有的命令
管理:
Swap space(交换分区) – 系统运行时保留的一部分磁盘空间
Daemons (守护进程)– 处理特定的系统任务
2. shell 是用户与 kernel 之间的接口。它就像是命令的解释器或翻译器。Shell 接收你输入
的命令,对你的输入作出解释,然后就将它发送给 kernel 执行。
操作系统的 Shells 种类
Solaris 系统中有三种 shell:
Bourne shell ($) – 这是 Solaris 的缺省 shell。Bourne shell 为 AT&T UNIX 环境而开发。
(/usr/bin/sh)
Korn shell ($) – 是 Bourne shell 的一个超级。它增加了一些功能,如:别名、历史记录以
及命令行编辑等。(/usr/bin/ksh)
C shell (%) –C shell 的语法类似于 C 语言,并且,C shell 有些功能与 Korn shell 相类似。
(/usr/bin/csh)
3. 文件组织结构
Solaris 环境的文件结构是分成的目录树结构,类似于 DOS 的文件结构。是一些有特定目的
而组织在一起的目录、子目录和文件。
目录 (Directory) – 其他目录和文件所在处
子目录(Subdirectory) – 属于其他目录的所有目录
根目录(/)位于目录树的最顶层,包含 :
/usr 目录包含系统的一些命令、工具、库文件等 。
/opt 目录包含的三方应用软件。
/dev 目录包含诸如磁盘、键盘、磁带机、显示器等地设备驱动程序。
/etc 目录包含系统配置文件,如用户口令文件等等。
/export 目录一般包含用于 NFS 共享的目录。
/export/home 目录包含用户的个人主目录。
/kernel 目录包含系统结构的 kernel 文件。这个目录下的文件 genunix 是系统的 UNIX kernel 。
虚拟内存操作系统——交换分区(Swap Space)
虚拟内存操作系统增大了物理内存,它将硬盘中的一部分空间用于存储暂时不用内存数
据。这块硬盘空间叫做交换分区。与 Windows 下的 SWAP 文件的功能相似。
守护进程(Daemons)
守护进程是在后台运行的程序,它负责系统的某个特定的功能,比如打印。
系统管理的一些常见的概念:
主机(Host) – 网络环境下的某台计算机系统。
主机名(Host name) – 某台系统的名字,网络中的任何系统都必须有自己的主机名。
IP 地址(IP address) – 网络软件用于鉴别网络中某台机器的一个数字符号。
客户机(Client) – 使用网络中一个和多个服务的主机和进程。
服务器(Server) – 在网络中提供一个或多个服务的主机和进程。
网络(Network) – 许多机器连接在一起、可以互相通信的集合。
Solaris 有下列特性:
多任务(Multitasking) – 多个进程或应用程序可以同时运行。
多用户(Multiuser) – 同时可以有多个用户访问系统资源。
分布处理(Distributed processing) – 通过网络使用资源。
第二章 OpenBoot PROM
OpenBoot PROM 介绍
所有 Sun 机器都一个用于基本硬件测试和初始化的固件,还有一个提供多种重要功能的用
户程序。
1. 基本元素
Sun 系统的基本硬件元素包括:
Boot PROM 芯片,它永久的固定在主板中。
非易失性随机访问内存(non-volatile random access memory (NVRAM) )芯片,包含主机的基
本信息。
2. Boot PROM 功能
boot PROM 有以下功能:
加电自检(Power-on self-tests (POST))
系统重起始开始执行。
检测基本 CPU 板
因机器型号不同而不同。
设备驱动
有一些小型设备驱动程序,使得启动的初始化过程中可以与不同的外围设备相通讯
用户操作界面
3. NVRAM 内容
除了永久性存在地以太网地址、主机 ID、时钟外,还保存着可以修改的系统的配置参数。
Basic Boot PROM Commands
ok banner
ok boot
ok help
ok printenv
ok setenv
ok set-defaults
ok probe-scsi
ok probe-scsi-all
ok probe-ide
ok reset
banner 命令和参数
banner 命令列出系统得一些参数,比如有那些模块,内存,处理器,以太网卡地址,hostid
等信息。并且你可以通过 banner 命令获得 PROM 得版本号。
ok banner
Sun UltraSPARC 60 UPA/PCI (2 X UltraSPARC-II 296MHz), Keyboard Present
OpenBoot , 256 MB memory installed, Serial #3159808.
Ethernet address 8:0:22:1a:e7:3f, Host ID: 72303700.
ok
boot 命令和参数
您可以在 boot 命令后键入一个或多个参数。这些参数传递改操作系统内核,将影响整个启
动过程。
命令格式
ok boot [device_name] - [options]
参数
a 交互式启动系统。提示输入根设备和交换设备以及一些重要的系统文件
r 启动时系统将重新查找所有的设备,在/devices 和/dev 目录下重新生成文 件,更新
/etc/path_to_inst 文件。
s 系统启动后停留在 S 运行级别。可以用来系统错误排除。
v 详细地显示出系统的启动信息。有时可以用来系统的错误排除。
printenv 命令
printenv 命令显示 NVRAM 的参数以及参数的缺省值。
查看缺省启动设备
您可以使用 printenv 显示缺省启动设备。
ok printenv
Parameter Name Value Default Value
tpe-link-test? True true
output-device ttya screen
input-device ttya keyboard
sbus-probe-list f0123 f0123
keyboard-click? False false
diag-file
diag-device net net
boot-file
boot-device disk disk
auto-boot? true true
More [,,q] ? q
您可以在系统的输出中查看缺省启动设备,参数是 boot-device。您也可以输入 printenv
boot-device,这样只显示启动设备的值。
重新定义 PROM Boot 值
使用 setenv 命令可以重新定义 PROM 的值 。下面的例子中把 auto-boot? 变为 false,然后
reset 命令使系统重新启动,使变化生效。
ok printenv auto-boot?
auto-boot?true true
ok
ok setenv auto-boot? false
auto-boot? = false
ok reset
重置缺省值
使用 set-defaults 命令将所有的参数重新设置为缺省的值。
ok set-defaults
______________________________________________________________________
注意 –set-defaults 命令只对有缺省值的参数生效。
______________________________________________________________________
影响系统启动和自检的按键有:
stop
如果在系统加电自检时按下 Stop 键,就取消 POST(加电自检)诊断,然后停留在 OK 状态。
Stop+d
在系统自检时同时按下 stop 和 d 键,系统将自动转到诊断模式,诊断模式下系统将更完全
地进行自检。
Stop+n
如果由于 NVRAM 的设置不正确而导致系统无法正确启动时,可以在系统加电自检时同时
按下 stop 和 n 键。它的作用是将 NVRAM 的参数值设为默认值。
Stop+a
同时按下 stop 和 a 键将中断操作系统的运行,退到 OK 状态。
警告:尽量不要在操作系统运行时按 stop+a,这将导致操作系统停止并且导致数据的丢失。
在万不得以的时候,在按下 stop+a 后,键入 sync 命令用以将内存的数据同步到硬盘中。
探测系统总线
将外围设备(如光驱、硬盘)与主板连接在一起的 I/O 总线有 SCSI(small computer system
interface)总线和 IDE (integrated drive electronics)总线。
在 OpenBoot 系统中使用 probe-命令
在 OpenBoot 的系统中,使用 probe-命令时,您会看到一个警告。如果您在操作系统运行
状态下,用 stop-a 将系统强行暂停,或使用 halt 退出操作系统。这样的状态下使用 probe-命
令会造成机器挂起。因此,您必须先运行 reset-all 命令。
请先设置 auto-boot?为 false 后再运行 reset-all,系统将重新自检,停留在 OK 状态下,然后
可以运行这个命令。
显示连接在 SCSI 总线上的设备
probe-scsi 命令将鉴别连接在 SCSI 控制器上的设备。
ok probe-scsi
Target 3
Unit 0 Disk SEAGATE ST1480 SUN0424626600190016
Copyright (c)
All Rights Reserved
Target 6
Unit 0 Removable Read Only device SONY CD-ROM
ok probe-scsi-all
显示连接在 PCI 总线上的 IDE 设备
ok probe-ide
Device 0 ( Primary Master )
ATA Model : ST 34342A
Device 1 ( Primary Slave )
Not Present
Device 2 ( Secondary Master )
removable ATAPI Model : CDR-8240B
Device 3 ( Secondary Slave )
Removable ATAPI Model yyyyyyyyyyyyyyy
可以使用 devalias 命令查看设备别名的物理地址,这样就可以知道启动设备的物理设备了。
ok devalias
screen /SUNW,ffb@1e,0
mydisk /pci@1f,0/pci@1,1/ide@3/disk@0,0
net /pci@1f,0/pci@1,1/network@1,1
cdrom /pci@1f,0/pci@1,1/ide@3/cdrom@2,0:f
disk /pci@1f,0/pci@1,1/ide@3/disk@0,0
disk3 /pci@1f,0/pci@1,1/ide@3/disk@3,0
disk2 /pci@1f,0/pci@1,1/ide@3/disk@2,0
disk1 /pci@1f,0/pci@1,1/ide@3/disk@1,0
disk0 /pci@1f,0/pci@1,1/ide@3/disk@0,0
ide /pci@1f,0/pci@1,1/ide@3
floppy /pci@1f,0/pci@1,1/ebus@1/fdthree
ttyb /pci@1f,0/pci@1,1/ebus@1/se:a
ttya /pci@1f,0/pci@1,1/ebus@1/se:b
keyboard! /pci@1f,0/pci@1,1/ebus@1/su@14,3083f8
keyboard /pci@1f,0/pci@1,1/ebus@1/su@14,3083f8
mouse /pci@1f,0/pci@1,1/ebus@1/su@14,3062f8
设备别名在左列。设备物理地址在右列。
如果操作系统挂起了(没有响应),并且您也不能远程登录,那您没有别的选择了,只有强行
中断操作系统。
中断挂起的系统
如果系统挂起了,可以尝试下列步骤:
1.用 Stop-a 中断操作系统。如果成功,系统会停留在 PROM 状态。如果是使用字符终端作
为系统控制台,则按 Break 键。
2. 用 sync 命令将内存的内容同步到磁盘,减少数据的丢失。结束后系统会自动重起。
在 ok 提示符下键入 sync 命令。
ok sync
注意 – 您也可以用 Stop-a 强行中断操作系统,然后键入 go 恢复操作系统运行。不建议使
用此功能
第三章 安装 Solaris 操作系统
Software Groupings
基本
包含系统运行所需的最基本的软件和设备驱动。不包括图形界面和手册页。
最终用户
除了基本软件外,还包括图形界面。
开发者
包括编译工具、图形界面、手册页。
完整分发和 OEM 支持
包含全部内容和一些 OEM 地硬件设备驱动。
Installation Information Worksheet
Acquire the following necessary information prior to your installation:
Host name:____________________________________________________
IP address:_____________________________________________________
Name service (NIS, NIS+, DNS or None):_________________________
Subnet (yes or no):______________________________________________
Geographic location:____________________________________________
Time zone information:__________________________________________
Root password:_________________________________________________
Installation Process
1. Insert the CD-ROM into the CD-ROM drive.
2. Boot the release media.
ok boot cdrom
3. Select the appropriate language and locale for your site and click on Continue.
4. Enter the assigned host name for the system
5. Type the IP address
6 . Select the type of the name service
7. Select Time Zone
8. Select Initial to perform an initial install and not preserve current settings
9 . Select the software group
10 . Set the sizes of each disk partition
11 . Type a root (superuser) password
第四章 软件包管理
所有 Solaris 系统的软件都以包的形式出现。
软件包包含:
软件包的描述文件
系统需求的描述文件
需要安装的文件
安装前以及安装后需要运行的脚本
1. The pkgadd command
用于安装软件包
pkgadd [ -d [device | pathname ]] pkg_name
# pkgadd -d /cdrom/cdrom0/s0/ SUNWaudio
Processing package instance from
Audio applications
(sparc) ,REV=
Copyright 1998 Sun Microsystems, Inc. All rights reserved.
Using as the package base directory.
## Processing package information.
## Processing system information.
2 package pathnames are already properly installed.
## Verifying package dependencies.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.
This package contains scripts which will be executed with super-user
permission during the process of installing this package.
Do you want to continue with the installation of [y,n,?] y
Installing Audio applications as
## Installing part 1 of 1.
Installation of was successful.
2. The pkginfo command
不加任何参数用于查看系统已经安装的软件包
# pkginfo | more
application SUNWAxg Solaris XGL AnswerBook
application SUNWaadm Solaris 7 System Administrator Collection
system SUNWab2m Solaris Documentation Server Lookup
system SUNWab2r Solaris Documentation Server
system SUNWab2s Solaris Documentation Server
system SUNWab2u Solaris Documentation Server
application SUNWabda Sun Ultra 5/10 Hardware AnswerBook
application SUNWabe Solaris 7 User Collection
application SUNWabsdk Solaris 7 Software Developer Collection
The pkginfo Command
后面可跟一些参数,显示特定某个软件包的信息
Command Format
pkginfo [ -d [ device | pathname ] ] [ -l ] pkg_name
参数
-d device 指定软件所在的位置,可以是目录、磁带机、软盘等等
-l 显示详细信息
pkg_name 软件包名
输出列
CATEGORY 软件包的类型,是“应用软件”和是“系统软件”
PKGINST 软件包名,如果是 SUNW 打头,则是 SUN 的产品
NAME 软件的简要描述
# pkginfo -d /cdrom/cdrom0/s0/ -l SUNWaudio
PKGINST: SUNWaudio
NAME: Audio applications
CATEGORY: system
ARCH: sparc
VERSION: ,REV=
BASEDIR: /
VENDOR: Sun Microsystems, Inc.
DESC: Audio binaries
PSTAMP: dtbuild37s19980813171753
HOTLINE: Please contact your local service provider
STATUS: spooled
FILES: 9 spooled pathnames
2 directories
3 executables
4 package information files
700 blocks used (approx)
3. The pkgrm Command
Command Format
pkgrm package_name
用于删除软件包
# pkgrm SUNWaudio
The following package is currently installed:
SUNWaudio Audio applications
(sparc) ,REV=
Do you want to remove this package? y
## Removing installed package instance
## Verifying package dependencies.
WARNING:
The package depends on the package
currently being removed.
WARNING:
The package depends on the package
currently being removed.
WARNING:
The package depends on the package
currently being removed.
WARNING:
The package depends on the package
currently being removed.
Dependency checking failed.
Do you want to continue with the removal of this package [y,n,?,q]
如果某个文件被多个包共享,则当最后一个包被删除时才被删除。
4. The pkgchk Command
用于检查已安装的软件包
Command Format
pkgchk [ -p path1 [ path2...] ]
# pkgchk SUNWaudio
#
# pkgchk -p /etc/group
ERROR: /etc/group
file size <278> expected <282> actual
file cksum <23586> expected <24038> actual
pkgchk 命令校验包的属性和内容是否与系统记录的一致。
这个命令能检测整个包或是某个文件。没有输出表示包已经安装,但未发现不一致。
5. admintool 图形管理工具
admintool 是 solaris 图形管理工具,包括管理软件包、主机名、主机地址、打印机、串口、
用户、用户组等。
第五章 补丁维护
什么是 Patch?
简单的说,补丁就是一些替换现存的文件和目录的文件目录集合。补丁纠正应用程序的错误
或增加功能。
Patch 编号
每个补丁都有编号。例如补丁号为 101945,版本是 34 的话,这个补丁的目录名就是
101945-34.
patchadd 命令用于安装补丁:
# cd /tmp
# ls
105160-01 ps_data sdt_fl8zKOI_
# patchadd 105160-01
Checking installed packages and patches...
Verifying sufficient filesystem capacity (dry run method)
Installing patch packages...
Patch number 105160-01 has been successfully installed.
See /var/sadm/patch/105160-01/log for details
Patch packages installed:
SUNWdtbas
patchrm 用于删除补丁
# patchrm 105633-06
Checking installed packages and patches...
Patch 105633-06 has been backed out.
#
下面的命令用于检查系统的补丁情况
# patchadd -p
Patch: 105160-05 Obsoletes: Requires: Incompatibles:Packages: SUNWdtbas
# showrev -p
Patch: 105160-05 Obsoletes: Requires:Incompatibles: Packages: SUNWdtbas
第六章 启动过程
启动有四个阶段
Boot PROM 阶段
Boot program 阶段
Kernel 初始化阶段
/sbin/init 阶段
启动过程:
自检、显示系统信息、读取启动设备的 0 扇区、在启动设备寻找启动程序、加载启动程序、
启动内核、运行/sbin/init。
/sbin/init 程序
读取/etc/inittab 文件。Init 程序执行/sbin/rc*脚本。
系统有多种运行级别,不同的运行级别所启动的服务不同。
系统运行级别有 8 种,分别为:
运行级别 意义
0 进入 PROM 状态(OK 状态)
1 管理状态(所有文件系统都挂上的单用户模式,禁止其他用户登录)
2 多用户模式(没有网络文件共享服务)
3 多用户模式(有网络文件共享服务)
4 未使用
5 退出操作系统并关机
6 重新启动机器
S,s 单用户模式
who 命令查看运行级别
# who -r
. run-level 3 5 月 10 17:03 3 0 S
可得到的信息:当前运行级别是 3,系统启动的时间是 5 月 10 日 17:03.
/etc/inittabinittab 定义了:
系统缺省运行级别
系统进入新运行级别需要做什么
/etc/ 目录包含了系统的一些启动脚本
/etc/ 目录包含进入运行级别 1 所需要运行的一些脚本
/etc/ 目录包含进入运行级别 2 所需要运行的一些脚本
...
...
这些目录下包含两种文件:
以 K 打头,后面跟两个数字以及一些字符串:表示系统到这个运行级别时所需要停止的一
些服务,系统将以 stop 调用这个脚本。
以 S 打头,后面跟两个数字以及一些字符串:表示系统到这个运行级别时所需要开始的一
些服务,系统将以 start 调用这个脚本。
增加启动控制脚本
the run level for the service
which services are needed by the new process
to /etc/rc#.d and identify startup script
the process for the directory containing the shutdown script
the startup (shutdown) script in /etc/
hard links to appropriate /etc/rc#.d directories
改变运行级别
init 命令用于改变操作系统的运行级别。
命令格式:
init [ 0123456Ss ]
# init 0
INIT: New run level: 0
The system is coming down. Please wait.
System services are now being stopped.
Print services stopped.
Stopping the syslog service.
syslogd: going down on signal 15
Aug 14 14:54:30 snmpdx: received signal 15
The system is down.
syncing file systems... done
Program terminated
Type help for more information
ok
shutdown
用于改变操作系统运行级别。
命令格式:
shutdown [ -y ] [ -g seconds ] [ -i init-state ] [message]
选项:
y 系统提示时默认回答为 YES
g 过多长时间改变
i 想要的运行级别
message 给所有登录用户的信息
# shutdown -y -g 0 -i 0
Shutdown started. Mon Dec 15 15:13:57 PST 1997
Broadcast Message from root (console) on mcmurdo Mon Dec
15 15:13:57...
THE SYSTEM IS BEING SHUT DOWN NOW ! ! !
Log off now or risk your files being damaged
Changing to init state 0 - please wait
ok
halt
进入 0 运行级别
poweroff
关闭系统并切断电源
reboot
重新启动系统
第七章 系统安全
UIDs(用户 ID)
UIDs 用于区别文件和目录的所有者。保存在 /etc/passwd。
GIDs(用户组 ID)
GIDs 用户区别用户、文件、目录的组成员。
/etc/passwd 文件记录了系统的用户帐号的信息
格式
loginID:x:UID:GID:comment:home directory:login shell
#more /etc/passwd
root:x:0:1:Super-User:/:/sbin/sh
daemon:x:1:1::/:
bin:x:2:2::/usr/bin:
sys:x:3:3::/:
adm:x:4:4:Admin:/var/adm:
lp:x:71:8:Line Printer Admin:/usr/spool/lp:
uucp:x:5:5:uucp Admin:/usr/lib/uucp:
nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/uucp/uucico
listen:x:37:4:Network Admin:/usr/net/nls:
nobody:x:60001:60001:Nobody:/:
noaccess:x:60002:60002:No Access User:/:
nobody4:x:65534:65534:SunOS Nobody:/:
jxbcpp:x:901:410:Dave Lister:/export/home/jxbcpp:/bin/sh
loginID 用户名
x 隐藏的口令。加密的口令放在/etc/shadow 文件中
UID 用户 ID
GID 组 ID
comment 描述
home directory 个人主目录
login shell 登录后使用的 shell
/etc/shadow 文件记录了系统用户的加密后口令
格式
loginID:password:lastchg:min:max:warn:inactive:expire:
#more /etc/shadow
root:LXeokt/C/oXtw:6445::::::
daemon:NP:6445::::::
bin:NP:6445::::::
sys:NP:6445::::::
adm:NP:6445::::::
lp:NP:6445::::::
smtp:NP:6445::::::
uucp:NP:6445::::::
nuucp:NP:6445::::::
listen:*LK*:::::::
nobody:NP:6445::::::
noaccess:NP:6445::::::
nobody4:NP:6445::::::
lister:ubQhZXEMv/lyI:10336:7:90:5:30::
loginID 对应用户名
password 加密后的口令。LK 表示锁定帐号,NP 表示无口令
lastchg 最后更改口令的日期与 1970 年 1 月 1 日之间相隔的天数
min 改变口令需要最少的天数
max 同一口令允许的最大天数
warn 口令到期时,提前通知用户的天数
inactive 用户不使用帐号多少天禁用帐号
expire 用户帐号过期的天数
最后一个字段未用
/etc/group 文件记录了系统的用户组的信息
格式
groupname:password:GID:userlist
#more /etc/group
root::0:root
other::1:
bin::2:root,bin,daemon
sys::3:root,bin,sys,adm
adm::4:root,adm,daemon
uucp::5:root,uucp
mail::6:root
tty::7:root,tty,adm
lp::8:root,lp,adm
nuucp::9:root,nuucp
staff::10:
daemon::12:root,daemon
sysadmin::14:lister,torey
nobody::60001:
noaccess::60002:
Groupname 组名
password 口令。已经不使用
GID 组 ID
userlist 成员列表
一个用户可以同时属于多个组。
id 命令用于查看用户的 id 号(用户号)
命令格式
id [ options ] [ username ]
$ id
uid=10450(student1) gid=150(learning)
$ id -a
uid=10450(student1) gid=150(learning) groups=150(learning),14(sysadmin)
不加参数显示用户所在的 id 号用户和主要组 id 号。
-a 参数显示用户的所在所有组的组 id 号。
改变用户
su 命令用户改变当前的用户。
$ su - jxbcpp
Password:
su 命令后可以加-,也可以不跟。如果跟-,则切换到那个用户后执行用户的启动脚本,
如.profile。
改变文件所有者
chown user_name filename
# ls -l memo
-rw-r--r-- 1 rimmer other 0 Jul 6 18:30 memo
# chown chris memo
# ls -l memo
-rw-r--r-- 1 chris other 0 Jul 6 18:30 memo
# cd /export/home
# chown -R chris mydocs
-R 选项把 mydocs 目录下所有子目录及其文件的所有者都改变为 chris。
# chown -R lister:staff mydocs
把 mydocs 目录的所有者改为 lister,所在组改为 staff。
注:只有管理员才能改变所有者。
查看登录状态
命令 who、finger、last 可以查看用户登录状态。
who
查看本机登录的用户状态。显示用户名、登录的设备、登录时间以及登录的主机名字。
$ who
rimmer pts/1 Dec 21 07:07 (nepal)
lister console Dec 21 12:18 (:0)
用户 rimmer 从机器 nepal 上登录。而用户 lister 则在本地登录。
finger
显示本地和远程系统用户的详细信息。包括用户名、用户注释信息、终端名、空闲时间、登
录时间、登录主机名。
$ finger bevw
Login name: bevw In real life: bev’s account
Directory: /home/bevw Shell: /bin/ksh
Last login Wed Oct 21 08:07 on console from :0
No unread mail
No Plan.
last
显示系统的最近用户登录状况。
$ last
rimmer pts/4 pluto Fri Dec 18 10:24 - 11:00 (00:36)
lister pts/4 pluto Tue Dec 8 09:39 - 09:49 (00:10)
rimmer pts/4 pluto Thu Dec 3 15:16 - 15:17 (00:00)
rimmer console :0 Wed Dec 2 08:47 still logged in
reboot system boot Wed Dec 2 08:44
rimmer pts/0 pluto Tue Dec 1 17:27 - 17:28 (00:00)
rimmer pts/3 pluto Tue Dec 1 16:13 - 16:39 (00:26)
rimmer pts/2 pluto Tue Dec 1 15:32 - 15:38 (00:06)
holly term/a pluto Tue Dec 1 15:12 - 08:41 (17:29)
第八章 用户管理
可以用 admintool 图形工具增加、更改、删除用户和用户组。
注意:
用户所在的组必须先于用户之前创建。
命令行方式:
增加用户组
groupadd 命令增加用户组
groupadd [-g gid] group
说明:
g 制定组的 ID 号
gid 组的 ID 号(不能与现有的组 ID 号重复)
group 组名
#groupadd –g 100 sun
useradd 命令增加用户组
useradd [-u uid | -g group] | -d dir | -s shell | -c comment | -m [-k skel_dir] ] login
说明:
u 指定用户 ID 号
g 制定所在组
d 指定用户目录
s 制定用户 SHELL
c 用户的注释
m 建立用户目录
login 用户的登录名
#useradd –u 1233 –g sun –d /export/home/sun –c “Sun test user.” –m –s /usr/bin/sh sun
第九章 初始化文件管理
用户的初始化文件是一些命令脚本和 shell 参数。
下表列出不同的 shell 所运行的初始化文件:
Shell System User Template
(Read First) (Read Second/Third) /etc/skel
Bourne /etc/profile $HOME/.profile
Korn /etc/profile $HOME/.profile
C /etc/.login $HOME/.cshrc
then $HOME/.login
如当一个具有 Bourne Shell 的用户登陆系统后,系统将首先自动运行/etc/profile 这个初始化
脚本,然后运行用户目录下的.profile 初始化脚本。
当创建一个 Bourne Shell 的用户时,系统会自动把/etc/skel/ 这个文件拷贝到用户
主目录下。因此/etc/skel 下包含的是一些用户初始化脚本的模板。
如何手工运行初始化脚本文件:
Bourne and Korn Shells
$ cd
$ . ./.profile
$ . ./.kshrc
C Shell
% source ~/.login
% source ~/.cshrc
第十章 进程控制
使用 ps 命令显示系统正在运行的进程。
参数:
e 列出系统所有的进程
f 列出详细清单
UID:运行进程的用户
PID:进程的 ID
PPID:父进程的 ID
C:进程的 CPU 使用情况(进程使用占 CPU 时间的百分比)
STIME:开始时间
TTY:运行此进程的终端或控制台
TIME:消耗 CPU 的时间总量
CMD:产生进程的命令名称
要查找某进程:
#ps -ef|grep process_name
使用 Kill 命令给进程发送一个信号。Kill 命令一般用于结束系统的某个进程。
Solaris 有 44 个信号。每个信号有个数字和名称。如果你未制定信号,则默认为信号 15,这
个信号用于结束进程。
用户只能结束自己启动的进程。超级用户可以结束任何一个进程。
#find / -name test
#ps -aef|grep find
root 3602 3575 0 20:13:01 pts/0 0:00 grep find
root 3601 3575 2 20:12:56 pts/0 0:00 find / -name test
#kill 3601
第十一章 磁盘配置和命名
Solaris 下,一个磁盘包含 8 个分区,标记为 0-7。
分区 0 位根分区,包含启动的信息
分区 2 代表整个磁盘
交换分区可以是任何分区,默认为分区 1
其它分区用户存放数据
逻辑设备名存放在/dev/dsk 和/dev/rdsk 中。这些名称是/devices 目录下的符号连接。使用逻
辑设备名便于系统管理员操作。
Sun 使用下列命名方式定义逻辑设备名:
/dev/[r]dsk/c#t#d#s#
c:逻辑控制器号
t:物理总线目标号
d:磁盘或逻辑单元号(LUN)
s:分区号
物理设备名表示设备的完整信息,如设备总线地址。物理设备名在/devices 目录下。
# ls -l /dev/dsk/c0t3d0s0
lrwxrwxrwx 1 root root 86 Oct 20 16:04 /dev/dsk/c0t3d0s3 ->
../../devices/iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,880
0000/sd@3,0:d
实例名是系统设备的简称。例如:
sdn where s = SCSI, d = disk, and n = 逻辑磁盘号,例如 sd0,表示第一个 SCSI 磁盘设备。
dmesg 显示实例名
dmesg 命令鉴别系统所连接的设备。以实例和物理设备名称的方式显示。
# dmesg|more
May 13 20:18
cpu0: SUNW,UltraSPARC (upaid 0 impl 0x10 ver 0x40 clock 167 MHz)
SunOS Release Version Generic [UNIX(R) System V Release ]
Copyright (c) 1983-1998, Sun Microsystems, Inc.
NOTICE: 64 bit OS installed, but the 32-bit OS is the default
for the processor(s) on this system.
See boot(1M) for more information.
Booting the 32-bit OS ...
mem = 196608K (0xc000000)
avail mem = 189440000
Ethernet address = 8:0:20:9b:60:b5
root nexus = Sun Ultra 1 SBus (UltraSPARC 167MHz)
sbus0 at root: UPA 0x1f 0x0 ...
sbus0 is /sbus@1f,0
dma0 at sbus0: SBus0 slot 0xe offset 0x8400000
dma0 is /sbus@1f,0/espdma@e,8400000
/sbus@1f,0/espdma@e,8400000/esp@e,8800000 (esp0):
esp-options=0x46
...
...
prtconf 用于显示系统的配置信息,包括内存、外围设备等。
# prtconf|more
System Configuration: Sun Microsystems sun4u
Memory size: 192 Megabytes
System Peripherals (Software Nodes):
SUNW,Ultra-1
packages (driver not attached)
terminal-emulator (driver not attached)
deblocker (driver not attached)
obp-tftp (driver not attached)
disk-label (driver not attached)
sun-keyboard (driver not attached)
ufs-file-system (driver not attached)
chosen (driver not attached)
openprom (driver not attached)
client-services (driver not attached)
options, instance #0
aliases (driver not attached)
memory (driver not attached)
virtual-memory (driver not attached)
counter-timer (driver not attached)
sbus, instance #0
SUNW,CS4231, instance #0 (driver not attached)
auxio (driver not attached)
...
...
当在系统中增加新设备时,需要重新配置系统的硬件信息。这样,系统就会重新构建/devices
和/dev 目录。
下面是新增加硬盘的步骤:
1.在根目录下创建一个名为/reconfiguration 的空文件,然后重新关机。
2. 将硬盘接上机器,然后开机。
3.用 format 命令查看新增的硬盘。
# touch /reconfigure
# init 5
# format
第十二章 磁盘、分区和格式化
磁盘卷标,也叫磁盘卷内容表(VTOC),包含:
磁盘的分区表
磁盘的卷名
各分区的分区标识(分区挂接点的描述)
各分区的分区标识(分区是否可写或可挂接)
磁盘卷标占据磁盘的第一扇区
把一个磁盘分区的步骤:
1. Type format at the prompt and press Return.
2. Choose a disk by selecting the number to the left corresponding to its description.
3. Type partition at the format prompt.
4. Type print at the partition prompt.
5. Type partition number to change the root partition.
6. Enter the new values.
7. Once you are satisfied with the partition table, label the disk.
命令 prtvtoc 可以显示某个磁盘的分区状况
# prtvtoc /dev/rdsk/c0t0d0s2
* /dev/rdsk/c0t0d0s2 partition map
* Dimensions:
* 512 bytes/sector
* 80 sectors/track
* 9 tracks/cylinder
* 720 sectors/cylinder
* 2500 cylinders
* 1151 accessible cylinders
* Flags:
* 1: unmountable
* 10: read-only
* First Sector Last
* Partition Tag Flags Sector Count Sector Mount Directory
0 2 00 0 41040 41039 /
1 3 01 41040 65520 106559
2 5 00 0 828720 828719
6 4 00 106560 722160 828719 /usr
第十三章 文件系统介绍
文件系统的定义
对用户来说,文件系统是存储信息的文件和目录的集合。
对操作系统来说,文件系统是以一些数据的集合。
磁盘文件系统
Solaris 定义了 3 种文件系统类型:
ufs – UNIX 文件系统。是 Solaris 缺省的文件系统。
hsfs – 高密度 CD-ROM 文件系统,是只读文件系统。
pcfs – PC 文件系统,支持 DOS 格式化的软盘。
网络文件系统
NFS 是 Solaris 系统支持的网络文件系统。
内存文件系统
指操作系统运行时存在于内存中的文件系统。
流分区已经定义了分区的大小和位置,但未创建文件系统。
块分区已经创建了文件系统。
它们之间的逻辑设备名分别存放在/dev/rdsk 和/dev/dsk 中。
磁盘卷标包含了磁盘的分区表。磁盘卷标存放在磁盘的第一个扇区。
启动块
启动块存放着启动程序。位于磁盘的 1-15 扇区。
超级块
超级块包含启动块后面的 16 个扇区。超级块是文件系统的信息表,包含:
数据块的数量
柱面组的数量
数据块和碎片的大小
硬件的描述
挂接点
文件系统的状态:干净、稳定或激活
备份的超级块
由于超级块包含了许多关键数据,因此,必须要备份。备份是在文件系统创建时产生的。
Solaris 下以 inode 的方式记录文件
Inode 包含文件的下列信息:
文件类型和访问模式
文件的拥有者和所在组的
文件大小
上次访问和更改的时间以及 inode 更改的时间
已用数据块的数量
inode 包含两种指针:直接指针和间接指针
直接指针
有 12 个,直接指向数据块。这 12 个指针可以支持 96K 字节的文件。
间接指针
单倍间接– 单倍间接指针指向包含指针的数据块。这样可以支持 16M 字节的文件。
双倍间接–双倍间接指针指向包含单倍间接指针的数据块。这样可以支持 32G 字节的文件。
三倍间接–三倍间接指针指向包含双倍间接指针的数据块。这样可以支持 70T 字节的文件。
newfs 创建文件系统
# newfs /dev/rdsk/c0t2d0s0
newfs: construct a new file system /dev/rdsk/c0t2d0s0: (y/n)? y
/dev/rdsk/c0t2d0s0: 41040 sectors in 57 cylinders of 9 tracks, 80 sectors
in 4 cyl groups (16 c/g, 2688 i/g)
super-block backups (for fsck -F ufs -o b=#) at: 32, 11632, 23232, 34832,
文件系统检测工具(fsck)用于检测文件系统是否出错。
比如,某个数据块不能同时被两个不同的 inode 占用。Fsck 程序可以检测这种错误。
# fsck /dev/rdsk/c0t3d0s7
** /dev/rdsk/c0t3d0s7
** Last Mounted on /export/home
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
2 files, 9 used, 21606 free (14 frags, 2699 blocks, % fragmentation)
文件系统错误
许多情况下,文件系统发生错误是由于超级块有错误。发生错误的原因主要是:
非正常关机
掉电
硬件错误
fsck 运行的时间
系统每次启动时都会自动运行 fsck。如果发现错误,会尝试自动修复,如果错误非常严重,
需要人工修复。这是进入系统单用户模式,然后打命令:
#fsck /dev/rdks/c0t0d0s0
df 命令查看已挂接的文件系统使用状况
参数 k:表示以千字节格式显示
$ df -k
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c0t3d0s0 38111 19196 18877 51% /
/dev/dsk/c0t3d0s6 565503 361529 203409 64% /usr
/proc 0 0 0 0% /proc
fd 0 0 0 0% /dev/fd
/dev/dsk/c0t3d0s1 25159 4886 20248 20% /var
/dev/dsk/c0t3d0s5 27439 20362 7050 75% /opt
swap 45980 12 45968 1% /tmp
du 命令显示某个目录下文件的占用磁盘空间的情况:
du [-a] [-s] [-k] [directory]
参数:
-k 以千字节方式显示(默认是以块方式显示,一个块为 512 字节)
-s 只以简略的方式显示
-a 显示制定目录下所有文件和目录占用的磁盘块数量
第十四章 文件系统挂接
挂接就是将分离的文件系统附加到文件系统分成结构中。文件系统要附加到某个挂接点,也
就是目录。
挂接和卸载文件系统发生在系统启动和关闭时。
系统启动时,将读取/etc/vfstab 文件。这个文件记录系统要挂接的文件系统。因此/etc/vfstab
文件中的文件系统将自动挂接。也可以从命令行方式下人工挂接文件系统。
不加参数的 mount 显示系统目前已经挂接的文件系统。
# mount
/ on /dev/dsk/c0t3d0s0 read/write/setuid/largefiles/logging on Mon Nov 18
17:58:19 1998
/usr on /dev/dsk/c0t3d0s6 read/write/setuid/largefiles/logging on Mon Nov 18
17:58:19 1998
/proc on /proc read/write/setuid on Mon Nov 18 17:58:19 1998
/dev/fd on fd read/write/setuid on Mon Nov 18 17:58:19 1998
/var on /dev/dsk/c0t3d0s1 nolargefiles/read/write/setuid on Mon Nov 18 17:58:19
1998
/opt on /dev/dsk/c0t3d0s5 setuid/read/write/largefiles on Mon Nov 18 17:58:20
1998
/tmp on swap read/write on Mon Nov 18 17:58:20 1998
/pns on dbserver:/export/pse soft/nosuid/remote on Mon Nov 18 19:04:36 1998
nolargefiles 参数将使文件系统中所有新建的文件小于 2G 字节。
# mount -o nolargefiles /dev/dsk/c0t3d0s7 /export/home
使用这个参数可能出现错误,原因是由于文件系统包含了大于 2G 的文件
要挂接在/etc/vfstab 中已有的某个文件系统时,只需要用命令
# mount /export/home
/etc/vfstab 文件格式
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot ops
#/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr ufs 1 yes -
/proc - /proc proc - no -
fd - /dev/fd fd - no -
swap - /tmp tmpfs - yes -
/dev/dsk/c0t3d0s0 /dev/rdsk/c0t3d0s0 / ufs 1 no -
/dev/dsk/c0t3d0s6 /dev/rdsk/c0t3d0s6 /usr ufs 1 no -
/dev/dsk/c0t3d0s3 /dev/rdsk/c0t3d0s3 /export ufs 5 yes -
/dev/dsk/c0t3d0s7 /dev/rdsk/c0t3d0s7 /export/home ufs 5 yes -
/dev/dsk/c0t3d0s5 /dev/rdsk/c0t3d0s5 /opt ufs 8 yes -
/dev/dsk/c0t3d0s1 - - swap - no -
umount 卸载文件系统
# umount /dev/dsk/c0t3d0s7
或
# umount /export/home
如果文件系统中某个文件正在使用,则不能卸载这个文件系统。
总结:如何增加一个新的硬盘
1. Set up hardware, including setting switches and attaching cables. Follow the instructions
included with the new disk.
2. Reboot the system using the command boot -r. This command will restart the system using the
reconfigure (-r) option.
3. Partition the disk.
4. Create the new file systems as required.
5. Edit the /etc/vfstab file as required.
6. Reboot the system.
光驱、软驱的使用
Solaris 有个服务进程管理光驱和软驱,当光盘或软盘放入机器中,系统会自动的挂接上,挂
接的目录是:
Media Location
CD-ROM /cdrom/cdrom_name
Diskette /floppy/floppy_name
如:
#cd /cdrom/cdrom0
管理进程叫卷管理服务器,其脚本位于/etc/
第十五章 网络文件系统
NFS 即网络文件系统,是 UNIX 系统直接用以共享文件的协议。
NFS 服务器:提供网络共享资源的系统
NFS 客户:使用网络共享资源的系统
当客户端发出一个 NFS 请求时,挂接进程联系挂接守护进程(/usr/lib/nfs/mountd)。本地挂接
进程将挂接信息写到/etc/mnttab 文件中。一旦客户完成 NFS 挂接请求,服务器中的/etc/rmtab
文件中会写入挂接信息。当客户卸载了 NFS 共享资源后,这些信息就会从文件中删除。
NFS 服务器守护进程
当客户试图访问远程共享资源时,NFS 服务器的守护进程(/usr/lib/nfs/nfsd)响应请求并返回
数据。服务器守护进程由/etc/ 产生。如果/etc/dfs/dfstab 文件中有共享条目,
这些共享目录会在守护进程启动时自动共享。
客户端 NFS 守护进程
客户端有两个守护进程,/usr/lib/nfs/statd 和/usr/lib/nfs/lockd。这些进程在系统进入运行级别
2 时自动运行。
# more /etc/dfs/dfstab
# Place share(M) commands here for automatic execution
# on entering init state 3.
#
# Issue the command '/etc/ start' to run the NFS
# daemon processes and the share commands, after adding the very
# first entry to this file.
#
# share [-F fstype] [ -o options] [-d ""] [resource]
# ,
# share -F nfs -o rw=engineering -d "home dirs" /export/home2
share 命令
share [ -F FSType ] [ -o options ] [ -d description ] pathname
参数
-F FSType 指定文件系统的类型。如果/etc/dfs/fstypes 文件中缺省的远程文件类型是 NFS,
则不需要指定
-o options 控制客户端访问 NFS 共享资源的权限
-d description 共享资源的描述
pathname 要共享的资源
unshare 命令
unshare [ -F nfs ] pathname
dfshares 命令
用以查看服务器的共享资源
# dfshares
RESOURCE SERVER ACCESS TRANSPORT
venus:/usr/share/man venus - -
#dfshares mars
RESOURCE SERVER ACCESS TRANSPORT
mars:/export mars - -
dfmounts 命令
服务器上查看共享资源被利用的状况
# dfmounts
RESOURCE SERVER PATHNAME CLIENTS
- venus /usr/share/man earth, pluto,(anon)
挂接远程网络文件系统
mount [ -F nfs ] [ -o options ] server:pathname mount_point
# mount venus:/usr/share/man /usr/share/man
Solaris 网络管理员培训
第一章 网络地址和掩码
1. /etc/
Interface 是网卡的型号,有 le、hme 等。Le 是十兆网卡,hme 为百兆网卡等等。后面跟一个
数字,第一个十兆网卡为 le0,第二个为 le1;第二个百兆网卡为 hme0,第二个为 hme1 等
等。
文件的内容是这块网卡的名字,如 Sunrise、Sunny。
#more /etc/
Sunrise
# more /etc/
Sunny
2. /etc/hosts 文件
系统名与 IP 地址的映射
与/etc/ 协同工作,配置本机网卡地址
# more /etc/hosts
localhost loghost
Sunrise
Sunny
系统名不是机器名,机器名是唯一的,要更改机器名,用命令:hostname。
有了/etc/ 和/etc/hosts 两个文件,系统就知道如何配置网卡了,如第一个百
兆网卡的名字是 Sunny,其对应的地址是 。
3. /etc/netmasks 文件
将网络的 IP 地址与网络地址联系一起,划分子网
如果是标准网段,则不需要配置
标准网段:
A 类网:0-127(127 用于本地地址) 掩码:255..
B 类网:128-191 掩码:
C 类网:192-223 掩码:
D 类网:224-254(用于多址广播)
要配一个 B 类地址: 掩码为:,则在/etc/netmasks 文件中写:
4. ifconfig 命令
检测网络端口状态
#ifconfig -a
配置网络端口地址
#ifconfig le0 netmask
配置网络端口状态
#ifconfig le0 up/down
配置网络端口是否可用
#ifconfig le0 plumb/unplumb
5. ping 命令
检测网络状态
测试网络速度
第二章 网络服务
1. /etc/services 文件
网络服务协议的端口号
网络协议的服务类型
#cat /etc/inet/services
ftp-data 20/tcp
ftp 21/tcp
telnet 23/tcp
smtp 25/tcp mail
sunrpc 111/udp rpcbind
sunrpc 111/tcp rpcbind
…
每个 TCP/IP 应用层服务如(FTP、Telnet)都在传输层有一个端口号。/etc/services 文件包含了
每个能识别出的服务协议所对应的静态端口号。应用应使用唯一分配的端口号向传输提供者
和远程对等实体标识自己。
文件中每一项都由服务名及其相关的端口号、传输协议提供者组成。有些服务可以在 TCP
和 UDP 上都可以运行。这时,此服务被列出两次。
2. /etc/ 文件
# cat /etc/inet/
ftp stream tcp nowait root /usr/sbin/
telnet stream tcp nowait root /usr/sbin/
login stream tcp nowait root /usr/sbin/
talk dgram udp wait root /usr/sbin/
...
UNIX 并不是让每种服务的守护进程都在自己的端口上等待请求,而是将代表各个服务守护
进程等待请求的任务交给一个叫 inetd 的服务进程。这样就可以大大减少对系统资源的占用。
只有当超级服务进程发现一个服务请求时,它才调用该服务的守护进程。/etc/ 配置
文件允许 inetd 在启动时决定自己将代表哪些服务等待服务请求。如果一种服务的守护进程
没有包含在 文件中,那么当 inetd 接收到该服务的请求时,会把该请求丢弃。
文件的字段:
service_name 这是文件/etc/services 中列出的服务的标志符。
socket_type 用来标志使用的数据传输服务的类型。
proto 标识传输协议的名字。是 UPD 和 TCP
flags 可以被设为"等待"和"非等待"。如果被设为"等待" 状态,inetd 在恢复监听端口上的其
他请求时,必须等待服 务协议释放将其连接到网络的连接。"非等待"可以使 inetd 立即监
听其他的请求。大多数 TCP 协议的采用"非等 待"方式,而 UDP 采用"等待"方式。
user 表示调用服务的用户名。
server_pathname 表示 inetd 在响应相关服务请求时必须调用的 服务程序的完整路径名。
Args 该域包括服务的程序所使用的命令行参数。即以程序名开 始,然后跟随用户设置的参
数。
第三章 路由和网关
1. /etc/defaulrouter 文件
配置缺省网关
防止不必要的路由进程
适用于只有一个路由器通向其它网段
单一路由占用较小的路由表资源
该文件保存了缺省路由得信息。系统安装时并没有该文件,是用户自己创建的。文件内容是
缺省路由的地址。
#cat /etc/defaultrouter
优点:
占用资源少,只有一条路由条目。
2. /etc/gateways 文件
路由表文件
net gateway metric
dest. net 目标网段
router 下一跳路由器的地址
count 跳数
3. route 命令
route add|delete [host|net] destination [gateway ]
Add a route
#route add net 1
Delete a route
#route delete net
4. 查看路由表
# netstat -r
Routing Table:
Destination Gateway Flags Ref Use Interface
----------- ---------- ----- --- --- ---------
localhost localhost UH 0 2272 lo0
U 3 562 le0
U 3 562 le0
#
Destination 目标网络或主机
Gateway 转发数据包的主机
Flags 这条路由的状态,这个参数有这样几个选项:
U 端口处于激活状态(up)
H 目标是个主机,而不是网段
Ref 同一个网络接口地址拥有的路由条目数量
Use 通过这条路由的包数量,对于 localhost 来说,这个数字代表 所有接收的包数量
Interface 路由的网络接口
第四章 DNS 客户端的设置
1. /etc/ 文件
记录 DNS 服务器的地址和域名
关键字:
domainname
nameserver
# more /etc/
nameserver
domainname
2. /etc/ 文件
记录主机名的搜索顺序等信息
# more /etc/
#
# /etc/:
#
# An example file that could be copied over to /etc/; it uses
# DNS for hosts lookups, otherwise it does not use any other naming service.
#
# "hosts:" and "services:" in this file are used only if the
# /etc/netconfig file has a "-" for nametoaddr_libs of "inet" transports.
passwd: files
group: files
# You must also set up the /etc/ file for DNS name
# server lookup. See (4).
hosts: files dns
ipnodes: files
…
…
将这个文件的 hosts 记录配置成 hosts: files dns
3. nslookup 命令
用于查询 DNS 服务器
用于验证客户端的设置
用于下载 DNS 数据库
# nslookup
Default Server:
Address:
>
Server:
Address:
Non-authoritative answer:
Name:
Address:
>
启动时,nslookup 缺省地以本地服务器为目标。响应中包括目标服务器的名字和地址。
>是提示符,这意味着可以开始发送名字服务询问或配置。
Solaris 使用技巧
取消 root 只能在控制台登陆的限制
修改/etc/default/login 文件,将下面这行加上注释:
CONSOLE=/dev/console (也就是在前面加个#)
取消 root 不能登录 FTP 的限制
/etc/ftpusers 文件中,将下面这行加上注释:
root (也就是在前面加个#)
在从 WINDOWS 传到 UNIX 在每行的结尾可能会出现^M
解决方法:
1、用 ASCII 模式重传。
2、用 vi 中的替换
%s/^M$// <- ^ ctrl+v M ctrl+m
取消^M 字符:
当你 FTP 一些 DOS 文件到 unix 下时,你经常会看见每行文件后面有个讨
厌的^M 字符,(把 HTML 文件传输到 UNIX 系统可引起回车符转变成“^M”字符),
有两个简单的方法可以取消它。
用"vi"打开此文件,在 Command mode 下敲入:
:%s/^V^M//g
或者,在 UNIX SHELL 下敲入:
sed 's/^V^M//g' foo >
文件名为 -filename 如何去删除
rm -- "-filename"
fd - /dev/fd fd - no -
/proc - /proc proc - no -
/dev/dsk/c0t3d0s0 /dev/rdsk/c0t3d0s0 / ufs 1 no -
/dev/dsk/c0t0d0s3 /dev/rdsk/c0t0d0s3 /usr ufs 1 no -
/dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 /download ufs 2 yes -
/dev/dsk/c0t3d0s1 /dev/rdsk/c0t3d0s1 /export ufs 2 yes -
#/dev/dsk/c0t0d0s1 - - swap - no -
#swap - /tmp tmpfs - yes -
ls 的特殊用法:
%ls -R // 显示所有文件包括子目录
%ls * // 同上
%ls -t // 以时间排序来显示
下面的语句可以帮你计算有多少个文件和多少个目录..
# ls -l * |grep "^-"|wc -l // to count files
# ls -l * |grep "^d"|wc -l // to count dir
还可以将以上的语句变成 script 或做个 alias
只列子目录的方法:
ls -F | grep /$ 或者 alias sub = "ls -F | grep /$"(linux)
ls -l | grep "^d" 或者 ls -lL | grep "^d" (Solaris)
Grep 命令用法
%grep user1 /etc/passwd
%grep -i user1 /etc/passwd //不管大小写
Alias 用法
%alias find1 find . -name '\!*' -print // alias a new find
Find 命令用法
%find . ctime 0 -print //搜寻今天修改过的所有文件
%find . -name '*.bak' -exec rm {}\ //搜寻加删除
%find . \(-name *.txt -ctime 7\) -print //搜寻 7 天前修改过的 txt 文件
利用 Find 命令改变所有权,想要改变当前目录下所有文件的所有权,可以这样:
find . -exec chown OWNER.[GROUP] {} \; (Solaris)
find . -exec chown -R OWNER.[GROUP] {} \; (Linux)
Cut 命令用法
%cut -f field_list file //以逗号或空格来间隔
%cut -d: -f5,7-9 mydata //以冒号来间隔
%cut -s -c35-40 mydata //以列数来间隔-s 不包括头部注释
列出除了某些类型文件的当前目录所有文件:
使用 Ksh,用 ls !(*.Z)可以显示所有文件,除了*.Z 文件。
这个命令在一个目录里有许多种类型的文件的时候很有用。
改变 unix 提示符:
%PS1=’newprompt’
%export PS1
还可以这么做:
%set prompt='user1[\!]' // \! 显示命令次数
为环境变量增加新 PATH 路径(不影响老路径)。
%PATH=$PATH:$HOME/bin:/…/…/
%export PATH
永久修改,修改/etc/profile 文件中,在 export PATH 前加入 PATH=$PATH:.
列举与某个主题相关的所有 unix 命令:
%apropos lp //列举与 lp(打印机)相关的所有命令
查看 unix 版本号:
%uname –a
UNIX 下整个目录拷贝
%cp –r /home/baoshan/zzy .
//将/home/baoshan/zzy 整个目录拷贝到当前目录下
UNIX 下文件格式与 DOS 文件格式互换
%unix2dos oldfile newfile
%dos2unix oldfile newfile
查看 UNIX 下已经安装的包-package
%pkginfo
显示某一目录下所有文件 size
%du –d /; //显示根目录下所有文件的 size 大小
文件加密:
%crypt passwd < myfile > newfile //compress
%rm myfile
%crypt passwd < newfile //restore
使用 nohup 命令:
如果你想进程在你退出系统后还能执行,可以使用 NOHUP 命令
如: % nohup tar -cf /dev/tape /home &
你退出后再重新登录的话,使用'ps'命令可以看到进程还在执行
查看文件的方法:
如果你只想看文件的前 5 行,可以使用 head 命令,如:
head -5 /etc/passwd
如果你想查看文件的后 10 行,可以使用 tail 命令,如:
tail -10 /etc/passwd
你知道怎么查看文件中间一段吗?你可以使用 sed 命令 如:
sed -n '5,10p' /etc/passwd
这样你就可以只查看文件的第 5 行到第 10 行。
检查磁盘剩余空间:
%df –k
%df –t
超级用户修改系统时间:
#date MMDDHHMI
#date –u MMDDHHMIYYYY
制作 UNIX 文件系统的 iso 文件
很多刻录软件都是基于 Windows 的,对于 Unix 的文件格式无能为力。
如在 Unix 中文件 myfile 和 Myfile 同存在一个相同的目录中是合法的。
而在 windows 中是无法让他们共存的,而且 Windows 不支持 Unix 文件
系统的权限设置。
其实,unix 下有个工具可以方便的制作光盘 iso 文件镜像。
比如下载了一个 Oracle 8i Enterprise Edtion with
OPS.它是一个.tar 文件。用
tar vxf
揭开后,在系统中生成了一个./Disk1 的目录。
接下来用
mkisofs -a -r -J -V O8iEE81701 -o ./Disk1
生成一个名为 的光盘镜像文件。
传到 windows 系统中用一个刻录软件制作成 CD 就行了。
或者用 cdrecord 在 unix 系统中直接烧。
如果用 cdrecord,先执行
cdrecord -scanbus
得到 SCSI 设备的 ID 号,再用
cdrecord -v speed=4 dev=6,0
烧盘。
把刻好的盘 mount 上来后,就可以直接执行 install 了。
具体参数看--help,man,info。制作单个软件的安装光盘,以上 参数
就够用了。
建 SCO UNIX 的安装光盘,可以增加自己的文件.
(2) mount /dev/cd0 /mnt
mkdir /tmp/sco506
cp -r /mnt/* /tmp/sco506
(3) 把自己的应用软件拷贝到/tmp/sco506 目录下(可以建子目录)
(4) /usr/local/bin/mkisofs -b images/boot/ -J -o /tmp/
-r -V "卷标" /tmp/sco506
(5) 把制作成功的 传到 WINDOWS 下,用刻录软件进行刻录即可。如果是在
LINUX 环境下,还可以测试一下做出来的 ISO 文件,命令如下:
mount -t iso9660 -o loop /tmp/ /mnt
可以到/mnt 目录下看一下文件是否有问题,最后进行刻录。
调整内核,防止黑客使用堆栈溢出
要让你的系统在堆栈缓冲溢出攻击中更不易受侵害,你可以在/etc/system 里加上如下语句:
set noexec_user_stack=1
set noexec_user_stack_log =1
第一句可以防止在堆栈中执行插入的代码,第二句则是在入侵者想运行 exploit 的时候会做
记录:)
远程 mount 主机的目录
主机:修改/etc/dfs/dfstab 文件
加入 share -F nfs -o ro /export/home
保存
运行(sh) /etc/ start
客户机运行 mount server:/export/home /mnt
如果没有在/etc/dfs/dfstab 中有 share 的条目。
则要在使用 share 命令前手工运行 /usr/lib/nfs/mountd, /usr/lib/nfs/nfsd
磁盘扫描 fsck 的语法如下:
fsck 命令也是一个经常使用的命令,它用于对文件系统进行检查,并对损害的文件系统进行
修复。
fsck (-F fstype) (-v) (-m) (-special…)
fsck (-F fstype) (-v) (-y|Y|n|N) (-o fstype options) (special…)
其中:
-F fstype : 说明被检查的文件系统的类型
-v : 返回完成的命令行,但不运行
-y|Y: 对所有问题均回答 Yes
-n|N: 对所有问题均回答 No
-m: 对文件系统进行检查,不修复文件系统,如果文件系统经检查后是可安装
的,则显示 ufs fsck : sanity check : /dev/rdsk/c0t0d0s0 okay.
-o: 文件系统类型选项,选项由逗号分隔,最常用的选项有两个:
P: 整理(preen)模式
F: 强制检查模式,此选项忽略文件系统状态标志。
运行 fsck 后,该命令会分 6 个阶段对文件系统进行检查,这六个阶段分别是:
阶段 1: 检查块和块的大小
阶段 2: 检查路径名
阶段 3: 检查连接性
阶段 4: 检查参考记数
阶段 5: 检查自由块列表
阶段 6: 补救自由块列表
fsck 在对每个阶段进行检查时,如果发现错误,会提示用户进行修改,常见的一些错误有:
1) 移去一个没有相关文件的目录入口
这时用户可以回答 Yes 或 Y 来删除该目录入口。
2) 重连接一个已分配但不能访问的文件:
fsck 找到了一个已分配的 I 节点,但却不可访问(该节点没与任何目录连接),这时一般对 fsck
的“RECONNECT?”回答 Yes,即把该 I 节点连接到 lost+found 目录下,文件名即是 I 节点
号,之后管理员应检查该文件类型,判明该文件用途,再将该文件拷贝到相应目录下。
3) 连接数调整
在交互方式下,fsck 若发现连接数不一致,将询问用户采取何种行动,本例发现一目录的 I
节点连接数与该目录的真实连接数不一致。
这时用户应该回答 Yes 或 Y 来改正连接数。
4) 自由块表不一致
fsck 查出未分配块数与超级块中所给出的自由块表不一致。
这时用户应该回答 Yes 或 Y 来修正超级块。
从上面的出错信息和处理方法可以发现,对于 fsck 询问的问题大多数情况下都可以用 Yes
来回答,所以在实际应用时,可以用“ –y”选项来执行该命令对硬盘进行检
查和修复。
ln 软连接:
把/usr 挪到新的硬盘上去,记得修改 vfstab ,假设分区挂在/opt2 下,进入单用户,
mount -a
mkdir /opt2/usr
cp -a /usr/* /opt2/usr
mv /usr /
mkdir /usr
ln -s /opt2/usr /usr
修改 vfstab,把/opt2 的连接点改为/usr
使用第二块硬盘.
关机
接硬盘
在启动时候 stop+a,进 ok 状态
执行 probe-scsi-all 查看新硬盘是否被检测到
正常启动进入系统
执行 drvconfig;disks
执行 format 看是否多出来一块硬盘。
format 也是一个重要的系统管理命令,但由于它的破坏性极大,使用时一定要小心。format
命令主要有两个用途,即格式化硬盘和重新对硬盘分区,下面分别加以说明:
1) 格式化硬盘
和 DOS 一样,UNIX 的硬盘在使用之前也需要格式化,在对它格式化之前,我们要用单用
户形式重启动系统
#reboot –s
启动后用 root 用户登录,然后在命令行下输入:
#format
系统会显示所有的硬盘并让我们选择要格式化的硬盘:
。。。
本例中系统有两个 的硬盘,我们选择 1 并回车,系统会显示如下菜单:
。。。
在提示符下输入 type 来选择硬盘类型,系统会列出它支持的硬盘类型,选择合适的硬盘类
型并输入相应的代码(也可以输入 0 让系统自动检测)。选择完硬盘类型后,就可以配置硬盘
分区,。
配置结束后,输入 format 命令进行格式化,这将花费一定的时间,具体时间的长短受机器
型号和硬盘大小的影响。格式化完成后,就可以输入 quit 命令退出了。
硬盘格式化后,并不能立即被使用,我们还需要在上面创建文件系统,使用命令 newfs 来为
每一个分区创建文件系统:(如果硬盘是原来就在 solaris 下用,不用 newfs)
#newfs /dev/rdsk/c0t1d0s0
#newfs /dev/rdsk/c0t1d0s1
…
参数的具体数值根据分区的情况来设置。
另外,如果该硬盘包含启动分区(根分区),我们需要手动安装启动模块,安装之前首先要有
UNIX 系统安装光盘,我们通过光盘启动后,将系统根分区挂接上,并从光盘安装启动模块,
具体方法如下:
#reboot cdrom –s (从光盘启动,并进入单用户模式)
#mount /dev/dsk/c0t1d0s0 /mnt (将系统根分区挂接到 mnt 目录下)
#cp /ufsboot /mnt
#installboot /lib/fs/ufs/bootblk /dev/rdsk/c0t1d0s0 (安装启动模块)
#umount /mnt (卸下挂接)
#reboot (重启动)
至此,硬盘的格式化操作已经完成,我们可以使用该硬盘了。
将 SOLARIS 设置成 PPP 拨入服务器
目前建立在客户机/服务器(C/S)网络体系结构上的应用系统越来越多,技术上也越来越成
熟。具有多用户多任务网络特性的 UNIX 操作系统以其高可靠性、高伸缩性、高开放性的特
点而成为 C/S 结构系统后台服务器上的主流操作系统。在我们所开发的系统中采用了 SUN
公司的 SOLARIS2.5.1 操作系统,它具有很强大的网络功能,为了充分发挥它的作用,
我们不仅让其承担数据库系统的核心工作,还让其成为系统中的 PPP 拨入服务器、软路由
服务器或 NFS 共享磁盘服务器。以下介绍我在使用中的一点体会。
将 SOLARIS 设置成 PPP 拨入服务器
由于我们所开发的系统要安装在外地,我们将 SOLARIS 设置成 PPP 拨入服务器,然后通过
远程拨号上网,在 PPP 的基础上使用 TCP/IP 协议来进行远程登录或传输文件,给我们的
维护工作以极大的方便。以下介绍设置步骤:
一、设置调制解调器:
1、用随 MODEM 带的串型电缆连接 MODEM 和 SUN 工作站的串口 A(或 B,以下以串口 A
为例),打开 MOⅠDEM 的电源开关。
2、编辑文件/etc/remote,加入下行:
#vi/etc/remote;编辑文件/etc/remote
cuaa:dv=/dev/cua/a:at=hayes:br#38400;假设用 A 串口
3、设置 MODEM,在命令行上发如下命令:
#tipcuaa;tip 是联结远程系统命令
[connected〕;表示和 MODEM 已连接正常
ats0=1;设置成自动应答方式
OK;MODEM 成功执行的返回信息
at&c1;设置成跟踪数据载波
OK
at&w;存储设置
OK
~.;退出 tip 命令
[EOT〕
#;返回到命令行状态
以上各步完成后,MODEM 将有 HS、AA、TR、MR 四个指示灯亮(以 HAYESA 系列为例)。
二、设置 SUN 工作站的串口:
在 SOLARIS 上设置工作站的串口可以通过命令行的方式一步步地来做,但也可利用
openwindow 窗口环境来操作,这样比较方便:
1、启动 openwindow 窗口环境:
#/usr/openwin/bin/openwin;启动命令
2、在 shell 命令窗口内启动 admintool 系统管理工具:
#admintool&;另开一窗口执行
3、在“浏览”菜单中选择“串行口”后,将显示出本工作站的所有串口及其状态。
4、选择所用的串口,在“编辑”菜单中选取“修改”后,在窗口中先按“重置”
钮,然后按照设置的内容点选参数,选择完成后按“设置”钮,系统提示设置成功,最后按
“OK”钮,即完成了串口的设置。
5、检查串口的设置正确与否。在命令行上可用 sacadm、pmadm 命令来检查串口的设置情况,
如下即为正确的设置:
#sacadm-l;带参数 l,列出串口服务器
PMTAGPMTYPEFLGSRCNTSTATUSCOMMAND
zsmonttymon-0ENABLED/usr/lib/saf/ttymon#
#pmadm-l;列出串口监控器
PMTAGPMTYPESVCTAGFLGSIDΙPMSPECIFICΛ
zsmonttymonttyauroot/dev/term/ab-/usr/bin/login-38400ldterm,
ttcompatlogin:--n#
三、设置系统文件:
1、编辑文件/etc/hosts,以增加 ppp 客户机的网址:
#vi/etc/hosts
127.0.0.1localhost
192.9.200.1serverloghost;本例的主机名及地址
192.9.200.10pppclient;ppp 客户机地址和名称
2、增加一个拨号用户的注册名:
a.编辑文件/etc/passwd,增加一个用户名:
#vi/etc/passwd
ppplogin:x:1200:1045:pppclientlogin:/:/usr/sbin/aspppls;增加用户 ppplogin
b.编辑文件/etc/shadow,加入下行:
#vi/etc/shadow
ppplogin::::::::;对应增加
c.可以修改 ppplogin 用户的注册口令:
#passwdppplogin
Newpassword:
Re-enternewpassword:
#
3、编辑文件/etc/asppp.cf,内容如下:
#vi/etc/asppp.cf
ifconfigipdptp0plumbserverdown;开机时启动 ipdptp 接口
defaults;缺省设置
interfaceipdptp*;针对所有的 ipdptp 接口
inactivity—timeout120
ipcp—async—map0
path
peer—system—nameppplogin;与用户注册名一致
peer—ip—addresspppclient;与 ppp 客户名一致
4、查询主网卡的地址:
#ifconfig-a;列出系统中的所有网络接口
lo0:flags=849ΙUP,LOOPBACK,RUNNING,MULTIⅠCASTΛmtu8232
inet127.0.0.1netmaskff000000
hme0:flags=863ΙUP,BROADCAST,NOTRAILERS,RUNNING,MULTICASTΛmtu1500
inet192.9.200.1netmaskffffff00broadcast192.9.200.255
ether8:0:20:1:2:3
最后一行 ether 后的数字串即为该网卡的地址,如本机为 8:0:20:1:2:3。
5、新建可执行文件/etc/rc2.d/S99proxyarp,步骤:
#vi/etc/rc2.d/S99proxyarp
ndd-set/dev/ipip—forwarding1
arp-spppclient8:0:20:1:2:3pub;将 ppp 客户名和网卡的地址的填入相应位置
#chmod+x/etc/rc2.d/S99proxyarp;改变文件属性,让其可执行
四、完成以上所有设置后,重启 SUN 工作站。
五、检验效果:
重启后,我们用接口查询命令即可看到 ipdptp0 接口已启动,但还没有 up:
#ifconfig-a;列出系统中的所有网络接口
lo0:flags=849ΙUP,LOOPBACK,RUNNING,MULTIⅠCASTΛmtu8232
inet127.0.0.1netmaskff000000
hme0:flags=863ΙUP,BROADCAST,NOTRAILERS,RUNNING,MULTICASTΛmtu1500
inet192.9.200.1netmaskffffff00broadcast192.9.200.255
ether8:0:20:1:2:3
ipdptp0:flags=8d0ΙPOINTOPOINT,RUNNING,NOARP,MULTICASTΛmtu8232
inet192.9.200.1--Λ0.0.0.0netmaskffffff00
ether0:0:0:0:0:0
在客户机上(例如 WIN95),在控制面板中将拨号网络设置好后,新建一个拨号连接并设好
TCP/IP 的地址(这些步骤已有许多介绍,这里不再详述)即可向工作站拨号上网。注册成功
后,我们用接口查询命令可看到 ipdptp0 接口已 up:
#ifconfig-a;列出系统中的所有网络接口
lo0:flags=849ΙUP,LOOPBACK,RUNNING,MULTICASTΛmtu8232
inet127.0.0.1netmaskff000000
hme0:flags=863ΙUP,BROADCAST,NOTRAILERS,RUNⅠNING,
MULTICASTΛmtu1500
inet192.9.200.1netmaskffffff00broadcast192.9.200.255
ether8:0:20:1:2:3
ipdptp0:flags=28d1ΙUP,POINTOⅠPOINT,RUNNING,NOARP,MULTICAST,
UNNUMⅠBEREDΛmtu1500
inet192.9.200.1--Λ192.9.200.10netmaskffffff00
ether0:0:0:0:0:0
这时客户机就如同远程网络上的一个主机,可以进行任何网络操作。在客户机退出 PPP 后,
ipdptp 接口会自动 down。
使用第二块硬盘.
关机
接硬盘
在启动时候 stop+a,进 ok 状态
执行 probe-scsi-all 查看新硬盘是否被检测到
正常启动进入系统
执行 drvconfig;disks
执行 format 看是否多出来一块硬盘。
format 也是一个重要的系统管理命令,但由于它的破坏性极大,使用时一定要小心。format
命令主要有两个用途,即格式化硬盘和重新对硬盘分区,下面分别加以说明:
1) 格式化硬盘
和 DOS 一样,UNIX 的硬盘在使用之前也需要格式化,在对它格式化之前,我们要用单用
户形式重启动系统
#reboot –s
启动后用 root 用户登录,然后在命令行下输入:
#format
系统会显示所有的硬盘并让我们选择要格式化的硬盘:
。。。
本例中系统有两个 的硬盘,我们选择 1 并回车,系统会显示如下菜单:
。。。
在提示符下输入 type 来选择硬盘类型,系统会列出它支持的硬盘类型,选择合适的硬盘类
型并输入相应的代码(也可以输入 0 让系统自动检测)。选择完硬盘类型后,就可以配置硬盘
分区,。
配置结束后,输入 format 命令进行格式化,这将花费一定的时间,具体时间的长短受机器
型号和硬盘大小的影响。格式化完成后,就可以输入 quit 命令退出了。
硬盘格式化后,并不能立即被使用,我们还需要在上面创建文件系统,使用命令 newfs 来为
每一个分区创建文件系统:(如果硬盘是原来就在 solaris 下用,不用 newfs)
#newfs /dev/rdsk/c0t1d0s0
#newfs /dev/rdsk/c0t1d0s1
…
参数的具体数值根据分区的情况来设置。
另外,如果该硬盘包含启动分区(根分区),我们需要手动安装启动模块,安装之前首先要有
UNIX 系统安装光盘,我们通过光盘启动后,将系统根分区挂接上,并从光盘安装启动模块,
具体方法如下:
#reboot cdrom –s (从光盘启动,并进入单用户模式)
#mount /dev/dsk/c0t1d0s0 /mnt (将系统根分区挂接到 mnt 目录下)
#cp /ufsboot /mnt
#installboot /lib/fs/ufs/bootblk /dev/rdsk/c0t1d0s0 (安装启动模块)
#umount /mnt (卸下挂接)
#reboot (重启动)
至此,硬盘的格式化操作已经完成,我们可以使用该硬盘了。
solaris 下用光标键来调出历史命令
换 sh
set -o vi
看内存大小,进程
psrinfo -v
/usr/sbin/prtconf
看 cpu 的情况.
dmesg | grep cpu
windows,unix,linux 三个操作系统共存
你可以先把 98 裝好,再裝 unix,在裝 unix 的時候,記得要為 linux 留下空間.再編
把 unix 加入進去,這樣啟動時就會有 linux 和 unix,進入 unix 時,在 boot:打入 bootos 4 就可以
進 98 了.
Solaris 下打开硬盘 DMA 模式.
/boot/solaris/
setprop ata-dma-enabled '0'
^^^^here 變成 1
Solaris 下 PPPOE 的配置
下面是我在 SunOS Solaris Generic_108529-11 i86pc i386 i86pc 下面使用 PPPOE 的配置
经过
主要是参考上面的文章,如果觉得看得不够清晰,请参考:
首先请确定你已经安装了下列软件,如果您的系统版本低于 Solaris 8 10/01 你还没有装上:
SUNWpppd - Solaris PPP Device Drivers
SUNWpppdr - Solaris PPP configuration files
SUNWpppdt - Solaris PPP Tunneling
SUNWpppdu - Solaris PPP daemon and utilities
SUNWpppdx - Solaris PPP 64-bit (ONLY needed for SPARC's with 64-bit kernels)
请执行下面简单的命令确认:
# ls /dev | grep ppp
sppp
sppptun
# grep sppp /etc/name_to_major
sppp 146
sppptun 147
很幸运 我的机器上的结果如上面所示,如果是 SPARC 平台应该有所差异,我已经安装了;
如果您还没有安装请到下面或者其他更好的地址下载升级
MU
下载安装过程我没有尝试,请自己搞定,安装好了再看下面:
我用网通的宽带,一些参数如下:
登陆名: zhangfan
密码: guessit
网卡: pcn0
下面是主要使用到的程序,具体怎么用我还不清楚呢!
/usr/lib/inet/pppoed
/usr/sbin/sppptun
/usr/bin/pppd
由于我不知道 /etc/ppp/ 文件应该装些甚么,所以我直接用了下面的命令
# touch /etc/ppp/ --我也不能解释为甚么要这么作,可能完全是多余,但
是我作了
应该是给网卡邦定协议模块吧!
# sppptun plumb pppoed pcn0
pcn0:pppoed
# sppptun plumb pppoe pcn0
pcn0:pppoe
查寻模块是否已经邦定:〕
# sppptun query
pcn0:pppoe
pcn0:pppoed
查寻网路接口的 dsl 信息
# pppoec -i pcn0
0:90:1a:10:11:f6 Name:"HZLDJX_ERX700_01" Uniq:00000001 Svc:""
coki:F3CA05F5973E967476DD6DAB3C4B3362
创建一个 连接 isp 的配置文件 /etc/ppp/peers/hzcnc 内容如下:
###################### /etc/ppp/peers/hzcnc ######################
sppptun # what device to use
plugin # initialize the
connect "/usr/lib/inet/pppoec pcn0" #注意这里和 pppd 带的模板文件中不同
persist # if the connection dies, bring it back up
user "zhangfan"
# username
noauth
# Do not make the other side authenticate itself
noipdefault
# Let them give you what IP they want to give you
# 如果你知道下面命令的意思,请不吝补充
noccp # No compression
novj # No compression
noaccomp # No compression
nopcomp # No compression
defaultroute # add an appropriate default route
####################################################################
设定用户验证文件。
我的连接是网通的,所以我用/etc/ppp/pap-secrets,按照前面的例子,
我设定她的内容为:
################ /etc/ppp/pap-secrets #####################
#user isp password
zhangfan * guessit
###########################################################
注意 zhangfan,*,guessit 之间使用了 [TAB] 而不是空格
如果你的 isp 需要相应设定 /etc/ppp/chat-secrets 请自己搞定。
一切 OKAY,拨号吧:
# /usr/bin/pppd call hzcnc
等一下吧
# ifconfig -a
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet netmask ff000000
pcn0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet netmask ffffff00 broadcast
ether 0:50:56:40:0:53
sppp0: flags=10008d1<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST,IPv4> mtu
1492 index 3
inet --> netmask ffffff00
ether 0:0:0:0:0:0
# ping
is alive
#
#######################################################
结束
#######################################################
好几个步骤要是和到一起当然用起来更方便,看看原文的脚本吧!
祝福你好运气!
这一篇贴子原来是在 Solaris + netscape 6 贴上来的。
后来我在停止 ppp 的时候 使用 原文的脚本好像不灵,结果手工:
# pkill ppp
该死的网通不允许一个用户名同时多次登陆,否则也不用什么防火墙了,各个系统用相同
账号自己拨号就好了。
◆ 加强 Solaris SPARC/x86 操作系统的安全性
作者:Dexter D. Laggui
整理:小四 < mailto: scz@ >
主页:
日期:2001-03-05
摘要
本文介绍如何一步步加强 Solaris SPARC/x86 操作系统的安全性。这里介绍的内
容并不适合于各种可能的安装情况,仅仅以最普遍的情况为基础进行讨论。本文内容
稍加变化就可用于其他 Unix 系统。
注意
1) 在所有步骤未完之前保证本机系统和外部网络隔绝(注: 拔掉网线即可)
2) 只安装操作系统的核心部分以及那些非常必要的软件包
细节
1. 安装配置完操作系统之后确认 root 的 umask 设置是 077 或者 027,执行
/usr/bin/umask [-S] 确认。
2. 确认 root 的 PATH 环境变量设置是安全的,应该只包含/usr/bin:/sbin:/usr/sbin,
避免当前工作目录.出现在 PATH 环境变量中,这有助于对抗特洛伊木马。
echo $PATH | grep ":." 确认
3. 检查/etc/ 和/etc/ 目录下的所有"S"打头的脚本文件,将那些启动不必
要服务的脚本文件改名,确认新文件名不以"S"打头。重启动确认这些变动生效,
检查/var/adm/messages 日志文件,用 ps -elf 检查是否还有无关进程启动。
4. 编辑/etc/default/login 文件,确认 CONSOLE=/dev/console 有效。为了阻止
root 用户远程 ftp,在/etc/ftpusers 文件中增加 root 帐号。
5. 删除/etc/ 和/.rhosts 文件,编辑/etc/ 文件,屏蔽所有 r
系列服务。ps -ef | grep inetd | awk '{print $2;}' | xargs kill -1 迫使修
改后的/etc/ 文件生效。
6. 删除、禁用或者注释掉不必要的帐号,包括"sys"、"uucp"、"nuucp"和"listen"。
推荐的做法,将/etc/passwd 文件中的口令域设置成"NP",比如
uucp:NP:5:5:uucp Admin:/usr/lib/uucp:
如果使用了/etc/shadow 文件,就不要修改/etc/passwd 文件,而应该修改
/etc/shadow 文件中的相应行
uucp:NP:6445::::::
还可以考虑将/etc/passwd 文件中的 shell 域设置成/bin/false
7. /etc/logindevperm 文件包含的配置信息用于设置登录相关设备(控制台、键盘等
等)的权限,检查该文件中的权限设置,如果必要可以修改成期望值。关于该文件
更多信息参看 logindevperm(4)手册页。
8. /etc 目录下的文件都不应该是同组可写的,通过 chmod -R g-w /etc 命令取消同组
可写权限。
9. 缺省情况下,如果 Solaris 主机有多块网卡,它们之间的 IP 转发功能是打开的。对
于 Solaris (或者更低版本),在/etc/ 文件的最后增加一行
ndd -set /dev/ip ip_forwarding 0
对于 Solaris (或者更高版本),简单地"touch /etc/notrouter"即可。注意,
启动过程中 IP 转发功能关闭前 Solaris 主机依旧可以在多块网卡之间进行 IP 转发,
存在小小的潜在安全隐患。
10.
通过/etc/auto_*配置文件控制自动 mount 特性。为了禁止自动 mount 功能,删除
/etc/auto_*配置文件(或者注释掉相关入口点),屏蔽/etc/ 启动
脚本。
11.
NFS 输出通过/etc/dfs/dfstab 文件控制,应该删除该文件或者注释掉相关入口点。
为了禁止 NFS 服务守护进程启动,将/etc/ 改名。为了阻止本
机成为 NFS 客户端,将/etc/ 文件改名。在更改这些启动脚本
文件名的时候,确认不以"S"字母打头。
12.
仔细检查/var/spool/cron/crontabs 目录下各个系统帐号(adm、lp、root、sys、
uucp)的定时任务文件。可以考虑编辑/etc/default/cron 文件,设置如下行
CRONLOG=YES
这将导致对所有定时任务做日志。
13.
使用动态路由接受守护进程(比如 、)的主机容易遭受路由相关
的攻击,包括 DoS 和监听。尽可能采用静态路由,在启动脚本文件中用 route 命令
增加静态路由,而不是采用动态路由接受守护进程。
14.
为了防止基于 ARP 协议的攻击,在可能的情况下采用 arp 命令手工增加 ARP 入口点,
删除不必要的 ARP 入口点。
15.
rpcbind 使得 RPC 客户端可以获得 RPC 服务的当前端口信息,不幸的是,标准 RPC 机
制不安全,它采用"AUTH_UNIX"验证机制,依赖于远程客户端的 IP 地址和远程用户
UID 进行身份识别,而这两者都是很容易伪造、欺骗、修改的。对于特定用途的服
务器,比如 WWW 服务器、FTP 服务器、邮件服务器等等,应该关闭对 RPC 的支持,这
通过更改/etc/ 启动脚本文件名实现。此时必须仔细验证剩余功能不
受取消 RPC 支持的影响。
16.
/etc/utmp 的权限可以设置成 0644,而不会影响系统正常运做。在 Solaris
上这是一个到/var/adm/utmp 文件的符号链接,应该 chmod 0644 /var/adm/utmp
17.
Solaris 上很多 setuid、setgid 程序只有 root 或者属主自己才会使用,完全可以取
消 setuid、setgid 设置而不影响普通用户的工作。用如下命令找出系统中所有
setuid 过的程序
# find / -perm -4000 -print
考虑取消如下命令的 setuid 设置
/usr/bin/tip
/usr/bin/ct
/usr/bin/cu
/usr/bin/uuglist
/usr/bin/uuname
/usr/bin/uustat
/usr/lib/exrecover
/usr/bin/uux
/usr/lib/accton
/usr/lib/fs/ufs/ufsrestore
/usr/bin/uucp
/usr/lib/news/inews
/usr/lib/fs/ufs/ufsdump
/usr/lib/uucp/uuxqt
/usr/lib/uucp/uucico
/usr/lib/uucp/
/usr/lib/uucp/uusched
/usr/sbin/allocate
类似的,用如下命令找出系统中所有 setgid 过的程序
# find / -perm -2000 -print
考虑取消如下命令的 setgid 设置
/usr/bin/mailx
/usr/bin/netstat
/usr/bin/nfsstat
/usr/bin/write
/usr/bin/ipcs
/usr/lib/fs/ufs/ufsdump
/usr/sbin/arp
/usr/sbin/prtconf
/usr/bin/swap
/usr/sbin/sysdef
/usr/sbin/wall
/usr/sbin/dmesg
/usr/openwin/bin/wsinfo
/usr/openwin/bin/
/usr/kvm/crash
/usr/openwin/bin/mailtool
/usr/openwin/bin/xload
/usr/kvm/eeprom
/usr/vmsys/bin/chkperm
创建一份系统中剩余 setuid、setgid 程序的列表,定期检查是否有变化,比如多
出其他 setuid、setgid 程序来。
18.
检查系统提供的每一种网络服务是否是工作环境所必需的,如果不是,就屏蔽它。
其中一部分在启动脚本中设置,另外一部分在/etc/ 文件中配置,注释
掉不必要的网络服务,ps -ef | grep inetd | awk '{print $2;}' | xargs kill -1
迫使修改后的/etc/ 文件生效。需要屏蔽的网络服务包括
tftp
systat
rexd
ypupdated
netstat
rstatd
rusersd
sprayd
walld
exec
comsat
rquotad
name
uucp
如果要求系统非常安全,应该用一个只包含了 telnet 和 ftp(如果这两个服务是必
需的)服务的 代替标准的 文件。
19.
在漫长的 Unix 岁月中, 暴露出某些安全问题,如果你确实需要提供
finger 服务,应该以 nobody 身份启动它,而不是 root 身份。考虑修改
/etc/ 配置文件中的入口点以愚弄那些进行 finger 探测的人
# finger stream tcp nowait nobody /usr/sbin/
finger stream tcp nowait nobody /bin/cat cat /etc/
20.
缺省情况下,syslog 提供了最小程度的系统日志功能,修改/etc/ 文
件,使得 syslog 记录更多日志信息,根据日志重要程度分别记录到不同地方。任
何与安全相关的日志信息应该加密后存放到文件中。不幸的是,必须重启 syslog
才能读取新的配置文件。
译者: syslogd(1M)手册页上说 kill -HUP 可以迫使重读/etc/ 文件,
但是在 Solaris 的测试中的确发现某些情况下只有重启 syslog 才能让
新配置文件生效,原因未明,建议如有可能先杀掉当前 syslog 进程,然后
重启之。
21.
用如下命令设置对 EEPROM 的口令保护
# /usr/sbin/eeprom security-mode=command
此时 Stop-A 进入 ok 状态后,只能执行 boot 和 go 命令,其余命令需要口令认证。不
幸的是,这样做并不能真正保护机器的安全性,那些物理接近主机的人可以打开
机箱替换 EEPROM。一般来说,替换 EEPROM 的同时导致 hostid 变化,记录本机原始
hostid,确认 EEPROM 未被替换。
译者: 显然这里的说法有误,在 Stop-年进入 ok 状态后,可以手工修改 hostid 成任
意所期望的值。
22.
网卡混杂模式使得本机可以监听那些目标地址不是本机的报文。一般来说,运行
snoop 应用程序的时候,网卡进入混杂模式,如果你自己并没有运行 snoop,而你
的网卡已经进入混杂模式,很有可能一个黑客进入你的系统并正在监听本机所在
子网。
检查本机网卡是否处在混杂模式。
译者: 对于 Solaris
可以考虑 modinfo | grep -i bufmod 以及 modinfo | grep -i pfmod。只要
使用 snoop,就会加载前者,如果指定了过滤规则,后者也将被加载。此外,
对于 Solaris 8,可以用 netstat -k hme0 查看网卡是否处在混杂模式。
23.
缺省情况下,/etc/dfs/dfstab 文件中列出的所有文件系统将被输出到外界。
在 mount 点上指定"nosuid"选项,使得 setuid 程序的 setuid 设置失效。
如果通过 rpcbind 做 nfs mount,本机 mount 守护进程认为 mount 请求来自本机而允
许这个操作,CERT 曾经发布过关于这个漏洞的描述和解决办法。采用那些不支持
转发 mount 请求的 rpcbind。
尽可能采用安全 RPC,常规"AUTH_UNIX"验证机制依赖于远程 IP 地址和远程用户 UID
做身份鉴别,这很容易伪造、欺骗。
尽可能关闭 NFS 服务,NFS 传输过程是明文的,即使使用"AUTH_DES"或者
"AUTH_KERB"验证机制,所以通过 NFS 协议传输的任意文件很容易被监听窃取。
可以通过程序暴力猜测根 mount 点的文件句柄,从而越权获取 NFS 服务端输出的任
意文件。应该采用/usr/sbin/fsirand 命令随机化那些与 NFS 服务输出相关的 i 节点
号,参看 fsirand(1M)手册页。
24.
Solaris 开始携带新版 sendmail,当然,还是几个月就会报告新的 BUG。下列
操作有助于加强 sendmail 的安全性
获取最新版 Berkeley sendmail(ver )
考虑使用 smrsh 或者 Checkpoint's SMTP Security Server of FW-1
删除/etc/aliases 中的 decode 设置
chmod 0644 /etc/mail/aliases
考虑使用一个基于代理的防火墙,带有 SMTP 过滤功能,过滤不必要的 SMTP 命令
25.
NIS 是一个不安全的分布式名字服务。NIS+如果配置得当将更安全些。如果域名被
猜测到,NIS 将暴露表中所有信息。为了阻止这个漏洞,将可信任的主机/网络地
址放到/var/yp/securenets 文件中。也可以考虑使用安全 RPC 或者 NIS+。最后,不
要在 NIS 表中包含 root 以及其他系统帐号的信息。
26.
Solaris ftpd(1M)的配置指南少了一些内容
cp /etc/ ~ftp/etc
确保~ftp 所在文件系统 mount 上来的时候指定了"nosuid"选项
~ftp 目录下所有文件属主都不应该是"ftp"
更多细节参看匿名 ftp 配置指南
27.
使 X 更加安全
在 Secure RPC 中使用 SUN-DES-1 选项传递 X 鉴别/授权信息
xhost +user@host
28.
激活 SUN-DES-1 鉴别
set DisplayManager*authorize: true
set : SUN-DES-1
rm ~/.Xauthority
通过命令
xauth local/unix:0 SUN-DES-1 @nisdomain
和
xauth local:0 SUN-DES-1 @nisdomain
增加 local host 的访问许可
通过命令
xinit -- -auth ~/.Xauthority
启动 X
通过命令
xhost +user@ +@nisdomain -local -localhost
增加自己并删除所有其他用户
现在给用户"foo"访问主机"node"的权限
在主机"node"上执行 xhost +foo@
通过命令
xauth add node:0 SUN-DES-1 @nisdomain
为用户"foo"创建适当的 xauthority
"foo"用户现在可以通过命令
xload -display node:0
连接到主机"node"
29.
用命令 showrev -p 显示当前安装到系统中补丁,检查 Sun 的安全相关的补丁列表。
下载安装所有相关安全补丁。定期重新检查补丁列表。并非所有机器都需要安装
所有安全补丁,但是那些敏感的、暴露出来公共访问的主机,应该时刻安装最新
安全补丁。
30.
用 代替 inetd,前者在日志功
能上有所加强。
31.
xntp 比 ntp(网络时间协议)更安全
32.
总是可以从 Berkeley 获取最新(也更安全)的 sendmail,包括 smrsh,后者用于执行
任意通过 sendmail 激活的程序。
33.
用支持类似 tcpwrapper 功能的 rpcbind 代替 Solaris 标准 rpcbind,同时可以通过
rpcbind 禁止 NFS 访问。
34.
不幸的是,Solaris 没有携带 passwd+和 npasswd,它们用于代替 passwd,防止系统
中出现愚蠢的口令(简单、容易猜测)。Crack 程序可以检查/etc/shadow 文件中的
弱口令,通常能穷举出 10%的口令明文。
35.
用 wu-ftp 代替标准的 ftpd 守护进程,前者提供了扩展的日志功能和访问控制。
译者: 同时意味着其他未知风险的介入,很有可能无法立即得到修正。
36.
noshell 是一个程序,可以指定在帐号的 shell 域,此时该帐号永远无法登录进入
系统,同时还会向日志系统报告登录企图。
37.
如果在/etc/default/login 文件中有如下行
CONSOLE=/dev/null
将只允许普通用户在 console 登录然后 su 成 root,当存在多个系统管理员的时候,
这种设置提供了更好的安全性。
38.
Solaris 自己携带的标准 bind 存在已知安全漏洞,新版 bind 修正了这些漏洞。也可
以从 Sun 获取针对 bind 版的补丁。bind 修正了更多安全漏洞,将出
现在 Solaris 中
39.
root 帐号的 PATH 环境变量中永远不应该包含当前目录".",根据所使用的不同
shell 检查下列文件
/.login
/.cshrc
/.profile
40.
从/etc/aliases 文件中删除"decode"别名。该文件应该为 root 拥有,权限是 0644
41.
/etc/utmp 文件不应该是全局可写的
# chmod 644 /etc/utmp
42.
除了 root 帐号不应该有其他 UID 为 0 的帐号
43.
除非你的主机需要接收邮件,否则不必启动 sendmail。下列命令将彻底停止
sendmail 进程
# /etc/ stop
# mv /etc/ /etc/
44.
使用类似 tripwire 的安全检测程序,可以从如下链接获取
45.
防火墙主机不应该使用 NIS,无论是 client 还是 master。如果防火墙主机已经配置
成 NIS master 或者 client,最简单的办法是重装操作系统。
如果必须将防火墙主机配置成 NIS master 使用,它不应该使用 NIS 处理口令信息,
确认/etc/ 文件中存在如下行
passwd: files
而不是
passwd: files nis
如果必须将防火墙主机配置成 NIS client 使用,它应该使用固定的服务器列表(参
看 ypinit -c),而不是使用广播方式寻找服务器。
46.
防火墙主机不应该使用 NFS,无论是 client 还是 server
如果必须将防火墙主机配置成 NFS server,应该将输出的文件系统限制成只有特
定主机才能访问。尽可能只读输出文件系统,比如,在/etc/dfs/dfstab 文件中
share -F nfs -o ro=trusted_clients /logs
如果必须将防火墙主机配置成 NFS client,记得总是使用"nosuid"选项做 mount 操
作,比如
mount -F nfs -o nosuid,bg trustserver:/home /trustserver_home
47.
在安装完所有安全补丁后应该重启机器使之生效
48.
从 Sun 安全补丁
for solaris 8 x86 安装说明
1. 创建 dba 组和 oracle 用户
#admintool &
注意:oracle 用户从属与 dba 组,且在建立 oracle 用户的时候同时创建/export/home/oracle 目
录。这一点很重要。使用 Bourne shell。
2. 修改/etc/system 文件
在文件的结尾增加:
set shmsys:shminfo_shmmax=4294967295 #是物理内存的 倍
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
set semsys:seminfo_semmni=100
set semsys:seminfo_semmsl=100
set semsys:seminfo_semmns=200
set semsys:seminfo_semopm=100
set semsys:seminfo_semvmx=32767
修改 oracle 目录下的.profile 文件
增加:
ORACLE_BASE=/export/oracle/app/oracle/admin; export ORACLE_BASE
ORACLE_HOME=/export/oracle/app/oracle/product/; export ORACLE_HOME
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33
NLS_LANG="simplified chinese"; export NLS_LANG
ORACLE_SID=mis; export ORACLE_SID
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib; export LD_LIBRARY_PATH
PATH=/usr/bin:/etc:$ORACLE_HOME/bin:/usr/local/bin:/usr/ccs/bin:/usr/ucb:/usr/sbin:/bin
CLASSPATH=/oracle/app/oracle/admin/oraInventory:$ORACLE_HOME/jlib:$ORACLE_HOM
E/product/jlib;export CLASSPATH
export PATH ORACLE_HOME NLS_LANG
ORACLE_OWNER=oracle; export ORACLE_OWNER
TMPDIR=/var/tmp; export TMPDIR
umask 022
保存退出。
注意:直接 copy 过去可能会多出空格或空行,再检查一遍。
3. $. ./.profile #更新当前环境变量 (这个好像无所谓,反正要重启)
4. 重启动计算机以 oracle 登陆
#reboot
登陆时以 oracle 用户登陆,最好用英文环境。(这点比较重要,不然 ./runIstallre 后会出现
display 环境变量没有设置的错误)
5. 开始安装,运行/cdrom/cdrom0/ 进行安装
相关设置:
oracle home directory = /oracle/app/oracle/product/
Unix group = dba
Global database name = mis
SID name = mis
Directory for database file =
/oracle/app/oracle/product/
安装过程中需要用户用 root 登陆,并运行
l /tmp/OraInstall/ #创建 Oracle Inventory 目录并把 owner 赋与 oracle 用户
安装中选产品语言时,不要选 chinese,否则后面建数据库时,会报找不到字符集的错,(即
使这里不选 chinese,只选 english,但仍然可以输入中文记录,这点我感到很奇怪)
l $ORACLE_HOME/ #注意把 改为 777,root 才能运行。创建
/var/op/oracle/oratab。
数据库完成退出安装程序。
6. 修改/etc/services 文件
添加:
listener 1521/tcp
7. 重新启动计算机
#reboot
8. 测试数据库启动问题
$svrmgrl //启动数据库
>connect internal
>startup
>exit
$lsnrctl start //启动监听服务
$sqlplus system/manager@mis 测试数据库的 SQL/PLUS
$ORACLE_HOME/bin 下有几个管理工具:
netasst Net8 Assistant
netec Net8 Easy Configuration
netca Net8 Configuration Assistant
9. 实现数据库的自启动
安装完成后,可以安以下步骤来实现数据库和监听的自启动。以 root 登陆。
l 修改 oratab 文件
cd /var/opt/oracle
vi oratab
修改 sid:$ORACLE_HOME:N 为 sid:$ORACLE_HOME:Y
执行 dbstart 和 dbshut 时,系统会参考此值。如果是”Y”的话,就是自动启动。
这边可能是个 BUG,安装时我要:
cp –p /var/opt/oracle/oratab /etc/
才能在后面设置完成后自动启动数据库。
l 创建文本/etc/
如果此文件不存在的话,按以下内容建立:
#!/bin/sh
ORA_HOME=/export/oracle/app/oracle/product/
ORA_OWNER=oracle
if [! –f $ORA_HOME/bin/dbstart ];
then
echo “Oracle startup:cannot start”
exit
fi
if [! –f $ORA_HOME/bin/tnslsnr –o ! –f $ORA_HOME/bin/lsnrctl];
then
echo “Listener startup:cannot start”
exit
fi
case “$1” in
‘start’)
#Start the Oracle database and Listener
su - $ORA_OWNER –c $ORA_HOME/bin/dbstart &
su - $ORA_OWNER –c “$ORA_HOME/bin/lsnrctl start” &
;;
‘stop’)
#Stop the Oracle database and Listener
su - $ORA_OWNER –c $ORA_HOME/bin/dbshut &
su - $ORA_OWNER –c “$ORA_HOME/bin/lsnrctl stop” &
;;
esac
2 建立链接
#ln –s /etc/ /etc/ #关机时运行的脚本
#ln –s /etc/ /etc/ #开机时运行的脚本
至此,可以重启服务器,看数据库能否自动起来。
3 查看状态
查看 linstener
$lsnrctl status
查看数据库
$svrmgrl
SVRMRG>connect internal
SVRMGR>startup
ORA-01081: cannot start a already running database—shut down it first
说明数据库已经开启。
for solaris 8 x86 安装说明
安装步骤
========
1、以 root 用户登陆,修改/etc/system,加入如下参数:
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
set semsys:seminfo_semmni=100
set semsys:seminfo_semmsl=100
set semsys:seminfo_semmns=200
set semsys:seminfo_semopm=100
set semsys:seminfo_semvmx=32767
修改后需 reboot 才能生效
2、用 admintool 增加 dba 组和 oracle 用户
3、建立 oracle 目录 /oracle
# mkdir /oracle
# chown oracle:dba /oracle
4、以 oracle 用户登陆,修改.profile 文件,加入:
DISPLAY=workstation_name:
ORACLE_BASE=/oracle
ORACLE_HOME=/oracle
ORACLE_SID=ORCL
ORACLE_OWNER=oracle
export DISPLAY ORACLE_BASE ORACLE_HOME ORACLE_SID ORACLE_OWNER
PATH=$PATH:$ORACLE_HOME/bin:/usr/local/bin
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/java/lib:/usr/ccs/lib:/usr/lib:$LD_LIBRARY_
PATH
JAVA_HOME=/usr/java
CLASSPATH=$ORACLE_HOME/oraInventory/Compoments/oracle/swd/jre/:$ORACLE_H
OME/jlib
export PATH LD_LIBRARY_PATH JAVA_HOME CLASSPATH
NLS_LANG=
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export NLS_LANG ORA_NLS33
保存文件后, 重新用 oracle 登陆,或运行
$ . ./.profile
5、在控制台以 oracle 用户用英文登陆。(注意:必须选择语
言为英语)
进入 cdrom 目录运行
./runInstaller
开始安装。
6、按默认选项安装。询问 jdk 时,输入/usr/java
或/usr/
7、安装到建库时会出错,提示 oracle 连不上。退出建库过
程,安装完 web server 后,用 dbassist 建库,不能 copy 数
据库,要重新建。
8、安装完后,执行
# cp /var/opt/oracle/oratab /etc
9 、 如 果 要 用 OCI 写 程 序 , 需 要 修 改 文 件
$ORACLE_HOME/rdbms/demo/
因为该文件有误,要在文件前面加上下面这行:
#define signed
安装介绍
ORACLE 是大型关系型数据库,是高可靠的、耐用的、安全的、可扩充的数据库。
在分布方式、平行方式、多线索方式下都有良好的表现,特别适用于象 CHINA ON
LINE 这样的大型的遍布全国的数据存储方式;加上它有许多优秀的前台开发工具
如 POWER BUILD、SQL*FORMS、VISIA BASIC 等,可以快速开发生成基于客户端 P
C 平台的应用程序,特别适用于象 CHINA ONLINE 这样的需要编写适用于各行各业
大量的应用工作的任务,计费系统就是一个例子。
ORACLE 的安装分三个大步骤,首先是安装 C COMPILER,接着是 ORACLE 安装前
的准备工作,最后才是进 ORACLE 安装窗口进行安装及安装后处理。
一、安装 C COMPILER ( 编译器 )
ORACLE WEB SERVER 的安装过程有些步骤需要用 C 语言编译器编译执行,加上 ORAC
LE 的底层逻辑计算有 c 编译器则更高速、更可靠。所以此步不可少。
1、 Solaris 安装后
#cp /etc/skel/ /.cshrc
#cp /etc/skel/ /.login
2、 #vi /etc/passwd
第一行改成 root:x:0:1:Super-User:/:/bin/csh
3、 #vi /.cshrc
unmask 022
set path=(/bin /usr/openwin/bin /oracle/bin /usr/sbin /opt/SUNWspro/bi
n
/sbin /usr/ucb /etc /usr/ccs/bin .)
alias cd 'cd \!*;set prompt=" ' pwd '#>" '
( 安装 CC 要修改系统时间,改到 LICENCES 日期之前 )
4、 插入 C COMPILER 安装光盘
#volcheck
#df -k 检查有无 cdrom 的设备
5、 #cd /cdrom/cdrom0
(说明:C 编译器的安装程序必须在 openwin 即窗口状态下执行)
#/cdrom/unamed_cdrom0>spro_install_tool
6、 选 sparc compiler
7、 选 install licenses software /opt
8、 选 setup licenses
9、 选 select product sparc compiler
10、 选 demo licenses
11、 输入有效期:DD-MM-YY
密 码:
12、 选 done with licenses,然后退出 exit install licenses 。
屏幕有窗口提示 licenses 安装成功
13、选 install,屏幕出现滚动安装窗口
等待数分钟后,屏幕提示安装成功,exit install
14、 在操作系统下运行
#etc/opt/licenses/LIC_CONFIG_SCRIPT
屏幕提示 licenses 已正确设置。
15、 #reboot
正常登录后
#env 看环境变量改变了没有
16、 #vi 编一 C 语言测试程序
#include <> /* */
main()
{
printf("Hello......\n");
}
17、 #cc -o test 编译
18、 #./test 执行
运行结果:
Hello.......
19、 #eject cdrom 成功后退出光盘
C COMPILER 安装成功!
二、安装 ORACLE 前的准备工作
准备工作主要是增加 ORACLE 的用户及组,改变一些系统参数文件。
1、 #vi /etc/passwd
第一行改成 root:x:0:1:Super-User:/:/bin/csh
(选用 csh 内核语言)
最后一行加 oracle::9722:643:super-account:/oracle:/bin/csh
(增加 oracle 用户)
2、 #vi /etc/group (增加 oracle 的组)
最后一行后加 dba::643:oracle
3、 (必要时改 shadow 文件的读写属性:chmod 755 shadow )
#vi /etc/shadow (增加 oracle 用户口令,这里缺省)
最后一行后加 oracle:::::::: (共 8 个:)
4、 在根 / 下
#chown oracle oracle
#chgrp dba oracle
#passwd oracle 给 oracle 加口令,敲两次口令
5、 #cp .cshrc /oracle 把根下的这两个文件拷贝到 /oracle 路径下
#cp .login /oracle
6、 #cd oracle
#chown oracle .* 把拷贝过来的隐含文件变成 oracle 属组
#chgrp dba .*
7、 #vi /etc/services
最后增加两行 orasrv 1525/tcp oracle
listener 1521/tcp
8、 #vi /etc/system
在 set 后增加一段 set shmsys:shminfo_shmmax=8388608
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
set semsys:seminfo_semmns=200
set semsys:seminfo_semmni=70
9、 #su - oracle
10、 %vi .cshrc
增加一段 setenv ORACLE_HOME /oracle
setenv ORACLE_DOC /oracle/odoc
setenv ORACLE_SID oracle7
setenv ORACLE_TERM sun5
setenv ORA_NLS /oracle/occommon/nls/admin/data
setenv NLS_LANG=
alias cd 'cd \!*;set prompt=" 'pwd '%>" '
11、 %cd oracle
%mkdir odoc 建 odoc 路径
%chmod 755 odoc
三、安装 ORACLE
1 、插入 ORACLE 安装光盘
%volcheck
%df -k 检查有无 cdrom 的设备
2、 %cd /cdrom/oracle/orainst
%./orainst 出现 ORACLE 黑框的安装窗口
3、 选第一项 COMPLETE SOFTWARE / DATABASE FRESH INSTALL
然后一路回车 选九个产品安装 (全部安装可能无足够硬盘空间)
Ⅰ. oracle7 advanced replication option (可选)
Ⅰ. oracle7 distributed database option (可选)
Ⅰ. oracle7 parallel query option (可选)
Ⅰ. oracle server (RDBMS)
Ⅰ. PL/SQL
Ⅰ. SQL*NET
Ⅰ. PROC*C (可选)
Ⅰ. SQL/PLUS
Ⅰ. TCP/IP protocal Adapter (V2)
注意:create db object 应选择 yes
4、 再一路回车,根据提示输入 system 、 sys、 TNS listener 的 password
5、 LANGUAGE 时 选 OTHERS ,用户输入 ZHS16CGB231280 汉字国标字符集
(说明:安装 25%以前出错,可能是 C COMPILER 的路径 /opt/SUNWspro/未在 orac
le 下的.cshrc 下定义。)
6、安装成功 100%后又回到开始的选项菜单。有时未满 100% 后也回到开始的选项
菜单, /oracle/orainst/ 安装日志文件最后提示 OK
7、按 F7 到菜单项,FILE 中选 EXIT 退出
% /cdrom/cdrom0/orainst>exit 退出 oracle 用户
8、运行 #/oracle/orainst/
Are these setting correct (y/n):敲 y
Enter the full pathname of the local bin directory (y/n): 敲/bin
(此 shell 程序在/var/opt/oracle 路径下生成一个文件 oratab ,并做系统检测)
9、 #vi /var/opt/oracle/oratab
最后一行改 oracle7:/oracle:Y
10、#vi /var/opt/oracle/
改 host= (host_name)
oraclehome= (/oracle)
11、#vi /var/opt/oracle/
一些连接字符串,分布式通讯时有用
12、#reboot 重新启动机器,使参数生效
13、#su - oracle
%env 看环境变量改变了没有
14、%svrmgrl 唤醒 SVRMGR 状态
SVRMGR>connect internal 连接打开数据库
SVRMGR>shutdown abort 先关闭 instances, 数据库
SVRMGR>startup 再打开数据库,当看到
instances startup, database mount,
database open 的时候,oracle 安装成功
SVRMGR>exit
15、 %lsnrctl start 启动 listener
如果出错检查环境变量是否设好,及 lsnrctl 文件的内容和执行属性。
Solaris7 Apache+MySQL+PHP 安装指南
1.下载并解压 Apache ,MySQL ,PHP
Apahce ,MySQL , PHP 都是 gnu 的免费软件,其官方网站分别为:
分别下载源代码包:
, ,
分别用 gzip 解压缩
#gzip –d
#gzip –d
#gzip –d
由于 solaris 的操作系统本身带的 tar 命令解 gnu 的 tar 压缩包有问题,所以需要先到
下 载 , 解 压 并 安 装
gtar :
#gzip –d
#cp -sparc /usr/bin/gtar
#chmod 555 /usr/bin/gtar
然后,用 gtar 解 3 个 tar 包,用法和 tar 一样
#gtar xvf
#gtar xvf
#gtar xvf
2.下载并安装编译器
编译器使用 gnu 的 gcc ,在 下载编译好的 for Solaris7 的版
本 :
(gnu gcc complier)
libstdc++ (gnu C++ complier libraries package)
分别解压安装:
#gzip –d
#gzip –d libstdc++
#pkgadd –d ./ -sol7-sparc-local
#pkgadd –d ./ libstdc++-sol7-sparc-local
这些软件默认安装到 /usr/local ,所以要是编译器生效必须在 /etc/profile 或 .profile 中更改
$PATH 环境变量,加入 /usr/local/bin (且要放在 /usr/ucb ,和 /usr/ccs/bin 之前)
PATH=/usr/bin:/usr/sbin:/usr/local/bin:/usr/openwin/bin:/usr/ccs/bin:/usr/ucb
3.编译并安装这 3 个软件:
(1)MySQL
#cd
#./configure --prefix=/usr/local/mysql *或见注 2
#make
#make install
注 1:在执行 ./configure –prefix=/usr/local/mysql 的时候,有可能出现某些 checking process
无法通过的错误,如 restartable system call ,byte ordering 等,此时可以更改./configure 文
件中相应的语句,强制跳过这些对系统的检测。
注 2:在 Solaris8 中可能出现如下错误
/usr/include/:38: warning: `getwc' redefined
cp /usr/local/lib/gcc-lib/<your_os_version>/<your_gcc_version>/include
In file included from :50:
/usr/include/:1060: syntax error before `,'
/usr/include/:1081: syntax error before `;'
可用:
#CFLAGS=-DHAVE_CURSES_H CXXFLAGS=-DHAVE_CURSES_H ./configure
--prefix=/usr/local/mysql
(2)PHP
#cd
#./configure –prefix=/usr/local/httpd
#cd ../
#./configure –with-mysql=/usr/local/mysql –with-apache=../ –
with-enable-track-vars
#make
#make install
(3)Apache
#cd
#./configure –prefix=/usr/local/httpd –activate-module=src/modules/php4/
#make
#make install
4.配置 Apache + MySQL + PHP
首 先 , 需 要 在 /etc/profile 或 .profile 中 加 入 以 下 两 行 , 并 在
/usr/local/mysql/share/mysql/ 的开头处也加如这两行:
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH
安装 MySQL 的初始数据库:
#cp /usr/local/lib/libstdc++. /usr/local/mysql/lib/mysql/
#cd /usr/local/mysql/bin
#./mysql_install_db
查看 MySQL 是否能启动:
#cd /usr/local/mysql/share
#./ start
如不能启动,到 /usr/loca/mysql/var 下查看错误信息,如能启动,将其拷贝到 /etc/
#cp /usr/local/mysql/share/mysql/ /etc/
#chmod 744 /etc/
配置 Apache 的配置文件 /usr/local/httpd/conf/ :
找到这 3 行
# And for PHP , use:
#
#AddType application/x-httpd-php .php
把第 3 行的 # 号去掉,改成
# And for PHP , use:
#
AddType application/x-httpd-php .php
查看 Apache 能否启动:
#/usr/local/httpd/bin/apachectl start
建立 Apache 启动文件:
#vi /etc/
#!/bin/sh
case "$1" in
'start')
echo "Starting Apache Http Server "
/usr/local/httpd/bin/apachectl start
;;
'stop')
echo "Stopping Apache Http Server "
/usr/local/httpd/bin/apachectl stop
;;
'*')
echo "Usage: $0 { start | stop }"
exit 1
esac
exit 0
:wq!
#chmod 744 /etc/
将 Apahce 和 MySQL 加入相应的系统启动/关机脚本:
#ln /etc/ /etc/
#ln /etc/ /etc/
#ln /etc/ /etc/
#ln /etc/ /etc/
重新启动机器,在启动后应该能看到后台的 mysql 和 apache 进程。
5.验证 Apache + MySQL + PHP 的有效性:
根据在 /usr/local/httpd/conf/ 中设置的 DocumentRoot(默认为 /usr/local/httpd/htdocs) ,
在对应的目录下建立一个 文件,其内容如下:
#vi
<?
echo phpinfo();
?>
wq!
#
然后打开浏览器在地址中访问 http://ipaddress/ 或者
如果能看到浏览器输出的一张关于 PHP 输出参数的表,并能在其中有关于 MySQL
的支持信息,那么 Apache + MySQL + PHP 就安装成功了。
Notes:
在/usr/local/httpd/conf/ 中的 DirectoryIndex 段中要加入就.php 文件的支持
<IfModule >
DirectoryIndex
</IfModule>
这样才能访问一个目录的缺省 页面
RealTek 8139 网卡在 solaris x86 上的安装
Jason Chen
Dec 2001
1、从 下载 8139 网卡 for solaris x86 的驱动。下载的文件为一个 zip
文件,在 win 下把这个文件解压到软盘上。注意解压后 rtls 文件名必须为小写。
2、在 solaris 下以 dos 格式 mount 软盘
mount -F pcfs /dev/fd0a /mnt
(如果 mount 不成功可先执行 eject)
把安装文件 copy 到一个临时目录
3、执行./Install
4、建新文件 /reconfigure
touch /reconfigure
5、配置网络参数
(1)建新文件/etc/,写上主机名
(2)新建或修改/etc/netmasks 文件,写上子网掩码
例如:
(3)修改/etc/hosts 文件,写上与主机名对应的 IP 地址
(4)新建文件/etc/defaultrouter,输入网关 IP 地址
例如:
(5)新建文件/etc/,写上 DNS 的 IP 地址
格式:
nameserver
(6)修改/etc/ 文件,将包含“hosts:”的一行改为:
hosts: files dns
注意:不能用
ifconfig rtls0 netmask up
这个方法配置网络参数。这样配置的参数是临时的,reboot 后就失效。
6、reboot
对于其他 solaris 不支持的网卡,只要网卡厂商提供 for solaris 的驱动程序,同样可以参照此
方法安装。
Solaris 中安装声卡(X86)
1、从 下载最新的驱动 ,那里有支持的驱动列表,很多,
连 via'ac97 都支持。解压,然后#./oss-install,安装过程中,有改动 IRQ 中断设置(可以先在
windows 中查看 IRQ 值)。#/usr/lib/oss/osstest,声音测试。
2、 中搜索 mpg123 下载,解压,pkgadd
3、#mpg123 /export/home/mp3/
附录:
A. Sun 推荐培训
(1) Solaris 8 系统管理 I(SA-238)
时间:5 天 (50%授课,50%实际操作练习)
概述:
本课程向学员讲授独立安装、文件系统管理、备份、进程控制、用户管理以及设备管理等关
键任务。学员将掌握在 Solaris 操作环境执行这些关键系统管理任务必需的知识和技巧。
在 Solaris 操作环境执行关键系统管理任务的系统管理员将通过该课程受益。
目标:
·了解 Sun Client-Server 环境和其它重要系统管理术语与概念;
·在独立系统实现 64 位计算能力;
·了解并执行引导与关机过程与选项;
·使用 pkgadd 命令增加软件包;
·管理进程;
·使用 Admintool 和命令行方式向系统增加用户;
·配置用户初始化文件,以提供一致的登录环境;
·掌握 boot 命令和选项,并能修改 EEPROM 引导参数;
·了解和改变 Solaris 服务器的系统状态;
·使用 ACL 正确设置文件许可权限;
·管理磁盘设备;
·使用 Solaris 8 设备命名规则配置和命名设备;
·监控和安装文件系统,包括 CD-ROM 和 PC 软磁盘设备;
·使用 format 实用程序显示信息,设置磁盘分区;
·执行备份与恢复;
·实现基本系统安全。
预备知识:学习本课程之前,您必须
·作为最终用户,可成功地与 Solaris 系统进行交互;
·使用 vi 文本编辑器;
·与窗口系统进行交互。
后续课程: 学完此课程之后,建议学习
·建议要学习 SA-118 Solaris 8 基础课程及 SA-245 系统管理员 shell 编程
·建议学习 SA-288 Solaris 8 系统管理Ⅰ
(2) Solaris 8 系统管理 II(SA-288)
时间:5 天 (50%授课,50%实际操作练习)
概述:
本课程向学员讲授如何在网络环境管理运行 Solaris 8 的 Sun(工作站,如何安装和维护 Sun
系统,如何配置 NFS 环境和执行故障检修,以及如何配置 NIS 环境和增加无盘客户机。
目标:
·安装和配置 Solaris 服务器;
·在 UltraSPARC 服务器上实现 64 位计算能力;
·设置事件记录,使用审计使用程序;
·安装和管理调制解调器及终端等串行设备;
·使用服务访问设施(SAF)支持设备安装;
·管理磁盘和文件系统;
·识别和说明在网络环境用于监控访问不同机器的文件和命令;
·配置 NFS,以支持 Client-Server 环境;
·使用 automounter;
·设置和配置 CashFS 文件系统与 WebNFS;
·说明不同名字服务:DNS、NIS、NIS+、FNS;
·配置和管理 NIS 环境;
·为服务器增加网络客户机和 AutoClient 支持;
·使用 JumpStart(自动安装 Solaris)。
预备知识:
·在独立系统安装 Solaris 操作系统,其中包括更新修补程序;
·了解并执行引导与关机过程及选项;
·登录 UNIX 系统,改变口令,增加用户,设置文件许可权限;
·创建目录,设置分区,管理文件;
·使用 Solaris 设备命名规则配置和命名设备。
预备知识:相关课程:在学习本门课程前,建议先学习
·SA-238 Solaris 8 系统管理Ⅰ
·SA-245 系统管理员 shell 编程
后续课程:在学完这门课程之后,建议学习
·SA-389 Solaris 8 TCP/IP 网络管理
·SA-400 Solaris 系统性能管理
(3) Solaris TCP/IP 网络管理(SA-387)
时间:5 天 (50%授课,50%实际操作练习)
概述:
本课程讲授有关局域网(LAN)的规则、建立、管理以及故障分析等内容。通过学习和实验,
学员可以获得网络规划、配置和故障分析等方面的经验,例如 IP 路由、域名服务(DNS)、
动态主机设置协议(DHCP)、Sendmail 等。
目标:
·列出 ISO/OSI 和 TCP/IP 两大网络协议体系的各层;
·描述 TCP/IP 中的主要协议;
·设置路由和路由表;
·设置各种长度的子网掩码;
·增加 Internet 和远程过程调用(RPC)服务;
·配置 DHCP 的客户和服务器;
·描述可用的网络管理工具;
·配置 DNS 和 Sendmail;
·规划一个 TCP/IP 局域网;
·用网络故障分析工具来进行网络维护。
预备知识:
·安装、设置和维护 Solaris 服务器;
·改变系统运行级别;
·设置和维护 NIS 和 NFS[tm]环境;
后续课程:在学完这门课程之后,建议学习
·Solaris 系统性能管理(SA-400)
·管理 Solaris 系统的安全性(SC-300)
(4)Solaris 系统性能管理(SA-400)
时间: 5 天(70%授课,30%实际操作练习)
课程描述:
本课程向学员讲授 Solaris 系统的性能、调试原则和工具;介绍创建计算系统采用的总线和
高速缓存等基本部件,使学员更好地了解根据调试工具生成的信息改变调试参数可能产生的
影响。课程宗旨是通过特定范例介绍性能原理,从而允许管理和解决未来的性能问题。鉴于
学员需要掌握一些主要操作系统核心子系统和硬件部件知识,以理解性能监视工具提供的信
息,本课程还将概要介绍操作系统核心子系统,其中包括多线程体系结构、虚拟存储器系统、
进程生命期及 UNIX 文件系统等。
培训对象:
凡需要了解 Solaris 性能问题,性能工具输出、硬件结构及操作,以更有效地管理系统资源,
实现最佳系统性能的个人,均可以参加。
目标:
·在本课程完成后,您将具备以下能力
·解释性能协调的真正含义;
·解释 Solaris 系统中与不同系统间的关系;
·解释高速缓存如何增加系统性能;
·说明 Solaris 采用的多线程体系结构;
·说明页面守护程序和子系统发挥作用;
·解释分页功能如何在操作系统中起作用以及如何协调其性能;
·修改调度参数表;
·了解硬件 I/O 部件的操作;
·说明 So1aris 文件使数码设备很方便地连接在一起的;
·解释目录名查找高速缓存如何改进性能;
·识别可以协调的各种子系统间的瓶颈;
·使用 sar(1)、vmstat(1)及其它工具测量系统性能和瓶颈;
·使用 sar(1)和 vmstat(1)识别存储器瓶颈;
·使用 iostat(1)和 netstat(1)识别 I/O 瓶颈;
·使用 sar(1),vmstat(1)和 ps(1)识别 CPU 瓶颈;
·使用 sar(1)识别核心瓶颈;
·提供改进应用性能的建议;
·向磁盘分布和装载数据,以提高存取的有效性;
预备知识:学习本课程前,您必须具有以下能力
·安装和配置 Solaris;
·管理 Solaris 服务器。
·已完成相关课程: SA-288:Solaris 8 System Administration II
后续课程:在学完这门课程之后,建议学习
·ST-350:Sun Fault Analysis workshop
(5) Sun 系统故障分析(ST-350)
时间: 5 天(授课:20% 上机:80%)
课程描述:
本课程告诉学员如何解决 SUN 系统中出现的程度较深的系统故障的方法。对象是系统管理
员和系统维护人员。通过在 SUN SPARCstation 机器上使用 Solaris 设置一些系统故障,
引导学员进行排除,使得学员学会如何更好的维护和管理系统。
目标:本课程完成后,您将具备以下能力
·能够区分及修复所选择硬件,系统管理和软件的故障
·使用有规律所选择的网络,I/O 端口和打印机的故障
·识别,修复系统管理故障和错误
·学会使用 SunSolve 和其 Sun 故障隔绝手段
·识别 OS 问题且利用 patch 来解决
·加载,运行 Sun 的诊断程序并解释其结果
·收集,解释系统错误信息
·分析系统 dump, crash 及 hangs
(6) Sun Enterprise Cluster HA 的管理(ES-330)
时间: 5 天 (授课:50% 上机:50%)
课程描述:
本课程为学员提供了安装和管理 Sun Enterprise Cluster 系统的基本知识和技能,将介绍 Sun
Enterprise Cluster(SEC)产品特性、硬件配置、软件安置和配置,数据服务配置,系统操作和
系统恢复。
培训对象:
Sun Cluster 系统管理员,数据库管理员及支持人员。
目标:本课程完成后,您将具备以下能力
·描述主要的 Sun Enterprise Cluster 组成及功能
·检查磁盘阵列的连线
·配置终端集中器(TC)
·配置集群互连系统(Ethernet 和 SCI)
·安装 Sun Cluster 软件
·排除软件安装和配置错误的故障
·配置环境变量
·使用 SEC 管理工具
·初始化 Enterprise Volume Manager, Cluster Volume Manager 或 Solstice DiskSuite
·描述 Enterprise Volume Manager, Cluster Volume Manager, Solstice DiskSuite 的差别
·描述 SEC 故障恢复机制
·配置 Sun Cluster HA NFS 数据服务
·使用 Public network management (PNM) 实用程序
·识别并恢复某些 SC 故障
预备知识:学习本课程,您必须具备以下能力
·管理 Solaris 工作站
·进行基本的网络管理
·用 Veritas Volume Manager 或 Solstice DiskSuite 管理虚拟卷结构
·操作并连接至少一个 Sun Enterprise Cluster 系统及相关外设
B.在 VMWare 中安装 Solaris 8
在 Win2000 server 上用 VMware workstation 的虚拟机技术安装了一个 solaris 8 操作系
统,安装步骤和碰到的问题。
1、启动 VMware workstation ,建立一个新的虚拟机。
注意:1)Guest operating system 选 other;
2)虚拟硬盘类型应为 IDE;
3)设光驱的选项:Connection-->Use physical drive:-->auto-dectect;
4)切记要把 Enable raw access 项选上;(也可以直接用 iso 安装.可以挂三个 iso 一次
安装完成,不用换光盘,只要按 Enter. IDE0:1 ia ,IDE1:0 ia_2 , IDE1:1 lang)
5)其他的一路默认就行了。
2、将 Solaris 8 Software 1 放入光驱中,然后点 Power on, 进 bios 选择光盘启动.
3、安装过程中遇到要求配置显示卡及显示器的步骤时,就 f4 by pass 选择不配置显卡,这
样以后的软件将会采用字符界面进行安装。你可以等所有的包都装上去之后再配置显卡。
4、从 这里下载 VMware 中显卡
的驱动。 运行:
gunzip
tar xvf
pkgadd -d /tmp/video SUNWxf86u
pkgadd -d /tmp/video SUNWxf86r (次序不能倒)
kdmconfig
配置显卡就可以了。
Host – (win2k,winxp,winnt)
Monitor - ViewSonic 19" @ 75Hz
Video Card - Nvidia GeForce2 MX 400 (可以任意)
Resolution - 1024x768 @ 32bit
Guest – (虚拟机中的 solaris)
Video Device - XF86-VMWARE VMware virtual video adapter
Screen Size - 19-inch (48cm)
Resolution/Colors - 800x600 - 16777216 colors @ 75Hz
Monitor Type - MultiFrequency 95 KHz (up to 1600x1200 @ 75Hz)
Virtrue Desktop 1024x768
5、安装完毕,可以安装一个客户端程序,远程登陆到 solaris 8 上,下面是用 exceed 作
例子启动 X-window 客户端程序。
首先下载安装 ,安装完之后配置 exceed-->Xconfig--> Communication-->mode(后三
个据说都可以,我设的是 XDMCP-query)-->configure-->solaris 8 的 IP 地址,其他的默认。
然后启动 exceed 就行了,彩色的 CDE 界面就出现了。(如果出现提示:Not on system
console,就修改修改/etc/default/login 文件,注释掉 CONSOLE=/dev/console 语句。)
系统操作入门
..登录步骤
=========
login : _______ => 输入 username
password : _______ => 输入密码
..退出步骤
=========
% logout
或 % exit
或 % <CTRL><d>
更改帐号密码
============
% passwd => 执行后将会出现下列讯息
Changing NIS password for user on ice.
Old password: ______ => 输入旧密码
New password: ______ => 输入新密码(最好 6-8 字,英文字母与数字混合)
Retype new password: ______ => 再输入一次密码
在线指令说明
============
执行格式: man command-name
Example: % man ls
进入远端电脑系统
================
执行格式:rlogin hostname [-1 username]
Example:
%rlogin doc
remote login 进入工作站 doc 中。
%rlogin doc -l user
使用 user 帐号进入工作站 doc 中。
执行格式:telnet hostname 或 telnet IP address
Example:
%telnet doc or %telnet
文件或目录处理
==================
.列出文件或目录下之文件名称
执行格式: ls [-atFlgR] [name] ( name 可为文件名或目录名称。)
Example :
ls 列出目前目录下之文件名。
ls -a 列出包含以.起始的隐藏档所有文件名。
ls -t 依照文件最后修改时间之顺序,依序列出文件名。
ls -F 列出目前目录下之文件名及其类型。"/" 结尾表示为目录名称,
"*" 结尾表示为执行档,"@" 结尾表示为 symblic link。
ls -l 列出目录下所有文件之许可权、拥有者、文件大小、修改时间及名称。
ls -lg 同上,并显示出文件之拥有者群组名称。
ls -R 显示出目录下,以及其所有子目录之文件名。( recursive listing )
目录之缩写:
===========
~ 使用者 login 时的 working directory ( 起始目录 )
~username 指定某位 user 的 working directory ( 起始目录 )
.. 目前的工作目录 ( current working directory )
.. 目前目录的上一层目录 ( parent of working directory)
改变工作目录位置
================
执行格式:cd [name] :name 可为目录名称、路径或目录缩写。
Example:
cd 改变目录位置,至使用者 login 时的 working directory (起始目录)。
cd dir1 改变目录位置,至 dir1 之目录位置下。
cd ~user 改变目录位置,至使用者的 working directory (起始目录)。
cd .. 改变目录位置,至目前目录的上层( 即 parent of working directory)
cd ../user 改变目录位置,至相对路径 user 之目录位置下。
cd /../.. 改变目录位置,至绝对路径( Full path ) 之目录位置下。
复制文件
========
执行格式: cp [-r] source destination
Example:
cp file1 file2 将文件 file1 复制成 file2
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。
移动或更改文件、目录名称
========================
执行格式: mv source destination
Example:
mv file1 file2 将文件 file1,更改文件名为 file2。
mv file1 dir1 将文件 file1,移到目录 dir1 下,文件名仍为 file1。
mv dir1 dir2 若目录 dir2 不存在,则将目录 dir1,及其所有文件和子目录,移
到目录 dir2 下,新目录名称为 dir1。若目录 dir2 不存在,则将
dir1,及其所有文件和子目录,更改为目录 dir2。
建立新目录
==========
执行格式: mkdir directory-name
Exmaple :
mkdir dir1 建立一新目录 dir1。
删除目录
========
执行格式: rmdir directory-name 或 rm directory-name
Example :
rmdir dir1 删除目录 dir1,但 dir1 下必须没有文件存在,否则无法删除。
rm -r dir1 删除目录 dir1,及其下所有文件及子目录。
删除文件
========
执行格式: rm filename (filename 可为文件名,或文件名缩写符号。)
Example :
rm file1 删除文件名为 file1 之文件。
rm file? 删除文件名中有五个字元,前四个字元为 file 之所有文件。
rm f* 删除文件名中,以 f 为字首之所有文件。
文件名的缩写符号
==============
? 代表文件名称中之单一字元。
* 代表文件名称中之一字串。
列出目前所在之目录位置
======================
执行格式: pwd
查看文件内容
============
执行格式: cat filename
Example :
cat file1 以连续显示方式,查看文件名 file1 之内容。
执行格式: more filename 或 cat filename | more
Example :
more file1 以分页方式,查看文件名 file1 之内容。
cat file1 | more 同上。
查看目录所占磁盘容量
====================
执行格式: du [-s] directory
Example :
du dir1 显示目录 dir1 的总容量及其次目录的容量(以 k byte 为容量)。
du -s dir1 显示目录 dir1 的总容量。
查看自己的 disk quota 使用状况
==============================
disk quota : 工作站磁盘空间的使用限额。
执行格式: quota -v
Example :
quota -v 将会显示下列讯息
Filesystem usage quota limit timeleft files quota limit timelef.
/home/ice/u01
9344 8192 12288 days 160 0 0
栏位解说:
usage : 目前的磁盘用量。
quota : 你的磁盘使用额度。当你的 usage 超过 quota 时,虽然可以继续使用,但是
必须七天之内降到 quota 以下,否则即使用量没有超 limit(最高限额),也无
法再写入或复制任何文件。
limit : 最高使用额度。当你的 usage 达到 limit 时,无法再写入或复制任何文件。
文件传输
========
.拷贝文件或目录至远端工作站
============================
执行格式: rcp [-r] source hostnome estination
( source 可为文件名、目录名或路径,hostnome 为工作站站名,destination 为路径名称.
Example :
rcp file1 doc:/home/user
将文件 file1,拷贝到工作站 doc 路径 /home/user 之目录下。
rcp -r dir1 doc:/home/user
将目录 dir1,拷贝到工作站 doc 路径/home/user 之目录下。
.自远端工作站,拷贝文件或目录
===============================
执行格式: rcp [-r] hostname ource destination
( hostname 为工作站名,source 为路径名,destination 可为文件名、目录名或路径 )。
Example :
rcp doc:/home/user/file1 file2
将工作站 doc 中,位於 /home/user 目录下之目录 dir1,拷贝到目前工作站之目录下,
目录名称仍为 dir1。
rcp -r doc:/home/user/dir1 .
将工作站 iis1 中,位於 /home/user 目录下之目录 dir1,拷贝到目前工作站之目录下□
目录名称仍为 dir1。
.本地工作站与远端工作站之间文件传输
====================================
( 必须拥有远端工作站之帐号及密码,才可进行传输工作 )
执行格式: ftp hostname or ftp ip_address
Example :
ftp doc 与远端工作站 doc ,进行文件传输
Name (doc:user-name) : 输入帐号
Password (doc:user-name): 输入密码
ftp> help 列出 ftp 文件传输,可使用之任何命令。
ftp> !ls 列出本地工作站,目前目录下之所有文件名。
ftp> !pwd 列出本地工作站,目前所在之工作目录位置。
ftp> ls 列出远端工作站目前目录下之所有文件名。
ftp> dir 列出远端工作站目前目录下之所有文件名(略同於 UNIX 的 ls -l 指令).
ftp> dir . |more 同上,但每页会暂停(可能不适用 Unix 以外的 ftp)。
ftp> pwd 列出远端工作站目前所在之目录位置。
ftp> cd dir1 更改远端工作站之工作目录位置至 dir1 之下。
ftp> get file1 将远端工作站之文件 file1 ,拷贝到本地工作站中。
ftp> put file2 将本地工作站之文件 file2 ,拷贝到远端工作站中。
ftp> mget *.c 将远端工作站中,副文件名为 c 之所有文件,拷贝到本地工作站中。
ftp> mput *.txt 将本地工作站中,副文件名为 txt 之所有文件,拷贝远端工作站中。
ftp> prompt 切换交谈式指令(使用 mput/mget 时不用每个文件皆询问 yes/no)。
ftp> quit 结束 ftp 工作。
ftp> bye 结束 ftp 工作。
注: 从 PC 与工作站间的文件传输也可通过在 PC 端的 FTP 指令进行文件传输,指令用法与
上所述大致相同。
文件模式之设定
==============
.改变文件或目录之读、写、执行之允许权
======================================
执行格式:chmod [-R] mode name
( name 可为文件名或目录名;mode 可为 3 个 8 位元之数字,或利用 ls -l 命令,列出
文件或目录之读、写、执行允许权之文字缩写。)
mode : rwx rwx rwx r:read w:write x:execute
user group other
缩写 : (u) (g) (o)
Example :
%chmod 755 dir1
将目录 dir1,设定成任何使用者,皆有读取及执行之权利,但只有拥有者可做修改。
%chmod 700 file1
将文件 file1,设定只有拥有者可以读、写和执行。
%chmod o+x file2
将文件 file2,增加拥有者可以执行之权利。
%chmod g+x file3
将文件 file3,增加群组使用者可执行之权利。
%chmod o-r file4
将文件 file4,除去其它使用者可读取之权利。
.改变文件或目录之拥有权
========================
执行格式:chown [-R] username name ( name 可为文件名或目录名。)
Example :
%chown user file1
将文件 file1 之拥有权,改为使用者 user 所有。
%chown -R user dir1
将目录 dir1,及其下所有文件和子目录之拥有权,改为使用者 user 所有。
检查自己所属之群组名称
======================
执行格式:groups
.改变文件或目录之群组拥有权
============================
执行格式:chgrp [-R] groupname name ( name 可为文件名或目录名 )
Example :
%chgrp vlsi file1
将文件 file1 之群组拥有权,改为 vlsi 群组。
%chgrp -R image dir1
将目录 dir1,及其下所有文件和子目录,改为 image 群组。
.改变文件或目录之最后修改时间
==============================
执行格式:touch name ( name 可为文件或目录名称。)
文件之连结
==========
同一文件,可拥有一个以上之名称,可将文件做数个连结。
执行格式:ln oldname newname ( Hard link )
Example :
ln file1 file2 将名称 file2,连结至文件 file1。
执行格式:ln -s oldname newname ( Symblick link )
Example :
ln -s file3 file4 将名称 file4,连结至文件 file3。
文件之字串找寻
==============
执行格式:grep string file
Example :
grep abc file1
寻找文件 file1 中,列出字串 abc 所在之整行文字内容。
找寻文件或命令之路径
====================
执行格式:whereis command ( 显示命令之路径。)
执行格式:which command ( 显示命令之路径,及使用者所定义之别名。)
执行格式:whatis command ( 显示命令功能之摘要。)
执行格式:find search-path -name filename -print
( 搜寻指定路径下,某文件之路径 。)
Example :
%find / -name file1 -print ( 自根目录下,寻找文件名为 file1 之路径。.
比较文件或目录之内容
====================
执行格式:diff [-r] name1 name2 ( name1 name2 可同时为文件名,或目录名称。)
Example :
%diff file1 file2
比较文件 file1 与 file2 内,各行之不同处。
%diff -r dir1 dir2
比较目录 dir1 与 dir2 内,各文件之不同处。
文件打印输出
============
使用者可用 .login 档中之 setenv PRINTER,来设定打印资料时的打印机名。
printername p1 或 sp2 (1005 教室)
Example :
%setenv PRINTER sp2 设定自 sp2 打印资料。
一般文件之打印
==============
执行格式:lpr [-Pprinter-name] filename
%lpr file1 或 lpr -Psp2 file1
自 sp2,打印文件 file1。
执行格式:enscript [-Pprinter-name] filename
%enscript file3 或 enscript -Psp1 file3
自 sp1 打印文件 file3。
.troff 文件之打印
==================
执行格式:ptroff [-Pprinter-name] [-man][-ms] filename
%ptroff -man /usr/local/man/man1/
以 troff 格式,自 Apple laser writer 打印 ptroff 命令之使用说明。
%ptroff -Psp2 -man /usr/man/man1/lpr1
以 troff 格式,自 sp2 打印 lpr 命令之使用说明。
打印机控制命令
==============
.检查打印机状态,及打印工作顺序编号和使用者名称
================================================
执行格式:lpq [-Pprinter -name]
%lpq 或 lpq -Psp1
检查 sp1 打印机之状态。
.删除打印机内之打印工作 ( 使用者仅可删除自己的打印工作 )
========================
执行格式:lprm [-Pprinter -name] username 或 job number
%lprm user 或 lprm -Psp1 user
删除 sp1 中,使用者 user 的打印工作,此时使用者名称必须为 user。
%lprm -Psp2 456
删除 sp2 编号为 456 之打印工作。
Job 之控制
===========
UNIX .,可於 foregrourd 及 background 同时处理多个 process。
一般使用者执行命令时,皆是在 foreground 交谈式地执行 process,亦可将 process
置於 background 中,以非交谈式来执行 process。
.查看系统之 process
====================
执行格式:ps [-aux]
Example:
%ps 或 ps -x (查看系统中,属於自己的 process。)
%ps -au (查看系统中,所有使用者的 process。)
%ps -aux (查看系统中,包含系统内部,及所有使用者的 process。)
.结束或终止 process
====================
执行格式:kill [-9] PID ( PID 为利用 ps 命令所查出之 process ID。)
Example:
%kill 456 或 kill -9 456
终止 process ID 为 456 之 process。
.在 background 执行 process 的方式
===================================
执行格式:command & (於 command 后面加入一 "&" 符号即可。)
Example:
%cc &
将编译 文件之工作,置於 background 执行。
执行格式:按下 "Control Z" 键,暂停正在执行的 process。键入 "bg" 命令,
命令,将所暂停的 process,置入 background 中继续执行。
Example:
%cc
^Z
Stopped
%bg
.查看正在 background 中执行的 process
======================================
执行格式:jobs
.结束或终止在 background 中的 process
======================================
执行格式:kill %n
(n 为利用 "jobs" 命令,所查看出的 background job 编号)
Example:
%kill % 终止在 background 中的第一个 job。
%kill %2 终止在 background 中的第二个 job。
shell varialbe
==============
.查看 shell variable 之设定值
==============================
执行格式:set 查看所有 shell variable 之设定值。
%set
执行格式:echo $variable-name 显示指定的 shell variable 之设定值。
%echo $PRINTER
sp1
.设定 shell variable
=====================
执行格式:set var = value
Example:
%set term=vt100
设定 shell variable "term" 为 VT100 终端机之型式。
.删除 shell variable
=====================
执行格式:unset var
Example:
%unset PRINTER
删除 shell variable "PRINTER" 之设定值。
environment variable
=====================
.查看 environment variable 之设定值
====================================
执行格式:setenv 查看所有 environment variable 之设定值。
Example: %setenv
执行格式:echo $NAME 显示指定的 environment variable "NAME" 之设定值。
Example:
%echo $PRINTER
显示 environment variable "PRINTER" 打印机名称之设定值。
.设定 environment variable
===========================
执行格式:setenv NAME word
Example:
%setenv PRINTER sp1
设定 environment variable "PRINTER" 打印机名称为 sp1。
.删除 environment variable
===========================
执行格式:unsetenv NAME
Example:
%unsetenv PRINTER
删除 environment variable "PRINTER" 打印机名称之设定值。
alias
=====
.查看所定义的命令之 alias
==========================
执行格式: alias 查看自己目前定义之所有命令,及所对应之 alias 名称。
执行格式: alias name 查看指定之 alias 名称所定义之命令。
Example:
%alias dir (查看别名 dir 所定义之命令)
ls -atl
.定义命令之 alias
==================
执行格式: alias name 'command line'
Example:
% alias dir 'ls -l'
将命令 "ls - l" 定义别名为 dir。
.删除所定义之 alias
====================
执行格式: unalias name
Example:
%unalias dir (删除别名为 dir 之定义。)
%unalias * (删除所有别名之设定。)
history
=======
.设定命令记录表之长度
======================
执行格式: set history = n
Example:
%set history = 40
设定命令记录表之长度为 40 (可记载执行过之前面 40 个命令)。
.查看命令记录表之内容
======================
执行格式: history
.使用命令记录表
================
执行格式: !!
Example: %!! (重覆执行前一个命令)
执行格式: !n ( n 为命令记录表之命令编号。)
Example: %!5 ( 执行命令记录表中第五个命令。)
执行格式: !string ( 重覆前面执行过以 string 为起始字元之命令。)
Example: %!cat ( 重覆前面执行过,以 cat 为起始字元之命令。)
.显示前一个命令之内容
======================
执行格式: !!:p
.更改前一命令之内容并执行之
============================
执行格式: ^oldstring ^newstring
将前一命令中 oldstring 的部份,改成 newstring,并执行之。
Example:
%find . -name -print
^^core
%find . -name core -print
注:文件 core 为执行程式或命令发生错误时,系统所产生的文件。作为侦错(debug)之□
,因其所占空间极大,通常将之删除。
资料之压缩
==========
为了避免不常用的文件或资料,占用太大的磁盘空间,请使用者将之压缩。欲使用压缩过
的文件或资料前,将之反压缩,即可还原成原来之资料型式。凡是经过压缩处理之文件,
会在文件名后面附加 " .Z " 之字元,表示此为一压缩文件。
.压缩资料
==========
执行格式:compress filename 压缩文件
执行格式:compressdir directory-name 压缩目录
.解压缩还原资料
================
执行格式:uncompress filename 反压缩文件
执行格式:uncompressdir directory-name 反压缩目录
pipe-line 之使用
================
执行格式:command1 | command2
将 command1 执行结果,送到 command2 做为 command2 的输入。
Example:
%ls -Rl | more
以分页方式,列出目前目录下所有文件,及子目录之名称。
%cat file1 | more
以分页方式,列出文件 file1 之内容。
I/O control
===========
.标准输入之控制
================
执行格式:command-line < file
将 file 做为 command-line 之输入。
Example:
%mail -s "mail test" user@ < file1
将文件 file1 当做信件之内容,Subject 名称为 mail test,送给收信人。
.标准输出之控制
================
执行格式:command > filename
将 command 之执行结果,送至指定的 filename 中。
Example: %ls -l > list
将执行 "ls -l" 命令之结果,写入文件 list 中。
执行格式:command >! filename
同上,若 filename 之文件已经存在,则强迫 overwrite。
Example: %ls -lg >! list
将执行 "ls - lg" 命令之结果,强迫写入文件 list 中。
执行格式:command >& filename
将 command 执行时,萤幕上所产生的任何讯息,写入指定的 filename 中。
Example: %cc >& error
将编译 文件时,所产生之任何讯息,写入文件 error 中。
执行格式:command >> filename
将 command 执行结果,附加(append)到指定的 filename 中。
Example: %ls - lag >> list
将执行 "ls - lag" 命令之结果,附加(append)到文件 list 中。
执行格式:command >>& filename
将 command 执行时,萤幕上所产生的任何讯息,附加於指定的 filename 中。
Example: %cc >>& error
将编译 文件时,萤幕所产生之任何讯息,附加於文件 error 中。
查看系统中的使用者:
===================
执行格式: who 或 finger
执行格式: w
执行格式: finger username or finger username@domainname
改变自己的 username 进入其他使用者的帐号,拥有其使用权利。
=========================================================
执行格式: su username
Example:
%su user 进入使用者 user 之帐号
passwrod: 输入使用者 user 之密码
查看 username:
==============
执行格式: who am i 查看 login 时,自己的 username。
执行格式: whoami 查看目前的 username。若已执行过 "su"命令(switch user),
则显示出此 user 之 username。
查看目前系上所有工作站的使用者:
===============================
执行格式: rusers
<CTRL><C> => 结束
与某工作站上的使用者交谈:
=========================
执行格式: talk username@hostname 或 talk username@ip_address
Example:
1. 可先利用 rusers 指令查看网路上的使用者
2. 假设自己的帐号是 u84987 ,在工作站 indian 上使用,现在想要与 doc 上的
u84123 交谈。
%talk u84123@doc ==> 此时萤幕上将会出现等待画面
在对方(u84123)萤幕上将会出现下列讯息
Message from Talk_Daemon@Local_host_name at xx:xx
talk: connection requested by u84987@indian
talk: respond with: talk u84987@indian
此时对方(u84123) 必须执行 talk u84987@indian 即可互相交谈。
最后可按<CRTL><C>结束。
检查远端电脑系统是否正常
========================
执行格式:ping hostname 或 ping IP-Address
Example:
%ping doc
电子邮件(E-mail)的使用简介
==========================
本系之 E-mail address 为
..将文件当做 E-mail 的内容送出
=============================
执行格式:mail -s "Subject-string" username@address < filename
%mail -s "program" user <
将 当做 mail 的内容,送至 user, subject name 为 program。
..传送 E-mail 给本系使用者
========================
执行格式:mail username
%mail user
..传送 E-mail 至 外地
====================
执行格式: mail username@receiver-address
Example
%mail paul@
Subject : mail test
:
:
键入信文内容
:
:
按下 "Control D" 键或 " . " 键结束信文。
连按两次 "Control C" 键,则中断工作,不送此信件。
Cc:
( Carbon copy : 复制一份信文,给其他的收信人 )
..检查所传送之 E-mail 是否送出,或滞留於本所之邮件伺服站中
=========================================================
执行格式:/usr/lib/sendmail -bp
( 若萤幕显示为 "Mail queue is empty" 之讯息,表示 mail 已送出。
若为其它错误讯息,表示 E-mail 因故尚未送出。)
..读取信件
=========
执行格式: mail
常用指令如下:
cd [directory] chdir to directory or home if none given
d [message list] delete messages
h print out active message headers
m [user list] mail to specific users
n goto and type next message
p [message list] print messages
q quit, saving unresolved messages in mbox
r [message list] reply to sender (only) of messages
R [message list] reply to sender and all recipients of messages
s [message list] file append messages to file
t [message list] type messages (same as print)
u [message list] undelete messages
v [message list] edit messages with display editor
w [message list] file append messages to file, without from line
x quit, do not change system mailbox
z [-] display next [previous] page of headers
! shell escape
文件编辑器 vi 之使用方法简介
============================
vi、celvis(cvi) 是在工作站上被广大使用的中英文编辑软体。对初学者而言,
常因其特殊的使用方法,而不得其门而入;对已经在使用 vi 的使用者来说,也
常见因对 vi 的不熟悉或不够了解,而无法发挥出 vi 强大的编辑能力,以下将
介绍 vi 之使用方法简介。
..本文内容大纲
=============
进入 vi
离开 vi
输入模式
如何进入输入模式
如何离开输入模式
指令模式
游标的移动
视窗的移动
删除、复制及修改指令介绍(delete、change、yank)
删除与修改(delete、replace)
搬移与复制(delete/put、yank/put)
指令重覆
取消前一动作(undo)
字串搜寻
资料的连接与分行
环境的设定
ex 指令
其它方面
中文编辑
恢复编辑时被中断的文件
编辑多个文件
vi 是 visual editor 的缩写,是 UNIX 所提供的编辑器之一。它提供使用者一个
视窗的编辑环境,在此视窗下,使用者可编辑所要的文件。
..进入 vi
=======
直接执行 vi 编辑程式即可:
%vi test
此刻萤幕上会出现 vi 的编辑视窗,同时 vi 会将文件复制一份至记忆体中
的缓冲区 (buffer) 。 vi 会保留在磁盘中的文件不变,而先对缓冲区的档
案作编辑,编辑完成后,使用者可决定是否要取代原来旧有的文件。
..离开 vi
=======
若在输入模式下,则先利用《ESC》进入指令模式,而后即可选用下列指令
离开 vi。
:q! 离开 vi,并放弃刚在缓冲区内编辑的内容。
:wq 将缓冲区内的资料写入磁盘中,并离开 vi。
:ZZ 同 wq。
:x 同 wq。
:w 将缓冲区内的资料写入磁盘中,但并不离开 vi。
:q 离开 vi,若文件被修改过,则会被要求确认是否放弃修改的内容。
此指令可与:w 配合使用。
..vi 的操作模式
==============
vi 提供两种操作模式:输入模式(insert mode)和指令模式(command mode)
。当使用者进入 vi 后,即处在指令模式下,此刻键入之任何字元皆被视为
指令。在此模式下可进行删除、修改等动作。若要输入资料,则需进入输入
模式。
..输入模式
=========
如何进入输入模式
a (append) 由游标之后加入资料。
A 由该行之末加入资料。
i (insert) 由游标之前加入资料。
I 由该行之首加入资