免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1263 | 回复: 0
打印 上一主题 下一主题

文件系统导航 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-08-30 11:15 |只看该作者 |倒序浏览
目标
完成这一节,你能做以下事情:
描述UNIX文件系统的布局
了解文件与目录的不同之处
自如地操作一个UNIX 文件系统。
建立和删除目录
描述绝对路径和相对路径的不同
在可能的情况下,使用相对路径来简化你的输入。
3.1 什么是文件系统 
UNIX系统提供文件系统来管理和组织你的文件和目录。文件通常是数据的一个容器,而目录是文件和(或)其他目录的容器,一个目录包含下的另一个目录通常被称为子目录,
UNIX的文件系统与文件柜十分相似。整个文件系统就象一个文件柜,文件柜包含所有的抽屉,文件夹,和报表。抽屉同子目录一样能够包含报告和文件夹。一个文件夹当它包含报表时就像一个子目录。报表就代表一个文件,因为它存储实际的数据。
3.2 树型结构 
目录结构能够用一个层次化的树形结构来表示。树上的每一个分支可以是目录或者文件。目录用椭圆来表示,文件用矩形来表示,以便在图中能够区别它们。
3.3 文件系统层次
象整齐的文件柜一样,UNIX文件系统层次提供了一种简单有效的机制来组织你的文件。由于一个UNIX发布版本通常包括几百个文件和程序,所以每个UNIX系统都使用一种默认的目录结构。在目录的顶端是根目录(因为它在一个倒转的树的顶部),根目录由一个反斜杠(/)来表示。
UNIX 系统同时提供了一些命令,可以让你在你需要时很容易地创建新的目录,也可以从一个目录移动或是拷贝文件到另一个目录。就象加入一个新的文件夹到一个文件柜的抽屉中和将新的文件夹移动一个报表到一个老的文件夹一样容易。
UNIX系统中的文件可以分为两类:静态文件和动态文件。
静态文件(共享的文件)主要存在于三个目录中:/opt, /usr , /sbin
/opt:这个目录一般用来存放应用程序。开发人员和系统管理员会用它来安装新的产品和本地使用的应用程序。
/usr/bin:这个目录包含了基础的UNIX系统操作和文件处理的命令,所有的用户都有权限读取这个目录("bin" 是 binary 的缩写)。
/usr/sbin: 这个目录中有所有的在帮助手册1m章节中的命令,这些命令都是系统管理命令。其中的大多数命令只有超级用户才能使用。在帮助手册 1m中有关于这些命令的文档。
/usr/lib:这个目录包括应用程序使用的文档和共享的库
    /usr/share:这个目录包括独立提供的文件(其中最重要的是帮助手册)
/usr/share/man:这个目录包括所有的语在线帮助页有关的所有的文件。
    /uar/local/bin:这个目录通常用来存放本地开发的程序和工具。
/usr/contrib/bin:这个目录通常用来存放公用的程序和工具
    /sbin:这个目录包括基本的用于启动与关闭系统的命令。
动态文件
动态文件(私有的文件)主要存在于七个目录中:
/home, /etc, /stand , /tmp , /dev, /mnt , 和/var;
   ?/home  每一个UNIX系统的用户都有他或她自己的帐号。同登录id和口令一起,系统管理员会分配给你一个你自己的目录。 而这个目录一般都存放在 /home目录下。用户对自己的目录有完全的控制权,并负责对自己的目录下面的子目录和文件进行组织和管理。当你登录进一个系统,你会进入与你帐号相联系的目录中,这个目录,通常被称为HOME目录或是登录目录。从这个目录出发,你可以进入任何你有权进入的其它目录,至少你可以存取在你HOME目录中的任何东西;甚至你还可移动到UNIX系统的其它目录中(默认情况如此),除非系统管理员限制用户对系统中特殊目录的存取。
/etc??这个目录中有许多的系统配置文件,这些文件在帮助手册第四节有说明文档。
/stand/vmUNIX ??这个文件存储的是UNIX系统内核的文件。当系统启动时,会将这个文件装载入内存,对通过内核对所有的系统操作进行控制。
/tmp  这个目录通常用作操作系统的一个临时空间,操作系统创建中间文件,或是应用程序或者用户的临时文件通常都是放在这个目录下面。
注意:UNIX系统的惯例:无论何时,都可以删除tmp目录下的任何文件。
/dev  这个目录下有那些可以被联接到你系统中的硬件设备的文件,由于这些设备是作为一个到设备之间的联接,数据从来不会被直接存储到这些文件中,这些问文件通常被叫 做特殊文件或是设备文件。
/mnt ?这个用来安装其它的设备 (例如:光驱)
/var/mail     这个目录包括每一个有邮件的用户的信箱。
/var/news     这个目录包括当前的新闻信息的所有的文件。他的内容可以通过键入news -a 来显示。
/var/tmp      这个目录通常被用于用户的临时空间。
3.4 目录名称
绝对路径: ?????????相对于/home/user3的路径
???/home/user3/f1???????? f1
???/home/user3/memo ???????memo
???/home/user3/memo/f1 ?????memo/f1
???????????????相对/home/user1的路径
???/home/user1/f1 ????????f1
许多的UNIX系统命令的操作对象是文件和目录。由于系统中的文件和目录很多,并且有可能有同名的文件名或者目录名。为了指明你需要对哪个文件或目录进行操作,需要提供一个路径名作为这个命令的一个参数。路径名代表遍历一个层次结构来找到你所需要的文件或目录所经历的路由。
$ command [options] [pathname pathname.......]
为了阐明目录名的概念,我们使用模拟的方法,用一只铅笔从沿着UNIX系统的树形结构从一个位置画到另一个位置。路径名也就是铅笔的笔迹通过的层次结构所遇到的节点(即目录)的一个列表,这个列表直到你想要到达的目录或文件为止。
当指明文件或目录的路径名时,反斜杠(/)被用来分割目录或文件名。
???Directory/directory/directory(目录/目录/目录)
???Directory/file(目录/文件)
??每当你登录一个UNIX系统,你都会发现你存在于层次结构的一个目录下,你可以 通过UNIX系统命令来将你更换到另外的目录中去,但无论什么时候你都是在处在一个目录下。举个例子:当你登录一个系统,系统会初始化将你置于你的HOME目录中。
??绝对路径和相对路径都能够指明文件和目录的位置
绝对路径
给出文件或目录的位置的完全的描述。
通常由层次结构的顶端开始(根目录)。
通常第一个字符是 /。
不关心你当前在目录结构中所处的位置。
整个目录结构只有一条路线。
绝对路径名的例子
以下的路径名指明目录结构中的所有的叫做 f1 的文件的位置。请注意,有许多f1 文件,但是每一个文件的绝对路径都是不相同的。
/tmp/f1
/home/user1/f1
/home/user2/f1
/home/user2/f1
/home/user2/f1
/home/user3/memo/f1
相对路径
通常由目录结构中的当前的位置开始
不由 "/" 开始。
相对当前的位置只有唯一表示方法。
一般都比绝对路径要短。
相对路径的例子
以下的例子再次指明名为 f1 的文件的路径,但是这些路径的定义必须依靠用户在目录结构中的当前位置。
假设当前的位置是 /home:
user1/f1
user2/f1
user3/f1
user3/memo/f1
假设当前的位置是/home/user3:
f1
memo/f1
假设当前的位置是/home/user3/memo
f1 
请f1不是唯一的,但是UNIX系统知道应该去找哪个文件,因为系统知道你是在/home/user1检索/home/user1/f1,还是在/home/user3/memo的位置检索/home/user3/memo/f1。同时,你可能已经注意到:相对路径可能比绝对路径要短的多,例如,如果在目录/home/user3/mem中,你可以用一下两个命令来打印文件f1:
绝对路径: lp /home/user3/memo/f1
相对路径: lp f1
这表明使用相对路径名可以减少你大量的键盘操作。
注意:如果系统中有同名的文件存在于不同的目录中,而你又要使用相对路径来存取文件,这时,知道你当前的位置是非常重要的。
在 UNIX 系统内部是通过绝对路径来查找所有的目录和文件。因为绝对路径名可以绝对并且唯一地确定一个文件和目录,(由于只有一个根(/)),UNIX系统允许使用相对路径仅仅是为了方便用户的键入。
3.5 一些特殊的目录
绝对路径 ???? ??相对于/home/user3的路径
/home ???????..
/home/user2 ????../user2
/home/user1/f1 ??../user1/f1
/ ?????????../..
/tmp/f1 ??????../../tmp/f1
/usr/bin/vi ????../../bin/vi
任何目录在创建时,两个条目会自动被创建,它们分别是 点(.),和点点(..)。在使用相对路径的时候通常会用到这两个条目。在上一个例子中,你也许已经注意到:相对路径的例子仅仅只能向下穿越文件结构,但如果使用.. ,你也能够向上穿越文件系统。
登录目录
当一个新的用户被加入到系统中,他(或她)会被分配一个登录id,可能还有一个密码,和一个用户自己拥有和控制的目录。这个目录通常创建在/home目录下,与用户的登录id名相同,然后这个用户就可以在此目录下任意创建自己的文件和子目录。
当你登录一个系统时,你会自动处于这个目录中,这个目录被称为你的登录目录或者是你的HOME目录。
点(.)
这个称为点的条目代表你当前所在地目录。
点(.)的例子
如果你当前正处于目录/home/user3中:
. 代表你当前的,目录/home/user3
./f1 代表 /home/user3/f1
./memo/f1 代表/home/user3/memo/f1
点点(..)
这个称为点点的条目代表当前目录的上一级目录。通常被称为父目录。每一个目录在自己的下面都可以有多个文件和多个子目录。但是每一个目录只能有一个父目录。这样,当向上进入文件系统的结构时不会混淆。
根目录(/)象其他的目录一样,包含有点,和点点条目,但是由于根目录没有父目录,所以它的点点代表是根目录本身。
点点(..)的例子:
如果你当前所在地目录是/home
.. 代表/ 目录
../.. 同样代表/目录
../tmp 代表 /tmp
../tmp/f1 代表/tmp/f1
如果你当前的目录是/home/user3
.. 代表 /home目录
../.. 代表/ 目录
../user2 代表/home/user2
../user1/f1 代表/home/user1/f1
../../tmp/f1 代表/tmp/f1
在例子的最后,你会发现绝对路径比相对路径还要短,所以有一个原则就是:如果相对路径使你穿越 / 目录,使用绝对路径会比相对路径更方便。
3.6 基本的文件系统命令
??目录,就像一个文件夹,是组织你的文件的一种方式。下部分会介绍基本的目录操作命令,这些命令可以:
显示你当前所处的位置的目录名
了解当前目录下有什么文件和目录。
使你进入文件系统中的另一个目录中去
创建一个目录
删除一个目录
在这一节中,我们不会去操作一个目录中的文件,我们只操作目录。
3.7 pwd―Prenset working Directory (呈现工作中的目录)
无论何时你登录你的UNIX系统,你都会被置于文件系统中的某个目录下,这个目录通常被认为是你的工作目录。
pwd命令会报告你当前在UNIX文件系统中位置的绝对路径名,pwd是英文“呈现工作目录”的一个缩写。
由于UNIX系统允许用户在文件系统中任意地移动位置,所以用户都会依靠这个命令来确定他们在系统中的位置。新用户在文件系统中移动的时候,会频繁地使用这个命令来了解他们的当前的位置
3.8 ls ―列出目录中的内容
ls 命令的作用是列出目录和文件的名称
如果没有参数,ls 会列出当前目录下的文件和目录名。
ls 也可以接收指定文件或目录的相对和绝对路径名作为参数。当文件的路径被提供给ls,ls 会报告指定文件的信息。当一个目录的路径被提供给ls ,ls 会显示指定目录中的内容。
ls 有许多选项。这些选项提供附加的信息。一个命令行可以支持多个选项,以显示更多更全的文件或目录的信息。其中常用的选项如下:
-a ?列出所有的文件,包括以点(.)开头的文件,通常,这些文件是隐藏的,除非 使用–a选项才会显现出来,这些以点开始的文件通常记录你用户线索 和应用的配置信息。
-d ?列出目录的描述,而不是列出目录的内容。通常与-l一起使用来显示目录的状态。
-l ?提供一个关于每个文件德描述属性的长列表,包括类型,模式,链接数,属
主,组,大小(字节),更改日期,和名称。
-F 在每个目录后面添加反斜杠(/),在可执行文件后面添加星号(*)。
-R 递归地列出给出的目录和所有子目录中的文件。
例子:
$pwd
$/home/user3 绝对路径作为一个参数
$ls –F .. 相对路径作为一个参数
user1/user2/user3/
$ls –F ../user1 相对路径作为一个参数
f1
$ls –l memo 一个目录的相对路径作为一个参数
-rw-rw-rw 1 user3 class 27 Jan 24 06:11 f1
-rw-rw-rw 1 user3 class 37 Jan 23 19:03 f2
$ls –ld memo 显示目录memo的信息
drwxr-xr-x 2 user3 class 1024 Jan 20 10:23 memo
$ls –l f1 f2 多个参数,文件的相对路径
-rw-rw-rw 1 user3 class 27 Jan 24 06:11 f1
-rw-rw-rw 1 user3 class 37 Jan 37 19:03 f2
$ls –R 子目录的递归列表
./memo:
f1 f2
$ls user2
user2 not found 当前目录中不存在user2
3.9 cd ―Change Directory(改变目录)  
??目录的树形结构可以看成一个显示你系统中的所有的目录和文件的位置的一个道路交通图。你通常在一个目录中, cd 命令让你改变目录,并且移动到层次结构中的其他位置。
语法:
cd path_name
其中,路径名是你想要去的目录相对或绝对的路径名。当执行cd命令不带参数时,你会回到你的HOME目录,所以,如果你在目录中迷路,简单地键入cd 会让你回到HOME目录。
注释:当使用cd命令在文件系统中移动时,切记要经常使用pwd命令来确认你所处的位置
POSIX Shell 中的 cd命令
POSIX shell 记录有你上一次进入的目录的位置,cd 命令同样有改变目录到你期望的目录的功能。但它还有一些附加的特征可以减少你的键入。
cd 命令有一个你先前进入的目录的储存器,(存储在环境变量OLDPWD中),这个目录可以通过 cd – 来存取。
$pwd
/home/user3/tree
$cd /tmp
$ pwd
/tmp
$cd – 让你进入到先前进入的目录
$pwd
/home/user3/tree
3.10 find 命令
find命令是在唯一个在文件系统中进行查找的命令。这个命令执行非常慢,并且会耗费许多CPU资源。因此建议不要经常使用。
路径列表是一个路径名的列表,典型的情况是一个目录的情况。通常是点文件。在查找一个文件时会被递归地搜寻路径名,查找符合表达式定义的文件。一个最普通的查找任务就是显示出匹配的路径名。
表达式由关键字和参数组成,参数能指明查找标准和查找一个匹配的任务,一件使查找操作更复杂的事情是表达式中使用的关键字都以-开头,这样看上去参数在选项之前似的
3.11 mkdir 和 rmddir 创建和删除目录
mkdir 命令可以创建目录,这些目录能被用来帮助组织我们的文件。每当一个目录被创建,两个子目录会被自动地创建,它们是代表当前目录的点(.),和代表父母目录的点点(..),请注意,创建目录不会改变你当前在文件系统中的位置。
在默认的情况下,创建目录时指明的相对或绝对路径中的所有的中间目录都必须是已存在的目录,但另外一种情况,你可以使用一下的选项:
-p 如果中间目录不存在,将会创建这些目录
-m mode (模式) 在创建了指定的目录后,目录被设置成默认的权限。
以下的命令创建fruit 目录 ,假设这个目录并不存在。
$mkdir –p fruit/apple fruit/grape fruit/orange
rmdir命令可以删除一个目录,被删除的目录必须是空的(也就是除了点和点点外没有其他的东西),同时,你不能删除在你当前目录和根目录之间的目录。
两个命令都可以有多个参数,mkdir的参数代表的是新的目录名,rmdir 的参数必须是已经存在的目录名。
3.12 复习
使用上图来复习cd 和 pwd 命令的用法,和绝对路径和相对路径的用法
在上图中,如果你从目录user3开始,每一个cd 命令的结果会使你处于上什么位置?
$pwd ???/home/user3
$cd ..
$pwd ???........................
$cd usr
$pwd???..........................
$cd /usr
$pwd???............................
$cd ../tmp
$pwd???.............................
$cd .
$pwd???..............................
3.13 文件系统―总结
文件 ??? ?一个数据的容器
目录 ??? ?文件和其他目录的容器
树形结构 ? ?UNIX系统的一种层次化的结构
路径名 ?? ?文件和目录在层次结构中的位置的一种确认标识。
HOME? ?? ?代表你登录目录的路径名
pwd    ?   显示你当前在系统中的位置
cd       更改你当前的位置到其他的目录中去
ls       列出目录中的内容
find      查找指定的文件
mkdir     创建目录
rmdir     删除目录
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP