Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16802
  • 博文数量: 12
  • 博客积分: 490
  • 博客等级: 下士
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-28 12:02
文章分类

全部博文(12)

文章存档

2009年(12)

我的朋友
最近访客

分类:

2009-06-05 22:52:25

Solaris操作系统是由核心程序及其它系统程序组成。核心程序(KERNEL)负责存储器、各个设备驱动程序、文件系统、各个进程、调度及网络等控制与管理。其他的系统程序提供用户各项服务工作,当然还要配合核心程序一起完成。在操作系统中其核心程序命名为VMUNIX,其它的系统程序则分散至各个系统目录下。
Kernel
Kernel是操作系统的核心程序,它执行以下功能:
        管理设备,存储器,进程和daemons
        控制系统应用程序和系统硬件之间的信息传送
        管理树型文件系统并执行所有的命令
        管理功能如下:
1.        交换空间 -  为Kernel运行提供一个磁盘保留空间
2.        Daemons -  执行特殊系统任务的进程
3.        文件系统 -  管理树型文件系统
Shells
    Shells是用户和核心程序沟通的界面。它接收用户发出的命令并解释,然后将可执行的命令送给Kernel。
    Shell 的原意是壳,在 UNIX 里面就是一个提供使用者使用的环境。每一个使用者在 login 後系统会提供使用者一个 login shell , 在使用期间使用者亦可自行开启其他的 shell 用以执行 shell script 或是另外建立一个使用环境。  
    Shell 本身是一种解译器( Interpreter ), 它提供一种语言,供使用者对作业系统下达指令,我们一般的指令就是它的语言的一个最简单的格式。你也可以在使用期间根据一些使用的状况来加上回圈及判断结构,通常我们在写一个 shell script 时比较会利用到 shell 的其他语言结构( if , for , while 等),不过在命令列提示号之下亦可直接使用。
    你可以将一连串的命令写到一个档案,建立一个 shell script , 这样你就可以将一些常做的事情直接整理成一个大的 batch job 。
    在 shell 中还提供使用者方便的利用 UNIX 的转向及 pipe 功能,使用者可以利用这些功能将指令的输出存档或做为另一个指令的输入,也可以将大量的输入资料放在一个档案中,然由让指令自此档案抓取所需之输入资料。
    除此之外, shell 也提供建立别名( alias )和变数( variable )的功能,使得使用者可以更加弹性的对系统下达命令。
  

1. 输出入转向
    在 UNIX 中,每一个 process 均有三个特殊的 file descriptor , 标准输入  ( standard input )、标准输出 ( standard output )、标准错误输出( standarderror )。这三个平常是接受 terminal 的输入,而由 terminal 显示出去。但是UNIX 提供使用者可以使用一般的档案或 pipe 来取代这些标准输出入设备。在tcsh 里头,使用者可以利用">"和"<"来进行输出入转向的工作。
   
    输出转向:
      command > file
     
        你可以将一个指令的输出结果转向到一个档案,让此档案储存这个   command的输出结果。
       
        但是请注意,如果 file 已经存在在系统中,则 file 将会被盖过。也就是原先 file 的内容将会消失。
       
      command >& file
     
         与 > 相同,但是这个格式表示连 standard error 一起转向。在 UNIX 中,standard error 在 programer 的习惯是用来显示 error 的发生,因此如果没有被转向时, standard output 的结果将会被转向到 file ,而 standarderror 的结果仍将显示在 terminal 上。
        DIR AL
      command >> file
     
        此格示代表将 standard output 的结果 append 到 file 中。如果 file 已存在在系统中,则 standard output 的结果将会加到 file 的末端,如果 file 原先并不存在,则 file 将会被开启而将 standard output 的结果存至 file中。
       
      command >>& filE
     
        同上,不过此格式代表连 standard error 一起 append 到 file 之中。
     
    输入转向
      command < file
     
一般程式须要自终端机输入资料,而你可以将程式所要输入的资料统编入档案中,利用转向一并输入。
       
    set ignoreeeof
由於转向输出会有将现有档案 overwrite 的危险,csh 与 tcsh 提供使用者一个方式来避免。
     
         当你执行 set ignoreeeof 之後,如有输出转向到已存在之档案时,它会发出一个档案已存在的讯息。 而在处理 append 转向上,如果已经 set  ignoreeeof ,则当要 append 一个不存在的档案,将会出现一个 error messege 。
     
      然而如果我们当真是要转向盖过一个已存在的档案,或者是要 append 一个不存在的档案时,又要如何呢? 
     
      我们只要在 ">" ">&" ">>" ">>&" 後面加上惊叹号"!",成为 ">!" , ... 就可以了。
                     
  2. Pipe
    如同前面说的转向,Pipe 也是在标准输出入和标准示误装置间作取代动作,如
    此一来可以将某一个程式的输出连到另一个程式的输入中。其语法如下:
   
    command1 | command2 [ | command3 ....]
    command1 |& command2 [ |& command3 ....] <--- 连 standard error 一起 pipe
   
   
  3. 前景与背景
    在 sh 下面,一个新产生的 process 可以经由 command 後面的符号';'和'&'来分
    别前景和背景。如以下语法
   
    command
   
      这表示产生一个 foreground 的 process ,你要等到它结束才能再下另一个指
      令。
   
    command &
   
      这样表示产生一个 background 的 process ,它会给你一个类似以下的讯息:
     
       [1] 21304
     
      然後就出现下一个提示号,以供你给下一个指令。然後在这个 background 的
      process 结束的时候再给你一个如下面的讯息,告诉你它把这个 process 执
      行完毕了。
     
       [1]    Done                  command
       
    command1 ; command2 ; command3
   
      这样表示你要求系统连续执行 command1 , command2 , command3 三个指令,其中 command2 要等待 command1 , command3 要等待 command2 ,而你       要等待 command3 执行完毕才能下指令。
     
    command1 & command2 & command3 &
   
      这样表示你要求系统连续执行 command1 , command2 , command3 三个指令,
      而这三个指令都放在背景执行,彼此之间不需等待。
     
    fg 与 bg
     
      也许你会问,一个已经执行的 process 可不可以由前景换背景,或由背景换
      前景呢?
     
      可以的。一个在前景执行的 process ,你可以按 Ctl-Z 将 process 暂停,
      系统会给你一个讯息:
     
      Suspended
     
      然後出现提示号。此时你可以使用 fg 将其恢复前景执行,或按 bg 将其改为
      背景执行。
     
      而如果有一个 background 的 process , 你也可以用 fg 指令将其呼叫到前景
      来。首先你需用 jobs 指令来观查目前有多少在背景下的 proesses,然後根据
      它所显示出来的 job id 来决定将那一个 process 放到前景。如使用
     
        % fg %3 # 将第三个 job 放到 foreground 。
     
  4. 别名 alias
    在 csh 与 tcsh 中,提供 alias 的功能,使得使用者可以将常用却冗长的
    指令以其他的名字存起,不过不须像储存变数一样要在前面加一个"$"。
   
    alias 的格式:
      alias  aliasname   string .... 
      alias  aliasname   'string \!* string'
     
    前面的一个格式是把 aliasname 直接用来取代後面的 string ,然後如有任何
    跟在後面的 argument 将会出现的其後。如下例:
   
      % alias la ls -Fa
     
    例中的 la . 相当於 ls -F . ,然而如果仅是如此并不足够,因此有後面的另
    一种格式。後面的格式中的 \!* 代表将来会出现在 aliasname 後面的所有参数,
    如下例:
   
      % alias dir 'ls -Flag \!* | more'
     
    例中的 dir doc 相当於 ls -Flag doc | more ,这样可提供使用者在设计上更大
    的弹性。 
   
  5. tcsh 的初始设定档
    tcsh 有两个 initial 档,一个是 $HOME/.tcshrc , 一个是 $HOME/.login 。
   
    每一个 tcsh 在被开启时,它都会去执行所有位於 .tcshrc 中的命令,因此你
    可以把所有的 alias , 变数设定都放到 .tcshrc 里面去。在tcsh 起动的时候
    便会自动的去执行这些对於你的环境的初始设定。
   
    .login 只有在 tcsh 本身是一个 login shell 的时候才会执行,它多半用来设
    定一些只需在 login 的时候要执行的命令,如环境变数的设定,因环境变数在
    设定之後,只要是其子 process 均会取得其环境,因此不须在每次开启 shell 的
    时候都重覆执行。
   
    tcsh 另有一个结束设定档,称为 .logout ,是在每一个 login shell 结束,
    logout 所要执行的动作,其编辑的方法跟 .login , .tcshrc 完全一模一样。
   
    source 指令
   
    如果要重新执行 .tcshrc 的内容,可以利用 source 指令来达到,此时就相
    当於把该档案中的所有内容重新在命令列输入一遍。如下:
   
      % source .login

操作系统Shells
在Solaris环境中有三种Shells可以使用:
        Bourne shell ($) -  是Solaris操作系统的默认shell
        Korn  shell ($) -  是Bourne shell 的扩展集,它增加了使用别名、历史事件和
                      命令行编辑等特征。
        C  shell ($)   -  C  shell 的语法类似于C程序语言;它和Kore shell有相似
                      的特征。
文件系统结构
UNIX 使用一个 single root 的树状结构档案系统,最顶层称为根目录( root ),包含许多目录,每一个目录底下均存放许多的档案与子目录,用这样的树状结构从根目录到每一个档案均会有一个唯一的找寻的路径。而每一个使用者在 UNIX 下面均有一个 HOME directory ,做为这个使用者个人资料的存放处。
    UNIX 的每一个目录里头,有两个特殊的目录: 一个是其本身「.」,另一个
是其上一层目录「..」。这两个目录的用途在於使得树状架构的档案系统各目录
可以很轻易的双向沟通,同时在使用上也较为方便。
    在 UNIX 上根目录(/)文件系统是最重要的文件系统,因为在根目录文件系统下,包含核心程序、设备驱动程序目录区、以及各种有关开机的系统程序。系统管理员必须对这些文件系统有一定程度的了解。一些特殊的目录储存了各种不同需求的档案与作为指令的程式,如下所述( 以下的以交大资工系计中的档案系统为准,在不同的地方可能有不同的放置方法 ) :

1.        /lib  :为符号连接文件,连接至/usr/lib。
2.        /bin  :为符号连接文件,连接至/usr/bin,此目录包含用户命令,例如cat 、cp、date、df等。
3.   /bin 、/usr/bin 、/usr/ucb
    /bin 和 /usr/bin 两个目录主要放的是标准的指令,例如 ls , rm ,
    cat ... 等等,各个系统的 /bin , /usr/bin 下的指令大多都相同,主要
    在避免不同 UNIX 系统之间的差异性。
   
    /usr/ucb 放的是由 U.C. Berkeley 所发展出来的一些应用程式,像 telnet ,
ftp , rlogin , rsh 等均存放在此。
4.   /usr/local/bin
    /usr/local/bin 所存放的指令多为系上所特有的指令,因为大多是由历届中
    心讲师及助教所撰写或 install 的程式和软体,系上大部份 network service
    的执行程式均放在此,如 tin , elm , 以及许多有用的转换程式,像 hz2ps ,
    b2g , g2b 等等。
   
5.   /lib 、/usr/lib
    在此目录之中所存放的是所有程式所需要的程式库。在 UNIX 中,编译程式时
    常需要许多的函数和副程式,而这些函数和副程式多存放在程式库( library )
    写程式时就不用重新撰写这些部份的程式码了。
   
    同时,大部份的 UNIX 执行档在编译完成时将不会将副程式的程式码加到执行
    档中,而是等到执行时才自程式库取出副程式的程式码,这种动作称为动态链
    结( Dynamic link ),可想而知这样的设计可以减少许多的储存空间,而这些
    供动态链结用的程式库亦是存放在 /usr/lib 中,所以这个目录是非常重要的
    目录,如果它的内容有错往往会造成系统完全无法工作。
6.        /dev  :为设备文件目录区,在此目录下提供所有外部设备的特殊文件(字符文件、块文件),一般称为设备节点文件,通过这些设备节点和实际的硬件外部设备连接。
7.        /etc  :此目录下的文件包括/etc下的文件及符号连接至/usr /etc下的文件。这些文件均和系统管理有关。
8.        /export :此目录下的文件为Client端存取服务器资源的设定文件。
9.        /mnt  :此为附加的mount point,允许使用临时或永久“安装”上其他的文件系统。
10.        /sbin  :此目录下文件为系统启动时所使用的执行文件,例如int、mount、ifconfig、hostname等。
11.        /tmp  :此目录一般存放C语言编译器所产生的临时工作文件或tar命令所建立的临时文件,每当系统启动或重新启动时,/etc/rc即清除/tmp下的文件。
12.        /tftpboot  :此存放diskless client 使用NFS服务器所提供、通过网络开机程序的文件目录。
13.        /usr  :此目录包括系统命令、系统程序、Library例行程序。
15.  /usr/man
    在 UNIX 中,提供 man 指令( manual )让使用者在使用时可随时察询一些指令,
    函数,表格的使用法和规格,是一个非常有用的指令,而这些指令的 help 讯息
    就是存放在 /usr/man 下面。
16.        /var  :有关A ccounting、Spooling和NIS系统管理的文件区。
17.        /home  :此目录区为系统管理员放置应用软件、用户目录区等。
   
18.  /home2/X11R5
    在资工系里头,使用最普遍的图形使用者介面( Graphics User Interface , GUI )是由麻省理工学院(MIT)所发展出来的 X window , 目前使用的是 X11R5(Version11 Release 5),这一部份的程式,程式库,标头档及其他资源档均放在/home2/X11R5 这个目录下。
 

操作系统的启动与关闭
       
        由于Solaris 系统属于UNIX系统,因此,Sun服务器的维护,是以UNIX的系统维护为基础。系统管理员应了解UNIX的基本操作,各个服务器上安装的软件以及它们的使用方法。
        用户服务器的管理员应经常注意有哪些登录到了系统,是否危害了系统,所存文件是否过大等。请参阅UNIX常用命令。
系统管理员要负责在正常运转或紧急情况下对计算机系统进行启动和关闭。
        1. 开机过程
         检查电源及网线的联接是否正确。
         将主机外设(如外置硬盘等)首先加电,一分钟后,看一看外设有无异常现象,一切正常后,给主机加电,如果系统有异常现象,则在主机boot的过程中会有显示。应注意观察系统启动过程所提供的信息。
        2. 关机过程
        (1)多用户模式下的关机过程
         运行who命令以查看当前注册用户
         通知用户系统将关机
           运行wall命令,然后键入关机前警告信息,例如:
        There is a problem with the building’s power system.
        I will be shutting down the system in 10 minutes.
        please clean up and log off.
        Sorry for the inconvenience.
         警告信息输完后,键入, 所有当前注册用户将会接收到警告信息。
         等待几分钟后,运行poweroff命令,服务器会自动关闭电源。
       
        3.系统故障应急解决方案
         非正常掉电:主机突然掉电,此时应将主机电源及外围设备的电源全部关掉。(主机虽然暂时没有电,但还应关一下电源开关)。
        检查掉电原因:恢复正常后,按正常的开机顺序开机。
        主机在boot的过程中,可能有错误信息,应记下错误信息,系统启动后做正常修复。
        进入单用户状态,运行fsck,对fsck 不能修复的区可考虑重新format等。
login / logout
    我们要能够进入 UNIX 系统。每个人都有一个 username 与 password,username 是你在这个系统中的名字,而 password 就是密码,用来保护你的帐号不会被别人偷走。
    我们称进入系统的动作为 login ,在进入系统之前,首先我们会见到以下的画面:
    SunOS UNIX (ccsun24)
   
    login:
   
    然後你 login: 之後接著打你的 username ,系统就会自动找出你的资料,接著出现一行
    password:
   
    这时所要输入的就是你的密码了。在输入密码的时候,并不会显示在萤幕上,避免你的密码在使用的时候被别人偷看到。
    如果你的密码正确,系统会显示出你已经 login 的讯息,并显示上一次 login的时间。当系统完成对你的使用环境设定的工作时,会显示出一个提示符号,如下面的形式:
    ! >
   
   
    在 > 符号之後你就可以输入你所要下的指令( command ) ,如 ls , who , 等等。不过要注意的是,在 UNIX 之下英文字母的大小写是有差别的,如果像我的 username 是 jjtseng , 则我打入 JJTseng ,系统就不知道这个 user 是谁了。同样的,你所下的指令也要注意大小写的差别。
    UNIX 的指令分成两种,一种是实际存放在档案系统的程式,如 ls , who , cat , more ....等等都是,另一种是 shell 内建的指令,後面的内容对这两种指令都会有详细的介绍。你也可以写程式来增加你可使用的指令,如系上大部份存放在 /usr/local/bin 的指令都是属於这一类。
    当你用完系统,准备离开时,别忘了要 logout ,否则人虽然走了,可是还是会有人在你离开系统後用你的名义使用系统,如果这个人做了些坏事,帐可是都算在你头上的。离开系统可以使用 exit 指令。键入 exit , 按 enter 键,系统就会离开,而等待下一个人进入系统。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/qiushuitian/archive/2007/11/26/1903376.aspx
阅读(312) | 评论(0) | 转发(0) |
0

上一篇:Solaris下IP设定方法

下一篇:Solaris基础(二)

给主人留下些什么吧!~~