03-目录结构

Posted 汉克书

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了03-目录结构相关的知识,希望对你有一定的参考价值。


目录结构

作者:Ago

归档:学习笔记

2017/1/6

 

目 录

 

第1章 linux系统沐目录结构的基本特点介绍

(1) linux目录:一切从“根开始”,“/”是所有目录的起点(顶点):相对路径和绝对路径

(2) linux根下面的目录是一个有层次的树状结构

(3) 倒挂的一棵树

(4) linux每个目录可以挂在在不同的设备(磁盘)上,windows不容易做到

在逻辑上所有的目录(包括目录下的子目录)都在最高级级别的目录“/”下,根(“/”)目录是linux系统中所有目录的起始点(顶点),根下面的目录及目录的子目录是一个有层次的树状结构,很像一颗倒挂着的一棵大树,这和windows系统按照硬盘分区(C:D:E:)分割的目录结构是不同的(windows一个盘就是一棵树,多棵树一起)。

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

clip_image002

1.1 挂载光盘 和卸载光盘

  1 [root@AIGE ~]# mount /dev/cdrom /mnt/
  2 
  3 mount: block device /dev/sr0 is write-protected, mounting read-only
  4 
  5 [root@AIGE ~]# df
  6 
  7 Filesystem 1K-blocks Used Available Use% Mounted on
  8 
  9 /dev/sda3 7148132 1452968 5325400 22% /
 10 
 11 tmpfs 506040 0 506040 0% /dev/shm
 12 
 13 /dev/sda1 194241 33767 150234 19% /boot
 14 
 15 /dev/sr0 3824484 3824484 0 100% /mnt
 16 
 17 [root@AIGE ~]# umount /mnt/
 18 
 19 [root@AIGE ~]# df
 20 
 21 Filesystem 1K-blocks Used Available Use% Mounted on
 22 
 23 /dev/sda3 7148132 1452968 5325400 22% /
 24 
 25 tmpfs 506040 0 506040 0% /dev/shm
 26 
 27 /dev/sda1 194241 33767 150234 19% /boot
 28 

磁盘接口

对应设备

sata/sas/scsi

sda(第一块盘)sdb(第二块盘)以此类推

ide

had(第一块盘)sdb(第二块盘)以此类推

sda1 盛大

分区======》新房划分隔符

(5) linux下面设备不挂载是看不到入口的,没有窗口没门的监狱,如果设备被访问就必须有一个入口,这个入口就是挂载点,挂载点实质就是目录。

clip_image003

linux系统目录的特点是,不同的目录可以对应不同的分区或者磁盘。

clip_image005

/ /boot 等 开机自动挂载--》/etc/fstab

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

1.2 小结

linux系统的所有目录是一个有层次的倒着的树状目录结构。“/”根是所有目录的顶点

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

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

相对路径,相对于当前路径下的路径

第2章 目录的介绍

目录

应放置档案内容

第一部分:FHF要求必须要存在的目录

/bin

系统有很多放置执行档的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够被操作的指令。 在/bin底下的指令可以被root与一般帐号所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指令。

/boot

这个目录主要在放置开机会使用到的档案,包括Linux核心档案以及开机选单与开机所需设定档等等。 Linux kernel常用的档名为:vmlinuz,如果使用的是grub2这个开机管理程式, 则还会存在/boot/grub2/这个目录喔!

/dev

在Linux系统上,任何装置与周边设备都是以档案的型态存在于这个目录当中的。 你只要透过存取这个目录底下的某个档案,就等于存取某个装置啰~ 比要重要的档案有/dev/null, /dev/zero, /dev/tty, /dev/loop*, /dev/sd*等等

/etc

系统主要的设定档几乎都放置在这个目录内,例如人员的帐号密码档、 各种服务的启始档等等。一般来说,这个目录下的各档案属性是可以让一般使用者查阅的, 但是只有root有权力修改。FHS建议不要放置可执行档(binary)在这个目录中喔。比较重要的档案有: /etc/modprobe.d/, /etc/passwd, /etc/fstab, /etc/issue 等等。另外 FHS 还规范几个重要的目录最好要存在 /etc/ 目录下喔:

l /etc/opt(必要):这个目录在放置第三方协力软体 /opt 的相关设定档

l /etc/X11/(建议):与 X Window 有关的各种设定档都在这里,尤其是 xorg.conf 这个 X Server 的设定档。

l /etc/sgml/(建议):与 SGML 格式有关的各项设定档

l /etc/xml/(建议):与 XML 格式有关的各项设定档

/lib

系统的函式库非常的多,而/lib放置的则是在开机时会用到的函式库, 以及在/bin或/sbin底下的指令会呼叫的函式库而已。 什么是函式库呢?妳可以将他想成是‘外挂’,某些指令必须要有这些‘外挂’才能够顺利完成程式的执行之意。 另外 FHS 还要求底下的目录必须要存在:

l /lib/modules/:这个目录主要放置可抽换式的核心相关模组(驱动程式)喔!

/midia

media是‘媒体’的英文,顾名思义,这个/media底下放置的就是可移除的装置啦! 包括软碟、光碟、DVD等等装置都暂时挂载于此。常见的档名有:/media/floppy, /media/cdrom等等。

/sbin

Linux有非常多指令是用来设定系统环境的,这些指令只有root才能够利用来‘设定’系统,其他使用者最多只能用来‘查询’而已。 放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。 至于某些伺服器软体程式,一般则放置到/usr/sbin/当中。至于本机自行安装的软体所产生的系统执行档(system binary), 则放置到/usr/local/sbin/当中了。常见的指令包括:fdisk, fsck, ifconfig, mkfs等等。

/srv

srv可以视为‘service’的缩写,是一些网路服务启动之后,这些服务所需要取用的资料目录。 常见的服务例如WWW, FTP等等。举例来说,WWW伺服器需要的网页资料就可以放置在/srv/www/里面。 不过,系统的服务资料如果尚未要提供给网际网路任何人浏览的话,预设还是建议放置到 /var/lib 底下即可。

/tmp

这是让一般使用者或者是正在执行的程序暂时放置档案的地方。 这个目录是任何人都能够存取的,所以你需要定期的清理一下。当然,重要资料不可放置在此目录啊! 因为FHS甚至建议在开机时,应该要将/tmp下的资料都删除唷!

/usr

第二层 FHS 设定,后续介绍

/var

第二曾 FHS 设定,主要为放置变动性的资料,后续介绍

第二部分:FHS建议可以存放的目录

/home

这是系统预设的使用者家目录(home directory)。在你新增一个一般使用者帐号时, 预设的使用者家目录都会规范到这里来。比较重要的是,家目录有两种代号喔:

l ~:代表目前这个使用者的家目录

l ~dmtsai :则代表 dmtsai 的家目录!

/lib<qual>

用来存放与 /lib 不同的格式的二进位函式库,例如支援 64 位元的 /lib64 函式库等

/root

系统管理员(root)的家目录。之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时, 该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分割槽中。

事实上FHS针对根目录所定义的标准就仅有上面的咚咚,不过我们的Linux底下还有许多目录你也需要瞭解一下的。 底下是几个在Linux当中也是非常重要的目录喔:

目录

应放置档案内容

/lost+found

这个目录是使用标准的ext2/ext3/ext4档案系统格式才会产生的一个目录,目的在于当档案系统发生错误时, 将一些遗失的片段放置到这个目录下。不过如果使用的是 xfs 档案系统的话,就不会存在这个目录了!

/proc

这个目录本身是一个‘虚拟档案系统(virtual filesystem)’喔!他放置的资料都是在记忆体当中, 例如系统核心、行程资讯(process)、周边装置的状态及网路状态等等。因为这个目录下的资料都是在记忆体当中, 所以本身不占任何硬碟空间啊!比较重要的档案例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/* 等等。

/sys

这个目录其实跟/proc非常类似,也是一个虚拟的档案系统,主要也是记录核心与系统硬体资讯较相关的资讯。 包括目前已载入的核心模组与核心侦测到的硬体装置资讯等等。这个目录同样不占硬碟容量喔!

clip_image006

2.1 小结:重要目录回顾

/dev/ 设备目录

/etc/ 系统配置及服务配置文件,服务启动命令的目录/etc/init.d

/proc/ 显示内核及进程信息的虚拟文件系统

/tmp 临时文件目录

/home 普通用户的家目录

/root root的目录(超级管理员)

/var 变换的目录,一般时日志文件(/var/log),cache的目录

/usr 用户程序及数据,帮助文件,二进制命令等的目录。

/bin 普通用户命令的目录

/sbin 超级用户命令的目录

第3章 /etc/重要目录里的重点(了解)

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

配置网络地址及GW等

  1 (1) 查看eth0 (习惯用法,第一块网卡,第二块是eth1)
  2 
  3 (2) 通过setup -->“networ configuration”修改网卡配置
  4 
  5 (3) /etc/init.d/network restart重启(全部)(stop停止,start开启,status查看状态)
  6 
  7 配置文件解释
  8 
  9 DEVICE=eth0 #物理设备名。eth0通常是第一块网卡
 10 
 11 TYPE=Ethernet #以太网
 12 
 13 ONBOOT=yes #重启网卡或者服务器之后控制网卡是不是自动启动
 14 
 15 NM_CONTROLLED=yes #不知道是什么服务
 16 
 17 BOOTPROTO=none #none,引导时不使用协议,static,静态分配地址,bootp,使用BOOTP协议,或者dhcp,使用DHCP协议
 18 
 19 USERCTL=no
 20 
 21 PEERDNS=yes
 22 
 23 IPV6INIT=no #是否开启IP6
 24 
 25 HWADDR=00:0c:29:57:1d:5a #MAC地址
 26 
 27 IPADDR=192.168.101.129 #IP地址
 28 
 29 NETMASK=255.255.255.0 #子网掩码
 30 
 31 DNS2=223.5.5.5 #域名解析DNS地址
 32 
 33 GATEWAY=192.168.101.2 #网关地址
 34 
 35 DNS1=192.168.101.2
 36 
 37 UUID #唯一标识磁盘的标识 blkid
 38 
3.1.1 小结

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

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

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

启动网卡的DNS会覆盖/etc/resolv.conf

3.2 /etc/host

设定用IP与名字(或域名)的对应解析表,相当于本地LAN局域网内的DNS解析文件

用法:IP 域名

hosts文件在企业里的作用

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

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

3.3 /etc/sysconfig/network

可修改机器名及网卡启动,网关等配置。

永久更改主机名,需同时修改以下两项:

  1 1. vi /etc/sysconfig/network
  2 
  3 2. hostname 主机名
  4 
  5 3. uname -n
  6 
  7 4. 修改主机名
  8 
  9 5. setup-dns 里面(不推荐)
 10 
 11 [root@Aige ~]# sed \'s#HOSTNAME=AIGE#HOSTNAME=Aige#g\' /etc/sysconfig/network
 12 
 13 NETWORKING=yes
 14 
 15 HOSTNAME=Aige
 16 
 17 [root@Aige ~]# sed -i \'s#HOSTNAME=AIGE#HOSTNAME=Aige#g\' /etc/sysconfig/network
 18 
 19 [root@Aige ~]# cat /etc/sysconfig/network
 20 
 21 NETWORKING=yes
 22 
 23 HOSTNAME=Aige
 24 
 25 [root@Aige ~]#
 26 

3.4 /etc/rc.local

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

chkconfig常用管理yum/rpm安装的程序的服务自启动情况

自己开发(编译)习惯用rc.local

3.5 /etc/inittab

设定系统启动时init进程将把系统设置成那个runlevel运行级别及加载相关的级别对ing启动文件设置

3.6 /etc/exports

NFS的配置文件,后期补全

3.7 /etc/init.d

这个目录用来存放通过yum或rpm安装的服务的启动程序(脚本)

/etc/init.d===》/etc/rc.d/init.d

service 命令直接指向这个配置文件

service 服务名 start == /etc/init.d/服务名 start

3.8 /etc/profile

系统全局环境变量永久生效的配置文件,定义别名及PATH变量等

  1 [root@Aige ~]# echo $PATH
  2 
  3 /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
  4 
  5 [root@Aige ~]#
  6 

3.9 /etc/profile.d

加载系统登录程序一个目录,命令或 文件独立存在

以文件的形式存在(*.sh为扩展名),但可执行

(跳板机)

3.10 /etc/issue

在用户登录前显示出来(真实机,不是远程连接)

安全优化:清空此文件

3.11 /etc/issue.net

3.12 /etc/motd

登录后的提示

3.13 /etc/redhat-release

系统版本信息

3.14 /etc/group

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

3.15 /etc/passwd

账号信息文件

3.16 /etc/shadow

密码信息文件

3.17 /etc/gshadow

组密码信息文件

3.18 /etc/sudoers

可以执行使用sudo命令的配置文件 等于visudo命令

3.19 /etc/securetty

设定哪些终端可以让root登录 (tty终端)

3.20 /etc/login.defs

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

3.21 /etc/modprobe.conf

内核模块额外参数设定

3.22 /etc/rsyslog.conf

日志设置文件

第4章 /usr文件重要(了解)

4.1 /usr/local

这个目录一般时用来存在用户自编译安装软件的存放目录(默认)

4.2 /usr/local/bin

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

4.3 /usr/local/sbin

系统全局环境目录,可放置一些不需要加路径执行的脚本

4.4 /usr/share

系统共用的东西存在地

/usr/share/doc

/usr/share/man帮助文件

4.5 /usr/src

内核源码存放目录

4.6 /usr/bin

使用者可执行的binary file的目录(命令)

4.7 /usr/local/bin

使用者可执行的binary file的目录(命令)

4.8 /usr/lib

系统会使用到的函数库

4.9 /usr/local/lib

系统会使用到的函数库

第5章 /var/重要(了解)

5.1 /var/log/messages

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

5.2 /var/log/secure

记录登录系统存取信息的文件,按周自动轮询

5.3 /var/log/wtmp

记录登录者信息的文件。last login records lastlog

5.4 /var/spool/clientmqueue

sendmail临时邮件文件目录,开启邮件服务,容易使inode满。

centos6不安装,不会出现此问题

第6章 /proc/重要(了解)

虚拟目录,使内存的映射,内核和进程的虚拟文件系统目录

6.1 /proc/version

内核版本

6.2 /proc/sys/kernel

系统内核功能

6.3 /proc/sys/net/ipv4

6.4 /proc/cpuinfo

关于处理器的信息,如类型,厂家,型号和性能等

6.5 /proc/meminfo

系统内存信息

  1 free -m
  2 
  3 [root@Aige ~]# free -m
  4 
  5 total used free shared buffers cached
  6 
  7 Mem: 482 476 6 4 127 66
  8 
  9 -/+ buffers/cache: 282 200
 10 
 11 Swap: 768 18 750
 12 
 13 [root@Aige ~]#
 14 

6.6 /proc/devices

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

6.7 /proc/dma

当前正在使用的DMA通道

6.8 /proc/filesystems

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

6.9 /proc/interrupts

正在使用的终端,和曾经又多少个中断

6.10 /proc/ioports

当前正在使用的I/O端口

6.11 /proc/loadavg

系统负载平均值的信息

  1 uptime
  2 
  3 [root@Aige ~]# uptime
  4 
  5 09:13:18 up 11:13, 1 user, load average: 1.05, 0.43, 0.27
  6 
  7 [root@Aige ~]#
  8 

还有w和top可以查看负载

6.12 /proc/mouts

设备的挂载信息。

和df命令类似

  1 [root@Aige ~]# df
  2 
  3 Filesystem 1K-blocks Used Available Use% Mounted on
  4 
  5 /dev/sda3 7148132 2441644 4336724 37% /
  6 
  7 tmpfs 246976 0 246976 0% /dev/shm
  8 
  9 /dev/sda1 194241 33767 150234 19% /boot
 10 
 11 [root@Aige ~]#
 12 

以上是关于03-目录结构的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段5——HTML元素结构

在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途

分享几个实用的代码片段(第二弹)

分享几个实用的代码片段(第二弹)

片段替换整个屏幕

使用 BottomNav 和 TabMenu 导航后的空白片段