免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-01-31 22:47 |只看该作者 |倒序浏览
目标
完成这一节,你能做以下事情:
o        描述UNIX文件系统的布局
o        描述文件与目录的不同之处
o        顺利地操作一个UNIX 文件系统。
o        建立和删除目录
o        描述绝对路径和相对路径的不同之处
o        在可能的情况下,使用相对路径来简化你的输入。
 
3.1 什么是文件系统 
UNIX系统提供文件系统来管理和组织你的文件和目录。文件通常是数据的一个容器,而目录是文件和(或)其他目录的容器,一个目录包含下的另一个目录通常被称为子目录,
UNIX的文件系统与文件柜十分相似。整个文件系统就象一个文件柜,文件柜包含所有的抽屉,文件夹,和报表。抽屉同子目录一样能够包含报告和文件夹。一个文件夹当它包含报表时就像一个子目录。报表就代表一个文件,因为它存储实际的数据。
 
3.2 树型结构 
??目录结构能够用一个层次化的树形结构来表示。树上的每一个分支可以是目录或者文件。目录用椭圆来表示,文件用矩形来表示,以便图表中能够区别它们。
3.3 文件系统层次
  ??  
象整齐的文件柜一样,UNIX文件系统层次提供了一种简单有效的机制来组织你的文件。由于一个UNIX发布版本通常包括几百个文件和程序,于是每个UNIX系统都支持一种默认的目录结构。在目录的顶端是根目录(因为它在一个倒转的树的顶部),根目录由一个反斜杠(/)来表示。
UNIX 系统同时提供了一些命令,可以让你在你需要时很容易地创建新的目录,也可以从一个目录移动或是拷贝文件到另一个目录。就象加入一个新的文件夹到一个文件柜的抽屉中和将新的文件夹移动一个报表到一个老的文件夹一样容易。
 
在HP-UX 10.0中,文件系统由两个主要的部分组成:静态文件和动态文件。
静态文件: (共享的文件)有三个重要的目录:/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     这个目录包括当前的新闻信息的所有的文件。他的内容可以通过键          入new -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名相同,然后这个用户就可以在此目录下任意创建自己的文件和子目录。
当你登录一个系统时,UNIX系统会将你放在这个目录下,这个目录被称为你的登录目录或者是你的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
HP-UX 中的特例:
UNIX系统的命令 ??HP-UX 等价
ls –F ??????lsf
ls –l ??????ll
ls –R ??????lsr

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