sun solaris 的常用操作命令

求助SUN SOLARIS 常用操作命令,有奖励哦

(一)基本命令
1.ls 显示文件名,等同于dos下dir命令
命令格式:ls [option] file
option:
-l 显示详细列表
域1 :文件类型和文件权限
域2 :文件连接数
域3 :文件所有者名字
域4 :文件用户组名字
域5 :文件长度
域6-8 :最近修改日期
域9 :文件名
-a 显示所有文件,包含隐藏文件(以. 起头的文件名)
-R 显示文件及所有子目录
-F 显示文件(后跟*)和目录(后跟/)
-d 与l选项合用,显示目录名而非其内容 2.cd 目录转换,等同于dos下cd命令
注意目录分隔符为“/”,与dos相反
命令格式:cd dirname 3.pwd 显示当前路径 4.cat 显示文件内容,等同于dos下type命令
命令格式:cat filename 5.more 以分页方式查看文件内容.
命令格式:more filename 6.rm 删除文件
命令格式: rm [-r] filename (filename 可为档名,或档名缩写符号.)
例子 :
rm file1 删除档名为 file1 之文档.
rm file? 删除档名中有五个字符,前四个字符为file 之所有文档.
rm f* 删除档名中,以 f 为字首的所有文档.
rm -r dir1 删除目录 dir1,及其下所有文档及子目录. 7.mkdir 创建目录
命令格式: mkdir [-p] directory-name
例子:
mkdir dir1 建立一新目录 dir1.
mkdir -p dir/subdir 直接创建多级目录 8.rmdir 删除目录
目录必须首先为空
命令格式: rmdir directory 9.cp 文档复制
命令格式: cp [-r] source destination
例子:
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. 10.mv 文件移动
命令格式: mv source destination
例子:
mv file1 file2 将文档 file1,更改档名为 file2.
mv file1 dir1 将文档 file1,移到目录 dir1 下,档名仍为 file1.
mv dir1 dir2 若目录 dir2 存在,则将目录 dir1,及其所有档
案和子目录,移到目录 dir2 下,新目录名称为 dir1.
若目录 dir2 不存在,则将dir1,及其所有文档和子
目录,更改为目录 dir2. 11.du 查看目录所占磁碟容量
命令格式: du [-sk] directory
例子 :
du dir1 显示目录 dir1 的总容量及其次目录的容量
du -sk dir1 显示目录 dir1 的总容量,以k bytes为计量 12.find 文件查找
命令格式: find dir -name filename command
例子:
find . -name hello -print 寻找目前目录及所有的子目录内叫
hello的文档.
find . -ctime +7 -print 找出七天内未被更动的文档
find . -size +2000m -print 找出大小超过2000 bytes的文档
find /tmp -user b1234567 -print 在/tmp下属於b1234567的文档
find . -name '*.c' -exec rm {} 删除所有的.c档
find . -name test\* -print 显示当前目录及其子目录文件名前4
位为test的文件名 13.man 随机文档
例子:
man ls | col -b >ls.txt 生成文本文档
catman -w -M /usr/man 生成索引关键字
man -k keyword 关键字查找
man -s number word 不同系统类别
example: man -s 3s printf
14.vi 编辑器
命令状态:
j,k,h,l:上下左右
0: 行首
$: 行尾
i,I :插入命令,i 在当前光标处插入 I 行首插入
a,A:追加命令,a 在当前光标后追加,A 在行末追加
o,O:打开命令,o 在当前行下打开一行,O在当前行上插入一行
r,R :替换命令,r 替换当前光标处字符,R从光标处开始替换
数字s: 替换指定数量字符
x: 删除光标处字符
dd: 删除当前行
d0: 删除光标前半行
d$: 删除光标后半行
ctrl+f :后翻页
ctrl+b:前翻页
G : 文件尾
数字G: 数字所指定行
/string 查找字符串
n 继续查找
N 反向继续查找
% 查找对应括号
u 取消上次操作
ex命令状态
:set number 显示行号
:set smd 显示显示状态
:0 文件首
:1,5 copy 7 块拷贝
:1,5 del 块删除
:1,5 move 7 块移动
:1,$s/string1/string2/g 全文件查找string1并替换为string2
:wq! 存盘退出 (二) 增强命令
1.ln 文档连结
命令格式:ln [-s] oldname newname
同一文档,可拥有一个以上之名称,可将文档做数个连结.
一个符号链是指向系统另一个文件的特殊文件,当访问这种文件时,它里面存放着
一个路径名,该路径名用来引导用户到卡符号链所指的文件或目录
例子 :
ln -s file1 file2 将名称 file2,连结至文档 file1. 2.grep 搜索字符串
命令格式:
grep string filename
寻找字串的方法很多,比如说我想找所有以M开头的行.此时必须引进pattern的观
念.以下是一些简单的□例,以及说明:
^M 以M开头的行,^表示开始的意思
M$ 以M结尾的行,$表示结束的意思
^[0-9] 以数字开始的行,[]内可列举字母
^[124ab] 以1,2,4,a,或b开头的行
^b.503 句点表示任一字母
* 星号表示0个以上的字母(可以没有)
+ 加号表示1个以上的字母
\. 斜线可以去掉特殊意义
<eg> cat passwd | grep ^b 列出大学部有申请帐号者名单
cat passwd | grep ^s 列出交换学生申请帐号者名单
cat passwd | grep '^b.503' 列出电机系各年级...
grep '^\.' myfile.txt 列出所有以句点开头的行 3.fgrep 搜索字符串
命令格式:fgrep string file 4.file 显示文件类型
命令格式:file fileall
文件类型为shell script,ELF 32bit,ASCII text,data or tar file 5.diff 比较文档或目录之不同内容
命令格式:diff [-r] name1 name2 ( name1 name2 可同时为档名,或目录名称.)
例子 :
%diff file1 file2
比较文档 file1 与 file2 内,各行之不同处.
%diff -r dir1 dir2
比较目录 dir1 与 dir2 内,各文档之不同处. 6.cmp 比较文档相同部分
命令格式:cmp file1 file2 7.ftp 远程文件传输
命令格式: ftp [hostname|IP address]
在进入 ftp 之后,如果与 remote host 连接上了,它将会询问你 username
与密码,如果输入对了就可以开始进行文档传输.
注意:如用户无密码,无法注册
(1) ftp 命令
ascii 将传输模式设为 ascii 模式.通常用於传送文字档.
binary 将传输模式设为 binary 模式,通常用於传送执行档,压缩档与影像
cd remote-directory 将远程主机上的工作目录改变.
lcd [ directory ] 更改本地主机的工作目录.
ls 列出远程主机上的文档.
get remote [ local-file ] 取得远方的文档.
mget remote-files 可使用通用字元一次取得多个文档.
put local[ remote-file] 将本地主机的文档送到远程主机.
mput local-files 可使用通用字元一次将多个文档放到远程主机上.
help [ command ] 线上辅助指令.
mkdir directory-name 在远程主机创建一个目录.
prompt 更改交谈模式,若为 on 则在 mput 与 mget 时每作一个文档之传输时均会询问.
quit/bye 离开ftp .
(2) 后台执行ftp
1.首先,将过程所用到的指令依顺序放入文档中,如下:
%cat ftp_command
!mkdir test
lcd test
cd test
prompt
binary
mget *.*
bye
2.其次,建一个.netrc档,属性为400,让ftp 自动到此读取Username
与Password,方可顺利login 到的主机,如下:
%cat .netrc
machine remote login anonymous password guest
3.最后再执行下面指令即可.
%nohup ftp remote < ftp_command > message & 8.telnet 远程终端访问
命令格式:
telnet [hostname|IP address]
*注:如使用root用户登录,其权限请参见11.3.4 9.IO 重新导向
UNIX所有的程式执行时,均需要资料的输入以及输出资料.一般而言,资料是
从键盘输入,并将资料输出到萤幕上,这就叫做标准输入及标准输出,而我们
可以更改标准出输出入.
A. 更改标准输入 -- 在命令后方加"< <filename>" ,即可从<filename>这
个文档输入资料.
B. 更改标准输出 -- 在命令后方加"> <filename>" ,即可将萤幕输出的资
料导向到<filename>这个文档上.
C. 更改标准输出 -- 在命令后方加">> <filename>",功能与B.相似,只不
过这会将资料加在文档后方.
D. 管道 -- 在两个命令中间加上'|',即可将前方指令的输出当成后方指令
的输入.
例:
cd /tmp
ls -l > /tmp/ls.out
cat /tmp/ls.out
more /tmp/ls.out
rm /tmp/ls.out
ls | more
ls | wc -l (word count, count line number,算出文档数目)软件包管理
1.pkginfo 显示软件包信息
命令格式: pkginfo -d[ device|pathname] -l pkg_name
例子:
这三个域为:
pkg_category 软件包种类,可为application,graphics 或system.
pkg_name 软件包名字,如为SUN产品则机SUNW 起 头.
Description 软件产品的简单说明.
例子:
# pkginfo -d /cdrom/solaris_2_2/s0/Solaris_2.2 |more
利用pkginfo -l 命令显示关于软件包的详细信息,包括软件包的大小(按硬盘块大小
计算).
# pkginfo -d /cdrom/solaris_2_2/s0/Solaris_2.2 -l SUNWaudio
上面输出的最后一行指示软件包的大小. 利用此信息和df -k命令来确定你是否拥有足
够硬盘空间来安装此软件包. 2.pkgadd 增加软件包
利用pkgadd 命令增加软件包,当软件包被成功地安装以后,向root发送一个邮件.
命令格式:
pkgadd -d [device | pathname] pkg_name
例子:
# pkgadd -d /cdrom/solaris_2_2/s0/Solaris_2.2 SUNWaudio 3.pkgchk 校验软件包的安装
pkgchk命令通过将软件包的属性及路径名内容与系统记录文件中的值进行对比来校验.
命令格式:
pkgchk [-p path1 [path2...]]
此命令可以检查整个软件包或通过指定-p选项对一特殊路径名进行检查,无输出则意味
着没有问题被检查出.
由于/etc/group 文件大小已被改变,所以文件内容的checksum就不对.
考察软件包信息
pkgadd命令更新文件/var/sadm/install/contents、 此文件为系统中所有已安装软件包
的记录文件.
没有简单的方法来确定某软件包具有某一特殊文件(或命令).
对于已安装的软件包,从/var/sadm/install/contents 记录文件中查找此软件包的路径
名. 4.pkgrm 删除软件包
命令格式: pkgrm pkgname1 pkgname2 …
在调用pkgrm 命令后,将向你警告有依赖关系的软件包信息,并提供放弃此操作的提示.
当软件包被成功地删除后,向root发送一个邮件.
pkgrm命令通过文件/var/sadm/install/contents 来确定软件包的地址,并且当软件包
被删除以后,更新此文件.
假如此软件包被两个或更多的包共享,则一定得将这些依赖于此包的所有软件包删除以
后才删除此软件包.
5.spooling 软件包转储
一个软件包可以由安装CD-ROM中拷贝过来存放在系统中,但并没有安装此软件包.
例如,一个服务器可以拷贝存储一个软件包,一个没有CD-ROM设备的系统可以从服务器
上挂接此软件包,用以安装. 服务器
下面两个pkgadd命令用以说明如何spool一个软件包到/var/spool/pkg目录下或到一个指
定的目录下.pkgadd命令的-s spool选项会缺省地将软件包拷贝到/var/spool/pkg目录下.
你可以指定一个目录作为-s选项的参数.
客户
假如服务器共享了/export/pkgs目录,则客户系统可以挂接目录/export/pkgs并安装
软件包.
# mkdir /export/pkgs
# mount venus:/export/pkgs /export/pkgs
# pkgadd -d /export/pkgs SUNWaudio
删除Spooled软件包
在服务器上可以利用-s选项从spooling目录中删除一个软件包.
# pkgrm -s /export/pkgs SUNWaudio
与软件包管理有关的文件和目录
/var/sadm 包含系统记录文件和管理文件的目录
/opt/pkgname 安装未随操作系统一起提供的、名为pkgname的软件包的推荐目录.
/opt/pkgname/bin
/opt/bin 未随操作系统一起提供的、名为pkgname的执行文件的推荐目录.
var/opt/pkgname
/etc/opt/pkgname 未随操作系统一起提供的、名为pkgname的记录文件的推荐目录.
/var/sadm/install/contents 整个系统的软件包映象.数据备份和传输工具
(一) 数据设备名
1.磁带 类型 设备名 容量 持续速率 突发速率 机器类型
8mm D8112 5G-10G 8205
8mm D8160 7G-14G 8505-8705
8mm D8170 20G 1MB/s 5MB/s 8900
4mm DDS1(60m) 1.3G
4mm DDS2(120m) 4G-8G
4mm DDS3(125m) 12G-24G 1MB/s 10MB/s 设备名: /dev/rmt/0,/dev/rmt/0n(不倒带) 2.软盘
设备名:
/dev/fd0或/dev/rdiskette 未运行卷标管理
/vol/dev/aliases/floppy0 运行卷标管理 3.文件
(二) 数据备份命令
Solaris 2.x计算环境提供了几个命令用于备份和恢复文件和文件系统.
多卷备份 连接 系统跨接
ufsdump
ufsrestore Yes No No
tar No Yes Yes
cpio Yes Yes Yes 1.ufsdump命令
对系统管理员而言,ufsdump命令很有用,可对整个文件系统做完全或增量转储.
完全转储是对整个文件系统做备份.在较长的间隔做一次,如一星期或一月.
增量转储是对新创建或修改的文件进行备份.增量转储更频繁一些,可能一天一次.
ufsdump命令提供了不同等级的转储,从0至9.转储等级用来确定对哪些文件备份.0级指定
完全转储,1至9指定不同等级的增量转储.例如,增量转储(1等级)将对在上一次低等级
(0级)转储后修改或创建的文件进行备份.对文件系统作备份时,应将系统转至运行等级S.
如系统在运行等级3时,文件可能正在使用,于是可能造成无效备份. 例子:
# ufsdump 0uf /dev/rmt/0 /export/home
选项及参数:
0 指定0级(完全)转储.
u 更新文件/etc/dumpdates,以记录成功的转储.
f 与下面的/dev/rmt/0参数一起确定转储的磁带设备.
/dev/rmt/0 转储的磁带设备.
/export/home 指定要转储的文件系统.
2.ufsrestore命令
ufsrestore命令从备份磁带上拷贝文件至当前目录下.
ufsrestore命令可用于重载转储好的整个文件系统或备份带上的单个或多个文件.
ufsrestore命令的选项用来指定磁带设备名和被恢复文件的路径名.
恢复过程
用ufsrestore命令按以下步骤恢复一个文件:
# cd /newdir
# ufsrestore tuf /dev/rmt/0
文件系统拷贝
#mount /dev/dsk/c0t1d0s0 /mnt
#ufsdump 0f - /dev/rdsk/c0t0d0s0|(cd /mnt; ufsresotre rf -)
#installboot /usr/platform/`uname -I`/lib/fs/ufs/bookblk raw-device 3.tar命令
tar命令是用户级的备份命令,用于备份和恢复文件或目录.
命令格式: tar options tape_device_name [filename]
option c-建立新文档 v-显示路径
t-显示文件列表 f-指定设备
x-抽取文件 i-交互式
例子:
(1)备份过程:
$ tar cvf /dev/rmt/0 *
(2)恢复过程:
$ tar xvf /dev/rmt/0
(3)目录复制
$ tar cvf - mydir|(cd newdir;tar xvf -)
(4) 异地拷贝(必须为可信任用户,参见11.3)
$ tar cvf - mydir|rsh remote tar xvf - ;拷贝mydir目录至远程主机
$ rsh remote tar cvf - mydir|tar xvf - ;拷贝远程主机mydir目录至本机 4.cpio命令
cpio(copy in/out)命令是能产生多卷备份的用户级命令.
命令格式:
cpio -ov >tape_device_name
cpio -i [vt] <tape_device_name
一旦它识别出介质的尾部,它就提示你插入另一磁带.
cpio命令利用ls或find命令的输出进行文件列表,将这些文件输出到一个文件,
如磁带设备.它在文件之间插入标题以便于恢复,所以比tar命令慢.
cpio命令可用通配符作为参数,然而,cpio反着用通配符,即除满足匹配条件的
文件以外,它将备份所有文件.
备份过程
$ find . -depth -print | cpio -ov > /dev/rmt/0
find命令给cpio命令提供文件和目录名的列表.
-o选项表示从标准输出读.
/dev/rmt/0参数确定磁带设备.
例子:
用find和cpio命令将主目录备份到磁带上:
恢复过程
用cpio命令按以下步骤从磁带上检索文件和目录.
1.将磁带插入磁带设备.
2.改变目录至/tmp目录.
3.用以下cpio目录确定要恢复的文件的路径名.
$ cpio -iv < /dev/rmt/0
-i选项抽取文件,v(verbose)选项与t选项合用则按ls -l格式列出文件,
使用此复合选项只显示文件信息,不抽取文件.
4.用以下cpio命令恢复文件至/tmp目录.
$ cpio -iv < dev/rmt/0 test.file
选项i抽取文件,v表示恢复时显示文件名.
5.从目录/tmp拷贝文件至所需目录.
6.取出磁带.
下面的例子说明如何用cpio命令恢复一个文件. 5.compress,uncompress,zcat 命令
compress命令利用一特殊格式来压缩文件,以减少文件大小.压缩比从20%至80%.
例如,用-v选项对名为bin.file的文件进行压缩:
此文件被压缩后,加上后缀.Z.

用户管理

(一) 用户基本知识
1.文件信息
ls -l
drwxrwxrwx filename
(1)访问权限
mode : rwx rwx rwx r:read w:write x:execute
user group other
缩写 : (u) (g) (o)
(2) 文件类型
- : 普通文件
b : 块特殊文件,如硬盘和CDROM设备
c : 字符文件设备或称“raw”设备文件
l : 符号连接
p : 管道或流,用于进程通讯
d : 目录

2.缺省权限
创建文件和目录时,系统自动设置一定的权限.缺省权限由用户mask码控制
$umask 显示用户umask码
umask 设置 文件 目录
022 新文件属主有读权和修改权 用户组和其他用户有读权和修改权
用户组和其他用户只有读权
可用umask maskvalue 改变缺省权限

3.系统安全文件
/etc/passwd 用户注册表
/etc/shadow 加密口令
/etc/group 用户组
/etc/default/login 访问控制
说明:
passwd文件是为系统中的用户授予和认证访问权限的第一个文件,其项目使用’:’ 分割.
login_name:passwd_field:UID:GID:comment:home_directory:default_shell
login_name 用户唯一登录名 comment 注释(finger使用)
passwd_field 加密口令安全标记 home_directory 用户注册家目录
UID 用户号 default_shell 命令解释器
GID 用户缺省唯一组号 默认:sh,csh,ksh
shadow 文件管理用户加密口令,该文件只对超级用户有读权限
login_name:encrypted_pass:last_change:min:max:warn:inactive:expire:reserved
login_name 用户名(同passwd) max 口令有效最大天数
encrypted_pass 13字符长加密口令 warn 口令到期前多少天警告
last_change 上次更改日期(from1970.1.1) inactive 被禁止登录前,帐号不活跃天数
min 最小间隔天数 expire 用户禁止登录绝对日期(通常空白)
group文件用于将计算机系统的用户分组
groupname:passwd:gid:user-list
groupname 唯一组名 gid 为操作系统提供的代表组名的唯一标识号
passwd 组加密后的口令 user-list 用逗号分割的所有可访问该组的用户清单
理解UID和GID
系统中的每一个用户名都被赋予了一个UID(User Identification Number 用户标识号),这些
号在0-60000之间,系统使用UID将一个用户名和操作系统对该用户的标识等同起来,
建立用户时,必须保证UID唯一。
GID(Group Identification Number,组标识号)遵循与UID一样的格式,范围0-60000,
每个用户至少属于一组,并且可以属于多组。
(二)相关命令
1.chmod 改变文档或目录之属性
命令格式:chmod [-R] mode name
( name 可为档名或目录名;mode可为 3 个 8 位元之数字,或利用ls -l命令,列出
文档或目录之读、写、执行允许权之文字缩写.)
例子 :
%chmod 755 dir1 将目录dir1,设定成任何使用者,皆有读取及执行之权利,
但只有拥有者可做修改.
%chmod 700 file1
将文档file1,设定只有拥有者可以读、写和执行.
%chmod u+x file2
将文档file2,增加拥有者可以执行之权利.
%chmod g+x file3
将文档file3,增加群组使用者可执行之权利.
%chmod o-r file4
将文档file4,除去其它使用者可读取之权利.
%chmod a-r file4
将文档file4,除去所有使用者可读取之权利.

2.chown 改变文档或目录之拥有权
命令格式:chown [-R] username name ( name 可为档名或目录名.)
例子 :
%chown user file1 将文档 file1 之拥有权,改为使用者 user 所有.
%chown -R user dir1 将目录 dir1,及其下所有文档和子目录之拥有权,
改为使用者 user 所有.

3.chgrp 改变文档或目录之群组拥有权
命令格式:chgrp [-R] groupname name ( name 可为档名或目录名 )
例子 :
%chgrp vlsi file1
将文档 file1 之群组拥有权,改为 vlsi 群组.
%chgrp -R image dir1
将目录dir1,及其下所有文档和子目录,改为 image 群组.

4.touch 改变文档或目录之最后修改时间
命令格式:touch name ( name 可为文档或目录名称.)

5.who 查看系统注册用户

6.id 查看当前用户用户号和组号

7.passwd 修改用户口令
命令格式:passwd username
无用户参数修改本用户口令,用户口令必须至少6个字符长,最大8个字符,口令中
至少两个字母字符及一个数字字符

8.su 转换用户
命令格式: su [-] username
无用户参数为转换到超级用户
- :执行新用户环境设置
su –c root dbshut

(三)shell特点
1. solaris三类shell
- Bourne(缺省shell)
- C
- Korn
Shell 基本特点
特点 Bourne C Korn
别名机制 No Yes Yes
增强的cd(CDPATH)功能 Yes Yes Yes
历史列表 No Yes Yes
作业控制 No Yes Yes
防止文件被覆盖 No Yes Yes
忽略Control_D No Yes Yes
2. B shell
(1) 变量设置
实例: 终端类型:TERM=vt100;export TERM
语言环境:LANG=C;export LANG
执行路径:PATH=$PATH:/usr/bin:. ; export PATH
显示终端:DISPLAY=host:0.0;export DISPLAY
(2) 环境文件
.profile
3. C shell
(1) 变量设置
set 定义变量
setenv 定义环境变量(环境变量与变量不同之处在于环境变量可以影响子进程)
例子: 终端类型:setenv TERM=vt100
提示符: set prompt=”I love unix>”
路径变量:set path=($path /usr/bin .)
显示终端:setenv DISPLAY host:0.0
共享库: setenv LD_LIBRARAY_PATH /usr/dt/lib:/usr/openwin/lib
(2) 环境文件

.login .cshrc
(3) 脚本语言
事例1: 更换后缀
foreach file (*.ab)
set base=`basename $file .ab`
mv $file $base.cd
end
事例2:简单循环
@ cnt = 1
echo I will count from 1 to 100
echo and pause at every ten numbers for confiumation to continue
echo -n Press an key to start: #显示数据后不回车
set key = $< #接受输入字符
while ($cnt < 101)
echo This is $cnt
if (`exp $cnt % 10` == 0 ) then
echo –n “continue or not(Y/N)”
set key = $<
if ($key == ‘n’) exit
endif
@ cnt += 1 # 变量cnt 加 1
end
echo DONE
4. dtterm
.dtprofile 通用桌面环境设置选项
(四) 创建,删除用户帐户
1. 图形化管理工具
admintool

2. 字符型用户管理
useradd(创建) ,usermod(修改)
温馨提示:答案为网友推荐,仅供参考