Linux目录结构

Linux目录结构

Windows: 以多根的方式组织文件 C:\ D:\ E:
Linux: 以单根的方式组织文件 /

/目录结构:FSH (Filesystem Hierarchy Standard) Linux 或 Unix 操作系统中,所有的文件和目录都被组织成以一个根 节点开始的倒置的树状结构。文件系统的最顶层是由根目录开始的,系统使用 / 来表示根目录。在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含子目录文件。如此反复就可以构成一个庞大的文件系统。
文件

下图为Linux目录结构
Linux目录结构_第1张图片

bin 普通用户使用的命令 /bin/ls, /bin/date
sbin 管理员使用的命令 /sbin/service
dev 设备文件 /dev/sda,/dev/sda1,/dev/tty1,/dev/tty2,/dev/pts/1, /dev/zero, /dev/null, /dev/random
root root用户的HOME
home 存储普通用户家目录
lost+found fsck修复时,存储没有链接的文件或目录
proc 虚拟的文件系统,反映出来的是内核,进程信息或实时状态

usr 系统文件,相当于C:\Windows
/usr/local 软件安装的目录,相当于C:\Program
/usr/bin 普通用户使用的应用程序
/usr/sbin 管理员使用的应用程序
/usr/lib 库文件Glibc
/usr/lib64 库文件Glibc

boot 存放的系统启动相关的文件,例如kernel,grub(引导装载程序)
etc 配置文件(系统相关如网络/etc/sysconfig/network,应用相 关配置文件如/etc/ssh/sshd_config…)
lib 库文件Glibc
lib64 库文件Glibc
tmp 临时文件(全局可写:进程产生的临时文件)
var 存放的是一些变化文件,比如数据库,日志,邮件…

  • mysql: /var/lib/mysql
  • vsftpd: /var/ftp
  • mail: /var/spool/mail
  • cron: /var/spool/cron
  • log: /var/log
  • 临时文件: /var/tmp(进程产生的临时文件)

命令存储位置:

  • /usr/bin 普通用户使用的应用程序
  • /usr/sbin 管理员使用的应用程序

**库文件存储位置: **

  • /usr/lib 库文件Glibc
  • /usr/lib64 库文件Glibc

Linux文件有四种时间:
stat anaconda-ks.cfg //查看文件的详细属性(其中包括文件时 间属性)

  • 访问时间:atime,查看内容 //RHEL6会延后修改atime
  • 修改时间:mtime,修改内容
  • 改变时间:ctime,文件属性,比如权限
  • 删除时间:dtime,文件被删除的时间

文件类型

通过颜色判断文件的类型是不一定正确的!!!
Linux系统中文件是没有扩展名!!!

文件

方法一:

ls -l 文件名 //看第一个字符

  • – 普通文件(文本文件,二进制文件,压缩文件,电影,图 片。。。)
  • d 目录文件(蓝色)
  • b 设备文件(块设备)存储设备硬盘,U盘 /dev/sda, /dev/sda1
  • c 设备文件(字符设备)打印机,终端 /dev/tty1
  • s 套接字文件
  • p 管道文件
  • l 链接文件(淡蓝色)

Linux目录结构_第2张图片

方法二:file

[root@linux ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=3d705971a4c4544545cb78fd890d27bf792af6d4, stripped
[root@linux ~]# file /dev/sda
/dev/sda: block special
[root@linux ~]# file /etc/grub2.cfg 
/etc/grub2.cfg: symbolic link to `../boot/grub2/grub.cfg'
[root@linux ~]# file /home/
/home/: directory

绝对路径: 从/开始的路径 /home/alice/file1
相对路径: 相对于当前目录开始 a.txt ./a.txt …/bob/b.txt [假如: 此时在目录/home/alice]

Linux 链接概念

Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称 为符号链接(Symbolic Link)。默认情况下,ln 命令产生硬链接

硬连接

硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保 存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为 索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引 节点是存在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相 同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同 一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一 个都不会影响另外一个的访问。 硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就 可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上 所述,因为对应该目录的索引节点有一个以上的连接。只删除一个 连接并不影响索引节点本身和其它的连接,只有当最后一个连接被 删除后,文件的数据块及目录的连接才会被释放。也就是说,文件 真正删除的条件是与之相关的所有硬连接文件均被删除。

软连接

另外一种连接称之为符号连接(Symbolic Link),也叫软连接。 软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊 的文件。在符号连接中,文件实际上是一个文本文件,其中包含的 有另一文件的位置信息。比如:A 是 B 的软链接(A 和 B 都是文件 名),A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节 点号不相同,A 和 B 指向的是两个不同的 inode,继而指向两块不 同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据 这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如果 B 被删 除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无 效的链接。

例如:
[root@linux ~]# touch f1		 #创建一个测试文件f1 
[root@linux ~]# ln f1 f2		#创建f1的一个硬连接文件f2 
[root@linux ~]# ln -s f1 f3		 #创建f1的一个符号连接文件f3 
[root@linux ~]# ls -li		#-i参数显示文件的inode节点信息 
total 40
···
67145659 -rw-r--r--. 2 root root    0 Sep 26 04:49 f1
67145659 -rw-r--r--. 2 root root    0 Sep 26 04:49 f2
67145661 lrwxrwxrwx. 1 root root    2 Sep 26 04:49 f3 -> f1
···

从上面的结果中可以看出,硬连接文件 f2 与原文件 f1 的 inode 节 点相同,均为 9797648,然而符号连接文件的 inode 节点不同。

[root@linux ~]# echo "I am f1 file" >> f1
[root@linux ~]# cat f1
I am f1 file
[root@linux ~]# cat f2
I am f1 file
[root@linux ~]# cat f3
I am f1 file
[root@linux ~]# rm -f f1
[root@linux ~]# cat f2
I am f1 file
[root@linux ~]# cat f3
cat: f3: No such file or directory

通过上面的测试可以看出:当删除原始文件 f1 后,硬连接 f2 不受 影响,但是符号连接 f1 文件无效。

你可能感兴趣的:(Linux学习)