1、检查文件
用ls –l以长模式察看文件的详细信息
 包含当前目录的硬盘使用空间、文件类型、文件权限、硬连接数、文件拥有者、文件所属组、文件大小、更动时间、文件名。
用file检查文件类型
 由于linux中的文件名中没有扩展名,所以可能需要用file来查看文件类型

解释:
? 用ls –l 以长模式显示文件的信息,例:
[root@server1 root]# ls -l /var/lib/dhcp/
total 8
-rw-r--r--    1 root     root          864 Feb 14 15:09 dhcpd.leases
-rw-r--r--    1 root     root          864 Feb 14 15:05 dhcpd.leases~
? 用file检查文件类型
     [root@server1 root]# file /etc/fstab
     /etc/fstab  : ASCII text
   file命令从系统配置文件/usr/share/magic中读取相应的文件规范。

2、文件类型
? 在linux中,所有东西都被当成文件。
? 文件权限前的第一个字母用来标识文件类型:
-:一般文件
d:目录文件
b:块设备文件
c:字符设备文件
l:链接文件
p:人工管道
解释:
文件类型
Linux沿用了Unix风格,在系统中所有东西都被当成文件,并且都可以适用文件的操作。
对于不同类型的文件,通常ls会用不同的颜色来标识,这些标识颜色的定义在文件/etc/DIR_COLORS中。
文件分类
一般文件
  这是一类常见的文件,也是常使用的一类文件,其特点是不包含有文件系统的结构信息。通常所接触到的文件,包括图形文件、数据文件、文档文件、声音文件等都属于这种文件。这种类型的文件按其内部结构又可细分为文本文件和二进制文件。
目录文件
  目录文件是用于存放文件名及其相关信息的文件,是内核组织文件系统的基本节点。目录文件可以包含下一级目录文件或普通。对于习惯于使用Windows的用户来说,这可能有些难于理解,目录怎么会是文件呢?的确,在Linux中,目录文件是一种文件。但Linux的目录文件和其它操作系统中的“目录”的概念不同,它是Linux文件中的一种。当然,在实际使用中可以不仔细区分这两种说法。实际上,在很多Linux的书籍和资料中就是将目录文件简称为目录的。不过,我们必需清楚此“目录”非彼“目录”。
链接文件
  链接文件是一种特殊的文件,实际上是指向一个真实存在的文件的链接。这有点类似于Windows下的快捷方式。根据链接文件的不同,它又可以细分为硬链接文件和符号链接文件。
设备文件
  设备文件是Linux中最特殊的文件。正是由于它的存在,使得Linux系统可以十分方便地访问外部设备。Linux系统为外部设备提供一种标准接口,将外部设备视为一种特殊的文件。用户可以像访问普通文件一样访问外部设备,使Linux系统可以很方便地适应不断发展的外部设备。通常Linux系统将设备文件放在/dev目录下,设备文件使用设备的主设备号和次设备号来指定某外部设备。根据访问数据方式的不同,设备文件又可以细分为块设备和字符设备文件。
管道文件
  管道文件是一种很特殊的文件,主要用于不同进程间的信息传递。当两个进程间需要进行数据或信息传递时,可以通过管道文件。一个进程将需传递的数据或信息写入管道的一端,另一进程则从管道的另一端取得所需的数据或信息。通常管道是建立在调整缓存中。

3、文件权限 
? 对于每一个文件,Linux都提供了一套文件权限系统。
? 文件权限系统,将操作文件的用户都分成三类
 文件的拥有者(u)
 文件所属组的成员(g)
 其他用户(o)
解释:
文件权限
      Linux系统是一个典型的多用户系统,不同的用户处于不同的地位。为了保护系统的安全性,Linux系统对不同用户访问同一文件的权限做了不同的规定。
  对于一个Linux系统中的文件来说,它的权限可以分为三种:读的权限( r )、写的权限( w )和执行的权限( x )。不同的用户具有不同的读、写和执行的权限。
  对于一个文件来说,它都有一个特定的所有者,也就是对文件具有所有权的用户。同时,由于在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。文件所有者以外的用户又可以分为文件所有者的同组用户和其它用户。因此,Linux系统按文件所有者、文件所属组的成员和其它用户三类规定不同的文件访问权限。

4、文件权限类型
? 对于每一类用户,权限系统又分别提供他们三种权限
? 读(r) :用户是否有权力读文件的内容
? 写(w) :用户是否有权利改变文件的内容
? 执行(x) :用户是否有权利执行文件
解释:
权限的概念
     Linux文件系统安全模型是通过给系统中的文件赋予两个属性来起作用的,这两个赋予每个文件的属性称为所有者(ownership)和访问权限(access rights)。Linux下的每一个文件必须严格地属于一个用户和一个组。
每个文件的目录条目都是以下面类似的一些符号开始:
  - r w - r - - r - -
      这些符号用来描述文件的访问权限类别,也就是常说的文件权限。这些访问权限指导Linux根据文件的用户和组所有权来处理所有访问文件的用户请求。总共有10种权限属性,因此一个权限列表总是10个字符的长度。它的格式遵循下列规则:
  第1个字符表示一种特殊的文件类型。其中字符可为d(表示该文件是一个目录)、b(表示该文件是一个系统设备,使用块输入/输出与外界交互,通常为一个磁盘)、c(表示该文件是一个系统设备,使用连续的字符输入/输出与外界交互,如串口和声音设备),“-”表示该文件是一个普通文件,没有特殊属性。
  第 2~4个字符用来确定文件的用户(user)权限,第5~7个字符用来确定文件的组(group)权限,第8~10个字符用来确定文件的其它用户(other user,既不是文件所有者,也不是组成员的用户)的权限。其中,2、5、8个字符是用来控制文件的读权限的,该位字符为r表示允许用户、组成员或其它人可从该文件中读取数据。短线“-”则表示不允许该成员读取数据。与此类似,3、6、9位的字符控制文件的写权限,该位若为w表示允许写,若为“ - ”表示不允许写。4、7、10位的字符用来控制文件的制造权限,该位若为x表示允许执行,若为“ - ”表示不允许执行。

5、改变文件权限 
? 使用chmod 来改变文件的当前权限
chmod  [-R]  权限  文件名
? 只有文件的拥有者和root才可以改变文件的权限
解释:
? 字符方式的基本语法是:chmod [ugoa] +或者-或者= [rwx] [文件...] 例如:
[kevinz@stationXX kevinz] $ chmod o+r .bash_profile                    ( 赋予其他用户对文件.bash_profile可读的权限)
[kevinz@stationXX kevinz] $ chmod u=rw .bash_profile                 ( 赋予文件拥有者对文件.bash_profile的权限是可读写)

6、使用数字来改变文件权限 
? chmod后可以用三个数字来表示用户权限
 第一位代表文件拥有者权限
 第二位代表文件所属组成员权限
 第三位代表其他用户权限
? 每一个数字都采用加和的方式
 4(读)
 2(写)
 1(执行)
解释:
? 赋予权限的另一种方法是chmod nnn [文件...]
n 是 0—7 数字 ,其中第1、2、3个n分别表示用户、组成员和所有其它用户。各个位置上的n要么是一个0,或者是一个由赋予权限的相关值相加得到的单个阿拉伯数字之和。这些数字的意义如下所示:
值           表示的意义
     4        表示文件或者目录的读权限
     2      表示文件或者目录的写权限
     1           表示文件或者目录的执行权限
一般而言,作为系统管理员,更喜欢使用数字方式,因为这种方式的速度明显快得多。

7、建立链接
? ln
 硬链接
 语法:ln 源文件 新建链接名
 软链接
 语法:ln –s 源文件 新建链接名
解释:
? 硬链接文件完全等同于原文件,原文件名和连接文件名都指向相同的物理地址。不可以跨文件系统,也不可以建立目录的硬链接。文件在磁盘中只有一个拷贝,节省硬盘空间; 由于删除文件要在同一个索引节点属于唯一的连接时才能成功,因此可以防止不必要的误删除。如下所示:
  [kevinz@stationXX kevinz] $  ln file1 file2   ( 建立file1的硬链接file2 )
  [kevinz@stationXX kevinz] $  ls –il            ( 显示file1和file2的属性)
   4029       -rw-r--r–     2                root                        root                 0     Jul    25  16:13      file1
   4029       -rw-r--r–     2                root                        root                 0     Jul    25  16:13      file2
   inode号    权限      硬链接数       文件的拥有者            文件的拥有组          文件大小   最后修改时间     文件名

注意: 文件硬链接的默认inode数是1,每增加一个硬链接,inode数增加1。目录没有硬链接。
        目录软连接的默认inode数是2,每增加一个软连接,inode数增加1,原因是目录包含本目录和上级目录(. 和 ..),所以目录的默认软连接数是2。
        文件软连接的默认inode数是1,每增加一个软连接,inode数增加1。
                                                 
? 软链接文件相当于为原文件建立了一个快捷方式,可以跨文件系统,也可以为目录建立。软链接和硬链接不同,软链接有自己的inode,是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径名。类似windows下的快捷方式。 可以删除原有的文件而保存连接文件,没有防止误删除功能。

8、ext2/3中文件的构成
? 在ext2和ext3文件系统中,文件以inode+block的方式存在。
? 一但用rm指令删除文件中的inode记录。文件无法被找回。
? stat指令可以用来检查文件的block与inode状况。
[root@www ~]# stat file
  File: `file'
  Size: 0          Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d Inode: 265857      Links: 3
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2012-04-28 09:53:58.601645612 +0800
Modify: 2012-04-28 09:53:58.601645612 +0800
Change: 2012-04-28 10:00:07.770607631 +0800

9、所属用户
? 每一个文件都有一个拥有者。文件的拥有者可以改变文件的权限。
? root用户可以用chown来改变文件的拥有者。
解释:
改变文件的拥有者
[kevinz@stationXX kevinz] $ ls  -l  file1
-rw-r--r–     2                root                        root                 0     Jul    25  16:13      file1
[kevinz@stationXX kevinz] $ chown  username  file1
[kevinz@stationXX kevinz] $ ls  –l  file1
-rw-r--r–     2                username                        root                 0     Jul    25  16:13      file1

10、所属组
? 每一个文件只能属于一个指定的组。
? 文件的拥有者与root用户,可以用chgrp来改变文件所属的组
解释:
改变文件的拥有者
[kevinz@stationXX kevinz] $ ls  –l  file1
-rw-r--r–     2                root                        root                 0     Jul    25  16:13      file1
[kevinz@stationXX kevinz] $ chgrp  username  file1
[kevinz@stationXX kevinz] $ ls –l  file1
-rw-r--r–     2                root                        username                 0     Jul    25  16:13      file1

11、文件名
? 文件名最大为255个字符。
? 开头为.的文件为隐藏文件。
解释:
文件名
无论是ext2或ext3文件系统,文件名最多包含255个字符。文件名是字母大小写敏感的,也就是说FILE、file、File、FilE等是不同的文件名。同时Linux还可以使用特殊字符,但尽量避免使用“ / , > , < , ? , * , ” , ‘ “等特殊字符,不是他们不可用而是使用他们会产生操作时的麻烦。当然你也可以使用一段话作为文件名,例如 :
 [kevinz@stationXX kevinz] $   ls  -l  “file name with spaces.txt”
隐藏文件
在Windows系统中隐藏是文件的一种属性,在Linux中没有这样的属性,隐藏是系统对文件的一种显示的判断。当系统需要显示文件名时,一般情况首先看文件的第一个字符是否为“ . ” ,如果是的就不显示他,所以在Linux中隐藏文件是以点开头的文件,同时因为目录也是文件,所以隐藏目录也是以点开头的。
用ls –a可以显示隐藏文件。例如:
 [kevinz@stationXX kevinz] $ ls –a  /home/kevinz
    .bashrc    .bash_history   .bash_logout   .bash_profile