solaris基础知识.docx
- 文档编号:12873517
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:24
- 大小:168.23KB
solaris基础知识.docx
《solaris基础知识.docx》由会员分享,可在线阅读,更多相关《solaris基础知识.docx(24页珍藏版)》请在冰豆网上搜索。
solaris基础知识
技术文件
技术文件名称:
Solaris基础知识
技术文件编号:
版本:
V1.0
文件质量等级:
A级
共14页
(包括封面)
拟制
审核
会签
标准化
批准
深圳市中兴通讯股份有限公司
1概述2
1.1UNIX历史2
1.2UNIX中Shell2
2UNIX常用命令3
2.1man3
2.2用户和组管理3
2.3文件和目录操作4
2.4关机6
2.5进程监控命令6
3文件系统6
3.1概述6
3.2文件类型和属性7
3.3文件权限8
3.4文件传输ftp9
3.5文件系统修复9
4网络配置10
4.1配置IP地址10
4.2子网掩码10
4.3默认网关10
5Vi编辑器10
5.1vi初始化文件.exrc11
5.2创建新文件、保存编辑和退出编辑命令11
5.3光标移动命令12
5.4输入和修改命令12
5.5拷贝、移动及搜索文本13
5.6底行编辑命令13
6solaris开发工具workshop14
7参考书籍14
UNIX基础知识
1概述
1.1UNIX历史
在1969年,AT&T贝尔实验室的工程师KenThompson最初以PDP-7汇编语言编写了UNIX操作系统,UNIX便成为一个高效的多用户和多任务操作系统。
汇编语言是一种计算机相关语言,用汇编语言编写的程序只能在一种计算机或至多在同一系列的计算机上运行。
因此,将最初的UNIX操作系统移植到其他计算机平台上运行是一件很困难的事情。
为了使UNIX具备可移植性,Thompson开发了B编程语言,这是一种源于BCPL语言的与计算机无关的语言。
后来AT&T贝尔实验室另一名工程师DennisRitchie通过修改B语言开发了C编程语言,并且和Thompson一起合作于1973年用C语言重新编写了UNIX。
经过这次重写之后,UNIX操作系统便可以很容易地移植到各种不同计算机平台上运行了,于是就大大促进了Unix的流行。
由于商业原因,1956年,AT&T从事UNIX的工作得到了有效的抑制,从而为伯克利大学打开了一扇通往UNIX领域杰出领导者之门。
1975年,加州大学伯克利分校的计算机系统研究组(ComputerSystemResearchGroup,CSRG)对AT&T的Unix操作系统统进行了一些重大的补充和修改,增加了许多新的功能,推出了BSD(BerkeleySoftwareDistribution)版本的Unix。
这样就形成了目前所使用的占主导地位的两种UNIX操作系统版本:
一种称为UNIX操作系统的BSD版本;另一种版本则为UNIXSystemV,它继承了上述AT&T贝尔实验室所开发和维护的版本。
现在的各种商业上的Unix操作系统均从这两大流派发展而来,例如Solaris操作系统是基于UNIXSystemV版本4(SVR4)的系统。
通过不断的发展,Unix成为运行在从工作站到小型机再到大型机的操作系统。
后来Unix操作系统出现了图形用户界面,一个流派叫Motif,另外一个叫Openlook,并合并成一个新的工作台标准,叫做共同工作平台环境(CommonDesktopEnvironment),简称CDE。
1.2UNIX中Shell
shell是一种作为用户和操作系统之间的接口的命令解释程序,就像DOSprompt中的命令解释器,当用户输入一个命令时,shell将对命令进行解释并调用用户所希望的程序。
最常用的UNIXshell有三种:
•Bourneshell(sh):
AT&T贝尔实验室的SteveBourne编写出来的一种早期的UNIXshell版本。
•Cshell(csh):
源于BerkeleyUNIX系统的一中shell版本。
•Kornshell(ksh):
一种综合了多种shell特点的UNIXshell版本。
shell的功能除了将来自某个终端、终端仿真器或工作站上的键盘命令进行解释并发送到操作系统之外,还可以用作一种高级编辑语言。
shell命令可以组织在一个文件中作为一个高级程序来执行。
这种灵活性可以使用户利用相对比较简单、较短的命令来进行复杂的操作,或者几乎毫不费力地创建一个可完成高度复杂操作的精巧程序。
如业务处理机UNIX平台的安装程序zxg10setup.sh就是个纯shell脚本执行程序。
在Unix中创建一个用户时,指定用户登录后使用的Shell,也可以从一个Shell切换到其它Shell。
命令行左边是提示符。
提示符可以是单个的符号,如$,也可以是具有某种含义的字符串。
命令行提示符可以在用户的配置文件中设置。
各种shell支持的提示符功能是不同的。
上图中使用的Shell是BourneShell。
三种Shell的路径及环境变量定义方法比较如下有:
名称
路径
环境变量定义
Bourneshell
/bin/sh
格式:
VARIABLE=value;exportVARIABLE
Cshell
/bin/csh
格式:
setenvVARIABLEvalue
Kornshell
/bin/ksh
格式:
VARIABLE=value;exportVARIABLE
Shell之间可以切换,在命令行提示下直接输入要使用的shell名(sh、csh、ksh),即可切换shell。
Bourneshell是用于普通目的的小shell。
Cshell在BerkeleyUnix的众多用户间广为流传。
Cshell的用法与Bourneshell和Kornshell完全不同。
Cshell最重要的优点是命令历史、命令编辑和别名。
命令历史存储最近使用的命令列表。
可以显示这些命令并像原来一样重新使用,还可以通过编辑更改命令。
而别名允许输入常用命令的短名字,甚至可以组合常用命令序列并提供该序列的别名。
Kornshell和Bourneshell使用相同的文法,但是它有许多内置的功能可以从shell直接定义。
Kornshell提供了比Cshell更好的命令编辑形式,Kornshell也提供命令历史和别名。
2UNIX常用命令
2.1man
Unix中的man命令是一个非常有用的命令。
它可以显示shell命令、工具程序、库函数等的参考手册页面,详细解释shell命令、工具程序和库函数的用法。
一般的shell命令和工具程序带有很多参数,通过man可以查询参数的用法。
如果要查询man的用法,执行manman命令即可。
我们可以通过UNIX重定向功能,将man命令的显示信息重定向到一个文件中,例如:
manman>>man.hlp
命令的结果是将man的帮助信息存入文件man.hlp。
man命令的显示内容本身是分屏的,如果执行如下命令:
manman|more
则利用UNIX管道功能来强制分屏显示。
2.2用户和组管理
WindowsNT中的超级用户为Administrator,Unix中的超级用户为root。
使用超级用户登录后,shell的缺省提示符是#。
如果知道root的口令,执行su命令可以转换到超级用户的身份。
su后面跟用户名可以转到到其它用户身份。
执行exit命令,回到前一个用户身份。
使用who命令,可以查看登录到系统上的用户的信息,-u选项将显示当前登录的所有用户,该命令将显示用户名,登录端口,登录时间和日期,非活动的时间长度,以及登录shell的进程ID。
Whoami命令显示当前用户的用户名。
passwd命令改变用户的口令。
passwdusername改变某一个用户的口令,passwd改变当前用户的口令。
例如:
其它用户管理命令列表:
命令
用途
Useradd
增加一个用户
Userdel
删除一个用户
Usermod
修改一个用户
Groupadd
增加一个组
Groupdel
删除一个组
Groupmod
修改一个组
以上命令一般只有root用户才有权限。
在许多Unix操作系统中提供图形界面的工具程序,用于对用户和组的管理。
在Solaris操作系统中提供admintool程序。
(Admintool演示)
图中比较重要的项目:
用户名、用户ID(由系统分配)、组ID、登录用的shell、密码和HomeDirectory。
HomeDirectory是指用户的个人目录,一般情况下必须指定。
用户创建后,根据HomeDirectory创建个人目录。
用户登录后的当前工作目录就是用户的个人目录。
用户可以在自己的个人目录下存放文件,创建子目录。
用户的各种配置文件也存放在用户的个人目录下。
配置文件一般是隐含文件。
在Unix操作系统中以“.”作为首字符的文件为隐含文件,如用户环境注册文件.profile。
UNIX有一组查看登录用户信息的命令:
who列出一个用户名清单(按终端名排序),包含用户使用的终端名及登录系统时间:
whoami命令显示自己的用户名和使用的终端及登录时间:
finger用来显示用户更加详细的信息,也可以用finger命令来获取指定用户的详细信息,其实finger报告的大部分信息是从/etc/passwd等系统文件收集得到的。
2.3文件和目录操作
pwd列出当前目录命令,与DOS中不带参数的cd命令功能相同;
ls列出当前目录下的所有文件和目录,相当于DOS中的dir命令;
cd目录切换命令,等同于DOS中的cd命令。
若cd后不跟目录名,则当前目录切换
到用户的个人目录上;
rm文件删除命令,等同于DOS中的del命令;
mkdir创建目录命令,等同与DOS的mkdir命令;
rmdir删除一个目录命令,若目录非空,则拒绝删除操作,等同与DOS的rmdir命令
如果要删除一个包含文件、甚至包含子目录的目录,则用带–r选项的rm命令,
提醒应慎重使用。
cp文件拷贝命令,如果要拷贝一个包含文件、甚至包含子目录的目录,则用带–r选项,等同于DOS中的copy命令。
mv文件移动等同于DOS中的move命令,也可用于当前目录下的文件名更改命令,
UNIX中没有DOS中像rename的专用修改文件名的命令;
cat显示指定文件内容,相当于DOS中type命令。
more与cat命令不同是分屏显示文件内容。
find命令用于查找目录或子目录下的文件,例如根据名字在当前目录及子目录下查找
名为test.c的文件,该功能的实现命令行为:
find.–nametest.c。
grep在文件中查找匹配内容,例如在test.c中查找字符串main:
grepmaintest.c。
sed信息流编辑器,可以搜寻样式并编辑文件。
awk
touch更改文件的访问时间和修改时间。
chown更改文件的所有者。
chgrp更改文件所属的组。
chmod更改文件的访问权限。
diff显示两个文件的不同。
tar文件归档命令,例如:
tarcvftarfiledirectory
把directory目录下的所有文件和子目录归档到tarfile文件中。
tarxvftarfile
恢复tarfile文件中的所有文件和目录。
gzip压缩工具,以减小文件存储空间,在网络传输文件(ftp)时非常有用。
网络传输批量文件时一般的做法是先将文件用tar工具归档成tar文件,然后用gzip压缩成gz文件,在通过ftp传输gz文件;对端收到gz文件的处理流程是:
先用gunzip将gz文件解压缩,然后用tar工具将解压后形成的tar文件恢复成原始文件。
gzip的用法如下:
gziptarfile
生成一个带.gz后缀的文件tarfile.gz
对应的解压工具为gunzip,gzip的用法如下:
gunziptarfile.gz
注意:
gzip和gunzip命令存放在目录系统/usr/local/bin下。
注:
UNIX系统shell命令有个特点,即参数比较多,参数的正确运用可以给你带来意想不到的效果。
以上各命令的具体用法及参数含义可使用man工具查询。
2.4关机
关闭机器的方法很多,大体上有:
shutdown向所有登录用户给出警告,等待若干秒(缺省60s),然后关闭。
halt不给出警告,立即关闭系统。
reboot关闭一个无多用户的系统,引回至多用户状态,reboot不给出警告消息。
initinit共有8种状态,缺省状态在/etc/inittab中由initdefault定义,缺省为3级,
3级---对多用户模式进行扩展;
5级---关闭系统,以便能够安全的关闭电源,并在可能的情况下自动关闭机器的
电源;
6级---结束操作系统,重新启动并引导为/etc/inittab中定义的缺省系统状态。
poweroff关闭系统,等价于init5命令。
另外注意:
与shutdown和init不同,halt并不执行rc0脚本。
我们日常管理中,通常的关机命令是init5或poweroff
重新启动机器命令是init6
2.5进程监控命令
ps显示进程信息psef|grepprocname显示指定的进程信息;
pstoppid暂停进程的运行;
prunpid继续进程的运行;
plddpid显示连接到每个进程的动态连接库;
pstackpid 进程的十六进制符号堆栈跟踪;
pmappid进程地址映射空间;
pwdxpid获取进程的当前工作目录;
ptreepid显示进程的继承树(父进程和子进程等继承与派生关系);
pwaitpid等待进程结束,在shell编程时很有用处。
在solaris下,以上命令都在/usr/bin目录下。
3文件系统
3.1概述
在Windows操作系统中,使用硬盘分区的概念。
每一个硬盘分区映射为一个盘符。
像软盘和光驱等设备在Windows操作系统中也是映射为盘符。
在每个盘符下可以建立树状的目录结构。
在Unix操作系统中,也使用硬盘分区的概念,但每一个分区映射为一个文件系统。
像软驱和光驱等设备,同样映射为一个文件系统。
每个文件系统有一个安装点,即对应的目录。
Unix中有两个最基本的文件系统,根文件系统、swap文件系统。
根文件系统映射为Unix操作系统的根目录“/”。
在一个文件系统中可以创建目录和子目录,并形成一个目录树。
其它的文件系统映射为根文件系统中的目录。
映射的目录可以位于根文件系统的任何目录位置,既可以根目录,也可以是根目录下的子目录。
文件系统必须显示地安装,也可以动态卸载。
安装命令为mount,卸载命令为umount。
如果想在系统启动时自动安装,可以在/etc/fstab(在solaris中是/etc/vfstab)文件中设置安装命令。
执行df命令可以显示系统中安装的文件系统。
执行df目录名,显示目录所在的文件系统。
超级用户root下,执行format可对硬盘重新分区。
超级用户root下,执行newfs可对format后的分区创建文件系统。
执行fsck可以对文件系统进行进行检查和修复。
3.2文件类型和属性
Unix最优秀的特性在于它的设备无关性。
通过文件描述符实现的统一的设备接口,他允许对终端、磁盘、磁带、音频甚至网络通信使用相同的I/O调用。
因此在Unix有多种文件类型。
在Windows操作系统中一般只有两类文件――普通文件和目录。
在Unix系统中,大多数文件是普通文件或目录,但还有其它一些文件类型。
文件类型
说明
普通文件
最常见的文件类型。
它包含了某种形式的数据。
目录文件
这种文件包含了其他文件的名字以及指向与这些文件有关信息的指针
字符特殊文件
用于系统中的某些类型的设备
块特殊文件
用于磁盘设备。
系统中的所有设备不是字符特殊文件,就是块特殊文件
FIFO
用于进程间的通信,也称为命名管道
Socket
套接字文件,用于进程间的网络通信
符号连接
这种文件指向另一个文件
ls–l命令可以列出当前目录下所有的文件及其属性:
文件的属性从左至右依次为文件类型和权限许可、连接数、文件的所有者、文件所有者所属组名,以byte度量的文件大小、文件最后被修改的日期和时间、文件的名字。
由上图可以看出,文件属性的第一个字母“d”表示文件的类型为目录类型,
各种文件类型对应的取值如下:
D目录;
l符号连接;
b块特殊文件;
c字符特殊文件;
p命令管道特殊文件;
s套接字文件;
-普通文件;
3.3文件权限
在Unix系统中,有三种不同类型的用户可对目录和文件加以访问:
文件所有者、组、其他用户。
所有者是文件的创建者用户。
组指的是用户的集合,组的权限也就是组内所有用户的权限。
其他用户指的是创建者所在组外的用户。
文件的所有者拥有文件的管理权限,可以更改文件属性,把权限赋予组内的用户,以及非组内的其他用户。
文件的访问权限分为读权限、写权限和执行权限。
可执行文件或shell程序赋予执行权限才能够被运行。
综上可以看出,文件的权限分为三组:
文件所有者、组和其他人。
每组权限包括读权限、写权限和执行权限。
从上面的例图中可以看到文件权限由文件属性的10个字符中后9个字符来来确定,分为三组,每组3个字符,分别表示文件所有者的权限、组权限和其他用户权限。
每一个组权限的3个字符中,从左到右依次表示读权限(r)、写权限(w)、执行权限(x)。
写权限表示可以修改和删除。
如果字符为“-”,表示无权限。
我们一般采用二进制屏蔽的方法通过chmod命令来更改文件的绝对权限,二进制屏蔽法的优点是一次可变更所有的权限,而不是一项一项地加以指定。
它使用一种二进制屏蔽来引用每类中的所有权限。
读、写和执行权限分别用二进制数值100(8进制4)、010(8进制2)和001(8进制1)表示。
权限8进制数值二进制数
r4100
w2010
x1001
因此0~7的8进制数字可以分解成读、写和执行权限的唯一组合。
如读、写的组合是3(1+2);读、执行的组合是5(1+4);读、写和执行的组合是7(1+2+4)。
因此所有者、组用户和其他用户这三类权限可以用三个8进制数字表示。
第一个表示所有者的权限,第二个表示组的权限,第三个表示其他人的权限。
例如:
chmod751test
751分解
所有者rwx1+2+4=7
组用户rx1+4=4
其他人x1=1
表示设置所有者的读、写和执行权限、组用户的读和执行权限、其他人的执行权限。
二进制屏蔽一个非常有价值的应用是指定权限掩码,用来控制新创建文件的缺省权限。
缺省的权限掩码是000。
也就是说缺省权限是777,即所有者、组用户和其他人具有读、写、执行的所有权限。
这可能会造成非常大的安全隐患。
通过改变权限掩码,则可以消除安全问题。
umask指令用来改变权限掩码。
例如:
umask007
设置新建文件的缺省权限为770,即只有所有者、组用户具有所有的权限,其他人无权访问。
umask可以在个人目录下的shell初始化文件中设置,也可以在命令行设置。
前一种方式比较好,用户登录后立即生效。
3.4文件传输ftp
ftp工具可以在任意的ftp客户端和ftp服务器端进行文件传输操作。
安装有Unix操作系统的机器自动就成为一个ftp服务器,当然也是一个ftp客户端。
而像Windows操作系统必须安装IIS或其它软件后才能成为ftp服务器。
安装了Windows操作系统的机器自动成为一个ftp客户端。
在ftp客户端使用ftp,可以进行双向的文件传输,只要登录用户具有足够的权限。
ftp后跟要连接机器的主机名称,在hosts文件中有主机名称到IP地址的映射;
ftp后面也可直接跟要连接机器的ip地址。
键入回车键后,系统提示输入用户名和登录密码,成功登录后显示ftp>提示符。
如果要查询ftp支持那些命令,执行help命令即可。
执行命令后,将显示ftp的所有命令。
不同操作系统上的ftp支持的命令不完全相同。
要查询某一个具体的命令,执行helpcommand命令。
常用的ftp命令:
命令说明
-------------------------------------------
bi进入二进制传输模式。
缺省为text传输模式。
比如传送文本文件时
采用文本传输模式。
传输可执行文件时,采用二进制传输模式。
as进入文本传输模式
get从服务器端取一个文件
put往服务器端传一个文件
mget从服务器端取多个文件
mput往服务器端传多个文件
cd改变服务器端的当前目录。
刚登录时,服务器端的当前目录是登录
用户的个人目录。
语法与服务器端的目录名的语法相同。
lcd改变客户端的当前目录。
刚登录时,客户端的当前目录是执行ftp
命令时的工作目录。
语法与客户端的目录名的语法相同。
bye退出ftp,回到登录前的状态
quit功能与bye相同
!
临时回到登录前的状态。
执行exit命令后,回到ftp命令行。
dir列出服务器端当前目录下的文件和目录。
Prompt多文件传输时的处理交互模式关闭。
使用mput、mget同时传输多个文件时,通常每传输一个文件时,会要求你确认一下。
文件多的情况下,非常麻烦。
可以在执行ftp程序时带上-i选项,格式如下:
ftp–iip地址
这样在传输多个文件时,不再需要你确认了。
进入ftp命令行方式后,如果有一段时间没有执行命令,ftp客户端与ftp服务器端会断开。
如果需要再执行命令时,需要重新连接。
3.5文件系统修复
当不正常关机或系统出现异常时,文件系统就有可能遭到破坏,在系统重新启动后就需要用fsck命令来修复文件系统,一般使用带-y的选项来执行fsck命令,省去用户确认的操作。
fsck命令执行分为以下五个阶段:
(1)检查块及磁盘大小;
(2)检查路径名;
(3)检查连接;
(4)检查引用数;
(5)检查柱面组。
4网络配置
4.1配置IP地址
关注/etc/目录下的hosts文件,实现IP地址和机器名的映射。
solaris系统在目录/etc/中为网络接口定义一个简单的文件,文件的名字为hostname.xxx?
,
其中xxx代表接口驱动程序,?
接口实例号。
如在/etc/目录下的文件为hostname.hme0,hme表示网卡类型为100M以太网卡(1HundredMegabitEthernetcard),0代表接口的第一个实例。
如hostname.hme0的内容为:
billcg
手工配置多个逻辑IP地址的方法,一般文件名以大写S开头写成shell文件,放在系统批处理路径下如/etc/rc2.d,由系统启动时自动执行。
4.2子网掩码
子网掩码的配置在/etc/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- solaris 基础知识