注:
1、Unix文件系统是区分大小写的,和windows不一样,Mac OS X除外。
2、Unix系统对文件的认知没有扩展名的区分(不像windows下扩展名有对应的打开方式、exe为可执行文件、bat为批处理文件)。看见的扩展名只是用户为了方便自己记忆和管理而命名的,没有特别的含义。(从ChinaUnix上看到的)
3、Unix系统中隐藏文件是指文件名以“.”开头的文件。这类文件系统视为隐藏文件,通常情况下不会显示。

3.1 根的基本目录
/:根目录下只包含文件顶层需要的目录,不必要的目录为扰乱系统
bin:包含二进制文件,这些文件对系统使用很关键。还包含系统基本程序
boot:包含用于启动系统的文件
dev、devices:包含设备文件,包括cdrom,eth0(以太网接口),fd0(软驱)等
etc:包含系统配置文件
export:包含远程文件系统
home:包含用户和其他帐户
kernel:包含系统内核文件
lib:包含共享的库文件
mnt:用于安装其他的临时文件系统(cdrom,floppy..)
proc:包含所有标志为文件的进程
sbin:包含二进制文件,通常用于系统管理
tmp:包含临时文件。这些文件在两次系统启动间不删除
usr:用于各种目的,或可被许多用户使用的文件,比如联机帮助页
var:保存长度可变的文件(不是很理解这种说法)

3.2 文件系统导航命令

pwd:显示用户在文件系统中的当前位置

cd:改变用户在文件系统中的位置
可以使用:cd ~ 用户返回到自己的主目录

which和whereis命令:查找已知名字但是不知道位置的文件
which是在path所指定的目录中查找,whereis是系统定义的所有目录中查找

find命令:用来查找和定义文件
格式:find path option
如:find \ -name "*.php"

file命令:查看文件类型。格式:file filename

ls命令:列出用户有权访问的目录内容。(功能和DOS下的dir相似)
格式:ls path
参数:-l 显示相关扩展信息 -a 显示中包含隐藏文件和目录
扩展:当ls命令不可用的时候,可以使用echo directory*查看一个目录的内容。如果要查看隐藏内容则用echo direction.*

3.3 文件类型
-:普通文件,如文本文件,二进制文件等等
b:块设备文件
c:字符设备文件
d:目录文件
l:符号链接文件
p:命名管道
s:套接字

3.4 链接

解释在先:
Unix文件系统下的链接相当与windows下的快捷方式,都是文件的一个指向。
Unix中,每一个文件都有一个相关联的数字,叫做inode。unix使用inode来引用文件。不同分区的文件inode可能相同。

硬链接:
命令格式:ln filename linkname
描述:指向inode。该链接文件和源文件有相同的inode。所以删除或者修改链接文件会直接反映到源文件。但是删除源文件后,链接文件依然作为普通文件存在。硬链接文件是源文件实实在在的拷贝。硬链接不能链接到目录。硬链接不能跨越文件系统。

软链接(又叫做符号链接):
命令格式:ln -s filename linkname
描述:指向path。具有独立的inode值,软链接可以跨越文件系统。

关于更多软硬链接的区别可以参考:http://www.moditek.com/bbs/viewthread.php?tid=364

3.5 文件系统命令列表
cat:显示一个文件
cd:转到指定目录
cp:复制文件
file:识别文件类型
find:查找文件或目录
head:显示文件开始部分
less:从开头或结尾开始浏览文件
ls:显示指定目录内容
mkdir:创建目录
more:从头到尾浏览一个文件
mv:移动文件
pwd:显示用户当前目录
rm:删除文件
rmdir:删除文件夹
tail:查看文件结尾
touch:创建一个空文件,或者修改现有文件的属性
whereis:显示文件位置
which:如果文件在path内,显示文件位置

3.6 文件权限描述

当用户ls -s一个目录时,输出的信息中,可能有如下的情况:-rwxr-xr--、drwxr-xr--
这些输出的10位符号中
第一位表示文件类型,第2-4位表示文件所有者拥有的权限,5-7位表示文件从属的组拥有的权限,8-10位代表其他任何人拥有的权限
“r”代表读权限,“w”代表写权限,“x”代表执行权限。无权限的时候用“-”占位。

3.7 文件权限修改命令chmod解析

chmod命令修改文件权限有两种模式:符号模式和绝对模式

3.7.1 符号模式
该模式有加+、减-、赋予= 三种操作
该模式有u用户、g用户组、o其他人三种文件所有对象
e.g.
chmod o+wx filename
给其他人加上修改和执行的权限
chmod u-x filename
给文件所有者减去执行权限
chmod g=r-x filename
给文件用户组赋予读取和执行的权限

3.7.2 绝对模式
该模式比较简洁,直接chmod *** filename就可以了
中间的***是3位的数字,分别表示文件所有者权限,用户组权限,其他用户权限。
0表示无权限,1表示有执行权限,2表示有写入权限,3=1+2的权限,4表示有读取权限,5=4+1的权限,6=4+2的权限,7=4+2+1的权限
e.g.
chmod 740 filename


3.8 查看文件
head和tail命令只查看前10行或后10行。
more命令查看,一次显示一屏幕,按空格或方向键继续显示。
less命令可以使用vi移动键,按下Q键退出。

3.9 文件操作
和DOS下差不多,除了命令名和参数是用“-”开头不是“/”以外。比如:cp OldFilePath NewFilePath
一些注意事项:
1、touch一个已有的文件则该文件的修改时间发生改变
2、用-f参数删除文件时候强行删除不提示,-r删除目录时会连带删除子目录。采用-rf参数会不带提示的删除目录和子目录所有内容,要谨慎使用
3、不使用-r的rm命令是不能删除目录的。rmdir命令只能删除空目录。

3.10 文件系统空间查看
显示磁盘空间使用情况:df -k
额外参数:-h 用更利于理解的符号表示空间大小
查看指定目录的空间使用情况的命令:du
格式:du option directory

3.11 使文件系统可访问

写在前面:
文件系统必须先安装后系统才能够使用。启动时系统将安装在根目录和/etc/fstab或者/etc/dfstab中命名的任何其他文件
使用命令mount可以查看当前安装的文件系统

3.11.1 mount命令输出解释
下面是输出的一个例子:
/dev/ide/hostl/busl/target0/lun0/cd on /mnt/cdrom type iso9660 (ro,nosuid,nodev,umark=0,iocharset=iso8859-l,codepage=850,user=beginunix)
第 一串代表的是设备的实际名称,on /mnt/cdrom代表的是文件系统的挂载点,type iso9660表示文件系统类型为iso9660。括号中,ro表示readonly,nosuid表示未设置用户和组,nodev表示没有未该文件系统 解释字符或块专有设备,iocharset用于转换字符,codepage用于转换fat和Vfat文件名。

3.11.2 手动安装文件系统
格式:mount -t 文件系统类型 设备名 安装目录
e.g. mount -t iso9660 /dev/cdrom /mnt/cdrom

3.11.3 删除文件系统
命令:umount(不是unmount)
格式:umount 设备文件or挂接目录
e.g. umount /dev/cdrom