Linux目录结构
-
对于文件管理的概述:
什么是文件管理?文件管理无非就是我们对一个文件进行、创建、复制、移动、查看、编辑、压缩、查找、删除、等操作。
当我们想修改系统的主机名称,是否应该知道文件在哪,才能去做对应的修改?所以今天我们就要了解Linux的目录结构,能够准确定位文件的位置,才可以更加快速的来进行对文件的管理。2.系统目录结构
几乎所有的操作系统都是使用目录结构组织文件就是在一个目录中存放子目录和文件, 而在子目录中又会进一步存放子目录和文件,以此类推形成一个树状的文件结构,由于其结构很像一棵树的分支, 所以该结构又被称为“目录树”。
就好比如我们Windows系统里面的C:\ D:\,都是一个根,是以多根的方式组织文件。
而Linux系统是以单根的方式来组织文件的。只有一个根目录 /
下图是Centos7的目录结构
根目录里面又分为很多的子目录,各个子目录存放的数据信息又各不相同。
1)存放命令相关的目录
/bin , 存放普通用户使用的命令 /bin/ls, /bin/date
/sbin , 存放管理员使用的命令 /sbin/service
例:
[root@localhost etc]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@localhost etc]# which useradd
/usr/sbin/useradd
2)存放用户相关数据的家目,不同的用户所在目录不同
/home ,普通用户的家目录, 默认为/home/username
/root ,超级管理员root的家目录, 普通用户无权操作
例:
[root@localhost ~]# pwd
/root
[root@localhost ~]# useradd abc
[root@localhost ~]# ls /home/
abc
3)系统文件目录
/usr,相当于C:\Windows
/usr/local,软件安装的目录,相当于C:\Program
/usr/bin/,普通用户使用的应用程序(重要)
/usr/sbin,管理员使用的应用程序(重要)
/usr/lib,库文件Glibc 32bit (库文件就类似于汽车上的紧固件零件,不可缺少)
/usr/lib64,库文件Glibc 64bit
例:
[root@localhost usr]# ls /usr
bin games lib libexec sbin src
etc include lib64 local share tmp
4)启动目录
/boot, 存放的系统启动相关的文件,例如:kernel,grub(引导装载程序)
grub( 告诉你 有哪些内核,你可以选择需要加载的那一个)
vmlinuz-3.10.0-957.12.2.el7.x86_64 正常的系统内核
vmlinuz-0-rescue-93f219319dd5bdb42d9f1c8f2e23d329 系统的救援内核
**
例:
[root@localhost usr]# ls /boot/
config-3.10.0-957.el7.x86_64
efi
grub
grub2
initramfs-0-rescue-d9f4caffdd1a47f8a012c903df2b8d06.img
initramfs-3.10.0-957.el7.x86_64.img
symvers-3.10.0-957.el7.x86_64.gz
System.map-3.10.0-957.el7.x86_64
vmlinuz-0-rescue-d9f4caffdd1a47f8a012c903df2b8d06
vmlinuz-3.10.0-957.el7.x86_64
[root@localhost usr]#
/boot是很重要的目录,不可以删除,一旦删除就会出现系统崩溃无法启动的情况
5)配置文件目录
/etc,极其重要,后续所有服务相关的配置都在这个目录中
/etc/sysconfig/network-script/ifcfg-(网关名称),网络配置文件
/etc/hostname,系统主机名配置文件
/etc/resolv.conf,dns客户端配置文件
/etc/hosts,本地域名解析配置文件
例:
[root@localhost usr]# cat hostname
cat: hostname: No such file or directory
[root@localhost usr]# cat /etc/hostname
localhost.localdomain
[root@localhost usr]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
6)可变的目录与临时目录
/var,存放一些变化文件,比如/var/log/下的日志文件
/var/tmp,进程产生的临时文件
/tmp,系统临时目录(类似于公共厕所)
/vmr/tmp里面产生的临时文件是会自动删除的
7)设备目录文件
/dev,存放设备文件,比如硬盘,硬盘分区,光驱,等等
/dev/null,黑洞设备,只进不出。类似于垃圾回收站,回收之后无法恢复。
/dev/random,生成随机数的设备
/dev/zero,能远远不断的产生数据,类似于取款机,随时随地取钱
[root@localhost usr]# ls /dev/sda*
/dev/sda /dev/sda1 /dev/sda2
[root@localhost usr]# ls /dev/zero /dev/random /dev/null
/dev/null /dev/random /dev/zero
[root@localhost usr]# echo $RANDOM
944
[root@localhost usr]# !!
echo $RANDOM
19105
8)虚拟的文件系统(如对应的进程停止则/proc下对应目录则会被删除)
/proc,反映系统当前进程的实时状态
PS:/proc类似于汽车在运行过程中的仪表板,能够看到汽车的油耗、时速、转向灯、故障等等
9)剩下其他目录信息(了解即可)
media 挂载我们的u盘、或者其他设备
mnt 挂载我们的u盘、或者其他设备
opt 存放第三方厂商软件,例如oracle , gitlab
run 包含系统运行时所需要的文件。以前 /var/run
srv 服务启动后需要访问的数据目录。使用很少| saltstack
sys sys和proc一样是虚拟文件系统,记录核心系统硬件信息。
在Linux7系统中, /bin, /sbin, /lib, /lib64都以软链接的形式链接到/usr/目录下
/bin --> /usr/bin
/sbin --> /usr/sbin
lib -> usr/lib
lib64 -> usr/lib64