ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:32.59KB ,
资源ID:16892573      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16892573.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(一Linux 的文件系统概述Word文档下载推荐.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

一Linux 的文件系统概述Word文档下载推荐.docx

1、一个很有用但常常被忽视的命令可以提供关于使用 man 本身的信息:$ man man您可以用 SPACEBAR 来浏览任意的 man 页面;UP ARROW 将向上翻滚文件。.要退出,则输入 q,!,或 CTRL-Z。用户类别 记得那句名言“所有动物一例平等但有些动物比其他动物更加平等”吗?在 Linux 世界中,根用户掌管一切。根用户可以以另一个用户名 su (源自 superuser)登录。要执行诸如添加一个新用户、打印机或文件系统之类的任务,必须作为根用户登录或者用 su 命令和根用户密码切换到超级用户。系统文件(包括控制初始化过程的系统文件)归根用户所有。虽然可能允许普通用户对它们进行

2、读操作,但出于系统安全性的原因,编辑的权利将留给根用户。BASH shell 虽然提供了其它的 shell,但 BASH (Bourne Again Shell) 是 Linux 的默认 shell。它结合了与它同名的 Bourne shell 的特性和 Korn、C 和 TCSH shell 的特性。BASH 内置的命令 history 默认记录最后输入的 500 条命令。可以通过在命令提示符下输入 history 来查看它们。要检索某个特定的命令,可以在命令提示符下按 UP ARROW 或 DOWN ARROW,或在历史列表中输入它的编号,并在编号前面加上 !,例如:$ !49您还可以通过

3、一条命令在历史列表中离位置最靠前的项目的距离来执行该命令:如果在历史列表中有 53 个事件,$ !-3 将执行事件号 51。像 UNIX/Linux 世界的其它 shell 一样,BASH 使用了特殊的环境变量来方便系统管理。 HOME,用户主目录 PATH,Linux 用来搜索您输入的命令的可执行镜像的搜索路径 HISTSIZE,系统保存的历史事件的数量 除了这些保留的关键字之外,您还可以定义您自己的环境变量。例如,Oracle 使用 ORACLE_HOME (还有其它一些变量),要使 Oracle 安装成功完成,必须在您的环境中设置这些变量。可以在提示符下临时设置变量:$HISTSIZE=

4、100或者,在 /etc/profile (需要根用户权限)中进行系统范围的永久设置,或在 .profile 中进行局部永久设置。可以通过 echo 命令,并用一个 $ 符号来访问一个环境变量的值,进而查看该值。$ echo $HOME/home/bluher可以用 env 命令来查看当前所有的环境变量。正则表达式和通配符 许多 Linux 命令使用通配符 * 和 ? 来匹配任意数量的字符或分别匹配任意的单个字符;正则模式匹配表达式利用一个句点 (.) 来匹配除“换行符”之外的任意单个字符。这两种情况下都使用方括号 ( ) 来匹配除“*”号之外的字符组。不过,* 号在各种情况下有类似但不同的意

5、义:虽然它在 shell 中将匹配一个或更多的字符,但在正则表达式中,它匹配上述字符的零个或更多的实例。一些命令(如 egrep 和 awk)使用了一组更广泛的特殊字符来进行模式匹配。文件处理命令 剖析一个文件列表 ls 命令用来查看用户有执行权限的任意目录中的文件列表,该命令有许多有趣的选项。$ ls -liah *22684 -rw-r-r- 1 bluher users 952 Dec 28 18:43 .profile19942 -rw-r-r- 1 scalish users 30 Jan 3 20:00 test2.out925 -rwxr-xr-x 1 scalish users

6、 378 Sep 2 2002 test.sh上面的列表显示 8 列: 第 1 列指示文件的 inode,因为我们使用了 -i 选项。剩下的列通过 -l 选项来进行正常显示。 第 2 列显示文件类型和文件访问权限。 第3 列显示链接数,包括目录。 第 4 和第 5 列显示文件的所有者和组所有者。这里,所有者 bluher 属于组 users。 第 6 列显示文件大小(单位为所显示的单位,而不是默认的字节数,因为我们使用了 -h 选项。 第 7 列显示日期(它看起来像是三列),包括月、日和年,以及当天的时间。 第 8 列显示文件名。在选项列表中使用 -a 将使列表中包含隐藏文件(如 .profi

7、le)的列表。处理文件 可以移动 (mv)、复制 (cp) 或删除 (rm) 文件和目录。明智地使用 -i 选项,以获得确认通常是个不错的主意。$ cp -i ls.out ls2.outcp:overwrite ls2.out?mv 命令允许使用 -b 选项,这将在移动文件之前作一个备份拷贝。rm 和 cp 接受功能强大但却危险的 -r 选项,它将在一个目录和它的文件上递归执行。$ rm -ir Testrm:descend into directory Test y可以用 mkdir 来创建目录,用 rmdir 来删除目录。不过,因为不能用 rmdir 来删除包含文件的目录,所以使用 rm

8、 加 -r 选项通常要更方便些。出于安全的原因,所有的文件都有所有权和保护。文件访问权限(或文件模式)包含之前提到的相同的 10 个字符: 第一个字符指示文件类型。最常见的是 - 代表文件,d 代表目录,而 l 代表链接。 接下来的 9 个字符是三种用户类别的访问权限:文件所有者(字符 2-4),用户组 (5-7) 和其它 (8-10),其中 r 表示读权限,w 表示写权限,x 指示一个文件上的执行权限。破折号 - 如果出现在这九个位置的任意一个,则指示这个操作对该类别的用户禁止。可以使用 chmod 命令通过字符符号或二进制掩码来设置访问权限。要使用二进制掩码,必须将三个权限组的字符表示转换

9、成二进制格式,然后转换成八进制格式:用户类别:所有者用户组其它字符表示:rwxr-xr-二进制表示:111101100八进制表示:754将写权限赋予用户组,您可以使用:chmod g+w test.sh or chmod 774 test.sh用 umask 命令,在 /etc/init.dev 文件中进行系统范围内的、或在 .profile 文件中进行的本地的文件权限默认设置。这个命令指示用 777 减去这个数字来获取默认的权限:$ umask 022这将为用户创建的所有新文件生成一个默认的文件权限 755。可以用 chown 来修改文件的所有权:$ chown bluher ls.out这

10、里,bluher 是新的文件所有者。类似地,组成员资格将按以下方式修改:$ chgrp devgrp ls.out这里,devgrp 是新的用户组。ls 不提供哪些文件是文本的,哪些文件是二进制的的信息。要了解这个信息,您可以使用 file * 命令。重命名文件 赋予一个文件多个名字的两种流行的方法是利用链接和 alias 命令。Alias 可以用来为一个更长的命令重新起一个更方便的名字:$ alias ll=ls -l$ ll注意单引号的使用,这使得 BASH 将该项目传递给别名,而不是自己估计它。别名还可用作较长的路径名的缩写:$ alias jdev9i=/jdev9i/jdev/bin

11、/jdev关于 alias 和它的反命令 unalias 的更多信息,请查看 BASH 的 man 页面的 SHELL BUILTIN COMMANDS 子部分。在最后一个例子中,定义了一个环境变量来实现相同的结果。$ export JDEV_HOME=/jdev9i/jdev/bin/jdev$ echo $JDEV_HOME/jdev9i/jdev/bin/jdev$ $JDEV_HOME链接允许几个文件名引用单个源文件,格式如下:ln -s fileyouwanttolinkto newname单独的 ln 命令创建到文件的一个硬链接,而使用 -s 选项来创建一个符号链接。简而言之,一个

12、硬链接几乎不能和原始的文件区分开(除了这两个文件的 inode 将相同之外)。符号链接较容易区分,因为它们出现在一个长的文件列表中,并用 - 来指示源文件,l 指示文件类型。查看和查找文件 文件过滤器 用来读取文件内容和在文件内容上执行操作的命令有时被称为 滤器。sed 和 awk 命令是两个滤波器的例子,因为在以前的 OTN 文章中有它们详细的讨论,在这里将略过。诸如 cat、 more 和 less 之类的命令让您能够从命令行查看一个文本文件的内容,而无需调用编辑器。Cat 是 concatenate 的缩写,它将默认地在标准输出(显示屏)上显示文件内容。和 cat 一起提供的最有趣的选项

13、之一是 -n 选项,它用编号的输出行来显示文件内容。$ cat -n test.out1 This is a test.因为 cat 一次性输出文件中的所有行,所以您可能更喜欢用 more 和 less,因为它们都一次输出一屏的文件内容。Less 是 more 的一个增强的版本,它允许用来自 vi 文本编辑器的关键命令来增强文件查看。例如,d 向前翻滚、b 向后翻滚 N 行(如果 N 是在 d 或 b 之前指定的)。为 N 输入的值成为随后的 d 命令的默认值。man 页面实用工具使用 less 来显示使用说明的内容。重定向和管道 重定向允许将命令输出重定向到文件中,而不是标准输出,或者类似地

14、,也可重定向输入。重定向的标准符号 创建一个新的文件。 符号将输出添加到一个现有的文件中:$ more test2.outAnother test. $ cat test.out test2.out$ cat test2.outAnother test.This is a test.到文件的标准输入可以用 符号来重定向:$ cat 和 2 来重定向和添加,格式如下:$ command 2 name_of_error_file要避免无意地覆盖一个现有的文件,使用 BASH 内置的命令集:$ set -o noclobber可以在命令和输出文件之间用 符号来重载这个特性。要关闭这个特性,用 +o

15、代替 -o。重定向在一个命令和文件之间、或文件和文件之间工作。重定向语句的一项必须是一个文件。管道使用 |符号,并且在命令之间工作。例如,您可以用以下方式将一个命令的输出直接发送到打印机上:$ ls -l * | lpr可以用以下方式快速地找到历史列表中的一个命令:$ history | grep cat更多的滤波器 Grep、fgrep 和 egrep 都显示匹配一种模式的行。所有这三个命令都在文件中搜索指定的模式,如果您想不起来一个所需文件的名称,这将非常有用。基本格式是:grep options PATTERN FILE.$ grep -r Subject nsmail CTRL-Z 将

16、终止上述或其它任何命令。grep 的最有用的选项可能是 -s。如果您以除根用户之外的任何身份搜索系统文件,那么对于每一个您没有访问权限的文件,都将产生错误消息。这个命令禁止那些消息。Fgrep(也以 grep -F 调用)只查找固定的字符串,而不是 grep 接收的正则表达式。而 egrep 接收包含更大范围的特殊字符(如 “|”,它指示条件 OR 运算符)的模式。$ egrep Subject|mailto *查找文件 find 命令的 GNU 版本非常强大、灵活并且比 UNIX 系统上存在的经典版本更具包容性。它对于涉及到目录结构的任务非常有用,包括在文件上查找和执行命令。find 命令的

17、基本格式是:$ find startdirectory options matchcriteria actionoptions如果您知道文件的名称、或者甚至名称的一部分,但不知道它所处的目录,您可以这么做:$ find .-name test*./test./jdevhome/mywork/EmpWS/EmpBC4J/test与经典的 UNIX 系统不同,在 Linux 中不需要在末尾添加 -print 操作,因为如果没有指定其它的操作选项,就将假定执行这个操作。在目录起始位置上的一个点 ( . ) 将使 find 在您的工作目录中开始搜索。两个点, .,在父目录中开始搜索。您可以在任意目录下

18、开始搜索。注意,您可以使用通配符作为搜索准则的一部分(只要用单引号将整个项目括起来)。 -print./test.out./test2.out显示拥有 .out 扩展名的一系列文件:$ find /home -name *.out不过记住,除非您是作为超级用户运行这个命令,否则您将可能得到许多的 Permission denied 错误消息。最强大的搜索工具之一是和 grep 一起使用的 -exec 操作:*.html -exec grep mailto:foo ;这里,我们让 find 命令在当前目录中开始执行, 接下来的步骤 下载 Oracle Database 10g for Linux

19、 访问并将 Linux 技术中心添加到收藏夹 .,查找一个 html 文件,*.html,并在当前文件上执行 (-exec) grep 命令,。当使用 -exec 操作时,需要一个分号 ;,这是用来在使用 find 命令时执行其它一些操作。需要反斜线 和引号来确保这些项目通过 BASH,以使它们由命令而不是 shell 来进行解释。立即掌握 Linux 文件命令 在 Linux 中提供了许多有用的命令和利用它们的强大的方法,在此无法一一说明。此外,完成许多任务通常都存在多种方法。我们已经看到了一些最常用和最有启发意义的 Linux 文件命令。掌握这些基础但却关键的工具将使您的 Linux 学习

20、走上快车道。利用您手头上的 man 页面,和试验的积极性,您现在拥有了足够的信息来开始探索 Linux 文件操作的力量。在我的下一篇文章中,我将提供 Linux 系统命令的一个类似的说明。一、 二、 Linux 的文件系统概述 三、 四、 Linux 的一个最重要特点就是它支持许多不同的文件系统。这使Linux 非常灵活,能够与许多其他的操作系统共存。到目前为止,Linux 共支持1 5 种文件系统:ext、ext2xia、minix、umsdos、msdos、vfat、proc、smb、ncp、iso9660、sysv、hpfs、affs和ufs。无疑随着时间的推移,Linux支持的文件系统

21、数还会增加。 正如其它的UNIX操作系统 一样,Linux系统可用的独立文件系统不是通过设备标识来访问的,而是把它们链接到一个单独的树形层次结构中。该树形层次结构把文件系统表示成一个整个的独立实体。Linux 以装配的形式把每个新的文件系统加入到这个单独的文件系统树中。无论什么类型的文件系统,都被装配到某个目录上,由被装配的文件系统的文件覆盖该目录原有的内容。该个目录被称为装配目录或装配点。在文件系统卸载时,装配目录中原有的文件才会显露出来。 在硬盘初始化时,硬盘上的分区结构把物理硬盘化分成若干个逻辑分区。每个分区可以包含一个像EXT2那样的一个独立的文件系统。文件系统用目录将文件按照逻辑层次

22、结构组织起来。目录是记录在物理设备块中的软链接信息。包含文件系统的设备被称为块设备。例如IDE硬盘分区/dev/hda1-系统中第一个IDE硬盘驱动器的第一个分区,就是一个块设备。 Linux文件系统把这些块设备当作简单的线性块的集合,它不知道也不在意下层物理硬盘的实际结构。每个块设备驱动程序的任务就是把系统读该设备上某一块的请求映射成对本设备有意义的术语,如该块所在的磁道、扇区或柱面号。无论文件系统存在在何种设备上,它都可以按相同的方式进行操作。而且在使用文件系统时,由不同的硬件控制器控制的不同物理介质上的不同文件系统对系统用户是透明的。文件系统既可能在本地系统上的,也可能是通过网络链接装配

23、的远程文件系统。 文件是数据的集合,一个文件系统不仅包括该文件系统中所有文件的数据,还包括文件系统的结构信息。它记录下所有Linux用户和进程当作文件看待的信息、目录软链接信息以及文件保护信息等等。而且文件系统必需保证这些信息的安全性,因为操作系统的基本完整性就取决于它的文件系统。没有人会使用一个随时会丢失数据和文件的操作系统。 由于现代的数据库系统需要更大的文件长度,在1993年几乎是为LINUX度身定做的扩展文件系统-EXT2诞生了。在EXT文件系统加入到Linux中时,Linux系统发生了一个重大的发展。真实文件系统从操作系统中分离出来,而由一个接口层提供的真实文件系统的系统服务被称为虚

24、拟文件系统(VFS)。VFS使得Linux可以支持许多种不同的文件系统,而这些文件系统都向VFS提供相同的软件接口。由于所有的Linux文件系统的细节都是由软件进行转换的,所有对Linux系统的其余部分和在系统中运行的程序来说,这些文件系统是完全相同的。Linux的虚拟文件系统层使得你可以同时透明地装配很多不同的文件系统。 实现Linux虚拟文件系统要使得它对文件的访问要尽可能地快、尽可能地高效,而且一定要确保文件和数据的正确性。这两个要求彼此是不对称的。在每个文件系统被装配使用后,Linux的VFS会在内存中缓存来自于这些文件系统的信息。因此由于对文件或目录的创建、写、删除操作而改变了Lin

25、ux缓存中的数据时,对文件系统的更新操作要格外小心。如果你能在运行的内核中看到文件系统的数据结构,就会看到那些文件系统读/写的数据块。代表被访问的文件和目录的数据结构可能被创建或删除,而设备驱动程序不停地工作,读取数据、保存数据。这些缓存中最重要的一个是缓冲区缓存,它把独立文件系统访问下层块设备的方法集成起来。每个被访问的块都被放到缓冲区缓存中,并根据它们的状态放在相应的队列中。缓冲区缓存不仅缓存数据缓冲区,它还有助于管理块设备驱动程序的异步接口。二、LINUX文件系统代码的位置 EXT2文件系统的代码都在fs/ext2/目录下,其数据结构定义在include/linux/ex2_fs.h、e

26、xt2_fs_i.h和ext2_fs_sb.h中;虚文件系统(Virtual File System)数据结构在include/linux/fs.h中,代码在fs/*中;缓冲区缓存代码在fs/buffer.c中。三、与文件的输入/输出有关的函数 3.1 引言 本节开始讨论LINUX系统,先说明常用的文件I/O函数:例如打开文件、读文件、写文件等等。 大多数LINUX文件I/O只需用到5个函数:open、read、write、lseek 以及close。然后说明不同缓存器长度对read 和write函数的影响。本节所说明的函数经常被称之为不带缓存的I/O(unbuffered I/O)。不带缓存

27、指的是每个read 和write都调用内核中的一个系统调用。这些不带缓存的I/O函数不是ANSI C 的组成部分,但是是POSIX.1和XPG3的组成部分。只要涉及在多个进程间共享资源,原子操作的概念就变成非常重要。我们将通过文件I/O和传送给open函数的参数来讨论此概念。并进一步讨论在多个进程间如何共享文件,并涉及内核的有关数据结构。在讨论了这些特征后,将说明dup、fcntl和ioctl函数。3.2 文件描述符 对于内核而言,所有打开文件都由文件描述符引用。文件描述符是一个非负整数。当打开一个现存文件或创建一个新文件时,内核向进程返回一个文件描述符。当读、写一个文件时,用open或creat返回的文件描述符标识该文件,将其作为参数传送给read或write。按照惯例,UNIX shell使文件描述符0与进程的标准输入相结合,文件描述符1与标准输出相结合,文件描述符2与标准出错输出相结合。这是UNIX shell以及很多应用程序使用的惯例,而与内核无关。尽管如此,如果不遵照这种惯例,那么很多LINUX应用程序就不能工作。在POSIX.1应用程序中,幻数0、1、2应被代换成符号常

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1