Linux 一切皆文件…..
各个发行商目录结构尽不相同,但是都要遵循FHS标准
http://www.pathname.com/fhs/ :想要深入了解的可以看看这
一、你需要了解的一些概念
文件系统是内核的功能之一
文件系统:(file system)是指存储在计算机上的文件和目录。
目录:包含很多文件的目录项,文件+路径映射
文件:文件系统中存储数据的一个命名的对象。
文件名算不算数据:算
文件名存储在哪里:保存在一个文件目录项中
路径名:一个子目录的全名是它的路径名(pathname)
计算机使用inode(index node)来记忆文件
二、Linux目录结构
Linux的文件系统结构为树状结构
以上只是列出了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 魔都
本文出自 “追马” 博客,谢绝转载!