1、,2011-1-04,Consult Build Deploy Manage,Solaris 目录结构,主要系统目录,Solaris环境的文件结构是分层的目录树结构,类似于DOS的文件结构。是一些有特定目的而组织在一起的目录、子目录和文件。下面是系统中一些主要的目录:/(根目录)位于目录树的最顶层/usr目录包含系统的一些命令、工具、库文件等 /etc 目录包含系统配置文件,如用户口令文件等/var目录包含系统中不断变化的文件,如系统的日志文件等/opt目录包含第三方的应用软件/bin 是一个指向/usr/bin目录的符号链接,包含了系统命令的二进制文件,主要系统目录(续),/lib 目录包含
2、共享的可执行的文件和SMF执行文件/export 目录一般包含用于NFS共享的目录。 /export/home 目录包含用户的起始目录。 /kernel 目录包含了系统在启动过程中需要载入的内核模块。/dev 目录包含了系统的逻辑设备名,这些逻辑设备都是指向/devices目录下物理设备名的符号链接/mnt 目录是由系统提供的一个非常方便和临时的文件系统挂载点,驻留内存的系统目录,系统驻留在内存中的目录主要有:/dev/fd 目录包含与当前系统正在使用的文件描述符相关的文件/devices 目录包含系统的物理设备名/etc/mnttab 一个基于内存的文件,位于在它本身的文件系统中,包含当前文
3、件系统挂载的详细信息/etc/svc/volatile 目录包含与系统服务的当前状态相关的日志和参考文件/proc 目录包含与当前运行的进程相关的信息,在/proc目录下每个进程都有一系列属于它的子目录,驻留内存的系统目录(续),/system/contract 目录是创建、控制和检测contract的接口。contract通过提供更多的错误报告加强了进程和它所依赖的系统资源的联系。SMF(Service Management Facility)使用进程contract来跟踪服务的各个进程,当某个服务中的一个进程出现问题时,服务的状态就会被定位为失败。/system/object 目录描述了内
4、核当前载入的所有模块的状态,此文件系统主要用于动态跟踪(Dynamic Tracing,DTrace)活动。/tmp 目录包含系统的临时文件,在系统重启后目录下的所有内容将被清空/var/run 目录包含与各类系统进程和服务相关的锁定文件、特殊文件和参考文件,/dev目录下的主要子目录,/dev/dsk 块磁盘设备/dev/fd 文件描述符/dev/md 逻辑卷管理metadisk设备/dev/pts 虚拟的终端设备/dev/rdsk raw磁盘设备/dev/rmt raw磁带机设备/dev/term 串口设备,/etc目录下的主要子目录,/etc/acct 帐目系统的配置信息/etc/cro
5、n.d cron工具的配置信息/etc/default 各应用程序的缺省配置信息/etc/inet 网络服务的配置文件/etc/init.d 服务的启动和停止脚本/etc/lib 当/usr文件系统不可用时需要的动态链接库/etc/lp 打印机的配置信息,/etc目录下的主要子目录(续),/etc/mail 邮件系统的配置信息/etc/nfs NFS服务器的日志配置文件/etc/opt 可选软件的配置信息/etc/rc#.d 当进入或离开一个特定的运行级时传统执行的脚本/etc/security 基于角色的访问控制和安全权限的控制文件/etc/skel 新用户的缺省shell初始化文件/etc
6、/svc 包含SMF(Service Management Facility)数据库和日志文件/etc/zones zone管理工具的初始化文件和参考文件,/usr目录下的内容,/usr/bin 包含标准系统命令/usr/ccs 包含C兼容的程序和库文件/usr/demo 包含示例程序和库文件/usr/dt CDE软件的目录/usr/include 包含各种头文件/usr/jdk 包含java程序和库文件的目录,/usr目录下的内容(续),/usr/kernel 包含非系统启动过程时需要的不依赖于系统平台的内核模块/usr/lib 包含各种应用程序库和不是由用户直接调用的二进制文件/usr/o
7、pt 可选软件的配置信息/usr/sbin 包含系统的管理命令/usr/spool 是连接到/var/spool目录的一个符号链接,/var目录下的内容,/var/adm 包含日志文件/var/crash 当系统崩溃时存放crash dump文件/var/spool 包含邮件系统和打印服务的spool文件/var/svc 包含SMF的控制和日志文件/var/tmp 包含长期的临时文件,在系统重启后目录下的内容不会丢失,作为/tmp目录的一个后备选择,文件结构,Solaris操作系统下的所有文件都会使用文件名和一个称作inode的记录,大部分文件都会使用数据块(data block)。一般来说,
8、一个文件名与一个inode相关联,根据inode去访问文件的数据块。,文件名是最常用到的用来访问和管理文件的对象。一个文件必然要有一个与inode关联的文件名。inode是Solaris用来记录文件信息的对象。一般来说,inode包含两部分:1.文件的信息,包括文件的属主、权限和大小2.指向与文件相关的数据块的指针inode的数量是有限的,每个文件系统都有一系列自己的inodes,当创建一个新的文件系统时,一个完整系列的新的inodes也创建到了文件系统中。数据块是用来存储数据的磁盘单元,常规文件、目录和符号链接都使用数据块,设备文件是不存放数据的。,文件类型,Solaris操作系统中主要有四
9、种文件类型: 常规文件 目录 符号链接 设备文件常规文件、目录和符号链接都会存储一种或多种类型的数据,而设备文件是不存放任何数据的,它只提供对设备的访问。,文件类型(续),可以使用“ls”命令来区分不同的文件类型,“ls -l”命令输出的第一列字符显示出了文件的类型,如下:- 常规文件d 目录l 符号链接b 块设备文件c 字符设备文件,文件类型示例,# cd /etc# ls -ltotal 573drwxr-xr-x 2 adm adm 512 Sep 19 17:21 acctlrwxrwxrwx 1 root root 14 Sep 19 16:00 aliases -./mail/al
10、iasesdrwxr-xr-x 7 root bin 512 Sep 19 17:55 apachedrwxr-xr-x 2 root other 512 Sep 19 16:59 apoc-rw-r-r- 1 root bin 194 Sep 19 15:55 auto_home(output truncated)# cd /devices/pci1f,0/pci1,1/ide3# ls -ltotal 4drwxr-xr-x 2 root sys 512 Sep 19 20:13 dad0,0brw-r- 1 root sys 136, 8 Sep 23 08:35 dad0,0:acrw
11、-r- 1 root sys 136, 8 Sep 23 12:51 dad0,0:a,raw(output truncated),常规文件,在Solaris操作系统中,常规文件是最常用的文件类型,它可以让用户存储各种类型的数据。常规文件能够保存ASCII码或二进制数据,包括图形数据,数据库数据,应用程序相关的数据等等。,目录,目录存储文件名与inode number之间关系的信息,它不象常规文件那样可以存储各种类型的数据,目录只能够存储文件名与inode间关系的信息。,符号链接,符号链接是指向其他文件的一个文件。和目录只包含目录信息一样,符号链接也只包括一种类型的数据。符号链接包含它指向的文
12、件的路径名。由于符号链接是使用路径名来指向其他文件,因此它可以指向其他文件系统的文件。符号链接的大小总是和它所包含的路径名的字符数是一致的。如下面的例子所示,符号链接/bin是指向目录./usr/bin,由于路径名./usr/bin包含了9个字符,因此符号链接的大小是9 bytes。# cd /# ls -l binlrwxrwxrwx 1 root root 9 Sep 19 15:41 bin - ./usr/bin,符号链接,符号链接可以指向常规文件、目录、其他符号链接和设备文件。符号链接可以使用绝对或相对路径名。使用“ln”命令和“-s”参数可以创建符号链接。例如:# ln -s fi
13、le1 link1,设备文件,设备文件提供对设备的访问。和常规文件、目录和符号链接不同的是,设备文件不使用数据块。设备文件的inode存放与设备相关的数字信息,使用“ls -l”命令可以显示这些数字。例如,在常规文件的第5列输出中显示的是文件的大小。# cd /etc# ls -al |moretotal 599drwxr-xr-x 77 root sys 4096 Sep 23 08:36 .drwxr-xr-x 26 root root 1024 Sep 23 08:40 .-rw-r-r- 1 root root 2236 Sep 23 08:36 .cpr_configdrwxr-xr
14、-x 3 root bin 512 Sep 19 16:39 .java-rw-r-r- 1 root sys 524 Sep 19 15:41 .login-rw-r-r- 1 root other 18 Sep 19 16:30 .sysidconfig.apps-rw-r-r- 1 root other 284 Sep 19 16:00 .sysIDtool.state(output truncated),设备文件,在设备文件的第5列输出中显示的是两个用逗号分隔的数字,这两个数字分别是主要(major)和次要(minor)设备号,在下例中,设备文件dad0,0:a的主要设备号是136,次
15、要设备号是8。# cd /devices/pci1f,0/pci1,1/ide3# ls -l dad0*total 4drwxr-xr-x 2 root sys 512 Sep 19 20:13 dad0,0brw-r- 1 root sys 136, 8 Sep 23 08:35 dad0,0:acrw-r- 1 root sys 136, 8 Sep 23 12:51 dad0,0:a,rawbrw-r- 1 root sys 136, 9 Sep 23 08:35 dad0,0:bcrw-r- 1 root sys 136, 9 Sep 23 12:51 dad0,0:b,rawbrw
16、-r- 1 root sys 136, 10 Sep 23 12:51 dad0,0:ccrw-r- 1 root sys 136, 10 Sep 23 12:51 dad0,0:c,raw(output truncated),设备文件,主要设备号指定用来访问设备时使用的特定的设备驱动,次要设备号是代表该设备驱动控制的某个特定的设备。,设备文件,一般情况下,系统在重配置启动时(boot -r)会自动创建设备文件和指向设备文件的符号链接。在Solaris 操作系统中,可以使用“devfsadm”命令创建新的设备文件。在设备文件和它控制的设备之间存在着直接的关系,设备文件的inode包含的主要设备
17、号和次要设备号建立起了这样的关系。下图显示了设备文件dad0,0:a和它所控制的设备的关系。,设备文件,设备文件分为两种类型:字符设备(裸设备)和块设备。两种类型的设备文件分别与设备进行不同的交互。 文件类型c代表字符设备文件,数据是通过数据流的方式来访问,下例显示了一个字符设备文件crw-r- 1 root sys 136, 8 Sep 23 12:51 dad0,0:a,raw 文件类型“b”代表块设备文件,对于磁盘设备来说,块设备文件要求基于一个定义的块大小来进行I/O操作。块的大小取决于特定的设备。下例显示了一个块设备文件。brw-r- 1 root sys 136, 8 Sep 23
18、 08:35 dad0,0:a在进程和块设备之间进行传输的数据首先存放在内核管理的基于内存的缓存中,当重复访问块设备上的数据时,可以提供更好的性能。当然,块设备可以进行随机地访问,而字符设备则不可以。,硬链接,硬链接是文件名和inode之间的关系。硬链接并不是一种文件类型。每种类型的文件都至少有一个硬链接。目录中的每个条目都组成一个硬链接。每个文件名就相当于一个链接到一个inode的硬链接。当创建一个文件时,一个新的目录条目也会被创建,用来将文件的名字链接到一个特定的inode,在这种情况下,创建一个文件就创建了一个硬链接。在下图中,文件file1位于目录dir1下,在dir1目录中,文件名f
19、ile1与inode号1282相关联,硬链接即是file1与indoe号1282之间的关系。,硬链接的链接数,每个inode都保存着与它相关联的文件名的数目,此数目称为链接数。在“ls -l”命令输出中,链接数显示在文件权限列和文件属主列之间。在下面的例子中,文件file1使用一个硬链接:# cd dir1# touch file1# ls -ltotal 0-rw-r-r- 1 root root 0 Sep 23 13:19 file1,创建硬链接,一个新文件产生的新链接将会增加与它关联的inode的链接数。在下面的例子中,inode 1282拥有两个硬链接,一个是file1,另一个是fi
20、le2。“ls -li”命令在输出的最左面列中列出了inode号,使用“find -inum”命令可以找出拥有相同inode号的文件。由于硬链接是与inode相关联的,而不同的文件系统拥有自己的inode列表,因此硬链接是不可跨越文件系统的。,# ln file1 file2# ls -ltotal 0-rw-r-r- 2 root root 0 Sep 23 13:19 file1-rw-r-r- 2 root root 0 Sep 23 13:19 file2# ls -litotal 01282 -rw-r-r- 2 root root 0 Sep 23 13:19 file11282
21、-rw-r-r- 2 root root 0 Sep 23 13:19 file2# find . -inum 1282./file1./file2,删除硬链接,删除与有多个硬链接的inode相关联的一个文件,不会影响到其他文件,只是链接的数目会相应地减少。# ls -litotal 01282 -rw-r-r- 2 root root 0 Sep 23 13:19 file11282 -rw-r-r- 2 root root 0 Sep 23 13:19 file2# rm file1# ls -litotal 01282 -rw-r-r- 1 root root 0 Sep 23 13:19 file2,