Linux cgroups 资源限制实战

前言" 容器原理篇说过 cgroup 是容器的三大支柱之一,这篇把它单独拿出来亲手玩透——不用 Docker,直接用内核的 cgroup 文件系统给任意进程上"资源紧箍咒"。 ...

2026-04-18 · 3 min · zy

Shell 脚本进阶:函数与常见陷阱

前言 会写脚本和写好脚本之间,隔着无数深夜的坑。这篇把 Bash 的函数进阶用法和那些"约定俗成但没人明说"的陷阱一次讲清。 一、函数的正确写法 #!/usr/bin/env bash # 定义(function 关键字可省, 括号必须有) function log() { # local 变量: 不污染全局 —— 函数内赋值一律 local! local level=$1 msg=$2 printf '[%s] [%s] %s\n' "$(date '+%F %T')" "$level" "$msg" } # 调用(参数像脚本参数一样传) log INFO "服务启动" log ERROR "连接超时" 参数与返回值: ...

2025-09-06 · 4 min · zy

Linux 系统启动流程详解

前言 服务器卡在启动界面进不去系统时,看懂启动流程就是看懂排障地图。这篇从固件到 shell,一步步走完 Linux 的"出生过程"。 一、总览:六个阶段 ① 固件自检 (BIOS/UEFI) ▼ ② 引导加载 (GRUB2) ▼ ③ 内核加载 (vmlinuz + initramfs) ▼ ④ PID 1 (systemd 启动) ▼ ⑤ 并行拉起服务 (target + 依赖) ▼ ⑥ 登录 (getty / sshd) 二、阶段一:固件(BIOS/UEFI) BIOS(老) UEFI(现代) 按 MBR 磁盘前512字节引导 读 FAT 格式的 ESP 分区里的 .efi 文件 │ │ ▼ ▼ MBR: 引导代码446B + 分区表64B /boot/efi/EFI/.../grubx64.efi + 魔数 55AA # 看自己的机器是哪种 [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS # UEFI 下看启动项 efibootmgr -v # 固件层常见故障: 启动顺序错了 / 磁盘没认出来 # → 进 BIOS Setup 检查 Boot Order 与磁盘是否识别 三、阶段二:GRUB2 引导 GRUB 的任务:找到内核与 initramfs,把控制权交出去。 ...

2025-06-07 · 3 min · zy

Linux 用户、组与 sudo 权限管理

前言 “最小权限原则"落地的第一站就是账号体系:日常用普通用户 + 按需 sudo,而不是人人 root。这篇把用户、组、sudo 的管理一次讲全。 ...

2025-03-01 · 3 min · zy

Linux 文件系统对比:ext4 与 XFS

前言 mkfs 时的灵魂拷问:ext4 还是 xfs?两者都是成熟的日志式文件系统,但性格差异明显。这篇从原理到选型讲清楚。 一、文件系统要解决什么 数据的逻辑组织 + 崩溃一致性: 应用写入 "hello" │ ▼ 文件系统: 把数据拆成块 + 维护元数据(inode 表、目录项、空闲块位图) │ ▼ 日志(Journal): 先把"要做的修改"记一笔, 再真正落盘 │ 断电重启后: 重放日志或回滚 —— 保证一致性 ▼ 磁盘块 inode:存文件元数据(权限、时间戳、数据块指针),不含文件名。经典问题——“磁盘有空间但创建不了文件”= inode 耗尽(海量小文件): ...

2024-09-21 · 3 min · zy

Linux 网络配置与排查常用命令

前言 “服务起不来”、“连不上数据库”、“网页打不开”——90% 的线上问题最后都指向网络。这篇整理 Linux 网络排查的命令工具链和标准流程。 ...

2023-08-05 · 3 min · zy

Linux 进程管理:ps、top 与信号机制

前言 服务卡了、CPU 飙了、进程僵了——处理这些问题的第一步永远是"看清进程现场"。这篇梳理进程查看、信号机制和后台任务管理的核心知识。 ...

2023-05-06 · 3 min · zy

Linux 文本处理三剑客:grep、sed、awk

前言 Linux 下一切皆文件,而日志、配置、命令输出全是文本。grep 找、sed 改、awk 算——这三把剑练熟,日常 80% 的文本处理需求都能搞定。 一、grep:文本搜索 # 基本搜索(支持管道) grep "ERROR" app.log journalctl -u nginx | grep -i "fail" # -i 忽略大小写 # 常用选项 grep -n "root" /etc/passwd # 显示行号 grep -c "ERROR" app.log # 只统计匹配行数 grep -v "127.0.0.1" access.log # 反向: 排除匹配的行 grep -r "bind 0.0.0.0" /etc/ # 递归搜目录 grep -E "ERROR|FATAL" app.log # 扩展正则, 多模式 grep -A 3 -B 1 "panic" app.log # 显示匹配行的后3行、前1行 grep -w "error" app.log # 全词匹配 基础正则速查: ...

2023-04-22 · 3 min · zy

Bash 脚本入门:变量、条件与循环

前言 会写 Bash 脚本,是运维和后端开发日常效率的分水岭。这篇把最核心的语法要素串一遍,看完能写出规范、能跑的脚本。 一、脚本骨架 从一个标准骨架开始: #!/usr/bin/env bash # 描述: 演示脚本骨架 set -euo pipefail # 出错即停 + 未定义变量报错 + 管道错误传递 LOG_FILE="/var/log/myapp.log" log() { echo "[$(date '+%F %T')] $*" | tee -a "$LOG_FILE" } main() { log "脚本开始" # ... 业务逻辑 log "脚本结束" } main "$@" 三件套说明: ...

2023-04-08 · 3 min · zy

Linux 文件权限与特殊权限位详解

前言 刚接触 Linux 的同学,第一次看到 ls -l 输出前面那串 drwxr-xr-x 大概率是一脸懵的。这篇文章把 Linux 文件权限这套模型掰开揉碎讲清楚,包括很多人用了很多年也没完全理解的特殊权限位。 ...

2023-03-05 · 3 min · zy