首页 > 代码库 > 【系统知识点】linux目录结构

【系统知识点】linux目录结构

linux系统目录结构的基本特点介绍:

1)在逻辑上所有的目录都在最高级别的目录“/”,根目录是linux系统中所有目录的起始点,根下面的目录及目录的子目录是一个有层次的树状结构,很像一颗倒挂着的大树,这和windows系统按照硬盘分区分割的目录结构是不同的(windows系统可以理解为多棵树,每个分区就是一颗独立的小数

          linux系统中的这些不同的目录也是很特别的,不同的目录可以分布在不同的硬盘分区以及不同的硬盘设备上。这是windows系统难以做到的,windows系统的不同分区都是独立存在的。

PS:不同的目录可以分布在不同的硬盘分区以及不同的硬盘设备上

什么是挂载:

挂载:利用一个目录当成进入点,将磁盘分区的数据放置在该目录下;也就是说进入该目录就可以读取该分区

查询分区信息:

ls /dev/sda*

查询挂载情况:

df -h

挂载操作:

1./etc/fstab 记录了挂载关系的文档,系统启动前读取它根据其信息进行挂载

各列表示信息:设备名 挂载目录 文件系统类型 挂载选项 备份 是否磁盘检查

2linux系统中的所有目录内容按照类别组织。例如,linux下的应用程序,它的可执行程序可能在/usr/bin,而它的数据文件和帮助在/usr/share下,运行时加载的配置文件和服务启动命令却在/etc下。

技术分享

linux目录结构:

1.FHS:Filesystem Hierarchy Standard(文件系统层次化标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。

FHS定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如/etc应该要放置设置文件,/bin与/sbin则应该要放置可执行文件等等。第二层则是针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登录文件、/usr/share放置共享数据等等。

2.根目录结构

tree -L X / #查看根目录的X级目录

例:

[root@rex ~ 02:33:51]# tree -L 1 /

/

├── bin

├── boot

├── dev

├── etc

├── home

├── lib

├── lib64

├── lost+found

├── media

├── misc

├── mnt

├── net

├── opt

├── proc

├── root

├── sbin

├── selinux

├── srv

├── sys

├── tes

├── testing

├── tmp

├── usr

└── var

 

根目录下重要的目录解析:

/bin

/bin 常用二进制命令所在的目录。比如lscpmkdirrmcut等命令;/bin目录与/usr/bin类似,只是/usr/bin  一般是用户自己安装的而一些程序的命令。

catchgrpchmodchowncpdatedddfdmesg(打印或者控制内核信息的缓存),echofalsehostnamekilllnloginlsmkdirmknod(创建Linux中的字符设备文件和块设备文件),moremountmvpspwdunmountuname

/boot

/boot 存放静态文件(很少有变动,所以100-200M够了),linux的内核及引导系统程序所需的文件目录。安装系统分区的时候一般要分一个boot分区。

[root@rex ~  02:46:02]# ll /boot

total 28279

-rw-r--r--. 1 root  root   105195 Nov 11  2013 config-2.6.32-431.el6.x86_64

drwxr-xr-x. 3 root  root     1024 Mar  7   2015 efi

drwxr-xr-x. 2 root  root     1024 Jun  4   2015 grub

-rw-------. 1 root  root 17435649 Mar  7  2015 initramfs-2.6.32-431.el6.x86_64.img

-rw-------. 1 root  root  4547972 Mar  7   2015 initrd-2.6.32-431.el6.x86_64kdump.img

drwx------. 2 root  root    12288 Mar  7   2015 lost+found

-rw-r--r--. 1 root  root   193758 Nov 11  2013 symvers-2.6.32-431.el6.x86_64.gz

-rw-r--r--. 1 root  root  2518236 Nov 11  2013 System.map-2.6.32-431.el6.x86_64

-rwxr-xr-x. 1 root  root  4128944 Nov 11  2013 vmlinuz-2.6.32-431.el6.x86_64

/dev

设备文件的目录,比如声卡,磁盘,光驱....

/dev/null /dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失.

/dev/zero  /dev/zero---该设备无穷尽地提供0(ASCII 0 就是NULL),可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入NULL

/dev/tty  当前进程的控制终端的设备特殊文件。

/etc

1)二进制安装包(yumrpm)的配置文件默认路径 2)服务启动命令存放的目录/etc/init.d

[root@rex ~  02:55:22]# ll /etc/init.d/

total 368

-rwxr-xr-x. 1 root  root  1288 Aug 14  2013 abrt-ccpp

-rwxr-xr-x. 1 root  root  1628 Aug 14  2013 abrtd

-rwxr-xr-x. 1 root  root  1642 Aug 14  2013 abrt-oops

-rwxr-xr-x. 1 root  root  1725 Dec  3   2009 acpid

-rwxr-xr-x. 1 root  root  2062 Jan 20  2012 atd

-rwxr-xr-x. 1 root  root  3378 Mar 14  2012 auditd

-rwxr-xr-x. 1 root  root  4043 Oct 30  2013 autofs

-r-xr-xr-x. 1 root  root  1340 Oct 30  2013 blk-availability

-rwxr-xr-x. 1 root  root   710 Jun 30  2010 bluetooth

-rwxr-xr-x. 1 root  root  2094 Jan 12  2013 certmonger

-rwxr-xr-x. 1 root  root 11355 Aug  2  2013 cpuspeed

-rwxr-xr-x. 1 root  root  2826 Sep 12  2013 crond

-rwxr-xr-x. 1 root  root  3034 Aug  7   2013 cups

-rwxr-xr-x. 1 root  root  1702 Jan  4   2013 dnsmasq

-rwxr-xr-x. 1 root  root  3245 Jul  9   2013 firstboot

-rw-r--r--. 1 root  root 18586 Oct 10  2013 functions

............

/home

普通用户的家目录默认数据存放目录

/lib

共享库&内核库文件存放的目录

/lost+found

ext3文件系统中,当系统意外崩溃或机器意外关机,会产生一些文件碎片在这里。当系统在开启启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。当系统发生问题,可能会有文件被移到这个目录中,可能需要用手工的方式来修复,或移动文件到原理的位置上。

/mnt

一般是用于临时挂载存储设备的挂载目录,比如有cdromu盘等目录。直接插入光驱无法使用,要先挂载后使用。

/opt

表示的是可选择的意思,有些软件包也会被安装在这里,也就是自定义软件包,我们自己编译的软件包,就可以安装在这个目录中;通过源码包安装的软件,可以通过./configure --prefix=/opt/目录,非必须这样,视习惯而定。

/proc

操作系统运行时,进程信息以及内核信息(比如cpu,硬盘分区,内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统,它的定义可以参见/etc/fstab

[root@rex ~  03:28:24]# grep proc /etc/fstab

proc                    /proc                   proc    defaults        0 0

[root@rex ~ 03:28:33]# cat /proc/meminfo  #查看内存信息

MemTotal:        2046584 kB

MemFree:         1458020 kB

Buffers:           47964 kB

Cached:           296076 kB

SwapCached:            0 kB

Active:           221968 kB

Inactive:         204872 kB

Active(anon):      83032 kB

……

[root@rex ~ 03:29:16]# cat /proc/cpuinfo #查看cpu信息

processor        :  0

vendor_id        :  GenuineIntel

cpu  family        : 6

model                :  42

model  name        : Intel(R) Core(TM)  i5-2450M CPU @ 2.50GHz

stepping        :  7

……

/root

linux超级权限用户root的家目录

/sbin

大多是涉及系统管理的命令存放,是超级权限用户root的可执行命令存放地,这个目录和/usr/sbin;/usr/X11R6/sbin/usr/local/sbin目录是相似的

如:fdisk,fsck,halt(关机),ifconfig,init,mkfs,mkswap,reboot,route,swaponswapoffdumpe2fsmke2fs....

/tmp

临时文件目录,有事用户运行程序的时候,会产生临时文件,该目录就是存放这些文件的,权限比较特殊。/var/tmp目录和这个目录相似。

/usr

第二个主要目录,这个是系统存放程序的目录,比如命令,帮助文件等。这个目录下面有很多文件和目录。当我们按照一个linux发行版官方提供的软件包时,大多安装在这里。

如果有涉及服务器配置文件的,会把配置文件安装在/etc目录中。

/usr/bin #用户可执行文件目录

/usr/include#程序的头文件存放目录

/usr/lib #库文件存放

/usr/share/font #字体目录

/usr/share/man #帮助目录

/usr/share/doc #文档目录

/usr/src  #源代码

………….

/var

这个目录的内容是经常变动的,看名字就知道,我们可以理解为vary的缩写,/var下有/log用来存放系统日志的目录,如:系统日志路径/var/log/messages/var/www目录是定义Apache的服务器站点存放目录。/var/lib 用来存放一些库文件,比如mysql的,以及mysql数据库的存放地

/var/cache  程序缓存数据

/var/local  /usr/local的常变数据

/var/lock  lock文件

/var/log日志文件

/var/log/lastlog  每个用户的最近一次登录

/var/log/messages  系统日志文件

/var/spool/cron  定时任务的配置文件路径

 

常用的必须熟记的子目录:

 /etc/sysconfig/network-scripts/ifcfg-eth0

配置网络地址及GW;使网卡生效(1/etc/init.d/network restart,ifdown eth0&&ifup eth0

/etc/resolv.conf

设置本机的客户端DNS

/etc/hosts

设定用户ip与名字的对应表,相当于本地LANDNS

作用:

1.用于通过域名测试

2.服务器之间的调用可以用域名

/etc/fstab

记录开机要mount的文件系统

/etc/inittab

设定系统启动时init进程将把系统设置成什么样的runlevel

/etc/exports

设定NFS系统用的配置文件路径

/etc/init.d/

这个目录是用来存放系统或服务器以SystemV模式启动的脚本,这在以systemV模式启动或初始化的系统中常见。比如yumrpm安装的软件的启动命令…..

 

[root@vrfblog ~]#  ls -l /etc/init.d

lrwxrwxrwx. 1 root  root 11 Dec 25  2014 /etc/init.d -> rc.d/init.d

 

[root@vrfblog ~]#  ls /etc/init.d/

acpid   blk-availability  functions   ip6tables   killall       messagebus  netfs     ntpdate  quota_nld    rsyslog     single   udev-post

atd     bootlocal         halt       iptables    lvm2-lvmetad  mysqld       network  postfix  rdisc         sandbox    sshd     vsftpd

auditd  crond             httpd      irqbalance  lvm2-monitor  netconsole   ntpd     psacct   restorecond  saslauthd   sysstat

/etc/xinetd.d/

如果服务器是通过xinitd模式运行的,它的脚本要放在这个目录下面。

vim /etc/profile

设置全局环境变量的配置路径;修改完之后,. /etc/profile 使其生效

/etc/profile.d/

放置开机就要运行的脚本,命令或文件独立存在!



/etc/issue

记录用户登录前显示的信息

/etc/motd

登陆提醒

/etc/redhat-release

[root@vrfblog  xinetd.d]# cat /etc/redhat-release

CentOS release 6.5  (Final)

/etc/group

设定用户的组名与相关信息

/etc/passwd

账号信息文件

/etc/shadow

密码信息文件

/etc/sudoer

配置可以执行sudo命令的用户

/etc/securetty

设定哪些终端可以让root登陆

/etc/login.defs

所有用户登录时的缺省配置

/etc/modprobe.conf

内核模块额外参数设定

/etc/syslog.conf  or /etc/rsyslog.conf

日志设置文件



/lib

系统会使用到的函数库

/lib/modules

kernel的相关模块

/var/lib/rpm

rpm套件安装处

/lib64

库文件存放目录



/usr/local

存放用户自编译安装软件的存放目录

/usr/local/bin

用户安装的小的应用程序和一些在/usr/local目录下大应用程序的符号链接

/usr/share

系统共用的东西存放地

/usr/src

内核源码存放目录



/var/log

各种系统日志存放地

/var/log/messages

系统信息默认日志文件,非常重要。按周自动轮询。

[root@vrfblog ~]#  ll /var/log/messages*

-rw------- 1 root  root   218 Dec 18 06:54  /var/log/messages

-rw------- 1 root  root   100 Nov 26 21:57  /var/log/messages-20161127

-rw------- 1 root  root   431 Dec  3 21:11 /var/log/messages-20161204

-rw------- 1 root  root 29878 Dec  9 12:56  /var/log/messages-20161211

-rw------- 1 root  root 29394 Dec 16 13:03 /var/log/messages-20161218

/var/log/secure

记录登入系统存取信息的文件,按周自动轮询,例如pop3sshtelnetftp 等都会记录在此。

/var/log/wtmp

记录登陆者信息的文件last

/var/spool /var/spool/cron/root

定时任务crontab默认目录,按用户名命令的文件

/var/spool/mail

系统用户邮件存放目录

/var/spool/clientmqueue

临时邮件文件目录,有很多原因会导致这个目录碎文件很好,比如crontab定时任务命令不加>/dev/null等。工作中偶尔会因为该目录文件太多,导致/var所在分区inode数量被消耗尽,无法写入文件的情况



/proc

虚拟目录,是内存的映射

/proc/version

内核版本

/proc/sys/kernel/

系统内核功能

/etc/sysctl.conf

内核参数配置路径;修改的是/proc/sys/net/ipv4/下对应的一些参数,如net.ipv4.tcp_tw_reuse---/proc/sys/net/ipv4/tcp_tw_reuse

/proc/cpuinfo

关于处理器的信息

/proc/meminfo

系统内存信息

/proc/devices

当前运行内核所配置的所有设备清单

/proc/dma

当前正在使用DMA通道

/proc/filesystems

当前运行内核所配置的文件系统

/proc/interrupts

正在使用的中断和曾经有多少个中断

/proc/iports

当前正在使用的IO端口

/proc/loadavg

系统负载信息(系统的繁忙情况,比较准确,但不够细致) 阈值是cpu核数

本文出自 “走在产品路上的运维dog~” 博客,转载请与作者联系!

【系统知识点】linux目录结构