Linux系统目录结构
1.文件系统的概念
- 计算机的文件系统是一种存储和组织计算机数据的方法,它使的对其访问和查找变得容易
- 文件系统使用文件和树形,目录的抽象逻辑概念,用户使用文件系统来保存数据,不必关系数据实际保存在硬盘的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名即可
2.文件系统的分类
- ext2:早期Linux中常用的文件系统
- ext3:ext2的升级版,带日志功能
- ext4:Centos 6.9 基于硬盘(存放根目录分区)
- NFS:网络文件系统,由SUN发明,主要用于远程文件共享
- NFTS:Windows NT/XP操纵系统采用的文件系统
- XFS: Centos7 由SGI开发的先进的日志文件系统,支持超大容量文件
- ISO9660:大部分光盘所采用的文件系统
- SMBFS:Samba的服务的共享文件系统
- tmpfs:临时文件系统(内存文件系统)
3.文件系统目录结构
1.在Windows系统中,查看文件先进入相应的盘符,然后进入晚间目录
2.Linux的目录结构
在Linux系统中,所有内容都是以文件的形式保存和管理的,即Linux下一切皆文件。普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是文件。
Linux只有一个根目录,而且文件和目录被组织成一个单根倒置树形结构,
此结构最上层是根目录,用"/"表示
根文件系统(rootfs):root filesystem标准Linux文件系统(如:ext4)
如下图:
有以下几个特性:
(1)文件名称大小写敏感,例如:MAL,Mail,mail,mAiL
(2)以 . 开头的文件为隐藏文件
(3)路径的分割用 “/”
(4)文件名最长255个字节
(5)包括路径在内文件名称最长4095个字节
重点:在Linux的世界里,一切皆文件
1.tree 树状图形式列出目录内容
常用参数:
-d # 显示目录名称而非文件。
-l # 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-f # 在每个文件或目录之前,显示完整的相对路径名称。
-L level # 限制目录显示层级。
- 具体的目录结构可以使用tree命令查看
[root@localhost ~]# yum -y install tree
[root@localhost ~]# tree -L 1 /
[root@localhost ~]# tree -Lf 1 /
/ 根
├── /bin -> usr/bin 普通用户使用的命令;存放用户和管理员必备的可执行的二进制程序文件
├── /boot 存放Linux系统内核及引导系统程序多许哟啊的文件目录
├── /dev 存放硬件设备的目录,如键盘,鼠标,硬盘,光盘等
├── /etc 存放服务的配置文件,用户的信息文件
├── /home 普通用户的家目录
├── /lib -> usr/lib 存放系统中的程序进行所需要的共享及内核模块
├── /lib64 -> usr/lib64 存放函数库
├── /media 光盘和镜像等预设的挂载点
├── /mnt 一般用来临时挂载存储设备的挂载目录
├── /opt 额外安装的可选应用程序包所放位置的位置
├── /proc Linux伪文件系统,该目录下的数据存在内存当中,不占用磁盘空间
├── /root 超级管理员的家目录
├── /run 程序或服务启动后,存放PID的目录
├── /sbin -> usr/sbin
├── /srv 服务启动之后需要访问的数据目录
├── /sys 存放被建立在内存中的虚拟文件系统
├── /tmp 该目录用于存放临时文件
├── /usr 存放应用程序和文件
└── /var 系统运行和软件运行时产生的日志信息,该目录的内容是经常变动的,存放的是一些变化的文件。
19 directories, 0 files
3.Linux系统目录介绍
目 录 | 说 明 |
---|---|
/ | 处于linux系统树形结构的最顶端,它是linux文件系统的入口,所有的目录、文件、设备都在 / 之下 |
/bin | bin是Binary的缩写。常用的二进制命令目录。 比如 ls、cp、mkdir、cut等;和/usr/bin类似,一些用户级gnu工具 |
/boot | 存放的系统启动相关的文件,例如:kernel.grub(引导装载程序) |
/dev | dev是Device的缩写。设备文件目录,比如声卡、磁盘……在Linux中一切都被看做文件。 终端设备、磁盘等等都被看做文件 设备文件: /dev/sda,/dev/sda1,/dev/tty1,/dev/tty2,/dev/pts/1, /dev/zero, /dev/null, /dev/cdrom |
/etc | 常用系统及二进制安装包配置文件默认路径和服务器启动命令目录 /etc/passwd 用户信息文件 /etcshadow 用户密码文件 /etcgroup 存储用户组信息 /etcfstab 系统开机启动自动挂载分区列表 /etchosts 设定用户自己的IP与主机名对应的信息 |
/home | 普通用户的家目录默认存放目录 |
/lib | 库文件存放目录,函数库目录 |
/lost+found只在centos6中有 | 默认为空,被FSCK(file system check用来检查和维护不一致的文件系统。 若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查)用来放置零散文件(没有名称的文件) 当系统非法关机后,这里就会存放一些文件。 在centos6版本下,每个分区的挂载点下会有些目录 |
/mnt/media | 一般用来临时挂载存储设备的挂载目录,比如有cdrom、U盘等目录在CENTOS7中会挂载到/run下面 |
/opt | 表示的是可选择的意思,有些软件包也会被安装在这里 |
/proc | 操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。 /proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统。 因此,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 也就是说,这个目录的内容不在硬盘上而是在内存里 查看咱们的CPU信息 cat /proc/cpuinfo |
/sys | 系统目录,存放硬件信息的相关文件 |
/run | 运行目录,存放的是系统运行时的数据,比如进程的PID文件 |
/srv | 服务目录,存放的是我们本地服务的相关文件 |
/sbin | 大多数涉及系统管理的命令都存放在该目录中,它是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,凡是目录sbin中包含的命令都是root权限才能执行的 |
/tmp | 该目录用于存放临时文件,有时用户运行程序的时候,会产生一些临时文件。/tmp就是用来存放临时文件的。/var/tmp目录和该目录的作用是相似的,不能存放重要数据,它的权限比较特殊 [root@itlaoxin71 ~]# ls –ld /tmp drwxrwxrwt 10 root root 12288 Oct 3 20:45 /tmp/ à粘滞位(sticky bit)目录的sticky位表示这个目录里的文件只能被owner和root删除 |
/var | 系统运行和软件运行时产生的日志信息,该目录的内容是经常变动的,存放的是一些变化的文件。比如/var下有/var/log目录用来存放系统日志的目录,还有mail、/var/spool/cron |
/usr | 存放应用程序和文件, /usr/bin 普通用户使用的应用程序 /usr/sbin 管理员使用的应用程序 /usr/lib 库文件Glibc(32位) /usr/lib64 库文件Glibc |
/lib/lib64都在/usr/目录下 | 这个目录里存放着系统最基本的动态链接共享库,包含许多被/bin/和/sbin/中的程序使用的库文件,目录/usr/lib/中含有更多用于用户程序的库文件。 作用类似于windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库 注:lib.a是静态库 lib.so是动态库 静态库在编译时被加载到二进制文件中 动态库在运行时加载到进程的内存空间中简单的说:这些库是为了让你的程序能够正常编译运行的其实类似于WIN中.dll文件,几乎所有的应用程序都需要用到这些共享库。 |
4.常用相关文件(需要记住的)
/etc/resolv.conf Linux系统DNS客户端配置文件,DNS在网站的运行中起到了至关重要的作用,其主要负责将网站域名解析为对应的IP地址.
/etc/hostname 主机配置文件 hostname set-hostname itlisi 这个命令会直接修改配置文件.
/etc/hosts 设定用户IP与名字(或域名)的对应解析表,相当于(局域网内)的DNS解析文件,Linux系统下的这个/etc/hosts类似与C:\Windows\System32\drivers\etc\hosts文件.
/etc/fstab 配置开机设备自动挂载的文件.
/etc/inittab 系统启动时设定运行级别等配置的文件.
/etc/profile及/etc/bashrc 配置系统的环境变量/别名等的文件.
/etc/profile.d 用户登录后执行脚本所在的目录.
/etc/init.d 软件启动程序所在的目录(Centos7之前),Centos7之后这个目录已经不用了.
/etc/motd 配置用户登录系统之后显示提示内容的文件
/etc/redhat-release 查看Red Hat版本号和名称信息的文件
/etc/sysctl.conf Linux内核参数设置文件
/var/log 记录系统及软件运行信息文件所在的目录
/var/log/secure 用户登录信息日志文件
/var/log/dmesg 记录硬件信息加载情况的日志文件
/proc/cpuinfo 当前cpu相关信息
/proc/meminfo 当前内存信息
/proc/loadavg 当前平均负载相关的信息
/proc/mounts 当前挂载相关信息
/usr/bin 与/bin目录相同.存放用户可以使用的命令程序
/usr/lib 与/lib目录相同,存放系统中的程序运行所需要的共享库及内核模块
/usr/etc 用于存放安装软件时使用的配置文件
/usr/games 与游戏比较相关的数据放置处
/usr/include c/c++等程序语言的档头(hearder) 与包含档(include)放置处
/usr/lib4 与lib64目录相同,存放函数库
/usr/libexec 不经常被使用的执行程序或脚本会放置在此目录中
/usr/local 额外安装的软件存放目录(记住)
/usr/sbin 与/sbin目录相同,存放用户可执行的二进制程序文件
/usr/share 放置只读架构的杂项数据文件
/usr/src 一般软件代码建议放在此目录下