文件是存储信息的容器,可以简单的将它视为字符序列。shell是一个文件,内核也是如此。unix将目录以及类似硬盘,DVD-ROM和打印机等的设备也看成文件。可以将文件理解为三种类型:
- 普通文件----也成为常规文件,仅包含作为字符流的数据。
- 目录文件----文件夹,其中包含了其他文件和子文件的名称,还有与每个名称相关联的数字。
- 设备文件----表示设备或外设,要从设备读取或写入设备,必须对其相关文件执行这些操作。
文件属性的意义经常取决于其类型。
一、普通文件
普通文件是包含数据流的最常见的文件类型,这类文件可分为1.文本文件;2.二进制文件
二、目录文化
目录不包含数据,而是包含其中文件和子目录的详细信息。 目录文件为其中每一个文件和子目录都专门包含一个条目,每个条目有两个组成部分:(文件名,该文件或目录的唯一识别号(即inode号))。目录包含的是文件名,而不是文件的内容。
一个文件的名称只能在其目录中找到,文件本身并不包含自己的名称,也不包含任何属性,如其大小或最后一次修改时间等。
三、设备文件
设备文件很特殊,它实际上并不是字符流。事实上它根本没有包含任何东西。每个文件都有一些属性,不是存储在文件中,而是存储在磁盘上的其他位置。设备文件的属性完全控制着对该设备的操作。内核根据设备的属性来识别设备,然后使用这些属性来操作设备。
文件系统的层次结构
文件系统看成包含两个组
第一组包含的文件是在系统安装期间提供的文件:
- /bin和/usr/bin 所有常用UNIX命令都可以在这些目录中找到(bin=“binary 二进制”)。注意PATH变量总会在其列表中显示这些目录
- /sbin和/usr/sbin 如果有一个命令,你不能执行,但系统管理员可以,那它可能就是在这些目录中的某一个里面。你不能执行这些目录中的大多数命令(当然,有一些是可以的)。只有系统管理员的PATH会显示这些目录。
- /etc 这个目录包含了系统的配置文件。通过编辑这个目录中的文本文件,可以改变非常重要的系统运转方式。登录名和密码存储在文件/etc/passwd和/etc/shadow中。
- /dev 这个目录中包含了所有设备文件。这些文件不占用任何磁盘空间。这个目录下可能有更多的子目录,如pts,dsk,rdsk.
- /lib和/usr/lib 这些目录包含了所有二进制形式的库文件。需要将C程序与这些目录中的文件链接在一起。
- /usr/include 这个目录包含了C程序使用的标准头文件。大多数C程序中使用的语句#include<stdio.h>都引用这个文件中的stdio.h
- /usr/share/man 这是man页的存储位置。这里有一些独立的子目录(如man1和man2等),包含了每一小节的页面。
用户还可以处理自己的文件;编写程序,发送和接收邮件,创建临时文件。这些文件可以放在第二组中:
- /tmp 允许用户创建临时文件的目录,这些文件会被系统定期清除
- /var 系统的可变部分,包含所有打印作业和传出及传入邮件
- /home 在许多系统中,用户都被保存在这里。romeo的主目录应当在/home/romeo中,但不同的系统也可能为主目录使用不同位置。
在繁忙的系统中,在属于第二组的目录中,可能会快速耗尽可用磁盘空间。可以将这些目录结构中的一部分放在独立的文件系统中,这样,一个文件系统中的空间耗尽(或崩溃)时,不会影响到其他文件系统。
cd-----
相对路径名:
.(一个句点)表示当前目录
..(两个句点)表示父目录
mkdir-----
一次创建多个目录
有时系统会拒绝创建目录:
发生这种情况的原因可能包括以下几点:
- 目录test可能已经存在。
- 当前目录中可能有一个同名的普通文件。
- 当前目录的权限设置不允许用户创建文件和目录如果尝试在/bin、/etc 或其他任何容纳UNIX系统文件的目录中创建目录,最有可能看到这一消息。另外除非用户被明确授予相应权限,否则也不可能在另一用户的目录结构中创建文件。
- 文件系统中留下的空间可能不允许创建文件和目录。
mkdir和rmdir命令仅对该用户拥有的目录有效。一个用户是其主目录的拥有者,所以可以在其主目录中使用这些命令。
ls(list)----列出文件的名称
ls显示的规则是先自上而下,然后再至左向右查看,默认输出采用ASCII排列顺序(首先是数字,然后是大写,再是小写),但是也可以使用特定选项来修改排列顺序。
当参数为目录时,ls的会显示其内容,加上-d就会仅显示目录的名称,而不列出其内容。
ls -a 显示隐藏的文件,以句点开头的文件名在unix系统中有一个特殊的位置。它们通常可以在主目录中找到,但ls 在默认情况下不会显示它们。使用-a(all,全部)选项:
文件.profile包含了一组在用户登录时执行的指令,另一个文件.exrc/.vimrc 包含了vi编辑器的一系列启动指令。
前两个文件(.和..)都是特殊目录。每创建一个子目录,内核就会自动创建这些“不可见”目录。用户无法删除他们,也不能向其写入内容。它们可以帮助将文件系统结合在一起。
递推列表(-R) -R(recursive ,递推)选项列出目录树下的所有文件和子目录。这一目录的遍历是递推完成的,直到再没有任何子目录为止。
cp-----复制
在使用cp复制多个文件是,最后的文件名,必须是目录,而且必须是已经存在的。
cp -i 交互式复制
cp -R 用于复制整个目录树