一、硬链接
- 本质
- 同一物理文件的不同名称(inode相同)
- 特性
graph LR A[文件1] --> C[物理数据] B[文件2] --> C- 创建:
ln source link_name - 链接数递增
- 删除文件仅减少链接数
- 限制:
- ❌ 跨分区
- ❌ 目录
- ❌ 不同文件系统
- 创建:
二、软链接
- 本质
- 独立文件存储目标路径(inode不同)
- 特性
graph LR A[软链接] --> B[目标文件]- 创建:
ln -s target link_name - 支持:
- ✅ 跨分区
- ✅ 目录
- ✅ 相对路径(相对于链接位置)
- 创建:
- 危险操作
rm symlink # 安全删除链接 rm symlink/ # 灾难! 删除目标内容
三、核心对比
| 特性 | 硬链接 | 软链接 |
|---|---|---|
| 本质 | 同一文件 | 独立文件 |
| inode | 相同 | 不同 |
| 跨分区 | ❌ 不支持 | ✅ 支持 |
| 目录支持 | ❌ 不支持 | ✅ 支持 |
| 相对路径 | 基于当前目录 | 基于链接文件位置 |
| 文件大小 | 与源文件相同 | 路径字符串长度 |
| 链接数影响 | 创建+1,删除-1 | 无影响 |
用户与组权限体系
一、安全模型
graph TD
A[认证 Authentication] --> B[授权 Authorization]
B --> C[审计 Auditing]
二、用户标识
| 用户类型 | UID范围 | 用途 |
|---|---|---|
| root | 0 | 超级用户 |
| 系统用户 | 1-999 (CentOS 7+) | 服务进程 |
| 登录用户 | 1000+ | 交互式用户 |
查看命令:
id -u username # 查看UID
id -g username # 查看主组ID
三、配置文件
-
核心文件:
/etc/passwd # 用户属性 /etc/shadow # 密码及策略 /etc/group # 组信息 /etc/gshadow # 组密码 -
passwd字段解析:
username:x:1000:1000:注释:/home/user:/bin/bash ↑ ↑ ↑ ↑ ↑ ↑ ↑ 用户名 密码 UID GID 备注 家目录 Shell -
shadow安全字段:
user:$6$salt$hash:18647:0:99999:7::: ↑ ↑ ↑ ↑ ↑ ↑ ↑ 用户 加密密码 最后修改 最小 最大 警告
四、管理命令
| 操作 | 用户命令 | 组命令 |
|---|---|---|
| 创建 | useradd -m user |
groupadd devs |
| 修改 | usermod -g devs user |
groupmod -n team devs |
| 删除 | userdel -r user |
groupdel team |
| 密码 | passwd user |
gpasswd -a user team |
文件权限管理
一、权限模型
graph LR
进程 -->|属主匹配| U[属主权限]
进程 -->|属组匹配| G[属组权限]
进程 --> O[其他权限]
二、权限操作
-
更改归属:
chown user:group file # 同时修改属主和属组 chgrp devs dir/ # 递归修改目录属组 -
权限设置:
chmod u=rwx,g=rx,o= file # 符号法 chmod 750 file # 数字法 (7=rwx, 5=r-x)
三、目录权限深度
| 权限 | 文件 | 目录 |
|---|---|---|
| r | 读取内容 | 查看文件名 |
| w | 修改内容 | 创建/删除文件 |
| x | 执行程序 | 进入目录+访问元数据 |
| – | 无权限 | 无权限 |
关键规则:删除文件需目录写+执行权限
四、umask原理
umask 022 # 默认设置
# 文件权限 = 666 - umask → 644 (rw-r--r--)
# 目录权限 = 777 - umask → 755 (rwxr-xr-x)
永久生效:
echo "umask 027" >> ~/.bashrc
VIM高效编辑指南
一、核心操作
graph TB
A[命令模式] --> B[插入模式 i]
B --> A[ESC]
A --> C[末行模式 :]
二、高频命令
| 功能 | 命令 | 说明 |
|---|---|---|
| 搜索 | /pattern |
向下搜索 |
?pattern |
向上搜索 | |
| 替换 | :%s/old/new/gc |
全局确认替换 |
| 行号 | :set nu |
显示行号 |
| 保存退出 | :wq 或 ZZ |
保存退出 |
| 加密 | :X |
设置密码 |
三、多文件操作
:split file2.c # 水平分割
:vsplit lib.h # 垂直分割
Ctrl+w → # 切换窗口
文本处理工具箱
一、查看工具
| 命令 | 功能 | 示例 |
|---|---|---|
cat |
拼接显示 | cat -n file |
tac |
逆向行序 | tac log.txt |
rev |
逆向行内字符 | rev password.txt |
more |
分页查看 | more /var/log/syslog |
二、截取工具
head -c 100 data.bin # 前100字节
tail -f app.log # 实时追踪日志
三、处理工具
-
排序去重:
sort -u data.txt | uniq -c -
列提取:
cut -d: -f1,3 /etc/passwd # 提取用户名和UID -
数学计算:
echo {1..100..2} | tr ' ' '+' | bc # 计算1-100奇数和
生产技巧:
使用cut --output-delimiter="|"自定义输出分隔符
完整知识体系说明
- 硬链接/软链接:物理层到逻辑层深度对比
- 权限体系:从安全模型到实操命令
- VIM专业技巧:包含多窗口、加密等高级功能
- 文本处理:覆盖查看/截取/分析全场景
- 视觉辅助:Mermaid图表 + 表格快速参考
所有内容严格保留原始技术细节,优化逻辑结构提升可读性!