一、linux系统目录结构

1.1基本特点

1、在逻辑上所有目录都是在最高级别的目录根下,顶点/,其他所有目录都在根下

2、目录和设备没有关系(每一个目录可以是一个分区)

3、根下面的目录及目录的子目录是一个有层次的树状结构

4、很像一颗树倒挂着的一颗大树

5linux的目录结构和磁盘分区时分离的,自由组合

结构图:

挂载:给设备设置一个入口(linux的目录,绝对路径

linux下面设备默认是没有入口的(没门没窗口的监狱

mount  /dev/sda1 /mnt

mount实现挂载的命令

/dev/sda1 第一块硬盘的第一个分区

被挂载的目录/mnt 称为挂载点

 

1.2小结:

1linux系统的所有目录是一个有层次的倒着的树状目录结构,“/”是所有目录的起点

2、不同的目录数据可以跨越不同的磁盘分区或不同的磁盘设备

3、所有的目录都是按照一定的类别有规律的组织和命名

4linux系统里的设备默认情况是无法访问的,需要进行挂载

5、挂载就是给设备一个访问的入口,这个入口是linux的目录,一般使用绝对路径,这个目录入口被称为挂载点

6、实现挂载的命令为mount,卸载unmount.

7、通过df -h 查看系统的分区情况

8、系统分区时通过配置/etc/fstab实现开机自动挂载

 

 

二、目录结构

2.1FHS目录层次标准

定义两层规范

FHSFilesystem Hierrarchy Standard)文件目录结构标准

第一层:是“/”目录下的各个目录应该放什么文件数据

例如:/etc目录下放置系统的配置文件,/bin/sbin放置程序及系统命令

第二层:/usr unix software resource|secondary hierarchy

/proc操作系统运行时,进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里

 

2.2Unit系统目录结构历史

第一块 系统相关程序  /

第二块 用户自己的程序 /usr

除此之外,两块硬盘里面的其他的目录结构是完全相同的

第三块  /home用于存放用户数据

 

2.3重要的一级目录汇总

/bin       系统的二进制命令

/boot       linux内核及系统引导程序所需的文件目录

[root@oldboy ~]# du -sh /boot    查看目录或文件大小

39M     /boot

/dev        设备文件的目录

/etc         配置文件的默认路径(二进制安装包yum/rpm

fstabissuemotdprogile

/etc/init.d    服务启动命令存放目录

/home       普通用户家目录所在目录

/lib          共享库和内核模块文件存放目录

>----库是处于应用程序和系统之间的一个角色

/lost+found   存放系统意外崩溃或意外关机产生文件碎片。

/mnt         临时挂载存储设备的挂载目录

/opt          可选的安装包的目录

/proc  进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。

free –m    查看内存

cat /proc/loadavg 负载(系统繁忙程度)

cat /proc/meminfo 内存信息

cat /proc/cpuinfo cpu信息

cat /proc/mounts  挂载信息

内核:/proc/sys/net/ipv4/ip_forward对应/etc/sysctl.conf

/etc/sysctl.conf的配置参数

net.ipv4.ip_forward = 0

/root             超级用户的家目录

/sbin             超级用户root可执行的命令目录

/tmp             临时目录

/usr             用户安装的程序,系统程序的目录

/var             可变化的目录存放系统日志信息,

/var/log/messages     ----> system messages from syslogd(系统日志文件)dmesg

/var/log/secure         ---->system secure messages

 

2.4重要目录小结:

/etc/        配置文件目录(系统配置及服务配置文件、启动命令的目录)

     /etc/init.d/   启动命名目录

     /etc/hosts    主机名解析文件

     /etc/fstab    开机自动挂载文件

     /etc/inittab   系统开机加载的文件(设置运行级别,初始化系统配置,加载相应级别的脚本)

     /etc/profile   全局的环境变量配置文件

     /etc/motd    登录信息显示的文件

     /etc/sysconfig/i18n    字符集配置

/dev        设备文件目录

            例如:/dev/sda

/mnt       临时挂载点目录

/lost+found 意外关机或崩溃文件碎片所在的目录。fsck

/proc    内核与进程信息的的虚拟文件系统

       /proc/meminfo

       /proc/cpuinfo

    /proc/loadavg

        内核:/proc/sys/net/ipv4/ip_forward对应/etc/sysctl.conf里的配置。

/bin      用户二进制命令的目录

/sbin      超级用户二进制命令的目录

/lib       库文件的目录

/usr       用户安装的程序,系统程序的目录

/usr/local  用户安装的程序(c:\program files)

/var       可变化的目录,系统日志,安全日志等的目录

         /var/log/messages,/var/log/secure

/tmp      临时的系统目录

/home     普通用户家目录所在目录 ~

/root      超级用户的家目录 ~

/opt       可选的目录,用户安装程序的目录,厂商的目录。

/boot      系统引导程序的目录

三、重要的子目录

3.1.网卡的配置文件

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

之前使用setup命令修改网卡配置就是改上述文件

[root@bigboy ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0  #<==物理设备名,eth0表示第1块网卡

HWADDR=00:0c:29:2f:c5:63#<==网卡的MAC地址,48位。

TYPE=Ethernet #<==网络类型:以太网

UUID=a24d1033-520c-4958-bf04-2d55c55409ec <==用户标示

ONBOOT=yes #<==控制网卡是不是开机启动

NM_CONTROLLED=yes  网络管理

BOOTPROTO=static #<==其中,proto取下列值之一:none,引导

时不使用协议;static静态分配地址;bootp,使用BOOTP协议

,或dhcp,使用DHCP协议。

IPADDR=10.0.0.8  #<==addrip地址

NETMASK=255.255.255.0  #<==子网掩码,划分网络位和主机位

DNS2=8.8.8.8    #<==DNSbaidu.com变成了baidu服务器IP

DNS就是域名和IP的解析工具。

GATEWAY=10.0.0.2  #<==网关地址,路由器的地址

DNS1=10.0.0.2

IPV6INIT=no

USERCTL=no

 

DNS:Domain Name System 主要功能把上网的域名解析成服务器IP

DHCP:动态主机配置协议,局域网动态分配ip地址的协议

 

 

3.2.客户端DNS的配置文件

/etc/resolv.conf

[root@bigboy ~]# cat /etc/resolv.conf客户端DNS

nameserver 10.0.0.2

nameserver 8.8.8.8

 

*企业面试题

linux系统下DNS客户端的配置文件是————。

解答:/etc/resolv.conf

setup#→“network configuration#"DNS configuration"

小结:

1、客户端DNS可以在网卡配置文件里设置(ifcfg-eth0

2、客户端DNS也可以在/etc/resolv.conf里设置。

3、网卡里的设置DNS优先于/etc/resolv.conf

 

 

3.3./etc/hosts

-->设定用户Ip与域名的对应解析表,相当于本地LAN局域网内的DNS

用于程序员开发测试,运维人员服务器之间调用。

/etc/hosts :局域网 主机名和IP解析,相当于DNS工具(手动维护的)。

10.0.0.8  www.baidu.com

对应windows文件C:\WINDOWS\system32\drivers\etc\hosts

hosts企业里的作用:

1、开发,产品,测试等人员,用于通过正式的域名测试产品。

2、服务器之间的调用可以用域名(内部的DNS),方便迁移。

 

 

3.4./etc/sysconfig/network 

>----修改主机名配置网关

主机名的配置文件:可以修改主机名以及网卡启动,网关等配置。

[root@bigboy ~]# hostname oldboy   ==临时生效,退出重新登录生效

                           

[root@bigboy ~]# cat /etc/sysconfig/network   改配置:下一次开机生效。                

NETWORKING=yes

HOSTNAME=oldboy

[root@bigboy ~]# grep '/etc/sysconfig/network' /etc/init.d/network

if [ ! -f /etc/sysconfig/network ]; then

. /etc/sysconfig/network

cd /etc/sysconfig/network-scripts

        if [ -x /etc/sysconfig/network-scripts/init.ipv6-global ]; then

                /etc/sysconfig/network-scripts/init.ipv6-global start pre

        if [ -x /etc/sysconfig/network-scripts/init.ipv6-global ]; then

                /etc/sysconfig/network-scripts/init.ipv6-global start post

        if [ -x /etc/sysconfig/network-scripts/init.ipv6-global ]; then

                /etc/sysconfig/network-scripts/init.ipv6-global stop post

 

 

3.5. /etc/fstab

>----设置开机启动自动挂载磁盘的文件

fstab设置文件系统挂载信息的文件,使得开机能够自动挂载磁盘分区

[root@bigboy ~]# df -h 以人类可读的信息查看磁盘的挂载信息

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3       6.9G  1.5G  5.0G  24% /

tmpfs           497M     0  497M   0% /dev/shm

/dev/sda1       190M   36M  145M  20% /boot

 

挂载:

1.命令手动

mount -t ext4 -o noexec /dev/sda1 /mnt  命令写入fstab为如下形式:

====================================

/dev/sda1   /mnt   ext4 default   0   0

光驱的挂载:

mount -t iso9660 /dev/cdrom /mnt

 

[root@bigboy ~]# cat /etc/fstab

root@bigboy ~]# dd if=/dev/zero of=/dev/sdb1 bs=4096 count=10

记录了10+0 的读入    (模拟虚拟磁盘文件)

记录了10+0 的写出

40960字节(41 kB)已复制,0.00154423 秒,26.5 MB/

2 /etc/fstab 

#

# /etc/fstab

# Created by anaconda on Sun Sep 27 17:28:18 2015

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

UUID=ff53d3c3-5c52-4964-9dc7-a00717d9ceb7 /                       ext4    defaults        1 1

UUID=507de718-3dff-4f02-8972-8069bc83c2ad /boot                   ext4    defaults        1 2

UUID=af77052f-911c-4646-86f8-494e08e8e9e7 swap                    swap    defaults        0 0

设备                    挂载点                   FS类型 参数           备份检查

tmpfs                   /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

第一列挂载的设备可以是设备名或UUID,或磁盘标签

测试手动挂载:

1、创建了一个虚拟的块设备

dd if=/dev/zero of=/dev/sdb1 bs=4906 count=100

2、格式化

mkfs.ext4 /dev/sdb1

3、挂载

mount -t ext4 -o loop,noatime,noexec /dev/sdb1 /mnt

4、查看

df -h

fstab

出问题:修复:

1)开机提示,输入密码修复

2)救援模式,rescue

修改/etc/fstab只读状态 mount -o rwremount

 

mount挂载和fstab问题

NSF网络文件系统挂载时,网卡还没起,就已经加载fstab

monut -t nfs 10.0.0.8:/data /mnt

 

[root@oldboy ~]# blkid   查看设备对应UUID

/dev/sda1: UUID="b276175c-ee20-4a9b-9194-cf5cd6551850" TYPE="ext4"

/dev/sda2: UUID="fb4e92e6-3b20-4e45-9ab9-662fdc28e79d" TYPE="swap"

/dev/sda3: UUID="ecb5a832-3e56-4692-aaa6-f7c3a9cd5c07" TYPE="ext4"

 

 

3.6./etc/rc.local

>---用于存放开机自启动程序命令的文件(chkconfig常用来管理yum/rpm安装的程序的服务的开机自启动),开机时会把/etc/rc.local里的内容执行一遍。

让一个程序开机启动:

1chkconfig(/etc/init.d/sshd)

2)放入/etc/rc.local

建议选择:/etc/rc.local

我们把/etc/rc.local,服务器档案文件。

所有程序开机启动放入/etc/rc.local,注释。

 

3.7./etc/inittab 

>----系统开机启动要加载的文件

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

级别及加载相关的级别对应启动文件设置,

linux开机启动流程

1)开机BIOS 自检

2)MBR引导

3)grub 引导菜单

4)加载内核kernel

5)启动init进程  ps -ef|grep init

6)读取inittb文件,执行rc.sysinit.rc等脚本

/etc/inittab  

/etc/rc.d/rc.sysinit

/etc/rc.d/rc3.d

7)启动mingetty,进入系统登录界面

 

 

3.8./etc/export  

  设定NFS网络文件系统用的配置文件。

3.9./etc/init.d

yumrpm安装的软件)启动命令的路径

 /etc/init.d/sshd start === service sshd start

[root@bigboy ~]# /etc/init.d/network restart <==ONBOOT=yes

[root@bigboy ~]# ifdown eth0 && ifup eth0 关闭和启动

3.10. 变量路径

   /etc/profile    全局环境变量路径

   /etc/bashrc     全局环境变量路径

   用户的环境变量路径:~/.bash_profile,~/.bashrc

3.11.登录显示目录

/etc/motd        登录后显示的字符串

/etc/profile.d   加载系统登录程序一个目录,放一个文件(内容为命令)

/etc/issue   登录信息

       cat -n /etc/issue

       cat  /etc/redhat-release

3.12.系统文件相关目录

/etc/group #→设定用户的组名与相关信息※※※ chattr +i

/etc/passwd    #→帐号信息文件 ※※※※※

/etc/shadow    #→密码信息文件

/etc/gshadow  #→组密码信息文件

/etc/sudoers    可以visudo命令的配置文件

3.13.rsyslog服务轮询下述文件

/var/log/messages系统日志,自动轮询按周 rsyslog

/var/log/secure安全日志,SSH连接日志

 

3.14. 定时任务的配置文件

   /var/spool/cron/root

[root@bigboy ~]# crontab  -l

*/5 * * * * /usr/sbin/ntpdate time.nist.gov /dev/null 2>&1

You have new mail in /var/spool/mail/root

[root@bigboy ~]# cat /var/spool/cron/root  <===定时任务crond配置文件

*/5 * * * * /usr/sbin/ntpdate time.nist.gov /dev/null 2>&1

其他目录

/var/spool/clientmquene  临时邮件文件目录

/proc/mounts设备的挂载信息,df -h类似

/proc/sys/net/ipv4   /etc/sysctl.conf的配置参数对应目录

/usr/local存放用户自编译软件的

/usr/src内核源代码存放位置

/etc/rsyslog.conf日志设置文件

四、重要目录及文件汇总一览表

目录

描述

/boot

linux内核及系统引导程序所需的文件目录

/root

超级用户家目录

/home

普通用户家目录

/lost+founud

意外关机或崩溃文件碎片所在的目录

/bin

用户二进制命令目录

/sbin

超级用户root二进制命令目录

/etc

配置文件目录(系统配置及服务配置文件、启动命令的目录)

 

 

 

 

 

 

 

 

 

 

子目录文件

/sysconfig/network-scripts/ifcfg-eth()

网卡的配置文件

/resolv.conf

客户端DNS的配置文件

/hosts

设定用户Ip与域名的对应解析表,相当于本地LAN局域网内的DNS

/sysconfig/network  

设置主机名网关的配置等配置文件

/fstab

设置开机启动自动挂载磁盘的文件

/rc.local

用于存放开机自启动程序命令的文件

/inittab

系统开机启动要加载的文件

/export

设定NFS网络文件系统用的配置文件

/init.d

yumrpm安装的软件)启动命令的路径

/profile

全局环境变量路径

/bashrc

全局环境变量路径

/motd

登录后显示的字符串

/profile.d

加载系统登录程序一个目录,放一个文件(内容为命令)

/issue

认证前的登录信息,默认输出版本内核信息

/visudoes

可以Visudo的配置文件

/passwd

账号的相关信息文件

/shadow

账号密码信息文件

/group

用户组的相关信息文件

/gshadow

组密码信息文件

/rsyslog.conf

日志文件的设置

/var

可变化的目录存放系统日志信息

子目录文件

/log/messages

系统日志,自动轮询按周 rsyslog

/log/secure

安全日志,SSH连接日志

/spool/cron/root

定时任务配置文件

/spool/clientmquene

临时邮件文件目录

   /proc

进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。

子目录文件

/meminfo

内存信息文件

/cpuinfo

Cpu信息文件

/loadavg

负载(系统繁忙程度)

/mount

挂载信息文件

//sys/net/ipv4/ip_forward

对应/etc/sysctl.conf的配置参数路径

/dev

设备文件目录

/mnt

临时挂载点

/lib

库文件目录

/usr

用户安装的程序,系统程序的目录

子目录

/local

存放用户自编译软件的位置

/src

内核源代码存放位置

/tmp

临时的系统目录

/opt

可选的目录,用户安装程序的目录,厂商的目录

 

目录总结参考:

http://yangrong.blog.51cto.com/6945369/1288072

有关sys目录参考:

http://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/