1、第5章 目录和文件的操作 内容简介本章主要介绍目录和文件的概念以及操作。在Linux系统中,掌握目录和文件的基本概念,理解文件的组织结构,这对于从整体上了解Linux系统的概貌,研究Linux系统的细节,进而有效地使用Linux系统是很有帮助的。目录和文件命令是Linux系统中重要的命令之一,种类不但比DOS系统多,而且功能也比DOS系统强大。 学习内容目录和文件的概念;目录和文件的访问权限;目录和文件的操作。 学习重点目录和文件访问权限的设置;目录和的文件的操作。 学习目标了解目录和文件的概念;熟练地设置目录和文件的访问权限;熟练掌握目录和文件的操作。 学习建议在本章的学习中,要注意与DOS
2、命令的区别,要把学习的重点放在操作上,通过操作掌握命令的应用。另外,Linux系统中的目录和文件有自己独特的概念,要与DOS系统作区别。,5.1 目录的基本概念在计算机系统中存有大量的文件,如何有效的组织与管理它们,并为用户提供一个使用方便的接口是文件系统的一大任务。Linux系统以目录的方式来组织和管理系统中的所有文件。 【案例简介】通过操作显示目录命令,观察Linux系统的目录树结构。在系统终端的提示符后输入命令ls -aF。 【操作步骤】 (1)启动系统终端,输入如下命令:ls -aF (2)命令执行结果如下所示所示:rootlocalhost # cd rootlocalhost /#
3、 ls -aF./ boot/ initrd/ media/ proc/ srv/ usr/ dev/ lib/ mnt/ root/ sys/ var/.autofsck etc/ lost+found/ mycomputer/ sbin/ tftpboot/bin/ home/ .mcop/ opt/ selinux/ tmp/rootlocalhost /# 【案例小结】在ls 命令后加上参数-a,表示显示所有的目录和文件,包括隐含文件。加-F表示显示该文件的类型。,【知识要点】5.1.1 树型目录结构Linux系统是采用树型目录结构来管理文件的。也就是说,整个文件系统有一个“根”(ro
4、ot),然后在根上分“杈”(directory),任何一个分杈上都可以再分杈,杈上也可以长出“叶子”。“根”和“杈”在Linux系统中被称为“目录”或“文件夹”。而“叶子”则是一个个的文件。案例运行结果所展示的就是树型目录结构的全景,这种结构的文件系统效率比较高。 Linux系统中,目录也是文件的一种形式。通过目录将系统中所有的文件分级、分层组织在一起,就形成了Linux文件系统的树型层次结构。以根目录为起点,所有其它的目录都由根目录派生而来。用户可以浏览整个系统,可以进入任何一个已授权进入的目录,访问那里的文件。树型目录结构提供了管理文件的一个方便途径。每个目录里面都包含文件。用户可以为自己
5、的文件创建自己的目录,也可以把一个目录下的文件移动或复制到另一目录下。此外,不但能够移动整个目录,而且还能和系统中的其它用户共享目录和文件。也就是说。用户能够方便地从一个目录切换到另一个目录,可以设置目录和文件的管理权限,以便允许或拒绝其它人进行访问。文件目录结构的相互关联性使分享数据变得十分容易,几个用户可以访问同一个文件,因为Linux系统允许用户设置文件的共享程度。 需要说明的是,根目录(系统目录)是Linux系统中的特殊目录。Linux是一个多用户系统,操作系统本身的驻留程序存放在以根目录开始的专用目录中。如图5.1所示的是Linux系统树型目录结构。,Linux系统的树型目录结构,从
6、图 5.1可以看出,每个用户都有自己的个人主目录,用来存放属于自己的个人文件。用户的个人目录一般放在系统的目录/home下,并以目录所有者的名字来命名。例如,yang的个人目录是/home/yang,属于它的所有文件,如程序、文档、数据文件等都存放在该目录中。 5.1.2 根目录和子目录实际上,各个目录结点“之下”都会有一些文件和子目录。并且,系统在建立每一个目录时,都会自动为它设定两个目录文件,一个是“.”,代表该目录自己,另一个是“”,代表该目录的父目录,对于根目录,“.”和“”都代表其自己。 从图5.1中还可以看到, 在Linux树型目录结构中,根目录的第一级子目录是:bin、boot、
7、dev、etc、home、lib、1ostfound、mnt、proc、root、sbin、temp、usr、var等。,下面介绍这些主要的子目录。1. /binbin是二进制(binaries)的缩写。许多基本的系统程序都驻留在/bin目录中,用下列命令可以列出该目录下的文件:ls F /bin其中包含许多我们所熟悉的命令,如cp、ls和mv等。在某种意义上说,这些命令都是程序。例如,键入cp命令时,系统就运行程序/bin/cp。2. / boot该目录用于存放供lilo使用的一些文件。3. /dev用1s -F命令可以列出/dev目录中的内容。该目录下是一些称为设备驱动程序的特殊文件,用于
8、访问系统资源或设备,如软盘、硬盘、CD-ROM、调制解调器、系统内存等。有了这些文件,用户可以像访问普通文件一样方便地访问系统中的物理设备。例如,当用户要从一个文件中读数据时,可以通过调用/dev/mouse文件从鼠标器读取输入信息。在/dev目录下,各种设备所对应的特殊文件以一定的规则命名。例如,/dev/fd0文件指第一个软驱,/dev/fdl指第二个软驱,/dev/hda指第一个硬盘,而/dev/hdal指的是/dev/hda的第一个分区,如此类推。4. /etc包含系统管理所需要的大量配置文件和子目录,例如口令文件/etc/passwd、系统初始化脚本文件/etc/rc等。该目录是系统
9、中最重要的目录之一。,5. /home包含所有用户的个人主目录。通常,用户的个人主目录以它的名字来命名,例如/home/yang是用户yang的个人目录。在新安装的Linux系统中,/home目录中可能没有任何用户。6. /lib该目录包含动态链接共享库的文件映象,这些文件为众多程序提供了共享代码。使用库文件,可以缩小可执行文件的尺寸,节省系统空间。7. /lost+found这是一个空目录,只有当文件系统发生故障时,才用来存放找不到正确存储位置的文件。8. /mnt用户可以在该目录下临时挂装其它文件系统,如在使用CD-ROM时,就要把CD-ROM文件挂装在该目录下。9. /proc这是Lin
10、ux系统提供的一个“虚拟文件系统”,其中的文件都存放在内存中,而不是存放在磁盘中。它们指向在系统中正在运行的各个进程,以便用户可以随时访问程序的运行信息。10 /root超级用户的主目录。11. /sbin专门用来存储系统管理员使用的可执行文件,如mount、fack等等。,12. /tmp程序执行时会产生一些临时信息,系统把这些临时信息存放在一个暂时文件中,这个临时文件就放在/tmp目录下。13. /usr这是一个非常重要的目录,它包括许多子目录。有些子目录用来存放系统的配置文件和重要的大型软件包程序。前面讨论到的各目录对系统的操作来说是最基本的,而在/usr中许多内容是可以任选的。如果没有
11、/usr目录,系统中将只有cp、1s等程序,这样的系统会非常难用。14. /var该目录用来容纳大小经常发生变化或打算进一步扩充的目录或文件。例如,文件/var/adm中包含着系统管理员感兴趣的内容,特别是系统日志,它记录了系统的所有错误或问题。5.1.3 工作目录、用户主目录与路径 如前所述,目录是Linux系统中的一种特殊文件。为更好地使用目录,现介绍有关目录的一些基本概念。 1. 工作目录与用户主目录 从逻辑上讲,用户在登录到Linux系统之后,每时每刻都处在某个目录之中,此目录被称为工作目录或当前目录(Working Directory),工作目录是可以随时改变的。用户初始登录到系统中
12、时,就进入其主目录(Home Directory),这时的主目录就成为其工作目录。工作目录用“.”表示,其父目录用“”表示。,用户主目录是系统管理员增加用户时建立起来的(以后也可以改变),每个用户都有自己的主目录,不同用户的主目录一般互不相同。目录层次建立好之后,用户就可以把有关的文件放到相应的目录中,从而实现对文件的组织。 2. 路径 (Path) 顾名思义,路径是指从树型目录中的某个目录层次到某个文件的一条道路。此路径的主要构成是目录名称,中间用“/”分开。任一文件在文件系统中的位置都是由相应的路径决定的。 用户在对文件进行访问时,要给出文件所在的路径。 路径又分相对路径和绝对路径。 绝对
13、路径是指从“根”开始的路径,也称为完全路径;相对路径是从用户工作目录开始的路径。 应该注意的是,在树型目录结构中到某一确定文件的绝对路径和相对路径均只有一条。绝对路径是确定不变的,而相对路径则随着用户工作目录的变化而不断变化。这一概念清晰了,对于以后使用某些命令如cp和tar等大有好处。 用户要访问一个文件时,可以通过路径名来引用。并且可以根据要访问的文件与用户工作目录的相对位置来引用它,而不需要列出这个文件的完整的路径名。,【技能训练】 训练内容 显示各子目录的详细信息。 训练步骤 (1)启动系统终端,输入如下命令:ls -al (2)命令执行结果如下所示:rootlocalhost /#
14、ls -al总用量 288drwxr-xr-x 25 root root 4096 2月 19 13:01 .drwxr-xr-x 25 root root 4096 2月 19 13:01 -rw-r-r- 1 root root 0 2月 19 13:01 .autofsckdrwxr-xr-x 2 root root 4096 2月 2 14:49 bindrwxr-xr-x 3 root root 4096 2月 2 14:53 boot.,5.2 文件系统的基本概念Linux系统中的文件概念和使用方式都沿袭了UNIX操作系统,而DOS系统又有很多概念是从UNIX中学来的,因而可以借鉴
15、UNIX和DOS操作系统的一些概念来理解Linux系统中的目录和文件的概念。Linux系统中的一个显著特点,就是能够支持相当多的文件系统。 【案例简介】通过操作文件链接的命令,学习文件系统的概念。1.用命令cat创建一个名为lianjie的文件,并用ls命令确认。2. 用命令ls -li检查lianjie文件索引点号和链接数。3. 用命令ln为文件lianjie创建名为lianjie1的链接,并确认。4.用命令ls -li检查lianjie1文件索引点号和链接数。 【操作步骤】 1 (1)启动系统终端,分别输入如下命令:cat lianjiels (2)命令执行结果如下所示:rootlocal
16、host # cat lianjie12334 rootlocalhost # lsanaconda-ks.cfg install.log jincheng mulu shuchuDesktop install.log.syslog lianjie Pictures 抓图1.jpg,2 (1)启动系统终端,输入如下命令:ls -li lianjie (2)命令执行结果如下所示:rootlocalhost # ls -li lianjie192133 -rw-r-r- 1 root root 5 2月 7 19:34 lianjie 3 (1)启动系统终端,输入如下命令:ln lianjie l
17、ianjie1 (2)命令执行结果如下所示:rootlocalhost # ln lianjie lianjie1rootlocalhost # lsanaconda-ks.cfg install.log jincheng lianjie1 Pictures 抓图1.jpgDesktop install.log.syslog lianjie mulu shuchu 4 (1)启动系统终端,输入如下命令:ls -li lianjie1 (2)命令执行结果如下所示:rootlocalhost # ls -li lianjie1192133 -rw-r-r- 2 root root 5 2月 7 1
18、9:34 lianjie1,5.2.1 文件系统的组成如果从文件系统所包含的内容来看,Linux系统中的文件有如下三种类型: 1. 普通文件这是用户经常面对的文件,是字节的集合,系统没有在文件中加入特定的结构. 它又分为文本文件和二进制文件。(1)文本文件:这类文件以文本的ASCII码形式存储在计算机中。它是以“行”为基本结构的一种信息组织和存储方式。 (2)二进制文件:这类文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们,只有通过相应的软件才能将其显示出来。二进制文件一般是可执行程序、图形、图像、声音等等。 2. 目录文件目录文件主要是用于管理和组织系统中的大量文件。目录文件好
19、比一个容器,它存储一组相关文件的位置、大小等与文件有关的信息。目录文件往往简称为目录。 3 特殊文件这是Linux(UNIX)系统的一大特色。Linux系统把每一个I/O设备都看成一个文件,与普通文件一样处理,这样可以使文件与设备的操作尽可能统一。从用户的角度来看,对I/O设备的使用和一般文件的使用一样,不必了解I/O设备的细节。设备文件可以细分为块设备文件和字符设备文件。前者的存取是以一个个字符块为单位的,后者则是以单个字符为单位的。,5.2.2 文件的链接为方便地使用和管理文件,给文件起名字是有效的方法。Linux系统为每一个文件创建了一个链接文件以表征该文件的另一个名字,链接文件中不存储
20、原来文件的数据,但通过链接文件可以引用原文件的数据。对于这个链接文件名,可以为它指定不同的访问权限,以控制信息的共享和安全性的问题。文件的链接是Linux文件管理的重要概念。由于DOS系统过于简单,不可能有清晰的文件链接的概念。到了Windows的年代,产生了广为使用的快捷方式。到Windows NT的时候,微软逐步加入了对硬链接的支持。但是,它们和Linux系统中文件链接的概念还是有一定的差别。链接文件又分为硬链接和软链接。 1. 硬链接在磁盘上有一个数组,它的每一个元素称为一个索引结点(inode),保存着某一个文件的管理信息(如该文件的创建时间、文件的所有者、文件数据块在磁盘分区的存储位
21、置等等)。同时,系统为存储在磁盘分区中的每一个文件分配一个号码,称为索引结点号,用来索引上述数组所保存的对应文件记录。一个文件的索引结点号与该文件的名称同时保存在目录中,形成一张联系文件名及文件索引结点号的表。在目录中,每一对文件名和索引结点号称为一个链接(link)。因此,同一个索引结点号可以与多个文件名建立链接,即允许一个文件拥有多个有效的路径名和文件名,如图5.2所示。,文件的硬链接,这一功能十分有用,例如,用户可以为重要的文件或目录建立多个链接,以防误删除造成严重后果。因为一个文件(或目录)的索引结点有一个以上的链接,删除操作只能破坏其中之一的索引点,而其它索引结点本身的其它链接仍然不
22、受影响。当然,如果对只有一个链接的文件发出删除命令,索引结点、文件的数据块与目录的链接会被释放,文件也真正被删除。在案例中执行的结果192133 -rw-r-r- 1 root root 5 2月 7 19:34 lianjie 中,其中的192133就是文件的索引结点号,而1则代表只有个链接文件。,在另外一条案例执行结果 192133 -rw-r-r- 2 root root 5 2月 7 19:34 lianjie1中,可以看到已经有了2个链接文件。现在,访问lianjie或lianjie1都是访问同一个文件。如果用户对lianjie进行修改,那么lianjie1也同样改变。从这个角度来看
23、,lianjie和lianjie1都是同一个文件,如果用命令rm删除文件时,实际上只删除了一个文件链接。例如,删除了lianjie文件, 而文件lianjie1仍然存在。 一个文件只有在没有任何文件链接时才被真正删除。通常情况下,每个文件只有一个链接,所以运行rm命令就可以删除。但是,如果一个文件有多个链接的话,要删除这个文件,就必须删除该文件的所有链接。然而,硬链接有两个主要的局限:第一,只能给文件建立硬链接,而不能给目录建立硬链接。即使是系统给目录创建的硬链接,也不允许任何用户另外创建自己的硬链接;第二,不能跨文件系统。如 / 和 /usr 存在于不同的文件系统,就不能创建从 /usr/b
24、in/bash 到 /bin/bash 的链接。 2. 软链接从上面的讨论可知,如果要在不同文件系统的路径名之间建立链接,就不能使用硬链接共享索引结点的方式,而要采用软链接(symbolic link)。,所谓软链接,是一种在DOS系统下不存在的特殊的文本文件,其中包含着它提供链接的另一个文件的路径名,实际的数据信息则包含在另一个文件中。软链接可以看作指向一个文件或目录的指针,用来替代它所指向的文件或目录,与Windows 系列中的快捷方式相似。例如,用软链接/usr/Xll指向/usr/X11R6,/dev/modem指向/dev/cua0或/dev/cua1。执行命令时,如果涉及软链接,则
25、沿链接去访问包含实际数据的文件。实际上,软链接比硬链接更常用到。软链接是一种专门的文件类型,在这种文件类型中,链接通过名称引用另一个文件,而不是直接引用索引节点。软链接不阻止文件被删除;如果目标文件消失,那么软链接仅仅是不可用,或“被破坏”。要建立软链接,主要增加一个参数 -s就可以了。例如,对案例中的lianjie建立软链接lianjie2,可以输入如下的命令:rootlocalhost # ln -s lianjie2anaconda-ks.cfg ext9 jineng2 while1benfen for1 jinneng -while xun_ji1bin for1 lianjie2
26、xun_ji1从命令执行的结果中可以看到,lianjie2的软链接已经建立,而没有索引结点的。总之,软链接不仅可以用于单一的文件系统内部,也可用于多个文件系统之间,而索引结点链接只能用在一个文件系统的内部。因此,在两个文件之间建立链接,如果要求保证可移植性,应尽量使用软链接。,3建立文件链接命令ln从上面的叙述中可以看到,建立文件链接是通过命令ln来完成。命令格式ln 选项 源文件 目的文件,【技能训练】 训练内容1. 在当前目录下,创建一个文件名为“exl”的文件,并确认其链接数,输入的内容如下: 12342. 建立文件ex1的链接文件ex2,并确认它们的索引结点、链接数和内容是否相同。3.
27、 向文件 exl追加“56789”的内容,并确认文件ex1和ex2的内容是否相同。4. 删除文件 exl,确认其索引结点、链接数和内容。 训练步骤 1 (1)启动系统终端,分别输入如下命令:cat ex1ls -il ex1 (2)命令执行结果如下所示:rootlocalhost # cat ex11234rootlocalhost # ls -il ex1290828 -rw-r-r- 1 root root 5 2月 19 16:13 ex1,2 (1)启动系统终端,分别输入如下命令:ln -il ex1 ex2cat ex1 ex2 (2)命令执行结果如下所示:rootlocalhost
28、 # ls -il ex1 ex2290828 -rw-r-r- 2 root root 5 2月 19 16:13 ex1290828 -rw-r-r- 2 root root 5 2月 19 16:13 ex2rootlocalhost # cat ex1 ex212341234 3 (1)启动系统终端,分别输入如下命令:cat ex1cat ex1 ex2 (2)命令执行结果如下所示:rootlocalhost # cat ex156789rootlocalhost # cat ex1 ex21234,56789 123456789 4. (1)启动系统终端,分别输入如下命令:rm ex
29、1ls -il ex2cat ex2 (2)命令执行结果如下所示:rootlocalhost # rm ex1rm:是否删除一般文件ex1? yrootlocalhost # ls -il ex2290828 -rw-r-r- 1 root root 11 2月 19 16:18 ex2rootlocalhost # cat ex2123456789,5.3 目录和文件的访问权限 Linu系统给各个目录和文件都设置了一定的访问权限,以便用户保护自己的目录和文件不受损害。这些访问权限并不是不可改变的,它可以通过系统命令chmod来改变,但只能在相应的访问权限下进行。 【案例简介】通过运行几个有关
30、访问权限的命令,学习目录和文件访问权限的设置。1. 在/home目录下,用useradd命令创建一个quanxian的用户。2.用ls -dl命令确认quanxian用户的权限。3. 用chmod a+r+w命令把权限修改成向所有人开放读和写,并用命令ls -l确认。4. 用命令chmod 755把权限修改成向所有人开放读和写,并用命令ls -l确认。 【操作步骤】1(1)启动系统终端,输入如下命令:useradd quanxian (2)命令执行结果如下所示:rootlocalhost # useradd quanxian,2(1)启动系统终端,输入如下命令:ls -dl /home/qua
31、nxian (2)命令执行结果如下所示:rootlocalhost # ls -dl /home/quanxiandrwx- 10 quanxian quanxian 4096 2月 7 20:02 /home/quanxian3(1)启动系统终端,分别输入如下命令:chmod a+r+w /home/quanxianls -l /home/quanxian(2)命令执行结果如下所示:rootlocalhost # chmod a+r+w /home/quanxianrootlocalhost # ls -l /home/quanxiandrwxr-xr-x 3 quanxian quanxi
32、an 4096 2月 7 20:02 Desktop,4 (1)启动系统终端,分别输入如下命令:chmod 755 /home/quanxianls -l /home/quanxian (2)命令执行结果如下所示:rootlocalhost # chmod 755 /home/quanxianrootlocalhost # ls -l /home/quanxiandrwxr-xr-x 3 quanxian quanxian 4096 2月 7 20:02 Desktoprootlocalhost # 【案例小结】 命令chmod 是用于改变访问权限的。通过不同的选项组合,就可以赋予不同的权限。
33、,5.3.1 目录和文件的三种用户类型对于一个文件(目录也是一种特殊的文件)来说,文件的访问权限限制了不同用户对文件进行不同的读、写、执行权利。在Linux操作系统中,用户可分为3类:1属主:即目录和文件的拥有者。谁建立了目录和文件,谁就对这个目录和文件拥有绝对的权利。只有超级用户(即系统管理员)和属主才能改变目录和文件的访问权限。当然,目录和文件的属主也是可变的,但只有超级用户才有权限改变。2工作组:即属主所在的工作组。工作组内的用户都能对文件进行读、写和执行。此时,这些文件的用户就不仅仅是属主,而是包括本工作组内的所有用户。3一般用户:即每个在系统中注册和操作的人。有些无关紧要的文件或者大
34、家共享的文件,可以给每一个用户使用。 5.3.2 目录和文件的三种访问权限由于目录和文件的用户不同,所以不同用户所拥有的权限也不尽相同。目录和文件对每个用户的许可权限也不同。对目录和文件来说,用户所拥有的许可权限共有三种:读许可权限、写许可权限和执行许可权限,统称为访问权。1读许可权限:对于文件来说,可以查看文件的内容;对于目录来说,允许列出目录的名称并能从该目录中复制文件。,2写许可权限:对于文件来说,就是指可以改变文件的内容;对于目录来说,就是指允许改变目录的名称、建立目录、删除目录、把别的目录的文件复制到本目录下等。3执行许可权限:对于文件来说,可以像运行一个程序那样运行文件,文件名就是
35、命令名;对于目录来说,允许使用cd命令进入本目录并把该目录当成当前的工作目录。由此可以看出,3种用户类型,每种用户又有3种不同的访问权限,所以文件的访问权限应该有9种。在Linux操作系统中,采用和UNIX操作系统一样的表达方法,通常把这9种访问权限的顺序排列如图5.3所示。,用户与权限,各个字母表示的意义如下:r 表示用户对于该目录和文件有读许可权限。w 表示用户对于该目录和文件有写许可权限。x 表示用户对于该目录和文件有执行许可权限。,通常,这9种访问权限出现在ls命令 -l参数执行后的长列表格式中。例如,上面的案例运行结果中,drwxr-xr-x 3 quanxian quanxian
36、4096 2月 7 20:02 Desktop访问权限位于最左边的域。在这个域中,共有10位字母。除了这9位访问权限之外,第一位用于表示文件的类型。下面列出不同的文件类型所使用的不同字符:- 普通文件。D 小目录文件。 块设备文件。c 字符设备文件。1 符号链。P 管道特别文件。在文件访问权限字段中,除了r,w,x之外,有时还出现其它一些字符。例如,在属主或工作组中的x位置上出现s。这个s主要是针对程序员和系统管理员的一种特殊类型的执行权限。从一般用户的观点来看,s和x没什么差别。除s之外,还可以在r,w,x出现的位置上现1 (locked加锁),这意味着该文件在被访问时被加锁,从而使其它用户
37、不能访问该文件。,5.3.3 目录和文件三种访问权限的改变在Linux系统中,当目录和文件一旦被建立时,它的访问权限就被确定了。例如,某属主建立了文件,则文件的访问权限是-rwr-r- -;而目录的访问权限是drwxr-xr-x,这两个访问权限是系统的默认值给出的。当然,该默认值是可改变的,而这个改变的权限只能是属主和超级用户。1目录和文件访问权限的设置文件属主和超级用户可以使用命令chmod来设置属主自己的、属主所在的小组及系统中其它用户对文件进行访问的权限。在使用命令chmod时,首先要指定哪一类用户的权限需要改变。命令格式chmod 选项 文件名,2改变目录和文件访问权限的两种方式(1)
38、用字符方式改变目录和文件的访问权限用下列的字母表示不同的用户:u 表示属主g表示属主所在的工作组0表示一般用户a表示所有的人,包括属主,工作组和一般用户。改变访问权限的方式有两种:增加和减少。+ 增加用户的权限- 减少用户的权限命令chmod的另一种格式chmod 用户+增加(-减少)访问权限 文件名(目录名)这里,要注意的是:在“用户+增加(减少)访问权限”之间,应该是连续的,不能有空格存在,否则系统不能识别。下面以具体的目录和文件为例,介绍命令chmod的使用。例1 假设当前目录word1的访问权限是drwx- ,即只有属主和系统管理员才能进行有关操作,现在要让整个工作组的成员能够进行读、
39、写和执行的权限,则命令为:chmod g+rwx word1,例2 假设文件operation1的访问权限是-rwxrwxrwx,现在想让属主可写和可执行,其它用户只有读的权限,则命令为:chmod go-wx operation例3 假设文件operation2的访问权限是-rw-r- -,现在想让所有的用户都拥有可执行的权限,则命令为: chmod a+x operation2例4 假设当前目录下有2个子目录Word1和Word2,它们的访问权限分别是:drwx-w-、和drwrwrw -,现在想让所有的用户都能执行,即任何一个用户都能把它们当成当前的工作目录,则命令为:chmod a+x
40、 word1 word2 (2)用数字方式改变目录和文件的访问权限对目录和文件的9种访问权限来说,每一种的权限都对应着一种数字模式。在rwxrwxrwx的每个位置上,可以用“1”表示具有访问权限,“0”表示没有访问权限。每3位对应1个八进制数。例如rw- r- r-,可以用如下的式子来表示:r w - r - - r - -1 1 0 1 0 0 1 0 0 二进制数6 4 4 8进制数又如:-rwxr-xr-xr w x r x r - x1 1 1 1 0 1 1 0 1 二进制数7 5 5 8进制数,根据以上的推导,可以得到如下的权限与数字的对应关系:,由于每一个文件或目录的访问权限的数
41、字模式都是由各用户的各个权限值相加组成的,所以,一个文件或目录的最大值为777。使用数字模式的好处是用户不需要知道原来的访问权限,只需给出要改变权限的数字值即可。例5 要把文件Work1的访问权限改成-rwxr-x - - -,命令格式为:chmod 750 workl例6 要把文件Work2的访问权限改成-r-r-,命令格式为:chmod 440 work2,【技能训练】 训练内容创建新用户 yang3和 yang4( 口令自定),然后完成下列的操作:1. 用root登录,创建新用户yang3、yang4,并观察它们的权限。2. yan3和yang4目录下分别创建test1和test2的文本
42、文件,并观察各文本文件的权限。3. 从root用户转到yang3用户,并显示test1文件和test2文件的内容,以检查yang3是否具有阅读test2文件的权限。4. 从用户yang3转向用户yang4,修改yang4的权限,并显示用户yang4的权限。5. 从用户yang4转向用户yang3,显示test2文件的内容。 训练步骤: 1 (1)启动系统终端,分别输入如下命令:useradd yang3passwd yang3useradd yang4passwd yang4ls -l /home,(2)命令执行结果如下所示:rootlocalhost # useradd yang3rootl
43、ocalhost # passwd yang3New UNIX password:Retype new UNIX password:rootlocalhost # useradd yang4rootlocalhost # passwd yang4New UNIX password:Retype new UNIX password:rootlocalhost # ls -l /homedrwx- 10 yang3 yang3 4096 2月 23 10:49 yang3drwx- 10 yang4 yang4 4096 2月 23 10:50 yang4 2 (1)启动系统终端,分别输入如下命令
44、:cat /home/yang3/test1file:test1cat /home/yang4/test2file:test2ls -l /home/yang3/test1 /home/yang4/test2,(2)命令执行结果如下所示:rootlocalhost # cat /home/yang3/test1file:test1rootlocalhost # cat /home/yang4/test2file:test2rootlocalhost # ls -l /home/yang3/test1 /home/yang4/test2-rw-r-r- 1 root root 11 2月 23
45、11:01 /home/yang3/test1-rw-r-r- 1 root root 11 2月 23 11:02 /home/yang4/test2 3(1)启动系统终端,分别输入如下命令:su yang3cat /home/yang3/test1 file:test1cat /home/yang4/test2 (2)命令执行结果如下所示:rootlocalhost # su yang3yang3localhost root# cat /home/yang3/test1 file:test1yang3localhost root# cat /home/yang4/test2 cat: /h
46、ome/yang4/test2: 权限不够,4. (1)启动系统终端,分别输入如下命令:su yang4chmod o+rwx /home/yang4ls -l /home/yang4 (2)命令执行结果如下所示:yang3localhost root$ su yang4Password:yang4localhost root$ yang4localhost root$ chmod o+rwx /home/yang4yang4localhost root$ ls -l /home/yang4drwxr-xr-x 3 yang4 yang4 4096 2月 23 10:50 Desktop-rw
47、-r-r- 1 root root 11 2月 23 11:02 test2 5 (1)启动系统终端,分别输入如下命令:su yang3cat /home/yang4/test2 (2)命令执行结果如下所示:yang4localhost root$ su yang3Password:yang3localhost root$ cat /home/yang4/test2file:test2,5.4 目录操作命令与DOS系统一样,Linux系统也有目录和文件的操作命令,这些命令的格式与DOS相类似。然而,Linux系统里的目录和文件的命令却丰富得多。这里介绍几个重要的目录操作命令,其它的操作命令请参
48、考有关的手册。 【案例简介】通过运行几个有关目录的命令,学习目录操作命令的应用。1. 用pwd命令显示当前的路径。2. 用mkdir命令在当前目录下创建名为mulu的目录,再用ls命令确认。3. 用cp命令在当前目录下复制目录mulu,并改名为mulu1,再用ls命令确认。4. 用rmdir命令删除目录mulu1,再用ls命令确认。 【操作步骤】 1 (1)启动系统终端,输入如下命令:pwd (2)命令执行结果如下所示:rootlocalhost # pwd/root,2 (1)启动系统终端,分别输入如下命令:mkdir mululs (2)命令执行结果如下所示:rootlocalhost #
49、 mkdir mulurootlocalhost # lsanaconda-ks.cfg install.log jincheng Pictures 抓图 1.jpgDesktop install.log.syslog mulu shuchu3 (1)启动系统终端,分别输入如下命令:cp -R mulu mulu1ls (2)命令执行结果如下所示:rootlocalhost # cp -R mulu mulu1rootlocalhost # lsanaconda-ks.cfg install.log jincheng mulu1 shuchuDesktop install.log.syslog mulu Pictures 抓图1.jpg,