对往Linux方向发展的运维工程师来说,或者对于需要用到Linux系统进行产品测试,售前,售后工程师可能对于Linux文件系统结构还比较陌生,不了解每个目录用来存放什么程序,哪些是程序文件,哪些是系统目录;相信看完这篇博客,能够揭开心中的疑惑,Linux系统设计最优秀的特征之一就是将所有内容都以文件的形式展现,通过一个树形结构统一管理,组织文件,如下图所示:Linux树形结构图;
1.1 树形目录图
从图中可以看出,整个文件系统类似于“树根”,简称”根“目录(root),整个根上面分出了许多“树杈,简称杈”,【杈:系统生成或自定义创建目录】每个"杈"下有分出了"杈",意思就是说每个"杈"下面还可以继续分"杈",当然,“杈"上面可以生出"叶子”【叶:可以创建目录和存放文件】
整个系统以文件形式全部存放在根目录,同时将所有文件进行分类,分级分层进行组织,形成一个树形目录结构,给管理文件带来许多便利;
1.2 目录功能
大部分Linux发行版本基本上遵循FSSTND标准【Linux文件系统目录布局,全名为 File System STaNDard】,例如Centos,Red Hat,Ubuntu,Debian,Kali等等,FSSTND标准的特点主要体现在根目录非常简洁,只包含系统最基本的文件,有利于程序的编写,移植,系统管理,维护等;
etc目录位于/“根”目录,主要存放与系统管理相关的配置文件和子目录,比较重要的有系统初始化文件/etc/rc,用户信息文件/etc/passwd等等,网络配置,服务启动配置文件也在/etc目录中;
/etc目录文件作用详细介绍
文件名称 / 目录名称 | 主要作用 / 详细信息 |
---|---|
passwd | 用户库文件,每一个用户的用户名,UID,GID,工作目录都存放在此目录 |
shadown | 存放用户密码文件,每个用户的密码加密后存放在此目录 |
group | 主要存放用户组信息 |
fstab | 系统开机启动自动挂载分区列表,需要设置开机自动挂载的分区,可以在此文件中编写加入 |
systemd | systemd是Centos7版本之后的新增目录,用于完成整个系统的基本初始化配置 |
hosts | 设定自己IP与主机名的对应表,类似于Windows系统中C盘windows/System32/dirvers的Host文件 |
resolv.conf | 客户端DNS配置文件 |
sysconfig/network-scripts/ifcfg-eth0 | sysconfig:系统配置,network-scripts:网卡配置文本存放目录,ifcfg-eth0:eth0为网卡标识,网卡名称 |
Xll | X-Windows 配置文件 |
rsyslog.conf | 系统日志输出配置文件,5.x版本之前对应的文件是syslog.conf,6.x版本对应文件是rsyslog.conf |
crontab | 系统级别守护进程配置文件 |
sysctl.conf | 系统内核参数配置文件,7.x版本之后,内核参数配置文件移动到了/usr/lib/sysctl.d目录,不过sysctl.conf配置文件同样生效,可以覆盖/usr/lib/sysctl.d文件中的配置 |
services | 定义系统服务与端口的对应关系 |
profile | 系统全局环境变量配置文件 |
/usr目录用于存放应用程序,文件。例如我们在系统安装时选择了许多软件包,这些软件包默认的安装目录是在/usr目录,通常/usr目录比较大,按照一些软件默认也会安装在/usr目录,类似于我们在Windows在装应用,默认在C:\Program Files;
usr目录文件作用详细介绍
文件名称 / 目录名称 | 主要作用 / 详细信息 |
---|---|
lib64 与 local /lib64 | 64位操作系统中的函数库目录 |
src | 包含所有程序的源代码,主要以Linux核心程序源代码为主 |
local | 存放本地安装的软件和其他文件,与系统没有关联 |
bin 与 local /bin | 可执行二进制文件目录 |
lib 与 local /lib | 32位操作系统使用的函数库目录 |
sbin 与 local /sbin | 存放系统管理员与超级用户所执行的命令,普通用户及应用用户没有权限执行 |
include | C语言的头文件,文件拓展名基本上.h |
share | 存放共享文件或目录,以及数据库,类似于Windows 网络共享 |
/var用于存放系统运行,软件运行的日志信息
/var目录文件作用详细介绍
文件名称 / 目录名称 | 主要作用 / 详细信息 |
---|---|
log | 存放各种应用程序的日志文件,(经常变动,需要定期清理) |
lib | 存放系统正常运行时需要改变的库文件 |
spool | maill,new,打印机队列和其他队列输入,输出缓冲命令 |
tmp | 存放比/tmp更大的危机 |
lock | 存放被锁定的文件,大部分文件会在/var/lock产生锁文件,确保其他程序不会同时使用这个设备 或文件,类似占用 |
local | 存放目录中所安装程序的可变数据 |
account | 存放已经格式化的man页【man页:在线帮助,man page】 |
run | 下次启动系统前的系统信息 |
/dev目录包含系统所有的设备文件信息
/dev目录文件作用详细介绍
文件名称 / 目录名称 | 主要作用 / 详细信息 |
---|---|
fd* | 软盘设备,fd0为第一个软盘设备,fd1代表第二个软盘设备 |
audio* | 声卡设备 |
hd* | IDE硬盘设备,hda为第一块ide硬盘,hdb代表第二块ide硬盘,通过此方法类推 |
sd* | SCSI设备,sda为第一块scsi硬盘,sdb代表第二块scsi硬盘,以此类推 |
lp* | 并行接口 |
pty* | 网络中登陆的远程终端设备 |
ram* | 系统内存 |
ttyS* | 串行接口,ttys0代表串行端口1,ttys1代表串行端口2,类似Windows系统中的COM1,COM2接口 |
Console | 系统控制台,也可以理解为桌面控制台,可直接连接到显示器 |
null | 输出空设备 |
tty* | 虚拟控制台,tty1代表第一个虚拟控制台,tty2为第二个虚拟控制台,Linux一共有6个虚拟控制台, |
/proc是一个虚拟目录,目录中的所有信息,包括目录都是通过内存映射,通过虚拟的内存映射目录可以和内核内部数据结构进行交互,获取关于进程的信息,同时可以在系统运行时修改内核参数,/proc与其他的目录不一样,它在内存中,而不是在硬盘
/proc目录文件作用详细介绍
文件名称 / 目录名称 | 主要作用 / 详细信息 |
---|---|
cpuinfo | CPU详细信息,CPU名称,型号,类型 |
meminfo | 内存信息,物理内存与虚拟内存 |
filesystems | 系统支持的文件和文件系统类型 |
device | 内核中设备驱动程序列表 |
net | 网络协议和状态信息 |
dma | 当前使用的dma通道【直接存储器存取,全名为Direct Memory Access】 |
ioports | 当前使用的 I/O 端口 |
modules | 当前系统加载的内核模块信息 |
stat | 系统的各种状态信息 |
uptime | 系统总启动时间和空闲时间,基本上以秒为单位 |
version | 内核版本信息 |
loadavg | 系统平均负载 |
kcore | 系统内存映像,与物理内存大小一致,实际不会占用这么大的空间 |
kmsg | 内核输出信息,被输出到rsyslog |
查看CPU信息
more /proc/cpuinfo
部分参数注解:
Cpu cores:内核
Mode name :CPU名称与类型
Physical ID:CPU的个数
Processor:逻辑CPU个数
查看系统内存信息
more /proc/meminfo
常用参数注解:
MemTotal:内存总大小
Memfree:可用内存大小
Buffers:缓冲内存大小
Cached:已使用内存大小
查看系统PCI设备(主板,声卡,显卡,网卡,USB设备)信息
lspci
Host bridge: 主板芯片
VGA compatible controller :显卡
Ethernet controller:网络适配器,网卡
PCI bridge:接口插槽
USB Controller:USB接口
Audio device:音频设备
查看磁盘分区信息
fdisk -l
输入 fdisk -l /dev/sda ,观察硬盘之实体使用情形。
dev/sda:dev是目录,sda是磁盘设备名称
输入 fdisk /dev/sda,可进入分割硬盘模式;
添加分区的步骤
常见文件类型:
挂载设备命令: mount
命令格式:【mount -t 文件系统类型 设备名称 挂载点】
设备通常在/dev目录,查看U盘,硬盘,外挂移动硬盘名称可使用fdisk -l命令
“hd” :hard disk,代表IDE硬盘;
“sd” : Scsi disk,代表SCSI硬盘;
例如:a 代表是第一个设备,如果服务器或者工作站电脑连接4块IDE硬盘,那么设备名称依次是hda、hdb、hdc、hdd;如果是 SCSI硬盘,那么设备名称为sda、sdb、sdc、sdd;
数字1 表示 a 硬盘的第一个分区,hda3:代表硬盘的第三个分区,通过这个方法一次类推,通过查看/var/log/messages来分辨设备名称,使用cat命令进行查看命令:cat /var/log/messages
挂载外接硬盘:mount -t vfat /dev/hda1 /mnt/acronis-waijie
(fdisk -l)查看外挂的硬盘分区设备号,假设为: /dev/hda1)
例:
mkdir /mnt/acronis-waijie 【建立挂载点】
mount -t vfat/dev/hda1 /mnt/acronis-waijie 【将hda1挂载到/mnt/acronis-waijie目录】
umount /mnt/acronis-waijie【卸载外接硬盘(卸载所挂载的目录)】
挂载U盘:mount -t vfat /dev/sda1 /mnt/acronis-usb
(注解:将U盘sda1挂载到/mnt/acronis-usb目录中;fdisk -l查看外挂闪存的设备号,一般为/dev/sda1;)
例:
mkdir /mnt/acronis-usb 【建立挂载点/mnt/acronis-usb】
mount /dev/sda1 /mnt/aconis-usb【将U盘sda1挂载到 /mnt/acronis-usb 目录】
umount /mnt/acronis-usb 【卸载挂载(同样也是卸载所挂载的目录)】
挂载光盘:mount -t iso9660 /dev/hda /mnt/acronis-gp
(注解:将光盘hda挂载到/mnt/acronis-gp目录;)
例:
mkdir /mnt/acronis-gp 【建立挂载点/mnt/acronis-gp】
mount -t iso9660 /dev/cdrom /mnt/acronis-gp 【将光盘挂载到 /mnt/acronis-gp 目录】
cd /mnt/cdrom【cd为切换目录命令,切换到/mnt/acronis-gp】
ls 【显示内容】
umount /mnt/acronis-gp 【卸载光盘】