Linux 一切皆文件….. 

各个发行商目录结构尽不相同,但是都要遵循FHS标准 

http://www.pathname.com/fhs/ :想要深入了解的可以看看这 

一、你需要了解的一些概念

文件系统是内核的功能之一

文件系统:(file system)是指存储在计算机上的文件和目录。 

目录:包含很多文件的目录项,文件+路径映射 

文件:文件系统中存储数据的一个命名的对象。 

文件名算不算数据:算 

文件名存储在哪里:保存在一个文件目录项中 

路径名:一个子目录的全名是它的路径名(pathname) 

计算机使用inode(index node)来记忆文件

二、Linux目录结构

Linux的文件系统结构为树状结构

filesystem1 (2)

以上只是列出了Linux目录结构的大体框架,详情可参考: 

http://linux-wiki.cn/wiki/zh-hans/Linux%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84

二、相对和绝对

相对路径 都是以. 开始的 

绝对路径 都是以/ 开始的 

. 表示当前目录,也可用./来表示 

.. 表示上一层目录,也可用../来表示 

Note:在编写脚本的时候请尽量使用绝对路径,以避免发生模糊查找错误

三、文件类型

文件类型

普通文件 :普通意义上的文件 

目录文件:目录也是一种文件, 

块设备文件: 提供带缓存的固定大小单元读写的设备文件,如硬盘和移动存储设备 

字符设备文件 :提供无缓存的变长单元对 

符号链接文件 :链接,类似软拷贝和硬拷贝 

管道文件 :用户系统进行间通信的文件 

套接字文件 :进程之前通过网络进行通信的文件,多数网络连接都是用socket建立的 

四、文件命名规则

1、文件名不能超过255个字符 

2、不能使用斜线当文件名 

3、严格区分大小写 

4、文件名尽量简单,并且能反映出文件的内容 

5、以.或者..开头的是隐藏文件 

五、文件系统管理的相关命令

pwd(print working directory):打印出当前所在路径

[lovelace@lovelace ~]$ pwd
/home/lovelace

cd(change directory):切换目录

家目录:home directory:用户完全控制权限

cd ~username 进入自己的家目录

cd - 在前一个目录和当前目录之间进行切换

[lovelace@lovelace etc]$ pwd
/etc
[lovelace@lovelace etc]$ cd ~
[lovelace@lovelace ~]$ pwd
/home/lovelace
[lovelace@lovelace ~]$ cd -
/etc

file:查看某个文件的类型

[lovelace@lovelace shell]$ file cat1.sh
cat1.sh: Bourne-Again shell script text executable

stat:显示文件的额外状态信息

[lovelace@lovelace shell]$ stat cat1.sh
File: `cat1.sh'
Size: 410         Blocks: 16         IO Block: 4096   regular file
Device: 802h/2050d  Inode: 1104023     Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2013-05-15 19:37:14.000000000 +0800
Modify: 2013-05-11 00:26:00.000000000 +0800
Change: 2013-05-11 00:26:00.000000000 +0800

文件管理(创建、更改、移动、复制、删除)

touch :改变文件的时间戳

 

[lovelace@lovelace ~]$ touch lovelace
[lovelace@lovelace ~]$ ll
total 4
-rw-rw-r-- 1 lovelace lovelace 0 May 15 19:38 lovelace

mv(move):移动文件,目标只能有一个

参数讲解:

-t  参数可以现制定目的地,在指定源目标

[lovelace@lovelace ~]$ mv love.txt /tmp/;ls -l /tmp
total 84
drwx------ 3 root     root     4096 May 14 00:38 gconfd-root
-rw-r--r-- 1 root     root      116 May 11 02:14 ip.txt
drwx------ 2 root     root     4096 May 14 00:38 keyring-Z47EKW
-rw-rw-r-- 1 lovelace lovelace    0 May 15 19:39 love.txt

cp(copy):复制文件,目录只能有一个

参数讲解:

-R 复制目录

-p 保留文件的一些属性

-i 操作前进行咨询

-a 归档存放,常用于备份,保留一切属性

[lovelace@lovelace ~]$ cp love.txt love.bak;ls -l
total 8
-rw-rw-r-- 1 lovelace lovelace 0 May 15 19:41 love.bak
-rw-rw-r-- 1 lovelace lovelace 0 May 15 19:40 love.txt

rm:删除文件

参数讲解:

-r:递归

-f:强制执行

[lovelace@lovelace ~]$ ls
love.txt
[lovelace@lovelace ~]$ rm -rf love.txt ;ls
[lovelace@lovelace ~]$

 

install:复制文件并制定属性,复制之后有执行权限 不支持目录复制

 参数讲解:

-d:创建目录

-m:指定权限 和chmod类似

[lovelace@lovelace ~]$ install -d love
[lovelace@lovelace ~]$ ll
total 8
drwxr-xr-x 2 lovelace lovelace 4096 May 15 19:48 love

 

目录管理(创建、删除、列出)

mkdir:创建空目录

参数讲解:

-p:递归配合{}(命令行展开)很有用

[lovelace@lovelace ~]$ mkdir -p ./{test1,test2}
[lovelace@lovelace ~]$ ls
love  test1  test2
[lovelace@lovelace ~]$ mkdir test
[lovelace@lovelace ~]$ ll
total 16
drwxrwxr-x 2 lovelace lovelace 4096 May 15 19:55 test

 

rmdir:删除空目录(只能删除空目录)要想删除可以使用rm命令

[lovelace@lovelace ~]$ pwd;ls -l
/home/lovelace
total 8
drwxrwxr-x 2 lovelace lovelace 4096 May 15 19:56 test
[lovelace@lovelace ~]$ rmdir test/
rmdir: test/: Directory not empty

 

tree:查看目录树

参数讲解:

tree /path(你想要查找的路径,如果从根开始很耗资源的)

-a:显示所有 包括隐藏文件

-d:只显示目录文件

[lovelace@lovelace ~]$ tree -d
.
|-- love
|-- test1
`-- test2
3 directories
[lovelace@lovelace ~]$ tree -a
.
|-- .Xauthority
|-- .bash_history
|-- .bash_logout
|-- .bash_profile
|-- .bashrc
|-- .emacs
|-- .mozilla
|   |-- extensions
|   `-- plugins
|-- .viminfo
|-- love
|-- test1
`-- test2
6 directories, 7 files

 

六、后记:

由于图片贴到博文里就很小了,看不清楚,所以附件为目录结构大图,希望没有给你带来误导!

如有错误和不足之处,敬请指正,QQ:993182876

by lovelace  

2013-5-15 魔都