[X]关闭

深入理解Linux文件系统的目录结构

文档创建者:ぉ沙皮狗的忧伤
浏览次数:4475
最后更新:2020-02-28
本帖最后由 ぉ沙皮狗的忧伤 于 2020-2-28 11:17 编辑

https://www.sohu.com/a/300091445_495675
https://blog.csdn.net/qq_38892883/article/details/79557715
对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步,深入了解Linux文件目录结构的标准和每个目录的详细功能,对于我们用好Linux系统至关重要


截图202002281054354673..png

以下是对这些目录的解释:/bin
bin是Binary的缩写, 这个目录存放着最经常使用的命令。

/boot:
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

/dev :
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

/etc:
这个目录用来存放所有的系统管理所需要的配置文件和子目录。

/home
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的

/lib
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

/lost+found
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/media
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

/mnt
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

/opt
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

/proc
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

/root
该目录为系统管理员,也称作超级权限者的用户主目录。

/sbin
就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

/selinux
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

/srv
该目录存放一些服务启动之后需要提取的数据。

/sys
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

/tmp
这个目录是用来存放一些临时文件的。

/usr
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

/usr/bin:
系统用户使用的应用程序。

/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src:
内核源代码默认的放置目录。

/var
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

/run
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc
上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin:
这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。

/var
这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。




/sys目录下常用文件介绍:
/sys/dev
    该目录下存放主次设备号文件,其中分成字符设备、块设备的主次设备号码(major:minor)组成的文件名,该文件是链接文件并且链接到其真实的设备(/sys/devices)。

/sys/class
    该目录下包含所有注册在kernel里面的设备类型,这是按照设备功能分类的设备模型,每个设备类型表达具有一种功能的设备。每个设备类型子目录下都是这种设备类型的各种具体设备的符号链接,这些链接指向/sys/devices/下的具体设备。 设备类型和设备并没有一一对应的关系,一个物理设备可能具备多种设备类型;一个设备类型只表达具有一种功能的设备,比如:系统所有输入设备都会出现在/sys/class/input之下,而不论它们是以何种总线连接到系统的。

/sys/block
    该目录下的所有子目录代表着系统中当前被发现的所有块设备。按照功能来说放置在/sys/class下会更合适,但由于历史遗留因素而一直存在于/sys /block,但从linux2.6.22内核开始这部分就已经标记为过去时,只有打开了CONFIG_SYSFS_DEPRECATED配置编译才会有 这个目录存在,并且其中的内容在从linux2.6.26版本开始已经正式移到了/sys/class/block,旧的接口/sys/block为了向后兼容而保留存在,但其中的内容已经变为了指向它们在/sys/devices/中真实设备的符号链接文件

/sys/bus!!!
    该目录下的每个子目录都是kernel支持并且已经注册了的总线类型。这是内核设备按照总线类型分层放置的目录结构,/sys/devices中的所有设备都是连接于某种总线之下的,bus子目录下的每种具体总线之下可以找到每个具体设备的符号链接,一般来说每个子目录(总线类型)下包含两个子目录,一个是 devices,另一个是drivers;其中devices下是这个总线类型下的所有设备,这些设备都是符号链接,它们分别指向真正的设备(/sys/devices/下);而drivers下是所有注册在这个总线上的驱动,每个driver子目录下 是一些可以观察和修改的driver参数。

/sys/fs
    该目录使用来描述系统中所有的文件系统,包括文件系统本身和按照文件系统分类存放的已挂载点。

/sys/kernel
    这个目录下存放的是内核中所有可调整的参数。

/sys/firmware
    这里是系统加载固件机制的对用户空间的接口,关于固件有专用于固件加载的一套API,在附录 LDD3 一书中有关于内核支持固件加载机制的更详细的介绍;

/sys/module
    该目录下有系统中所有的模块信息,不论这些模块是以内联(inlined)方式编译到内核映像文件中还是编译为外模块(.ko文件),都可能出现在/sys/module中。即module目录下包含了所有的被载入kernel的模块。

/sys/power
    该目录是系统中的电源选项,对正在使用的power子系统的描述。这个目录下有几个属性文件可以用于控制整个机器的电源状态,如可以向其中写入控制命令让机器关机/重启等等。



/proc目录下常用文件介绍:
  • /proc/loadavg      前三列分别保存最近1分钟,5分钟,及15分钟的平均负载。
  • /proc/meminfo      当前内存使用信息
  • /proc/diskstats     磁盘I/O统计信息列表
  • /proc/net/dev      网络流入流出统计信息
  • /proc/filesystems    支持的文件系统
  • /proc/cpuinfo      CPU的详细信息
  • /proc/cmdline      启动时传递至内核的启动参数,通常由grub进行传递
  • /proc/mounts       系统当前挂在的文件系统
  • /proc/uptime       系统运行时间
  • /poc/version       当前运行的内核版本号等信息




/var 目录下常用文件介绍:
·/var/log/message
     日志信息,按周自动轮询

·/var/log/secure
     记录登陆系统存取信息的文件,不管认证成功还是认证失败都会记录

·/var/log/wtmp   
     记录登陆者信息的文件, last,who,w命令信息来源于此

·/var/spooll          
     这个目录通常放置一些队列数据,所谓的"队列"就是排队等待其他程序使用的数据。这些数据被使用后通常都会被删除

·/var/spool/cron/root      
     定时器配置文件目录,默认按用户命名

·/var/spool/clientmqueuer  
     当邮件服务未开启时,所有应发给系统管理员的邮件都将堆放在此

·/var/spool/maill      
     系统收到新信会放置到/var/spool/mail/中

·/var/tmp        
     比tmp允许的大或需要存在较长时间的临时文件(虽然系统管理员可能不允许/var/tmp有很旧的文件)

·/var/lib         
     程序本身执行的过程中,需要使用到的数据文件放置的目录。在此目录下各自的软件应该要有各自的目录

·/var/local     
    /usr/local中安装的程序的可变数据(即系统管理员安装的程序).注意,如果必要,即使本地安装的程序也会使用其他/var 目录,例如/var/lock.

·/var/lock     
     锁定文件.许多程序遵循在/var/lock 中产生一个锁定文件的约定,以支持他们正在使用某个特定的设备或文件.其他程序注意到这个锁定文件,将不试图使用这个设备或文件.

· /var/log/   
     各种程序的Log文件,特别是login (/var/log/wtmp log所有到系统的登录和注销) 和syslog (/var/log/messages 里存储所有核心和系统程序信息 /var/log 里的文件经常不确定地增长,应该定期清除.

· /var/run   
     保存到下次引导前有效的关于系统的信息文件.例如, /var/run/utmp 包含当前登录的用户的信息

· /var/cache/     
     应用程序缓存数据。这些数据是在本地生成的一个耗时的I/O或计算结果。应用程序必须能够再生或恢复数据。缓存的文件可以被删除而不导致数据丢失。



/dev目录下常用文件介绍:
/dev/hd[a-t]:        IDE设备


/dev/sd[a-z]:        SCSI设备


/dev/fd[0-7]:        标准软驱


/dev/md[0-31]:       软raid设备


/dev/loop[0-7]:      本地回环设备


/dev/ram[0-15]:      内存


/dev/null:         无限数据接收设备,相当于黑洞


/dev/zero:         无限零资源


/dev/tty[0-63]:      虚拟终端


/dev/ttyS[0-3]:      串口


/dev/lp[0-3]:        并口


/dev/console:       控制台


/dev/fb[0-31]:      framebuffer


/dev/cdrom =>       /dev/hdc


/dev/modem =>       /dev/ttyS[0-9]


/dev/pilot =>       /dev/ttyS[0-9]


/dev/random:       随机数设备


/dev/urandom:      随机数设备



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则