简单学习一下Solaris的一些简单的命令!!!
一.     基本命令
1 .cd  change directory
$cd [回车]   ;进入用户的家目录
cd  绝对路径
cd  相对路径


2 .pwd 显示当前路径
$pwd
/export/home/ora816
有时候,运行此命令,会出现一条信息,
  can't determin current directory.利用cd,给一个确定路径即可。


3.ls 列出文件
     $ls /usr/lib/fs
autofs   cachefs   fcl   hsfslofs   nfs
列出隐藏文件,文件名以 . 开始的文件叫隐藏文件,通常用于存储用户定义的环境变量
,命令格式:ls -a
$     $ls -a
.                      bin      etc     
..                     dev
.Xauthority
列文件类型,命令格式:ls -F
$ls -F
acct/   message sa/
$ls -F /etc/default
cron*   fs      init*   login
长列表显示,命令格式:ls -l
      $ls -l
total 1064
drwxr-xr-x 2  root  sys  2048  oct 24 11:10 drv
(1)文件类型
           -    文件
           d    目录
           b    块文件
           c    字符文件
           l    连接
(2),(3),(4),文件读取权限信息,r 读,w 写,x 执行,- 无此权限
(2)文件主人权限      (6)规定文件主人是谁
(3)文件组的权限      (7)规定文件组
(4)其他人的权限
(5)连接数或指针数 每个目录至少有2个指针,指向上一个目录,下一个目录。
                    文件的指针数至少为1
(8)文件所占空间的大小 如建一个空的目录,则占空间为512字节
(9)文件创建时间
(10)文件名字


4.mkdir 建目录,令格式:mkdir directory_name directory_name
mdir y1 y2 /y3 (可以是相对路径,也可以是绝对路径)


5.rmdir 删除目录
     命令格式:rmdir directory_name  只能删除空目录
rm -r directory_name   可删除子目录及子目录中的文件
      例如:$rmdir /export/home/ora816/report
$rm -r /export/home/ora816
      rm  -ir             可以进行交互式删除


6.cat显示文件内容,命令格式:cat  filename(s)
     $cat /etc/passwd
root:x:0:1:000-admin:/:/sbin/sh
如果一屏显示不下,自动滚屏
连接文件,命令格式:cat file1 file2>file3
                    cat file1 file2>>file3
                      cat >newfile  ;创建新文件,行输入
                      cat >>filename ;在文件的末尾增加一些文本


7.cp 拷贝文件,命令格式:cp [-options] source  destination
     例如:$cp /opt/y1 /export/home/y1
           如果目标文件存在,不会改变文件的主人,组,存取控制
           如果目标文件不存在,同源文件的主人,组相同,但存取控制同目标文件系
统相同
     考贝目录,命令格式:cp -r source destination
          拷贝一个目录及所包含的所有文件到当前目录下的相同目录名下
          $cp -r /export/home/y1 /opt/y2


8.ln 连接命令,格式:ln exit-file new-file
                    ln -s exit-file new-file


9.Mv,移动或修改文件名,命令格式:mv [-options] source destination
        mv y1 y2


10.rm ,删除文件或者目录
      $rm filename
      $rm -r dirname
      $rm -I(小写) filename    交互式方式


11.More,逐屏显示文件内容,命令格式:more  filename(s)
      如果一屏显示不下,系统会自动停止,在屏幕底部显示,"--more--",等待使用
下列控制键控制显示。空格            显示下一屏
回车        显示下一行
               b            返回上一屏
               f                显示下一屏
               h            显示帮助
q           退出,返回 shell 提示符
%=              显示这一屏最后一行的行号
!command               执行命令,如:!pwd


12.grep,搜索字符串,命令格式:grep [option] string file-list
            -v  显示不含有该字符串的行
            -n  显示string所在的行,以及行号
            -i  忽略大小写


13.Head, 显示文件的前 n 行,命令格式:head [-n] filename(s)
$head -100  yy     默认为10行


14.Tail, 显示文件的后 n 行,命令格式:tail [-n] filename(s)
$tail  -100  yy


15. wc统计文件的行数,单词数,字符数。命令格式:wc [option] filename
       -l   行数
      -w   单词数
      -c   字符数


16.Find查找文件。命令格式:find  范围  执行动作(expression)
expression:   -name    filename
             -user     username    (查找属于某一个用户的文件)
             -print                (显示查找的结果)
             -exec    command \;   (执行命令)
例如:find  /  -name  passwd  -print
        find  /  -name  core  -print  -exec rm { } \;
        发现core文件,将其删掉
        find  /  -name  netscape -print -exec chmod 744 { } \;


17. chmod 修改文件权限,命令格式:chmod who [operation] permission filnname
      who:u(user),g(group),o(other),a(all)
      operation : +,-
      permission:r,w,x
$chmod  a+w filename
       权限         值
       rwx         7
       rw-         6
       r-x         5
       r--          4
      -wx          3
      -w-          2
      --x           1
      ---           0
权限           值
      rw-r--r--         644
      rwxr-x--x       751
      rwxrwxr-x      775
      rwxrwxrwx    777
$chmod o-r .profile
$chmod u+x go+r .profile
$chmod 755 .profile


18.chown, 修改文件属组,命令格式:chown [-R] user_name file_name
      $chown -R ora816 ora816
$chown ora816 .profile


19.ps ,显示进程
      ps      先是当前窗口启动的进程
      ps -ef   列出系统的所有进程
      uid:用户id号
      pid:进程号
      ppid:父进程号
      c:进程进度
      stime:进程开始时间
      tty:启动的终端
      time:累计运行时间
      cmd:启动进程所需时间


20.Kill关闭进程
     kill pid
     kill -HUP pid    重起进程


21 df 显示磁盘空间使用情况
     $df -k
     Filesystem            kbytes    used   avail capacity  Mounted on
/dev/dsk/c0t3d0s0     865678  607176  197905    76%    /
/dev/dsk/c0t1d0s3      20191    5022   13150    28%    /export/home
/dev/dsk/c0t1d0s0     865678  534524  270557    67%    /opt
/dev/dsk/c0t1d0s1      76767      17   69074     1%    /var/mail
swap                  145020     204  144816     1%    /tmp


22 man
     $man ls


23 vi,编辑命令
     vi 的操作方式有两种,命令方式,输入方式,用Esc来切换
(1)   启动与退出
$vi filename
$vi + filename       停在空行第一个位置
$vi +/string filename   停在字符串所在行的位置
$vi +n filename       光标直接停在第n行
      q!                强制退出
wq!                            强制存盘退出
(2) 移动光标
h  j  k   l     分别向上向下向左向右移动一个字符
(3) 文本编辑命令
插入命令:    I(小写) 在当前光标前输入    I (大写)   在当前行首插入
                a         在当前光标后输入     A                  在当前行末插入
                o         在当前行的下一行插入新一行
                O                       在当前行的上一行插入新一行
删除命令:  x                   删除光标所在字符
               dd                   删除一行
               ndd              删除n行(从当前行及向下的n行)
                dn              删除n个字符
(4)底行命令
搜索字符串: /string     从前向后搜索
                  ?string     从后向前搜索
字符串替换: [address]s/search-string/replace-string/
                    address:  n      行号
                     n1,n2   两行之间
                     %      全文查找替换
     例如:  %s/net/com/
(5)  设置vi工作情况
:set nu                         设置行号
:set nonu            取消行号
:set list                       显示可见字符
:set nolist                     不显示可见字符
:set all                                显示所有可以设置的变量
:!command          简单的操作系统命令


二Solaris的安装
1 分两种安装:本地安装
本地有CD-ROM,安装软件,将机器加电后,同时按下stop+a,到OK状态下,ok boot cdr
om,J进行安装。
网络安装
本地无CD-ROM;对多台机器同时进行安装,但是只有一张安装盘

2网络安装
       举例:有两台机器进行安装,一台Server。
在Server上:(1)修改文件
                #vi  /etc/hosts
              10.1.1.1  host1
              10.1.1.2  host2
              #vi  /etc/ethers
                 Ethernet.address        hostname
                 8:0:20:1e:2c:5f          host1
                 #vi  /etc/dfs/dfstab
                  share -F nfs -o ro,anon=0 /cdrom/cdrom0/s0
             (2)运行命令
                 #/usr/lib/nfs/mountd
                 #/usr/lib/nfs/nfsd
                 #/cdrom/cdrom0/s0/add_install_client  host1   sun4u
                                              host2    sun4m
                Sun的核心结构,Sun4c,Sun4u,Sun4m等。
Client:  加电后,到OK状态下,
               Ok boot  net


3 安装过程中出现的问题
(1)Name service  NIS+
NIS
Other
None
(2)System part of a subnet  yes or no
(3)Preserve date
/  /usr  不能保留数据的
/opt  /export/home  能保留数据,但是安装时,要保持分区大小的不变
(4)软件选择
         Core
Enduser
Developer
Entire distribution
Entire distribution plus OEM support
(5)分区的大小
       分区多,空间分散严重,硬盘利用率低
       分区少,数据存储不安全
      分区最多可以分为八个分区
       /(根分区)       存有系统最重要的核心文件,支持硬件。如/dev   /devic
es
      /usr             存有二进制可执行文件,库文件,支持软件。
      Swap                        内存交换,虚拟内存区
      /var                        存有系统的日志文件
       /opt            存放第三方软件,当OS损坏,此文件系统的文件可以保存
      /proc                       专门作进程管理的目录,有很多以进城号命名的文件
      /export/home                存放用户家目录纪用户文件
      /etc               存放系统的配置文件,系统的启动文件,不划为分区。
(6)安装数据


三 系统的安全性
⒈Solaris功能强大,提供多种服务,但是大多数服务用户并不需要,并且有一定的安全
漏洞,要把不需要的服务关闭,因此修改/etc/inetd.conf文件。
  例如:ftp.telnet,rlogin,rexec 等
2. /etc/rc2.d,/etc/rc3.d目录下有多个系统启动时要执行的脚本,有些用户并不需要
,因此要修改这两个目录下的文件。
3. 为了防止不受欢迎的用户利用ftp协议登录服务器,在/etc/目录下增加文件ftpuser
s,将不允许的用户添加到此文件里。
4.安装TCP_wrappers,可以限制tcp,telnet登陆的机器


四 用户的管理
1.     添加用户
(1)     #admintool
图形化界面,选择edit----add user
输入用户名:用户名不能全是数字,不能用大写,不能超过八个,用户名是唯一的,不
能重名
User ID: 一般取系统默认值,UID相同的用户,系统认为是一个用户。
Primary goup:一个用户必须属于一个组,默认得为10组,即staff组。
Secondry group:一个用户可以属于多个组,具有多个组的权限。
Login shell:
Solaris 系统有三种shell,其作用,解释翻译命令;设置用户登陆环境;编成语言。
B shell: 语法类似汇编语言   /bin/sh;/sbin/sh
C shell:   语法类似C语言    /bin/csh
Korn shell  介于两者之间     /bin/ksh
它们之间可以互相转换:B shell ____csh____C shell
   other:     例如邮件用户,我不让他执行命令,只是提供空间,那么我就不给他sh
ell。随便写一个不存在的命令或者 文件。/noshell
Password : Cleared until first login 用户第一次登陆的时候,输入新的密码
            Account is locked
            No passwd ---setuid only
            Normal Passwd
    Min exchange    days
    Max exchange    days
    Max Inactive      days
    Expiration Date     year   mounth  day
    Warn  days
创建家目录   /export/home/xxx
  或者不给他创建家目录


(2) 利用useradd 命令
  #useradd yyyy
   用此命令产生的用户格式:/etc/passwd
   yyyy:x:1011:1::/home/yyyy:/bin/sh
   1: other group
   passwd yyyy
        # useradd -u uid  -g group -d dir -s shell -c comment loginname
        #passwd loginname
   2.用户管理文件
/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:
smtp:x:0:0:Mail Daemon User:/:
uucp:x:5:5:uucp Admin:/usr/lib/uucp:
listen:x:37:4:Network Admin:/usr/net/nls:
nobody:x:60001:60001:Nobody:/:
yxh:x:1004:14::/home/yuxinhua:/bin/sh
用户名:口令域(替是口令有信息,信息在/etc/shadow文件里):用户号:首要组号:
注释:家目录:登陆shell
用户有两种:普通用户
            超级用户    uid=0
/etc/shadow    加密的用户口令,以及相关的控制信息,只有超户才可以访问
        root:OvrYzBZ79MOao:11214::::::
daemon:NP:6445::::::
bin:NP:6445::::::
sys:NP:6445::::::
adm:NP:6445::::::
listen:*LK*:::::::
yxh:R.9iBuRiARPU2:11394::::::
username:passwd:lastchg:min:max:warn:inactive:expire
username   The user's login name (UID).
passwd    A 13-character encrypted password for the  user,
                  *LK* string to indicate that the login is not  accessible
*NP* which shows that there is no password for the login.
lastchg    The number of days between January 1, 1970,  and
                    the date that the password was last modified.
         min        The minimum  number  of  days  required  between
                 password changes.
         max         The maximum  number  of  days  the  password  is
                 valid.
         warn       The number of days before password expires  that
                 the user is warned.
         inactive    The number of days  of  inactivity  allowed  for
                 that user.
          expire     An absolute date specifying when the  login  may
                 no longer be used.
           flag       Reserved for future use, set to zero.  Currently
                 not used.
/etc/group
      root::0:root
other::1:
bin::2:root,bin,daemon
sys::3:root,bin,sys,adm
adm::4:root,adm,daemon
tty::7:root,tty,adm
staff::10:
sysadmin::14:
username:passwd:gid:userlist


四 系统的运行级别
init 0  :   监控状态,即OK状态,可以做硬件参数设置,可以关机
init 1,s,S: 单用户状态,系统的管理状态,只允许root登陆,
             ok boot -s
init 2  :   多用户状态(受限的),不支持远程挂接
init 3  :   多用户状态(开放的),完全共享系统资源。
Init 4  :   预留的,替换多用户状态
Init 5  :   掉电状态,自动关闭电源
Init 6  : 重起状态


五  文件系统
1.当对某一个设备如光驱,硬盘进行操作的时候,首先要对它们进行挂接,即mo
unt,挂接到某一个挂接点上,/etc/vfstab是一个缺省的文件系统表。
#device         device          mount           FS          fsck             mount      mount
#to mount          to fsck              point           type    pass    at   boot       options
#
/dev/dsk/c0t3d0s1       -            -          swap            -             no              -
/dev/dsk/c0t3d0s0       /dev/rdsk/c0t3d0s0      /       ufs       1           no        -
/dev/dsk/c0t1d0s3       /dev/rdsk/c0t1d0s3      /export/home    ufs     2       yes        -
/dev/dsk/c0t1d0s0       /dev/rdsk/c0t1d0s0      /opt            ufs         2     yes   -
/dev/dsk/c0t1d0s1       /dev/rdsk/c0t1d0s1      /var/mail       ufs     2       yes       rq
swap    -       /tmp            tmpfs   -       yes     -
/dev/dsk/CxTyDzSw 逻辑设备名,做了文件系统的设备,可以随机读取
/dev/dsk/CxTyDzSw 逻辑设备名,裸设备,只能顺序读取
Cx:SCSI controller Num,第一个为C0,第二个为C1
Ty:每个设备都有一个设备号,0~~3  硬盘 4~~5  磁带机 6 光驱
Dz:逻辑单元号
Sw: 分区号
device to mount
the device (or resource) to mount, e.g. /dev/dsk/c0t0d0s6
device to fsck
the raw device to fsck, e.g. /dev/rdsk/c0t0d0s6
mount point
the mount directory, e.g. /usr
FS type
the name of the file system type, e.g. ufs, hsfs(光驱), pcfs(软盘), nfs, swap
fsck pass
the number used by fsck to decide the disk ordering when checking the file s
ystem automatically ,如为1,按顺序监测所有文件系统;如大于1,自动按照设备最
高效的方式监测,如为0,监测非unix系统。
mount at boot
whether the file system should be mounted automatically by the mountall comm
and. e.g. yes, no ,是否在启动是进行挂接。
mount options
the options passed to the mount program, e.g. ro, rw,rq.默认为rw

2.     文件系统的挂接与拆卸
(1)     挂接 mount(关机后无效)
#mount  -F  fstype  -o option  mount-device   mount-point
        对光驱进行挂接
         #mount  -F  hsfs  -o  ro   /dev/dsk/c0t6d0s0    /cdrom
        对另一机器的主机进行挂接
         #mount  -F  nfs   -o  ro  host:/cdrom/cdrom0   /cdrom
        注意:挂接本地资源,默认为ufs
挂接远程资源,默认为nfs
-o 默认为可读可写
         例:对硬盘挂接,(默认选项)
          #mount  /dev/dsk/c0t2d0s0  /data
(2)     mountall
执行/etc/vfstab,对应经挂接的设备,不再进行第二次挂接
(3)     umount  umountall
命令:umount  mount-point
umount  mount-device
           例: #umount  /cdrom
                #umount  /dev/dsk/c0t2d0s0
          umountall  除/,/usr, swap,都能卸载


六  文件系统的备份与恢复
1.备份计划: 备份介质   磁带,软盘
                 备份哪个文件系统
                 备份周期
2.     备份种类: 全盘备份  级别为0
增量备份  级别1~~9
         增量备份:如级别5:备份5级别前比其低的n级别的备份,即备份n~~5级之间
的增量。
  例:周一    周二      周三     周四     周五      周六     周日
       1       2         3        4        5         6         7
       0       5         5        5        5         5         5
8         9        10       11       12        13          14
3         5         5        5        5         5           5
0级:月备份
3级:周备份
5级:日备份
3.     以磁带机为例备份文件系统
磁带机的逻辑设备名:/dev/rmt/0
                    /dev/rmt/0n  不倒带,它们是字符文件
备份/export/home
命令:ufsdump  0cuf   /dev/rmt/0   /export/home
     0:备份级别,此指的是全盘备份
     c:盒式磁带  u:更新备份纪录   f:要操作的设备名
  /export/home:要备份的文件系统
注意:备份时,应选择在单用户下。


4.     文件系统的恢复
例:/export/home 遭到了破坏,它对应的的设备名:/dev/dsk/c0t3dos7
#init s
#umount  /export/home
#newfs    /dev/rdsk/c0t3d0s7
#mount   /dev/dsk/c0t3d0s7   /export/home
#cd  /export/home
#ufstestore    rvf   /dev/rmt/0
(r:restore;v:列出文件名字;f:要操作的设备名字)
此过程对/  /usr  分区不适用
例:根分区遭到破坏,恢复过程  /---------〉/dev/dsk/c0t3d0s0
  ok boot cdrom  -s
  #newfs   /dev/rdsk/c0t3d0s0
  #mount   /dev/dsk/c0t3d0s0    /a (此光驱的一个空目录)
  #cd  /a
  #ufsrestore   rvf   /dev/rmt/0
  #cd  /usr/platform/'uname -I'/lib/fs/ufs (uname  -I :核心结构名字)
  #installboot  bootblk  /dev/rdisk/c0t3d0s0
  #init 6


5.时钟进程
  定时启动服务和进程,在系统启动的时候,只初始化一次。
   文件:/var/spool/cron/crontabs/username
   例:  /var/spool/cron/crontabs/root
   文件格式:
     分         时              日              月         周            command
   0~59  0~23     1~31     1~12   0~6
例:
    00      1           *       *      *    ufsdump 0cuf /dev/rmt/0 /export/home
   相关文件:/etc/cron.d /cron.allow
             /etc/cron.d/cron.deny
             /etc/default/cron     CRONLOG=Yes
                                          No   决定是否有log文件,此文件放在
/var/cron目录