《OracleDBA实用手册》299.docx
Oracle DBA实用手册-安装篇DOYENSEERdoyenseer -版权声明本文档的版权归作者所有。本文档可以自由复制和发布,但对文档修改请通知作者前言本手册主要介绍Oracle相关安装和配置的基本方法。Oracle是运行在Windows和Unix操作平台上的主流数据库系统之一。因为Windows上的Oracle安装配置相对比较简单,所以本手册只介绍Unix平台上的安装和配置,而且主要以Linux操作系统为主(笔者强烈推荐Linux)。如果不特别声明,本文档涉及的操作都是在Red Linux和Oracle9i上完成。Oracle的安装主要包括操作系统安装和数据库系统安装。操作系统安装 Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。虽然Linux是免费的操作系统,但是它依然是一种非常优秀的操作系统,支持多用户,多进程,实时性好,功能强大而且稳定。同时具有良好的兼容性和可移植性。RedHatt作为目前众多发行版本中的一种,一方面它已经是行业的标准,有大量为其开发的软件;另一方面Redhat系统的稳定性及安全性非常出色。准备知识 作为数据库服务器的操作平台,在安装的时候,首先要考虑如何管理硬盘,合理规划硬盘分区:硬盘分区一共有三种类型:主分区,扩展分区和逻辑分区。在一块硬盘上最多只能有四个主分区。可以另外建立一个扩展分区来代替四个主分区的其中一个,然后在扩展分区下又可以建立更多的逻辑分区。扩展分区只不过是逻辑分区的“容器”。实际上只有主分区和逻辑分区进行数据存储。最合理的分区结构是主分区在前,扩展分区在后,然后在扩展分区中划分逻辑分区,保证主分区的个数和扩展分区个数要控制在四个之内每个主分区和逻辑分区都回被存储一个识别文件系统的附加信息。操作系统(Windows或者Linux等等)能通过这些信息非常容易的识别和确认,应该使用哪个分区。不能识别的操作系统分区将会被忽略。通过分区当然不能产生任何文件系统。在分区之后必须要进行格式化,才能使用。Linux下的分区命名通常采用设备-名称(device-name)。一般的硬盘(比如IDE硬盘)将采用/dev/hdxy来命名。X表示硬盘(a是第一块硬盘,b是第二块硬盘,依次类推),y是分区的号码(从0开始,1,2,3等等)。SCSI硬盘将用/dev/sdxy来命名。光驱(不管是IDE类型或者SCSI)将和硬盘一样来命名。其次,要掌握Linux下软件的基本安装和卸载:在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的"添加/删除程序"来实现。与其相类似,在Linux下有一个功能强大的软件安装卸载工具,名为RPM(Red Hat Linux提供的一种包封装格式,现在许多Linux发行版本都使用)。它可以用来建立、安装、查询、更新、卸载软件。Linux下软件的安装主要有两种不同的形式。第一种安装文件名为xxx.tar.gz;另一种安装文件名为xxx.i386.rpm。以第一种方式发行的软件多为以源码形式发布的;第二种方式则是直接以二进制形式发布的。第一种安装方法如下:1. 首先,将安装文件拷贝至你的目录中。# cp xxx.tar.gz /tmp2. 解压缩包。#tar xvzf xxx.tar.gz3. 用ls命令可以看到解压缩后的文件。通常在解压缩后产生的文件中,查看"Install"的文件。该文件为纯文本文件,详细讲述了该软件包的安装方法。#vi Install4. 执行解压缩后产生的一个名为configure的可执行脚本程序。它是用于检查系统是否有编译时所需的库,以 及库的版本是否满足编译的需要等安装所需要的系统信息。为随后的编译工作做准备。#./configure5. 检查通过后,将生成用于编译的MakeFile文件。此时,可以开始进行编译了。编译的过程视软件的规模和计算机性能的不同,所耗费的时间也不同。#make6. 成功编译后,键入如下的命令开始安装:#make install7. 安装完毕,应清除编译过程中产生的临时文件和配置过程中产生的文件。键入如下命令:#make clean#make distclean8. 卸载软件。#make uninstall第二种安装方法如下:1. 在安装文件的当前目录中,用rpm命令进行安装。#rpm -ivh xxx.i386.rpmrpm将自动将安装文件解包,并将软件安装到缺省的目录下。并将软件的安装信息注册到rpm的数据库中,参数ivh表示进入安装模式并显示安装信息和进度。如果需要强制安装,可执行:#rpm ivh -force xxx.i386.rpm2. 查询软件包在系统中注册的名称或是否已安装。#rpm q a或#rpm -q -a |grep pkgnam #rpm -q pkgnam3. 卸载安装包。#rpm e pkgnam即可卸载软件。参数e的作用是使rpm进入卸载模式。对名为package name的软件包进行卸载。由于系统中各个软件包之间相互有依赖关系。如果因存在依赖关系而不能卸载,rpm将给予提示并停止卸载。你可以使用如下的命令来忽略依赖关系,直接开始卸载:#rpm e pkgnam -nodeps掌握技能1. Vi编辑器Vi命令是unix下常用而重要命令,可在全屏幕方式下编辑一个或多个文件。Vi有三种模式: 1. 命令模式: 进入vi时所处的模式。在此模式下用户可输入各种子命令对进行*作,如删除行、粘贴行、移向下一个字、移向不同行等。2. 文本输入模式: 在此模式下可以修改一行的内容并增添新行。在命令模式下键入a 、i 或c键可进入文本输入模式,按Escape键可返回命令模式。 3. 命令项模式: 在此模式下,可以通过子命令输入更多的参数。如:w子命令要求输入一文件名,"/"子命令要求输入一个查找项。用户使用Escape键返回命令模式。 vi命令一览表(部分)功能命令备注移动光标h将光标左移一格。l将光标右移一格。k或Ctrl+p光标上移一行 j或Ctrl+n 光标下移一行 w将光标移到下一个小字的前面。W将光标移到下一个大字的前面。b将光标移到前一个小字的前面。B将光标移到前一个大字的前面。e将光标移到下一个小字的后面。E将光标移到前一个大字的后面。fc把光标移到同一行的下一个c字符处。Fc把光标移到同一行的前一个c字符处。tc把光标移到同一行的下一个字符c的前一格。Tc把光标移到同一行的前一个字符c的后一格。number|把光标移到递number列上。+或Enter把光标移至下一行第一个非空白字符。-把光标移至上一行第一个非空白字符。)光标移至句尾 (光标移至句首 光标移至段落开头 光标移至段落结尾 nG光标移至第n行首 n+光标下移n行 n-光标上移n行 n$光标移至第n行尾 H把光标移到屏幕最顶端一行。M光标移至屏幕中间行 L光标移至屏幕最后行 0(注意是数字零)光标移至当前行首 $光标移至当前行尾 space字符 ">光标右移一个字符 Backspace字符 ">光标左移一个字符 屏幕翻滚Ctrl + f向后滚一页。 Ctrl + d 向后滚半页。 Ctrl + b向前滚一页。 Ctrl + u向前滚半页。 Ctrl + e屏幕向下滚一行。 Ctrl + y屏幕项上滚一行。 nz将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 插入修改i 在光标前 I 在当前行首 a光标后 A在当前行尾 o在当前行之下新开一行 O在当前行之上新开一行 r字符 ">替换当前字符 R字符及其后的字符,直至按ESC键 ">替换当前字符及其后的字符,直至按ESC键 s字符 ">从当前光标位置处开始,以输入的文本替代指定数目的字符 S删除指定数目的行,并以所输入文本代替之 ncw或nCW修改指定数目的字 nCC修改指定数目的行 ndw或ndW删除光标处开始及其后的n-1个字 do删至行首 d$删至行尾 ndd删除当前行及其后n-1行 x或X字符,x删除光标后的,而X删除光标前的 ">删除一个字符,x删除光标后的,而X删除光标前的 Ctrl+u删除输入方式下所输入的文本 cc或S修改一整行。 C改变一行光标位置以后的部分。 cw改变光标所在单词。 dd删除当前行。 D删除光标所在行光标后面的内容。 dw删除光标所在的单词。 J把下一行内容加到本行行尾。 rc字符替换成c . ">把光符所在字符替换成c . R覆盖本行内容。 u恢复上一次的修改。 字符的大小写。 ">改变光标所在出字符的大小写。 .重复上一个操作。 <<把当前行移到左边。 >>把当前行移到右边。 搜索替换/pattern文件尾搜索pattern ">从光标开始处向文件尾搜索pattern ?pattern文件首搜索pattern ">从光标开始处向文件首搜索pattern n在同一方向重复上一次搜索命令 N在反方向上重复上一次搜索命令 s/p1/p2/g将当前行中所有p1均用p2替代 n1,n2s/p1/p2/g将第n1至n2行中所有p1均用p2替代 g/p1/s/p2/g文件中所有p1均用p2替换 ">将文件中所有p1均用p2替换 /pattern/+number将光标停在包含pattern的行后面第number行上。 /pattern/-number将光标停在包含pattern的行前面第number行上。 %移到匹配的“()”或“”上。 其他命令ctrl+g文件的有关信息。 ">取得正在编辑文件的有关信息。 :sh启动sh ,从sh中返回可用exit或ctrl+d . :! Command执行命令command . !重新执行上次的:! Command子命令。 q退出vi q!文件并退出vi ">不保存文件并退出vi ZZ或:wq文件的修改并退出vi . ">保存对文件的修改并退出vi . e filename文件filename)。 ">使用filename激活vi (在vi中装入另一个文件filename)。 e!文件,若当前文件有改动,则丢弃以前的改动。 ">重新装入当前文件,若当前文件有改动,则丢弃以前的改动。 e+filename文件尾部开始编辑。 ">使用filename激活vi ,并从文件尾部开始编辑。 e+number filename使用filename激活vi ,并在第number行开始编辑。 e#文件。 ">开始编辑另外一个文件。 r filename文件,并将其内容加到当前文件后。 ">读取filename文件,并将其内容加到当前文件后。 r ! Command文件,并将其输出加到当前文件后。 ">执行command文件,并将其输出加到当前文件后。 n1,n2 w!command文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入 ">将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入 2. FDisk磁盘分区工具通过例子来了解fdisk工具:# fdisk -lDisk /dev/hda: 80.0 GB, 80026361856 bytes255 heads, 63 sectors/track, 9729 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System/dev/hda1 * 1 765 6144831 7 HPFS/NTFS/dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)/dev/hda3 2806 9729 55617030 5 Extended/dev/hda5 2806 3825 8193118+ 83 Linux/dev/hda6 3826 5100 10241406 83 Linux/dev/hda7 5101 5198 787153+ 82 Linux swap / Solaris/dev/hda8 5199 6657 11719386 83 Linux/dev/hda9 6658 7751 8787523+ 83 Linux/dev/hda10 7752 9729 15888253+ 83 LinuxDisk /dev/sda: 1035 MB, 1035730944 bytes256 heads, 63 sectors/track, 125 cylindersUnits = cylinders of 16128 * 512 = 8257536 bytesDevice Boot Start End Blocks Id System/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)/dev/sda2 26 125 806400 5 Extended/dev/sda5 26 50 201568+ 83 Linux/dev/sda6 51 76 200781 83 Linux通过上面的信息,可以看出系统挂载两个硬盘(或移动硬盘),其中一个是hda 另一个是sda 。hda硬盘是80G的,有255个磁面;63个扇区;9729个磁柱;每个 cylinder(磁柱)的容量是 8225280 bytes=8M;sda硬盘是1G的,有256个磁面;63个扇区;125个磁柱;每个 cylinder(磁柱)的容量是 8257536 bytes=8M;估算一个硬盘是否完全被划分, cylinders(柱体) 上一个分区的End 和 下一个分区的Start是不是一个连续的数字,另外要看一下每个硬盘设备的fdisk -l 的头部份中 cylinders(柱体)的值。比如hda设备,共有 9729 cylinders ;通过 hda的分区表可以看到上一个分区的End的值+1 就是下一个分区的Start 的值;比如 hda2的Start的值是 hda1 的End 的值+1,这证明 hda1 和hda2 中间没有空白分区,是连续的,以此类推;在 hda10,看到 End 的值是9729 ,而在fdisk -l头部信息中也有9729 cylinders,证明这个硬盘已经完全划分。而sda 有未划分区域,至于sda 有多少未划分空间,计算一下就知道了;扩展分区总容量是 806400 K ,大约是 806.400M左右,而逻辑分区 sda5 和sda6 的大小加起来是 400M左右,所以还仍有400M左右未划分空间,并且只能划分为链逻辑分区。硬盘的实际分区请根据fdisk中的帮助,谨慎操作。3. df磁盘信息查看工具df命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。#dfFilesystem 1Kblocks Used Available Use% Mounted on /dev/hda2 1361587 1246406 44823 97 / Filesystem 列:是代表文件系统对应的设备文件的路径名(一般是硬盘上的分区);1Kblocks列:给出分区包含的数据块(1024字节)的数目;Used /Available列:分别表示已用的和可用的数据块数目。用户也许会感到奇怪的是,此两列块数之和不等于第2列中的块数。这是因为缺省的每个分区都留了少量空间供系统管理员使用。即使遇到普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间;Use% 列:表示普通用户空间使用的百分比,即使这一数字达到100,分区仍然留有系统管理员使用的空间。Mounted on列:表示文件系统的安装点注:有个跟df功能很相似的命令du , du和df命令都被用于获得文件系统大小的信息,df用于报告文件系统的总块数及剩余块数,du -s /<filesystem>用于报告文件系统使用的块数。但是,我们可以发现从df命令算出的文件系统使用块数的值与通过du命令得出的值是不一致的。该值差异的存在是由于du与df命令实施上的不同: du -s命令通过将指定文件系统中所有的目录、符号链接和文件使用的块数累加得到该文件系统使用的总块数;而df命令通过查看文件系统磁盘块分配图得出总块数与剩余块数。文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如i节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为Meta Data。du命令是用户级的程序,它不考虑Meta Data,而df命令则查看文件系统的磁盘分配图并考虑Meta Data。df命令获得真正的文件系统数据,而du命令只查看文件系统的部分情况。du与df命令另一不同之处:如果用户删除了一个正在运行的应用所打开的某个目录下的文件,则du命令返回的值显示出减去了该文件后的目录的大小。但df命令并不显示减去该文件后的大小。直到该运行的应用关闭了这个打开的文件,df返回的值才显示出减去了该文件后的文件系统的使用情况4. ftp工具主要用来从FTP服务器上交互式的上传或下载传输文件。命令列表(部分)命令备注?显示ftp命令的说明。后面可以加参数,是加需要解释的命令名,不加则显示包含所有命令列表。append使用当前文件类型设置,将本地文件附加到远程计算机中。ascii说明:默认情况下,将文件传输类型设置为ASCIIbinary将文件传输类型设置为二进制。bye结束和远程计算机的ftp会话,也就是安全断开,退出ftp.cd更改远程计算机上的工作目录。dir:显示远程的文件以及子目录列表。get使用当前文件传输类型,把远程的文件拷贝到本地计算机上。!在本地计算机上运行指定命令。lcd更改本地计算机的本地目录ls显示远程目录的文件和字目录.mdelete删除远程计算机上的文件mdir显示远程目录的文件和子目录列表,mget使用当前文件传输类型将多个远程文件复制到本地计算机mkdir创建远程目录mput使用当前文件传输类型,批量将本地文件复制到远程计算机open连接到指定ftp服务器上prompt转换提示,在多个文件传输的时候,ftp提示可以有选择的检索或保存文件,如果关闭提示,则mget和mput命令传输所有文件,在默认情况下是打开的.put使用当前文件传输类型将本地文件复制到远程计算机中pwd显示远程计算机上的当前目录quit结束与远程计算机的ftp会话,并退出ftp.recv使用当前文件传输类型将远程文件复制到本地计算机,他与get命令作用相同。rename更改远程计算机上的文件名。rmdir删除远程目录send使用当前文件传输类型将本地文件复制到远程计算机.send和put命令的功能一样。status显示ftp连接和转换的当前状态安装过程安装过程略。注:Linux安装至少需要两个分区/root和swap,而swap分区至少设置为物理内存的2倍。Oracle安装准备知识l 分清DB_NAME、INSTANCE_NAME、ORACLE_SID、SERVICE_NAME、DB_DOMAIN和GLOBAL_DB_NAME安装前,首先要分清DB_NAME、INSTANCE_NAME、ORACLE_SID、SERVICE_NAME、DB_DOMAIN和GLOBAL_DB_NAME的概念。一个运行着的ORACLE数据库就可以看成是一个ORACLE SERVER,该SERVER由数据库(Database)和实例(Instance)组成,在一般的情况下一个ORACLE SERVER包含一个实例和一个与之对应的数据库,但是在特殊情况下,如8i的OPS,9i的RAC,一个SERVER中一个数据库可以对应多个实例。 一系列物理文件(数据文件,控制文件,联机日志等)的集合或与之对应的逻辑结构(表空间,段等)被称为数据库,简单的说,就是一系列与磁盘有关系的物理文件的组成。ORACLE内存结构和后台进程被成为数据库的实例,一个实例最多只能安装(Mount)和打开(Open)在一个数据库上,负责数据库的相应操作并与用户交互。数据库名(DB_NAME):用于区分数据的内部标识,是以二进制方式存储于数据库控制文件中的参数,所以很难改变其名字(修改比较麻烦,所以在安装时设置好了就不要再改了),数据库安装完成后,该参数被写入数据库参数文件pfile的db_name中。数据库实例名(INSTANCE_NAME):则用于和操作系统之间的联系,用于对外部连接时使用。在操作系统中要取得与数据库之间的交互,必须使用数据库实例名。该值允许修改,但一般设置与数据库名相同即可。数据库实例名(ORACLE_SID):虽然和INSTANCE都是指数据库实例名,INSTANCE_NAME参数是ORACLE数据库的参数,此参数可以在参数文件中查询到,而ORACLE_SID参数则是操作系统环境变量。 操作系统环境变量ORACLE_SID用于和操作系统交互。也就是说,在操作系统中要想得到实例名,就必须使用ORACLE_SID,其取值也必须与INSTANCE_NAME相同。数据库域名(DB_DOMAIN):类似网络域名的概念,(所以一个数据库名db_name在不同的域里可以相同)在安装时确定(全局数据库名中填写),定义规则也相似于网络定义。全局数据库名(GLOBAL_DB_NAME):命名规则= db_name+db_domain数据库服务名(SERVICE_NAME):一般与全局数据库名相同。l 合理设置Oracle内存参数Oracle实例是一组Oracle后台进程和内存结构的集合。当一个Oracle实例开始运行时,它分配了一个称为系统全局区(SGA)的大内存块。实例的SGA被该实例的所有后台进程共享。另外,每个与实例有关联的进程都有它自己私有的内存区,被称为一个程序全局区(PGA)。SGA结构的大小对数据库的性能极其重要。它主要包括:¯ 数据高速缓存区内存中用来存储频繁访问的数据区域。由Default pool、Keep pool、Recycle pool三个缓存池组成。该区域由db_cache_size(9i)或db_block_buffers*db_block_size(8i)值决定的。一般设置为可用内存的60%。¯ 共享池主要用来缓存PL/SQL程序单元,SQL语句的解析版本,解析的SQL语句的执行计划以及数据字典信息。主要包括库缓存区(共享SQL区和PL/SQL区)和数据字典缓存区。该区域由shared_pool_size值决定。一般设置为可用内存的20%。¯ 日志缓存区主要用来缓存Oracle需要写入磁盘的redo日志记录。该区域由log_buffer值决定。一般设置为1-2M,不应过大。¯ JAVA池主要为JAVA服务的。该区域由Java_pool_size值决定。若不使用,可以分配10M30M。¯ 大池可选内存区,但如果使用MTS服务器或使用RMAN备份,该内存区是需要的。该区域由large_pool_size值决定。假如不使用MTS,可分配在2050M 。这部分主要用来保存并行查询时候的一些信息,还有就是RMAN 在备份的时候可能会使用到。如果设置了MTS,则由于UGA部分要移入这里,则需要具体根据session最大数量和 sort_ares_size 等相关会话内存参数的设置来综合考虑这部分大小的设置,一般可以考虑为 session * (sort_area_size + 2M)。这里要提醒一点,不是必须使用MTS,一般不主张使用MTS,尤其同时在线用户数小于500的情况下。¯ 固定SGAOracle内部使用,不能设定。PGA程序全局区主要由sort_area_size(用于排序所占内存)和hash_area_size(用于散列联接,位图索引)值决定。这两个参数在非MTS下都是属于PGA ,不属于SGA,是为每个session单独分配的。总之,SGA的大小一般为物理内存的40%50%左右,或参考公式:OS 使用内存+SGA+并发执行进程数*(sort_area_size+hash_ara_size+2M) < 总内存如果是裸设备,可考虑适当的增大SGA。掌握技能操作系统命令以下只是列出操作系统命令的部分用法,详细用法请参考MAN手册。1) groupadd功能说明:用于将新组加入系统。语法:groupadd g gid o r f groupname参数:g gid:指定组ID号。o:允许组ID号,不必惟一。r:加入组ID号,低于499系统账号。f:加入已经有的组时,发展程序退出。例 子:建立一个新组,并设置组ID加入系统。groupadd g 344 test此时在/etc/passwd文件中产生一个组ID(GID)是344的项目2) groupdel功能说明:用于删除群组。需要从系统上删除群组时,可用groupdel指令来完成这项工作。倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。语法:groupdel groupname3) useradd功能说明:用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。useradd可用来建立用户账号,它和adduser命令是相同的。账号建好之后,再用passwd设定账号的密码。使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中。语法:useradd d home s shell c comment m k template f inactive e expire p passwd r name参数:c:加上备注文字,备注文字保存在passwd的备注栏中。d:指定用户登入时的启始目录。D:变更预设值。e:指定账号的有效期限,缺省表示永久有效。f:指定在密码过期后多少天即关闭该账号。g:指定用户所属的群组。G:指定用户所属的附加群组。m:自动建立用户的登入目录。M:不要自动建立用户的登入目录。n:取消建立以用户名称为名的群组。r:建立系统账号。s:指定用户登入后所使用的shell。u:指定用户ID号。例 子:建立一个新用户账户,并设置ID。useradd wang u 555需要说明的是,设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特殊用户,一般0到499之间的值留给bin、mail这样的系统账号。4) userdel功能说明:可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。语法:userdel -r login参数:-r 删除用户登入目录以及目录中所有文件。5) passwd功能说明:用来更改使用者的密码。语法:passwd username6) chmod功能说明:用于改变文件或目录的访问许可权。有两种改变方式:字符设定和数字设定。语法:chmod who + | - | = mode 文件名/目录名参数:操作对象who可以是下述字母中的任一个或者它们的组合:u 表示“用户(user)”,即文件或目录的所有者。g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。o 表示“其他(others)用户”。a 表示“所有(all)用户”。它是系统默认值。操作符号可以是:+ 添加某个权限。- 取消某个权限。= 赋予给定权限并取消其他所有权限(如果有的话)mode可以是下述字母中的任一个或者它们的组合: r 可读。w 可写。 x可执行。或:0没有许可。1 可执行许可。2 可写许可。4 可读许可。7) chown功能说明:用于更改某个文件或目录的属主和属组。语法:chown 选项 用户或组,文件参数:R:递归地修改目录及其下面内容的所有权 。v:显示chown命令所做的操作。8) chgrp功能说明:用于改变文件的组所有权。语法:chgrp 选项 组文件参数:R:递归的改变目录和它的内容的组所有权 (即使遇到错误也继续) 。9) usermod功能说明:修改用户帐号。语法:usermod -LU-c <备注>-d <登入目录>-e <有效期限>-f <缓冲天数>-g <群组>-G <群组>-l <帐号名称>-s -u 用户帐号参数:-c 修改用户帐号的备注文字。-d 修改用户登入时的目录。-e 修改帐号的有效期限。-f 修改在密码过期后多少天即关闭该帐号。-g 修改用户所属的群组。-G 修改用户所属的附加群组。-l 修改用户帐号名称。-L 锁定用户密码,使密码无效。-s 修改用户登入后所使用的shell。-u 修改用户ID。-U 解除密码锁定。10) finger功能说明:查找并显示用户信息。finger指令会去查找,并显示指定帐号的用户相关信息,包括本地与远端主机的用户皆可,帐号名称没有大小写的差别。单独执行 finger指令,它会显示本地主机现在所有的用户的登陆信息,包括帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话。语法:finger -lmsp帐号名称.参数: -l 列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,还有计划文件和方案文件内容。-m 排除查找用户的真实姓名。-s 列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话。-p 列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容。11) id功能说明:显示用户的ID,以及所属群组的ID。id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若不指定用户名称,则显示目前用户的ID。语法:id -gGnru-help-version用户名称参数:-g或-group 显示用户所属群组的ID。-G或-groups 显示用户所属附加群组的ID。-n或-name 显示用户,所属群组或附加群组的名称。-r或-real 显示实际ID。-u或-user 显示用户ID。12) w,who,users显示目前登入系统的用户信息。who指令会列出登入帐号,使用的终端机,登入时间以及从何处登入或正在使用哪个X显示器。单独执行w会显示所有的用户以及他们正在执行的程序。13) cp功能说明:用于复制文件和目录。可以使用这个命令复制一个文件到一个指定的目的地, 或者复制任意多个文件到一个目的目录目录。语法:cp 选项 源文件或目录 目标文件或目录参数:f: 删除存在的目标文件。p:保持原始文件的所有者,组,许可,和时间表属性。r:递归地复制目录,复制任何非目录和非符号链接。14) mv功能说明:用于将文件移到目录下,或将当前文件改名。语法:mv 选项 源文件或目录 目标文件或目录参数:i:若目标文件已存在,则先询问是否要覆盖旧的文件。 f:禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。15) rm功能说明:用于删除文件或目录。语法:rm 选项 文件-参数:f:强制删除。r:指示rm将参数中列出的全部目录和子目录均递归地删除。i:进行交互式删除。16) find功能说明:用于查找文件。例 子: 典型例子find . -name ls.txtfind . -name l