1、Linux发行版的系统目录名称命名规则以及用途
1.1 命名规则
- 遵循FHS(Filesystem Hierarchy Standard)标准。
- 目录名最长255个字节。
- 标准 Linux 文件系统(如 ext4 ),对名称大小写敏感,例如:LINUX, Linux, linux。
- 目录也是文件,在同一路径下,两个文件不能同名。
- 除了斜杠和 NUL ,所有字符都有效,但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用。
1.2 用途(以 CentOS 为例)
-
/boot: 引导文件存放目录,内核文件 (vmlinuz) 、引导加载器 (bootloader, grub) 都存放于此目录;
-
/bin: 所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序,软链接至 /usr/bin ;
-
/sbin: 管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序,软链接至 /usr/sbin ;
-
/lib: 启动时程序依赖的基本共享库文件以及内核模块文件 (/lib/modules) ,软链接至 /usr/lib ;
-
/lib64: 专用于x86_64系统上的辅助共享库文件存放位置,软链接至 /usr/lib64 ;
-
/etc: 配置文件目录;
-
/home/USERNAME: 普通用户家目录;
-
/root: 管理员的家目录;
-
/media: 便携式移动设备挂载点;
-
/mnt: 临时文件系统挂载点;
-
/dev: 设备文件及特殊文件存储位置;
-
/opt: 第三方应用程序的安装位置;
-
/srv: 系统上运行的服务用到的数据;
-
/tmp: 临时文件存储位;
-
/usr: 全局共享的只读数据;
- bin: 保证系统拥有完整功能而提供的应用程序;
- sbin: 保证系统拥有完整功能而提供的应用程序,系统管理命令;
- lib: 程序和软件包的存放库,32位系统用;
- **lib64:**程序和软件包的存放库,64位系统用;
- include: C程序的头文件 (header files) ;
- share: 结构化独立的数据,例如 doc, man 等;
- local: 第三方应用程序的安装位置,子目录: bin, sbin, lib, lib64, etc, share。
-
/var: variable data files,常态性变动的文件,包括缓存(cache)、登录文件以及某些软件运行所产生的文件,包括程序文件( lock file,run file)。
- cache: 应用程序缓存数据目录;
- lib: 应用程序状态信息数据;
- local: 专用于为 /usr/local 下的应用程序存储可变数据;
- lock: 锁文件;
- log: 日志目录及文件;
- opt: 专用于为 /opt 下的应用程序存储可变数据;
- run: 运行中的进程相关数据,通常用于存储进程 pid 文件;
- spool: 应用程序数据池;
- tmp: 保存系统两次重启之间产生的临时数据。
-
/proc: 用于输出内核与进程信息相关的虚拟文件系统;
-
/sys: 用于输出当前系统上硬件设备相关信息虚拟文件系统;
-
/selinux: security enhanced Linux,selinux 相关的安全策略等信息的存储位置。
2、文件的元数据信息及含义、查看方法、修改文件的时间戳信息
2.1 元数据信息
-
File: 文件名;
-
Size: 文件大小;
-
Blocks: 文件占用的数据块数量;
-
IO Block: 系统格式化数据块的大小;
-
xxxx file: 文件类型 ;
-
Device: 设备编号(16进制/10进制);
-
Inode: 节点编号;
-
Links: 硬链接的数量;
-
Access: 第一个,文件访问权限;
-
Uid: 文件所有者的用户ID;
-
Gid: 文件所属组的组ID;
-
Context: SELinux 安全上下文;
-
Access: 表示文件的访问时间,当文件内容被访问时,更新这个时间 ;
-
Modify: 表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间;
-
Change: 表示文件的状态时间,当文件的状态(元数据)被修改时,更新这个时间,例如文件的链接数、大小、权限、Blocks 数等;
-
Birth: 文件创建时间。
2.2 查看元数据方法
[root@centos7 ~]# stat file1.txt
File: ‘file1.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 100680069 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-04-22 16:34:40.150033377 +0800
Modify: 2020-04-22 16:34:40.150033377 +0800
Change: 2020-04-22 16:34:40.150033377 +0800
Birth: -
2.3 修改文件的时间戳信息
注意:access time 或 Modify time 变更时,change time 会自动修改为操作时间。
#修改 access time 为当前时间( file1.txt 已存在)
[root@centos7 ~]# touch -a file1.txt
#修改 access time 为指定时间
[root@centos7 ~]# touch -a -t 202004221800 file1.txt
#修改 modify time 为当前时间
[root@centos7 ~]# touch -m file1.txt
#修改 modify time 为指定时间
[root@centos7 ~]# touch -m -t 202004221800 file1.txt
3、软连接和硬连接区别
- 本质: 硬链接是同一个文件多个文件名,软链接是不同文件;
- 跨分区: 硬链接不支持跨分区,软链接支持跨分区;
- 目录: 硬链接不支持对目录创建,软链